* Form.cs: Fixed typo in exception message. Fixes bug #80779.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
2
3         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
4
5 2007-02-09  Chris Toshok  <toshok@ximian.com>
6
7         [big change, fixes #80020]
8         
9         * AccessibleObject.cs: we need to make owner internal again to fix
10         some of ControlAccessibleObject.
11
12         * Control.cs: lots of changes here.  add support for WM_CREATE,
13         for which we generate OnHandleCreated.  Remove the OnHandleCreated
14         call from CreateHandle.  Also add support for WM_SHOWWINDOW where
15         we create child controls.  leave the MonoTODO's for the
16         accessibility calls, but fix the exceptions so the tests pass.
17
18         Add the InvalidOperationExceptions to Invoke methods, and remove a
19         couple of InvokeInternal methods we aren't using.
20         
21         Also, add a couple of CreateHandle calls in places where we know
22         the handles are being created but our code doesn't reference
23         .Handle.
24
25         Make SetVisibleCore call OnVisibleChange if the handle isn't
26         created.  If the handle is created, we rely on XplatUI.SetVisible
27         generating the event synchronously.
28         
29         Lastly, make sure we don't use this.Handle inside CreateHandle,
30         because we can call back into client (and that code can dispose of
31         the control).
32
33         * XplatUIStructs.cs: misc/cleanup.
34
35         * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
36         although we don't populate the wParam properly.
37         (CreateWindow): generate WM_CREATE.
38         (MapWindow,UnmapWindow): make these calls synchronous, at great
39         performance expense (particularly in the unmap case), to match
40         win32 behavior.
41
42         * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
43         to call it.
44         (set_MdiParent): don't recreate the handle unless it's been
45         created already.
46         
47         * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
48         it's created.
49
50         * NativeWindow.cs: this is probably the weirdest part of the
51         patch.  We need a way to link up the window being created to the
52         WM_CREATE message.  Since we can only be creating one window at a
53         time on a given thread, we keep track of a per-thread reference so
54         we can dispatch it properly.  We also need to keep track of the
55         Hwnd currently being created so that the win32 backend doesn't
56         have problems.
57         
58         * XplatUIWin32.cs: a similar change to the one we made in
59         NativeWindow.cs.
60
61 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
62
63         * Form.cs: Improved exception messages in ShowDialog.
64
65 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
66
67         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
68         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
69         if not set. Fixes bug #80764. Avoid accessing current_settings field
70         directly.
71
72 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
73
74         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
75         false.
76
77         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
78         public in 2.0 and for easy maintenance and dont break compatibility it is 
79         internal in 1.1.
80         
81 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
82
83         * ToolStripItem.cs: Implement using images from ImageList.
84
85 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
86
87         * DateTimePicker.cs: Change default date-formatting culture from
88           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
89           seems to be the way MS does it.
90
91 2007-02-08  Andreia Gaita  <avidigal@novell.com>
92
93         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
94         (the 6 was cut off on the right side)
95
96 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
97
98         * Form.cs: Tell MenuStrips to close when the form is clicked.
99         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
100         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
101         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
102         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
103         support for Overflow, where items that do not fit are automatically
104         reparented to a drop down menu.
105         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
106         Also: fixes bug #80747.
107
108 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
109
110         * ComboBox.cs: Remove warning (unused code).
111         * ScrollableControl.cs: Remove warning for 1.1 profile.
112
113 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
114
115         * Form.cs: Remove a warning.
116
117 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
118
119         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
120           'g' specifier, not documented anywhere, but seems to always show up
121           as a single space (might have something to do with the DateTime 'g'
122           specifier, which is the era format, but since DateTimePicker can't
123           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
124           won't crash if the format has an unmatched quote. Now shows
125           single-character formats correctly. Fixes #80744.
126
127 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
128
129         * StatusStrip.cs: Stretch property needs to call base.Stretch,
130         not this.Stretch to fix stack overflow. [Fixes bug #80760]
131
132 2007-02-07  Chris Toshok  <toshok@ximian.com>
133
134         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
135         background color.  it overwrites the background image we've
136         already painted.  Fixes #80599.
137
138 2007-02-07  Chris Toshok  <toshok@ximian.com>
139
140         * DataGrid.cs: return immediately from Edit() when there are no
141         columns.  Fixes #80662.
142
143 2007-02-07  Chris Toshok  <toshok@ximian.com>
144
145         * MessageBox.cs: fix #80625.  don't always show the Help button in
146         2.0.  use the displayHelpButton parameter to determine if we
147         should show it. Also, make the internal show_help field private.
148
149 2007-02-07  Chris Toshok  <toshok@ximian.com>
150
151         * Control.cs (SetVisibleCore): check in the proposed patch for
152         80604, and set is_visible before calling CreateControl.
153
154 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
155
156         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
157         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
158         on it.
159
160 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
161
162         * MenuAPI.cs: hotkey_active internal field added, it is required because
163         we need to know when hotkeys must be draw, before this change a keystate
164         Navigating was used but we can have menu in navigating state without
165         hotkeys. Fixes #80694.
166         
167         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
168
169 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
170
171         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
172           corresponding events and methods to be internal for 1.1 profile and
173           public for 2.0 profile (required by SizeGrip).
174         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
175           implicit control list). Don't set the size nor the location of the
176           SizeGrip anymore as it's not needed.
177         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
178           draw directly on the captured control (fixes #80656). Removed
179           ShowGrip (it wasn't used anywhere), redraw (always true), added
180           GetDefaultSize and GetDefaultRectangle to calculate defaults.
181         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
182           be called from SizeGrip.
183
184 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
185
186         * Timer.cs: Throw ArgumentException if Interval <= 0.
187
188 2007-02-05  Jackson Harper  <jackson@ximian.com>
189
190         * TreeView.cs: We need to check scrollbar visibility when window
191         visibility is updated, because non visible trees don't ever add
192         scrollbars.
193         * Cursor.cs: We want the override cursor to be reset to NULL when
194         we set current cursor to the default cursor.
195
196 2007-02-05  Jackson Harper  <jackson@ximian.com>
197
198         * TextControl.cs: Don't have crlfs when we are non multiline.
199         - Consolidate the line position.
200
201 2007-02-05  Jackson Harper  <jackson@ximian.com>
202
203         * X11Keyboard.cs: BACK+CTRL gets a special char code.
204
205 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
206
207         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
208           handling LeaveNotify->NotifyUngrab in order to send
209           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
210           after calling XUngrabPointer, so we call WindowUngrabbed directly
211           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
212         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
213           MouseCaptureChanged correctly. Also create handles if changing
214           Capture (matches MS behaviour).
215
216 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
217
218         * SizeGrip.cs: Make the last change 2.0 only.
219
220 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
221
222         * SizeGrip.cs: If resizing and the capture is lost, revert any size
223           changes to initial size (fixes #80597).
224
225 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
226
227         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
228
229 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
230
231         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
232           background) and only allow dragging if enabled. This way the
233           sizegrip can be used to fill the open square that otherwise would
234           have been shown in the bottom right corner of ScrollableControl
235           when ScrollableControl is not suppose to support sizing.
236         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
237           sizegrip is shown and enabled, and hook up with necessary events.
238
239 2007-02-01  Chris Toshok  <toshok@ximian.com>
240
241         * DataGridTextBoxColumn.cs: clean up the
242         GetFormattedString/GetColumnValueAtRow combination of functions.
243         Also fix UpdateUI, and the initial state of
244         IsInEditOrNavigateMode.
245
246         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
247         aren't supposed to scroll the textbox here, we're supposed to
248         scroll the datagrid.
249
250 2007-02-01  Chris Toshok  <toshok@ximian.com>
251
252         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
253         setting the position.
254
255 2007-02-01  Chris Toshok  <toshok@ximian.com>
256
257         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
258         here, since the most recent focus fixes keep us from generating
259         the Leave event when our textbox gets focus.
260         (Edit): we should be passing null for the column style's
261         instantText parameter.
262         
263 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
264
265         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
266         raised.  Fixes menu text/icons not showing up in PDN.
267
268 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
269
270         * Control.cs: Remove code in constructor that makes every
271         control with WS_CHILD set have initial location -1, -1.
272
273 2007-01-31  Jackson Harper  <jackson@ximian.com>
274
275         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
276         XplatUIX11.
277         * XplatUIX11.cs: Give teh keyboard to teh dnd.
278
279 2007-01-31  Jackson Harper  <jackson@ximian.com>
280
281         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
282         - Remove some debug code.
283
284 2007-01-31  Jackson Harper  <jackson@ximian.com>
285
286         * XplatUIX11.cs: If you set the override cursor during a grab, it
287         should actually override the grab cursor.  This comes into play
288         when you are setting custom cursors in a DND feedback method.
289
290 2007-01-31  Jackson Harper  <jackson@ximian.com>
291
292         * X11Dnd.cs: Add support for handling the QueryContinue and
293         GiveFeedback events.
294         - Cancel drag and drop actions when the escape key is clicked.
295         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
296         can handle the ESCAPE key.
297         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
298         done when dnd events are continued after the button is released.
299         - Add a new helper method so that dnd can translate key events.
300
301 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
302
303         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
304         make it more obvious what is happening.
305
306 2007-01-30  Jackson Harper  <jackson@ximian.com>
307
308         * XplatUIX11.cs: Don't break when handling button release in drag
309         and drop operations. We need that BUTTONUP message to get through
310         so capture is released.
311         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
312         this is handled automatically when the mouse is down.
313
314 2007-01-30  Jackson Harper  <jackson@ximian.com>
315
316         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
317         is closed, so we need to make sure that we aren't changing the
318         dialog result when the OK (Open or Save) button has been clicked
319         and we are closing the window ourselves.  Note we don't need to
320         worry about the cache being written in this case, because it was
321         already done in the previous FilOk call.
322
323 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
324         
325         * DateTimePicker.cs: Remove a warning.
326         * ComboBox.cs: Remove a couple of warnings.
327
328 2007-01-29  Chris Toshok  <toshok@ximian.com>
329
330         * XplatUIX11.cs: don't crash, and remove the icon if the user has
331         set one, if SetIcon is passed a null icon.
332
333 2007-01-29  Andreia Gaita  <avidigal@novell.com>
334
335         * TextBox.cs: Redraw when the password characters changes
336         * TextControl.cs: Check if textbox has a password char and draw 
337         a line of password chars instead of the text in the line. LineTag gets 
338         an extra Draw() method which allows document.Draw to override the text 
339         that will be drawn. Removes 1024 char limitation on length of passworded 
340         lines.
341
342 2007-01-29  Jackson Harper  <jackson@ximian.com>
343
344         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
345         single chars is not.
346
347 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
348
349         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
350         one pixel.  Fix a StackOverflowException caused by an overload wrongly
351         calling itself.
352
353 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
354
355         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
356         also remove ProcessArrowKey and put the code inside ProcessKeys.
357
358 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
359
360         * PaddingConverter.cs: Added.
361
362 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
363         
364         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
365         ShowPanels is false (fixes #80600). Only draw up to 127 characters
366         of text (fixes #80601). For panels clip the text to draw to the
367         panel (fixes #80603).
368
369 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
370
371         * ComboBox.cs: Fixed implementation of ResetText.
372
373 2007-01-25  Jackson Harper  <jackson@ximian.com>
374
375         * TextControl.cs: For the last char of a line we need to use the
376         line size, not that chars width, since it won't actually be
377         computed since the right side of a char is based on the start of
378         the left side of the next char, and the next char does not exist.
379
380 2007-01-25  Chris Toshok  <toshok@ximian.com>
381
382         * Splitter.cs: fix the new unit tests, and reindent some switch
383         statements.
384
385 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
386
387         * ComboBox.cs: Implemented 2.0 methods and events.
388         * TextBoxBase.cs: Added OnTextUpdate, so that
389         ComboBox.ComboTextBox can inform ComboBox of it.
390
391 2007-01-25  Jackson Harper  <jackson@ximian.com>
392
393         * TextControl.cs: Respect ShowSelection when deciding whether or
394         not to display the caret, this allows comboboxes to have carets
395         when the combotextbox does not have focus.
396
397 2007-01-25  Jackson Harper  <jackson@ximian.com>
398
399         * TextControl.cs: Add a Suspend/Resume for updating, basically the
400         same as the Suspend/Resume for recalc, except this will do actual
401         Invalidates.
402         - New Undo manager, works much like the MS version.
403         - Implemented Redo
404         * TextBoxBase.cs: The Cut operation is undoable.
405
406 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
407         
408         * TextBoxBase.cs: Don't antialias text. Makes it look way better
409         on Windows (no difference on Linux).    
410
411 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
412
413         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
414         we don't want to activate any windows. Fixes #79433.
415
416 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
417
418         - ButtonBase.cs: Fix capitalization of parameter: disposing.
419         [Fixes bug #80609]
420
421 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
422
423         * FileDialog.cs:
424         - Move to using System.ComponentModel.EventHandlerList
425         - Replace Refresh with Invalidate
426         - Clear the mime filecache on closing
427         - Some other memory reducing work. After beeing closed FD now uses
428           only about 300 KB for the fdo mime stuff plus the memory of the
429           cached icons.
430         * Mime.cs: Changed coding style and removed unnecessary commented
431         code. Some more memory memory reducing work.
432
433 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
434
435         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
436         a few other missing 2.0 properties.
437         * Theme.cs: Added DrawFlatStyleComboBox.
438         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
439
440 2007-01-24  Chris Toshok  <toshok@ximian.com>
441
442         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
443         wake_waiting flag, not just when there's data to be read.  if we
444         don't, then future wakeup's won't reach us and we'll be doomed to
445         wait for the entire 1 second timeout forever (unless there are X
446         events to be had).
447
448 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
449
450         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
451         until you pass Items.Count, not Items.Count - 1 like 1.1.
452
453 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
454
455         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
456
457 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
458
459         * ToolStripContainer.cs: The recent Dock fix exposed that I was
460         adding the panels in the wrong order.
461
462 2007-01-24  Jackson Harper  <jackson@ximian.com>
463
464         * TextBoxBase.cs: When we move the caret we also need to move the
465         selection, this fixes some random crashing after doing select
466         text, unselect, delete a char, paste.
467
468 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
469
470         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
471
472 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
473
474         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
475         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
476         * ToolBar.cs: Force redraw in BackgroundImageChanged.
477
478 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
479
480         * ToolBar.cs:
481         - Implement support for vertical toolbars. Fixes #80539;
482         - Call LayoutToolBar when resize, it fix some other problems in layout.
483         - Rename requested_height to requested_size, as we can have width on it
484         when toolbar is vertical.
485         - Create a private property "Vertical" that uses Dock to verify when 
486         toolbar is vertical or not.
487         - Set ControlStyles when change Dock property.
488         - Refactory in LayoutToolBar to have better variables names and to support
489         vertical toolbars.
490         - Fixes default value for ButtonSize when button count is equal zero, size
491         must be (39, 36) test case writed.
492
493 2007-01-23  Chris Toshok  <toshok@ximian.com>
494
495         * Control.cs: fix the checks so that they work correctly for mdi
496         parents/children.
497
498 2007-01-23  Chris Toshok  <toshok@ximian.com>
499
500         * Control.cs: ControlCollection seems to have super-secret
501         abstraction breaking knowledge of Mdi containers.  allow MdiClient
502         to add toplevel controls.
503
504 2007-01-23  Chris Toshok  <toshok@ximian.com>
505
506         * Control.cs: throw an ArgumentException if a toplevel control is
507         added to our control collection from ControlCollection.Add, as
508         well as from ControlCollection.IList.Add.  This fixes the
509         ControlSetTopLevelTest.TestTopLevelAdd unit test.
510
511         Also, in ControlCollection.IList.Add, don't through an
512         ArgumentNullException, throw an ArgumentException, when value ==
513         null.  This matches MS.
514
515 2007-01-23  Chris Toshok  <toshok@ximian.com>
516
517         * BindingSource.cs: initial, incomplete, implementation of
518         BindingSource.
519
520 2007-01-23  Jackson Harper  <jackson@ximian.com>
521
522         * TextControl.cs:
523         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
524         that I can fix a broken unit test (TextBoxTest::ClearUndo)
525         
526 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
527
528         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
529
530 2007-01-23  Andreia Gaita  <avidigal@novell.com>
531
532         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
533         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
534         IndexOfKey() for 2.0
535
536 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
537
538         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
539         to prevent it from changing z-order.
540         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
541         leave UI updates in MdiWindowManager.
542         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
543         1 sized (NC handling goes weird on Linux otherwise).
544         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
545         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
546         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
547         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
548         and SetWindowState(s) to allow for changing the size of an activated child
549         before activating it (reduces a lot of flicker).
550
551 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
552
553         * Form.cs: Changing FormBorderStyle has different semantics based
554         on whether the Form is visible or not.  If not visible, don't change
555         the Size.  But InvalidateNC needs to be called to force the window
556         to pick up the changes and redraw itself.  [Fixes bug #80574]
557
558 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
559
560         [Moma work]
561         * ContainerControl.cs: ProcessCmdKey.
562         * ErrorProvider.cs: new constructor.
563         * Form.cs: fix AutoValidateEvent compiler warning.
564         * Label.cs: fix OnAutoSizeChanged compiler warning.
565         * MenuStrip.cs: fix CanOverflow compiler warning.
566         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
567         * TextBox.cs: Dispose.
568         * ToolStrip.cs: CanOverflow, re-enable double buffering.
569         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
570         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
571         * ToolStripItem.cs: Overflow, RightToLeft properties.
572
573 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
574
575         * Form.cs: Move the layout of the main form to MdiWindowManager.
576         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
577         do a layout of the main window to update MdiClient's client area to
578         the right area. Fixes #80533. Remove the calculation of nc size, 
579         it was just wrong and the correct one is the same as for 
580         InternalWindowManager. 
581
582 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
583
584         * Control.cs: Setting Anchor or Dock needs to reset the other
585         to its default.  [Fixes bug #80556]
586
587 2007-01-20  Chris Toshok  <toshok@ximian.com>
588
589         * CheckedListBox.cs: class status changes.
590
591         * ScrollableControl.cs: same.
592
593         * RichTextBox.cs: same.
594
595         * ContainerControl.cs: same.
596
597         * ListView.cs: same.
598
599         * NotifyIcon.cs: same.
600
601         * MenuStrip.cs: same.
602
603         * RadioButton.cs: same.
604
605         * CheckBox.cs: same.
606
607         * PrintPreviewDialog.cs: same.
608
609         * Form.cs: same.
610
611 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
612
613         * TreeNode.cs: Apply Alan's patch for Name property.
614
615 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
616         
617         * Form.cs: Implemented SizeGripStyle.
618         * SizeGrip.cs: Check for minimum and maximum size for the
619         control being resized and only resize if size has actually
620         changed.
621
622 2007-01-19  Chris Toshok  <toshok@ximian.com>
623
624         * DataGridColumnStyle.cs: stop setting _readonly in the
625         PropertyDescriptor setter.  fixes a unit test failure.
626
627         also, rename ParentReadOnly to TableStyleReadOnly, and have it
628         just consult our table style (if we have one).  We don't need to
629         consult the datagrid readonly attribute because that's passed in
630         as the _ro arg to Edit.  this simplifies things a little.
631         
632         * DataGrid.cs: use CurrentColumn instead of
633         current_cell.ColumnNumber just to simplify some of the code.
634
635         switch the order of some things in the CurrentCell setter to keep
636         the previous cell from getting a textbox again -
637         EnsureCellVisibility causes scrolling to happen, which calls Edit.
638         So we need to set the new cell before calling it.
639         
640         call Edit in OnEnter, as does Microsoft.
641         
642         also, make sure the current table style isn't the one we create
643         initially when checking to see if it's different than the one
644         we're setting it to in BindColumns (this fixes #80421).
645
646         * GridTableStylesCollection.cs: table styles can have "" for a
647         mapping name.  part of the fix for #80421.
648
649         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
650         Edit significantly.
651
652 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
653
654         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
655         and less GDI object leaky-er.
656
657 2007-01-18  Andreia Gaita  <avidigal@novell.com>
658
659         * LinkLabel.cs: Add opaque control style
660
661 2007-01-18  Jackson Harper  <jackson@ximian.com>
662
663         * TextControl.cs: Calculate width properly.
664         - Don't store the tag's X offset, this can be figured out very
665         easily.
666         - When getting the caret tag make sure to get the last empty tag.
667
668 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
669
670         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
671         [Fixes bug #79959]
672
673         * Control.cs: Color.Empty shouldn't count for previous transparent
674         redraw changes.
675
676 2007-01-18  Jackson Harper  <jackson@ximian.com>
677
678         * TextBox.cs:
679         * RichTextBox.cs:
680         * TextControl.cs: Starting to merge in some pieces of my older
681         undo work.  Basically just some slight cleanup of the undo API.
682
683 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
684
685         * TrackBar.cs: Fix signature of RightToLeftLayout.
686         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
687         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
688         * Application.cs: Implemented UseWaitCursor.
689
690 2007-01-18  Jackson Harper  <jackson@ximian.com>
691
692         * TextControl.cs: We can't skip tags if any part of the tag is
693         visible.
694
695 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
696
697         * ContainerControl.cs: Override OnLayout.
698
699 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
700
701         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
702
703         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
704         everything else.
705
706 2007-01-18  Chris Toshok  <toshok@ximian.com>
707
708         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
709         (leftover from the container_selected days, I'd wager).  fixes bug
710         #80546.
711
712 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
713
714         * Control.cs: Apply patch from George to fix the new testcase on
715         bug #80451.  We can't just check for Color.Transparent, we need 
716         to check if the back color's alpha channel is < 255.
717
718 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
719
720         * Form.cs: Move setting show_icon = true to before the constructor
721         so that the base constructor has that information when it calculates
722         the form's size.  Was causing forms to be (6, 6) bigger than they
723         were supposed to be.  Thanks for catching this Rolf!
724
725 2007-01-18  Jackson Harper  <jackson@ximian.com>
726
727         * TextControl.cs: When replacing a selection we need to invalidate
728         from the initial selection start, because selection start is moved
729         to the end of the replacement.
730
731 2007-01-18  Andreia Gaita  <avidigal@novell.com>
732
733         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
734
735 2007-01-18  Chris Toshok  <toshok@ximian.com>
736
737         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
738         I just added.
739
740 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
741
742         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
743         layout methods and properties from ToolBarButton must be available
744         into ToolBarButtonInfo.
745
746 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
747
748         * Control.cs: If the control has a transparent background, we
749         need to refresh it when it moves and when it's parent's background
750         image changes.  [Fixes bug #80451]
751
752 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
753
754         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
755
756 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
757
758         * XplatUIWin32.cs: Implement proper double buffering for Windows.
759         [Fixes bug #80447, and probably speeds up things as well]
760
761 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
762
763         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
764         * XplatUIWin32.cs: We need to recalculate NC size after changing 
765         window style to toolwindow (otherwise the client rectangle will be
766         3 pixels to small for some reason).
767         * MdiWindowManager.cs: Revert NC size calculations to match how
768         they are calculated only based on window styles (to match
769         Win32AdjustWindowRectEx, since otherwise when setting size or 
770         location, Control will call Win32AdjustWindowRectEx to update client 
771         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
772         calculate a different value of client size causing another paint 
773         (and flickering))
774         * InternalWindowManager.cs: When moving or resizing a window only
775         update size or location if they actually changed.
776         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
777         (seems to match Windows behaviour better). Cleaned up 
778         ManagedWindowDecorations to draw what's needed and nothing else
779         (was drawing borders and lines where they shouldn't be)
780         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
781         (style = 0xFFFF) and takes into account caption height when 
782         calculating window rectangle.   
783
784 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
785
786         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
787         can be added to toolbar multiple times, we need to maintain a list of 
788         button information for each positions.
789
790 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
791
792         * ToolBar.cs: Some small stetic changes.
793
794 2007-01-16  Jackson Harper  <jackson@ximian.com>
795
796         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
797         that allow us to have nested recalc = false blocks.
798         - Add paste support for images in the RichTextBox
799         * RichTextBox.cs: flush the text after the color is changed, so
800         the change takes effect.
801         - Use SuspendRecalc
802         - Some extra debugging info
803         * TextControl.cs: Tags no longer track their length, it is just
804         computed from the next tags length, this makes things a little
805         simpler and reduces places that we have to track length changes.
806         - Refactored the linetag class a little so we could make it
807         a base class for different kinds of tags
808         - Created a image tag, a tag that can have a single image inserted
809         into it
810         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
811         that we can call suspend multiple times.
812         - Add some debugging methods
813
814 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
815
816         * MdiClient.cs: Add ActivatePreviousChild for 
817         mdi child window navigation.
818         * Form.cs: Use MdiClient.ActivateNextChild/
819         ActivatePreviousChild instead of Form.SelectNextControl
820         to select the next/previous child since 
821         SelectNextControl doesn't do it in the same order
822         as mdi children should do it.
823
824 2007-01-16  Chris Toshok  <toshok@ximian.com>
825
826         * Control.cs: remove container_selected field.
827
828 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
829
830         * MdiClient.cs: Update main form's ActiveChild when
831         updating keyboard focus for the mdi child.
832
833 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
834
835         * Control.cs: PreferredSize fix.
836
837         * Form.cs: Add several 2.0 events, properties, and methods.
838
839 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
840
841         * Form.cs: Provide meaningful message when MdiParent is assigned a
842         Form that is not an MdiContainer.
843
844 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
845
846         * MdiClient.cs: Update main form's ActiveChild when
847         activating a mdi child.
848
849 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
850
851         * MdiWindowManager.cs: Fix NRE when merging menus and main form
852         doesn't have a menu.
853
854         * Form.cs: Request NCRecalc after creating a mdi child window.
855         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
856         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
857         
858         * MdiClient.cs: Add new method SendFocusToActiveChild that either
859         sends keyboard focus to the active child, or to the MdiClient
860         if there are no child forms.
861         
862 2007-01-15  Chris Toshok  <toshok@ximian.com>
863
864         * ListView.cs: drop the *Internal overrides, just do our work in
865         ItemControl's WndProc instead.
866
867         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
868         of the various controls, and forward the events properly (in the
869         same manner as MS) from the textbox to the UpDown.  Also the
870         ActiveControl of the UpDownBase gets set properly now.  Finally,
871         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
872
873         * NumericUpDown.cs: set Text in the ctor.
874
875         * DomainUpDown.cs: call UpdateEditText in the ctor.
876         
877         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
878         so even a Selectable = false textbox can be focused if you click
879         in it.  Go figure.
880
881         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
882         just add their handling in their respective WndProc's.  Also add
883         an explicit FocusInternal method that doesn't consult CanFocus
884         before calling Select(this).
885
886         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
887         do our work in WndProc instead.
888
889         * TabControl.cs: same.
890
891         * ComboBox.cs: same.
892
893 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
894
895         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
896         Fixes #80006.
897
898 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
899
900         * ListViewItem.cs:
901         * ThemeWin32Classic.cs: Don't draw the item text outside
902         item bounds in Details view, as well as use trimming.
903         Fixes bug #80376.
904
905 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
906
907         * Form.cs: Implement Form.ShowIcon.
908         
909         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
910         null, which when combined with the DlgModalFrame window style removes
911         the icon from the title bar.
912
913 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
914
915         * Control.cs: Call OnMouseClick after OnClick. (2.0)
916
917 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
918
919         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
920         menu when mdi child windows theres a menu, uses insert to get icon
921         at first position. Partially fix #80006.
922
923 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
924
925         * Clipboard.cs: Implement 2.0 methods.
926
927 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
928
929         * Menu.cs: Implement Insert method of MenuItemCollection class
930         to fix MenuMerge.
931
932 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
933
934         * ListView.cs: Implement 2.0 FindItemWithText method.
935
936 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
937
938         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
939         to calculate menu bar size. Fixes #80290.
940
941 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
942
943         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
944
945 2007-01-11  Chris Toshok  <toshok@ximian.com>
946
947         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
948         initial form.
949
950 2007-01-11  Chris Toshok  <toshok@ximian.com>
951
952         * LinkLabel.cs: make sure to call base.Select in our Select method
953         if it turns out we're going to be selected (i.e. if we have a link
954         that is going to receive focus).  That way our container's
955         ActiveControl is updated properly.
956
957 2007-01-11  Chris Toshok  <toshok@ximian.com>
958
959         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
960         they have 1 or more links.  this fixes the crash gert reported.
961
962 2007-01-11  Andreia Gaita  <avidigal@novell.com>
963
964         * ContainerControl.cs: Remove ContainerSelected flag, not needed
965         anymore.
966
967         * Control.cs (Controls.Add): Check if control to be added to the collection
968         is a top level control, and throw an ArgumentException if it is.
969         Remove ContainerSelectedFlag, not needed anymore.
970
971         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
972         top most control doesn't activate the form. This fixes a problem in the
973         MessageBox, where the default button wouldn't get focus because the form
974         was activated before being Loaded - when the Owner is set, SetTopMost is
975         called, and it would activate it.
976
977 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
978
979         * Button.cs: When clicked and setting the parent form's DialogResult,
980         use FindForm instead of Parent, since parent could be a container
981         control and not the Form.  Fixes bug #80495.
982
983 2007-01-10  Chris Toshok  <toshok@ximian.com>
984
985         * Form.cs: move the call to SendControlFocus into the same
986         is_loaded check.
987
988 2007-01-10  Chris Toshok  <toshok@ximian.com>
989
990         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
991         It breaks in the face of the new ActiveControl stuff, and should
992         be unnecessary.
993
994         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
995         activecontrol's focus if it's not already set, after we set
996         ActiveControl, but before we call OnActivated.  Re-fixes #79667
997         after the previous focus/active control fixes regressed it.
998
999         * Control.cs: reindent some code.
1000         
1001 2007-01-10  Chris Toshok  <toshok@ximian.com>
1002
1003         * Splitter.cs: clearing some outstanding changes from my tree.
1004         Replace all accesses (not writes) to the internal dock_style field
1005         with the Dock property.
1006
1007 2007-01-10  Chris Toshok  <toshok@ximian.com>
1008
1009         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1010         FireValidated virtual.
1011
1012         * Form.cs: override and don't chain up calls to FireEnter and
1013         FireLeave.
1014
1015 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1016
1017         * ListView.cs: Add more text padding space when using
1018         auto resize for columns (the previous value didn't work fine).
1019
1020         * ThemeWin32Classic.cs: Update text position inside columns,
1021         to match the appeareance of .Net.
1022
1023         * ColumnHeader.cs: When using auto resize, only the Width should
1024         depend on the sub items, not the Height. Also, set width after
1025         auto resizing (the value of Width should never remain as -1 or -2).
1026
1027 2007-01-10  Chris Toshok  <toshok@ximian.com>
1028
1029         * Application.cs: fix compilation errors when debug is enabled.
1030
1031 2007-01-10  Chris Toshok  <toshok@ximian.com>
1032
1033         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1034         add some nice ascii art pictures and explanation of the process).
1035         (GetMostDeeplyNestedActiveControl): new utility function we need
1036         because our ActiveControl can refer to a child container with its
1037         own ActiveControl.
1038
1039         * Form.cs (OnActivated): remove the call to SelectActiveControl
1040         from here, since you can override this method and not chain up,
1041         and winforms still sets the active control.
1042         (OnCreateControl): also remove the unnecessary SelectActiveControl
1043         call from here.
1044         (WndProc): it's actually called from the WM_ACTIVATE block, just
1045         before calling OnActivated.
1046
1047         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1048         inside the else.  the ActiveControl setter will end up setting
1049         focus on @control.  This keeps us from setting it again (and
1050         generating an extra LostFocus/GotFocus pair).
1051         (Select (bool, bool)): reindent.
1052
1053 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1054
1055         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1056         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1057         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1058         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1059         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1060         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1061         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1062         ToolStripTextBox.cs: Another wave of corcompare work.
1063
1064 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1065
1066         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1067         the Width property.
1068
1069         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1070         methods by callling Column.AutoResize method on columns.
1071
1072 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1073
1074         * Control.cs: Provide proper implementations of PreferredSize
1075         and GetPreferredSize (2.0).
1076
1077 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1078
1079         * Form.cs: Remove one character (!) to make my previous OnClosing
1080         stuff work for modal windows like MessageBox.
1081
1082 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1083
1084         * ListView.cs:
1085         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1086         ListView.Columns to get the last displayed column. Fixes #80452.
1087
1088 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1089
1090         * Label.cs, LinkLabel.cs: Source code identation fixes.
1091
1092 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1093
1094         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1095         we dont need to invalidate only borders because when we invalidate four
1096         border lines the invalidate's generates a complete redraw of button, 
1097         because it now invalidate a complete rect some other redraws operations
1098         are fixed. Fixes #80196.
1099         
1100         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1101         Remove ToolBarInvalidateEntireButton as it is not used.
1102
1103 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1104         
1105         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1106         called for 2.0 profile.
1107         * CloseReason.cs: Make class internal for 1.1.
1108
1109 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1110
1111         * ToolStripManager.cs: Implement FindToolStrip functionality.
1112         * ToolStrip.cs: Register and unregister with ToolStripManager.
1113
1114 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1115
1116         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1117         to ArrangedElementCollection.  Implemented this with as few #if's as 
1118         possible (which is still too many).
1119
1120 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1121
1122         * Control.cs: Implement SizeFromClientSize() [2.0].
1123
1124 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1125
1126         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1127         use Theme.BorderSize to calculate area instead of static value 1, 
1128         by the way use new BorderStaticSize instead     Border3DSize when 
1129         border_static is true. Fixes #79537.
1130         
1131         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1132         
1133         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1134         it is not needed.
1135
1136 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1137
1138         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1139
1140 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1141
1142         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1143         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1144         
1145         * Hwnd.cs: 
1146         - border_static field added, it will used to define when a control 
1147         theres 3D border but it must be static (thin).
1148         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1149         instead of static value 1, by the way use new BorderStaticSize instead
1150         Border3DSize when border_static is true.
1151
1152         * XplatUIX11.cs, XplatUIOSX.cs: 
1153         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1154         
1155         * Theme.cs: BorderStaticSize field added.
1156
1157 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1158
1159         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1160
1161 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1162
1163         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1164         mimic same behavior than win32 that set border only in CreateParams,
1165         it fix problems under CreateParams overrides. Fix #79442 and partial
1166         fix #79537.
1167         
1168         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1169         of thi control you must call recreate handle. 
1170         
1171         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1172         need to do anything as RecreateHangle will take care about borders.
1173
1174 2007-01-05  Mike Kestner  <mkestner@novell.com>
1175
1176         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1177         cycles between the ItemControl and parent.  Fixes #80388.
1178
1179 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1180
1181         * Control.cs: Lazy init layout engine. Do not directly use 
1182         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1183
1184 2007-01-05  Chris Toshok  <toshok@ximian.com>
1185
1186         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1187         unless our list manager has changed (i.e. unless we have reason to
1188         believe our columns have changed).  Fixes #80422.
1189         
1190         also, disable the call do BindColumns in
1191         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1192         1.1 the event isn't raised in response to a column addition on a
1193         table.)
1194
1195 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1196
1197         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1198         that inheritors can not call it if they choose.  Fixes bug #80456.
1199
1200 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1201
1202         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1203         doesn't blow up with a null exception on marshalling.
1204         
1205 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1206
1207         * Control.cs: Implement several 2.0 protected properties and methods.
1208         Ensure that all necessary events are being called when properties
1209         are set.
1210
1211 2007-01-05  Mike Kestner  <mkestner@novell.com>
1212
1213         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1214         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1215         instead of the parent control.  Fixes #80378.
1216
1217 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1218
1219         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1220           determine whether to use yard-pound or not (bug #78399).
1221
1222 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1223
1224         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1225         problems. So it is time to bring back the old popupbutton colors.
1226
1227 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1228
1229         * ColumnHeader.cs:
1230         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1231         property by using the internal information of the
1232         columns order in ListView.
1233
1234 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1235
1236         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1237         Add 2.0 Tag properties.
1238
1239         * LinkArea.cs: Add 2.0 ToString method.
1240
1241 2007-01-03  Chris Toshok  <toshok@ximian.com>
1242
1243         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1244         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1245         when we're editing, which fixes #80047.
1246
1247 2007-01-03  Chris Toshok  <toshok@ximian.com>
1248
1249         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1250         #80404.
1251
1252 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1253
1254         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1255         property and implementation.
1256
1257         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1258         for MdiWindowListItem property.
1259
1260         * ToolStripDropDown.cs: Don't consider hidden menu items while
1261         laying out the menu.
1262
1263 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1264
1265         * SendKeys.cs: window handle is not needed in win32, so just
1266         get the active window for X after parsing keys and don't use
1267         it when building the message; it is passed by parameter to the 
1268         Xplat method and used there to build the message instead. Also,
1269         wait for events to be processed on SendWait, as opposed to Send,
1270         which doesn't wait :) Playing with threads and Send() completely 
1271         hangs on ms.net, only SendWait() works.
1272         
1273         XplatUIX11.cs
1274         X11Display.cs: Check for valid window handle.
1275
1276 2007-01-03  Jackson Harper  <jackson@ximian.com>
1277
1278         * TextControl.cs: Need to prevent wrap calculations when replacing
1279         text (this was there before i removed it accidently).
1280         - Don't update the cursor during the positioning, just set it to
1281         selection_start at the end of the operaion.
1282
1283 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1284
1285         * Control.cs:
1286         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1287         
1288 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1289
1290         * MonthCalendar.cs: Added Click and DoubleClick events again,
1291         but this time they only hide Control's Click and DoubleClick.
1292         
1293 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1294
1295         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1296         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1297
1298 2007-01-02  Jackson Harper  <jackson@ximian.com>
1299
1300         * TextBoxBase.cs: We move the caret with the split now, so we
1301         don't need to explicitly move the caret after splitting.  This
1302         fixes the caret bumping down an extra line on Enter.
1303
1304 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1305
1306         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1307         2.72). 
1308
1309         * ScrollableControl.cs: Add Scroll event.
1310
1311 2007-01-02  Mike Kestner  <mkestner@novell.com>
1312
1313         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1314         to fix all hdr height padding codepaths.  Fixes #80207.
1315
1316 2007-01-02  Chris Toshok  <toshok@ximian.com>
1317
1318         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1319         setting it to the Control defaults anyway, and it being after the
1320         Dock set was screwing up layout.
1321         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1322         no need to call UpdateStatusBar here, as it'll be re-layed out if
1323         it needs to be.
1324
1325 2007-01-02  Mike Kestner  <mkestner@novell.com>
1326
1327         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1328         to header height for width == -1. Fixes the rest of #80207.
1329
1330 2007-01-02  Mike Kestner  <mkestner@novell.com>
1331
1332         * ListView.cs: rework the mouse event forwarding everaldo added
1333         to translate the coordinates to the parent control not
1334         raise the parent events until after we've done our work. Hover
1335         needs more work, in the case where HoverSelection is on, because
1336         the item control receives more than one MouseHover per Enter
1337         event, so we need to ensure only the "first" hover gets forwarded.
1338         Opening a minor bug for that.
1339
1340 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1341
1342         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1343         * ListControl.cs: Implemented AllowSelection property. Removed extra
1344         tabs.
1345         * ListBox.cs: Implemented AllowSelection property.
1346
1347 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1348
1349         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1350         SelectedItem, it prevent for errors when you must disable item
1351         before perform click. Fixes #80409.
1352
1353 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1354
1355         * MenuAPI.cs: Prevent second level and beyond submenus to close
1356         until first level when move out side of popup.
1357         
1358 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1359
1360         * MenuAPI.cs:
1361         - Down submenu positin in three pixels.
1362         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1363
1364 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1365
1366         * ThemeWin32Classic.cs:
1367         - Fix popup menu size adding one pixel on the top.
1368         - Down menu item border from two to one to mimic Win32.
1369         - Some source identation fixes. 
1370
1371 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1372
1373         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1374         position of menu arrows, it fix wrong arrow size.
1375
1376 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1377
1378         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1379         instead of line, it simplify draw operation and fix it using 3D
1380         borders to mimic Win32.
1381
1382 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1383
1384         * StatusStrip.cs: Add implementation of the sizing grip.
1385
1386         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1387         StatusStrip rendering.
1388
1389 2006-12-31  Chris Toshok  <toshok@ximian.com>
1390
1391         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1392         override the layout style (anchor/dock) of the control.  assign to
1393         Dock instead.  Fixes bug #80416.
1394
1395         * ToolStrip.cs: same.
1396
1397 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1398
1399         * ContainerControl.cs: Use ContainerSelected flag to check if 
1400         a Container is directly selected, or if Select is called on a 
1401         non-container. If a container is directly selected, focus events 
1402         should not be raised.
1403         Apply #80411 patch to throw exception on set_ActiveControl if 
1404         control is the same as the current one.
1405         
1406         * Control.cs: Use ContainerSelected flag (see above).
1407         Add invalidation check to raise event but not invalidate if 
1408         dimensions are 0.       
1409         Apply #80411 patch.
1410         
1411
1412 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1413
1414         * MenuAPI.cs: After click, dont close popup menu when menu is
1415         ContextMenu. Fixes #80399.
1416
1417 2006-12-30  Chris Toshok  <toshok@ximian.com>
1418
1419         * ContainerControl.cs: make sure we throw the exception if the
1420         container control doesn't contain the control we're setting
1421         ActiveControl to.
1422
1423 2006-12-30  Chris Toshok  <toshok@ximian.com>
1424
1425         * Control.cs (SetTopLevel): fix the exception raised by
1426         SetTopLevel for child controls.
1427         (set_Anchor): call UpdateDistances when setting the anchor type.
1428         This fixes bug #80336.
1429
1430 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1431
1432         * Theme.cs: For now, revert back to 8pt font.
1433
1434 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1435
1436         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1437         Fixes #80395.
1438
1439 2006-12-29  Chris Toshok  <toshok@ximian.com>
1440
1441         * Control.cs: reorder the code in OnResize to give the same event
1442         ordering as MS.
1443
1444 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1445
1446         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1447         TileHorizontally and TileVertically.
1448         
1449 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1450
1451         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1452         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1453         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1454         Corrected copyright and email adress.
1455
1456 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1457
1458         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1459         of Exception in FullPath property if no TreeView is associated with
1460         the TreeNode.
1461
1462 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1463
1464         * Theme.cs: Marked default_font as private, and initialize it in ctor
1465         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1466         on 2.0 profile.
1467         * ThemeGtk.cs: Removed default_font intialization.
1468         * ThemeWin32Classic.cs: Removed default_font initialization.
1469
1470 2006-12-28  Chris Toshok  <toshok@ximian.com>
1471
1472         * Control.cs: fix a couple of place where we were creating handles
1473         more aggressively than we should be.  Fixes ControlRefresh unit
1474         tests.
1475
1476 2006-12-28  Chris Toshok  <toshok@ximian.com>
1477
1478         * Control.cs: contrary to what the comment said, Control.Dock does
1479         not supercede Control.Anchor - the last one you assign to decides
1480         the layout behavior.  so we need to keep track of which was the
1481         last set.  Also, fix some of the affected property arguments in
1482         PerformLayout calls, and remove an redundant parent.PerformLayout
1483         call in OnResized.
1484
1485         Add a VisibleInternal property, which returns is_visible.  We
1486         can/should get rid of all the usage of this field elsewhere.
1487
1488 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1489         
1490         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1491         control style, not DoubleBuffer. Added UseDoubleBuffering property
1492         that indicates whether doublebuffering is enabled and supported.
1493         (comment from and code based on Gert Driesen's patch in #80324).
1494         Fixes #80324.
1495
1496 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1497         
1498         * Control.cs: Fixed a NRE.
1499
1500 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1501
1502         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1503         for 2.0.
1504
1505 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1506
1507         * Control.cs: Rewrote double buffering, now a seperate
1508         class handles all the buffering, no Graphics is disposed of
1509         until the painting is finished (earlier implementation 
1510         would crash if the control was resized in the OnPaint, 
1511         since it would cause the double buffer to be recreated
1512         and the old one disposed), a separate Graphics is 
1513         created for every paint (MS behaviour and anyways the state
1514         of the Graphics would have to be saved and restored otherwise)
1515         
1516         * XplatUIDriver.cs: 
1517         * XplatUIX11.cs:
1518         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1519         so that we can get the graphics for the back buffer without
1520         having to create a new one and remove the offscreen_dc parameter
1521         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1522         
1523 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1524
1525         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1526         Also make virtual all the key-related methods.
1527
1528         * ListViewItem.cs: Make virtual the key related methods for
1529         ListViewSubItemCollection.
1530
1531 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1532
1533         * ListView.cs:
1534         * ListViewItem.cs:
1535         * ThemeWin32Classic.cs:
1536         * Theme.cs: Initial support for Tile view in ListView,
1537         as well as the implementation of the required bits for it (Item
1538         and Subitem).
1539
1540 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1541
1542         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1543         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1544         Provide useful exception messages.
1545
1546 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1547
1548         * TrackBar.cs: Remove a warning.
1549         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1550         when used by DateTimePicker, fixes #80287. This also requires that 
1551         MonthCalendar implements it's own drawing for the yearly updown control,
1552         otherwise the Capture tracking would be too complicated. Removed the Click 
1553         and DoubleClick events (according to comments they were hiding the base class
1554         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1555         raise these events, not that they cannot be raised. It is possible to raise 
1556         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1557         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1558         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1559         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1560         event, no longer needed.
1561         
1562 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1563
1564         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1565         true if new value differs from current value.
1566
1567 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1568
1569         * Control.cs: ControlCollection.Count must be public. Fixed build of
1570         unit tests.
1571
1572 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1573
1574         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1575
1576 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1577
1578         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1579
1580 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1581
1582         * Control.cs: Invalidates control including when Width and Height is 
1583         equal zero or is not visible, only Paint event must be care about 
1584         this. Fixes #79913.
1585
1586 2006-12-26  Chris Toshok  <toshok@ximian.com>
1587
1588         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1589         more corcompare work.
1590
1591         * DataGridView.cs: fix compiler warning.
1592
1593         * ColumnHeader.cs: some corcompare work, and also take the
1594         opportunity to make the internal fields private.
1595
1596         * ListView.cs: fix the fallout from the above field change.
1597
1598 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1599
1600         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1601         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1602         ToolStripTextBox.cs: Fixes to events and corcompare.
1603
1604 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1605
1606         * ListView.cs: Call owner.OnMousexx event to propagate events from
1607         item to ListView. Fixes #80367.
1608
1609 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1610
1611         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1612         if value is less than one. ItemHeight should not be set to a value
1613         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1614         Removed extra tabs.
1615
1616 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1617
1618         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1619         * ToolStripStatusLabel.cs: Add Spring for Moma.
1620
1621 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1622
1623         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1624         Fixed code formatting. Removed debug code.
1625         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1626
1627 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1628
1629         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1630         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1631         ArgumentOutOfRangeException if ColumnCount is negative. In 
1632         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1633         less than 4 or higher than 32768.
1634         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1635         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1636         Fixed IsFormatProviderDefault to return true if FormatProvider has
1637         not been explicitly set.
1638
1639 2006-12-25  Chris Toshok  <toshok@ximian.com>
1640
1641         * Application.cs: add a couple of 2.0 events.
1642
1643 2006-12-25  Chris Toshok  <toshok@ximian.com>
1644
1645         * Control.cs: fix compiler warning.
1646
1647         * AxHost.cs: corcompare fixes.
1648
1649         * ApplicationContext.cs: corcompare fixes.
1650
1651 2006-12-25  Chris Toshok  <toshok@ximian.com>
1652
1653         * Control.cs: only update dist_right/dist_bottom if the
1654         width/height is > 0.  this fixes anchored controls being resized
1655         smaller until they disappear and then resized larger again.
1656
1657 2006-12-25  Chris Toshok  <toshok@ximian.com>
1658
1659         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1660         since they're nothing more than X/Left and Y/Top, respectively.
1661
1662         Also, move back to a per-control Bitmap/Graphics for
1663         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1664         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1665         Height.
1666
1667 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1668
1669         * MessageBox.cs: Implemented overload that takes a new "bool
1670         displayHelpButton" by adding a new internal field "show_help".
1671         When clicked this will raise the HelpRequested on the owner or the
1672         main form. 
1673
1674         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1675         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1676
1677         * ListView.cs: Add support ColumnWidthChanged and
1678         ColumnWidthChanging. 
1679
1680         Add support for ColumnReordered event.
1681         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1682         reorder.
1683
1684         Very nice codebase!
1685
1686         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1687
1688         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1689
1690 2006-12-24  Chris Toshok  <toshok@ximian.com>
1691
1692         * GridTablesFactory.cs: 2.0 corcompare work.
1693
1694         * ToolStripContainer.cs: add "override" to
1695         ContextMenuStripChanged, and remove the local event object.
1696
1697         * ToolStripDropDown.cs: same with a couple properties.
1698
1699         * ToolStripPanel.cs: same with AutoSizeChanged event.
1700
1701         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1702
1703         * Form.cs: add the remaining 2.0 events, and do some corcompare
1704         attribute work.
1705
1706         * DateTimePicker.cs: add "new" to padding.
1707
1708         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1709
1710         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1711
1712         * DataGridView.cs: PaddingChanged is overridden.
1713
1714 2006-12-24  Chris Toshok  <toshok@ximian.com>
1715
1716         * Control.cs: corecompare work here too.
1717
1718         * DataGridViewElement.cs, DataGridView.cs,
1719         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1720         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1721         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1722         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1723         work.
1724
1725 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1726
1727         * Control.cs: Switched the error message on the console for a
1728         todo.  A review of the code will have to cope with this anyways
1729         (since its a large feature, it is in our radar) and it was
1730         producing too much output when running PDN.
1731
1732         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1733         changes.  Applications depend on this (PDN 2.72)
1734
1735 2006-12-23  Chris Toshok  <toshok@ximian.com>
1736
1737         * TableLayoutSettings.cs: finish up the corcompare work for this
1738         class.
1739
1740 2006-12-23  Chris Toshok  <toshok@ximian.com>
1741
1742         * Control.cs: make SetImplicitBounds internal, do some futzing
1743         with LayoutEngine so that it's available in 1.1, and remove the
1744         entire duplicated code mess from PerformLayout.  Use
1745         System.Windows.Forms.Layout.DefaultLayout instead.
1746
1747         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1748
1749 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1750
1751         * Form.cs: Add MainMenuStrip property.
1752
1753 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1754
1755         * Control.cs: Add ContextMenuStrip property and implementation.
1756         Fix ContextMenu implementation to show menu centered on control when
1757         activated using the keyboard instead of showing at screen (0,0).
1758
1759         * ToolStripDropDown.cs: Fix needed overload of Show ().
1760
1761 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1762
1763         * Menu.cs: Name property added for 2.0 profile.
1764         
1765 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1766
1767         * Menu.cs: Update information about FindMenuItem, method to be
1768         implemented soon.
1769
1770 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1771
1772         * MenuAPI.cs: When deselect items deselect also selected subitems.
1773         
1774 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1775
1776         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1777         FindSubItemByCoord to found itens that is not active, also an
1778         cheking added to FindSubItemByCoord to search for items only 
1779         in visible popup windows. Fixes #80274.
1780
1781 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1782
1783         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1784         internal property, it be care about change ExStyle. 
1785
1786 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1787
1788         * ContainerControl.cs: set activeControl for parent forms up the 
1789         tree when the new activecontrol is a container.
1790         When validating the active control, if it is a container, also
1791         raise up the validation for it's active control. Fixes #80280
1792         
1793         * Control.cs: Add internal property flag and check to prevent
1794         Focus events from getting raised when Select() is called for
1795         a ContainerControl. There are still too many focus events being
1796         raised at the moment though.
1797         Cleaned up the code a bit.
1798
1799 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1800
1801         * Control.cs: Added all missing 2.0 events.and
1802         fixed a couple of corcompare issues.
1803         * TrackBar.cs: Implemented missing 2.0 bits.
1804         * MonthCalendar.cs, 
1805         * DateTimePicker.cs, 
1806         * MdiClient.cs: Fixed some corcompare issues.
1807
1808 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1809
1810         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1811         SplitterPanel.cs: corecompare work.
1812
1813 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1814
1815         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1816         Clean up warnings for BackgroundImageChanged and PaddingChanged
1817         events now that they are implemented in Control.cs.
1818
1819 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1820
1821         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1822         
1823         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1824         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1825         of TableLayoutPanel and supporting cast.
1826
1827 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1828
1829         * XplatUIWin32.cs: 
1830         - GrabWindow now confines the mouse pointer to the confine window.
1831         - Added Win32ClipCursor and Win32GetClipCursor.
1832
1833         * Control.cs: 
1834         - Added CaptureWithConfine to be able to capture and confine 
1835         mouse pointer.
1836         
1837         * InternalWindowManager.cs: 
1838         - Call CaptureWithConfine instead of Capture if we're an
1839         MdiChild (fixes #79982).
1840
1841 2006-12-21  Chris Toshok  <toshok@ximian.com>
1842
1843         * DataGrid.cs: guard against the initial state of selection, where
1844         selection_start == -1.  make sure we only select from index >= 0.
1845         Fixes bug #80291.
1846
1847 2006-12-21  Chris Toshok  <toshok@ximian.com>
1848
1849         * Control.cs: we don't need to be so draconian with
1850         UpdateDistances, and we thusly don't need to call it before
1851         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1852
1853 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1854
1855         * ComboBox.cs,
1856         TextBox.cs: Implemented AutoComplete properties.
1857
1858 2006-12-20  Chris Toshok  <toshok@ximian.com>
1859
1860         * DataGridView*.cs: some corecompare work.
1861
1862 2006-12-20  Jackson Harper  <jackson@ximian.com>
1863
1864         * XplatUIX11.cs: We need to hide the caret when deleting it,
1865         otherwise you get carets left lying around everywhere.
1866         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1867         prevents getting some weird half drawn caret tracers when
1868         scrolling.
1869         * TextControl.cs: Attempt to reduce the number of times we need to
1870         recreate the caret.
1871
1872 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1873
1874         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1875
1876 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1877
1878         * DateTimePicker.cs:
1879         - Implemented missing 2.0 bits.
1880         - Changed some default values to match MS.
1881         
1882 2006-12-20  Jackson Harper  <jackson@ximian.com>
1883
1884         * TextBoxBase.cs: When changing the font across the document we
1885         can't recalculate after changing each line, since that will cahnge
1886         the line count.
1887         - PreferredHeight is a little different than i thought.
1888         - When backspacing, move the caret before we do the actual char
1889         delete, because when that delete crosses a wrap boundary the
1890         positional information will change.
1891
1892 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1893
1894         * Control.cs: Added some missing 2.0 bits: 
1895         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1896         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1897         add IBindableComponent and IDropTarget implementation.
1898         
1899         * MonthCalendar.cs: 
1900         - Added all missing 2.0 features:
1901         BackgroundImageLayout, RightToLeftLayout, 
1902         OnHandleDestroyed, RightToLeftLayoutChanged, 
1903         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1904         PaddingChanged.
1905         - Rewrote all the BoldDate code, it was completely broken.
1906         - Fixed all the tests (the tests can now be re-enabled, the
1907         problems were not with the tests, but with the control, it was
1908         mostly broken).
1909         
1910         * DateTimePicker.cs: Changed the location where the 
1911         MonthCalendar is shown.
1912         
1913 2006-12-19  Chris Toshok  <toshok@ximian.com>
1914
1915         * DataGridView.cs: add IDropTarget implementation.
1916
1917         * ToolStripPanel.cs: add IDropTarget implementation.
1918
1919 2006-12-19  Jackson Harper  <jackson@ximian.com>
1920
1921         * TextControl.cs: soft now means something different than what it
1922         used to mean, we want to move the caret regardless of whether or
1923         not this break was soft (would we really have wanted the caret
1924         to not move with the break in the old context?)
1925         * TreeView.cs: Make sure we factor in the vert scrollbar when
1926         calculating the horizontal scrollbar's maximum.
1927
1928 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1929
1930         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
1931         check for keywords in alternate casing, close bug #80049.
1932
1933 2006-12-19  Chris Toshok  <toshok@ximian.com>
1934
1935         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
1936         methods (which all do nothing).
1937
1938         * IDropTarget.cs: add the 4 missing methods.
1939
1940 2006-12-19  Chris Toshok  <toshok@ximian.com>
1941
1942         * TableLayoutRowStyleCollection.cs: corcompare work.
1943         
1944         * TableLayoutSettings.cs: same.
1945
1946         * TableLayoutStyle.cs: same.
1947
1948         * TableLayoutColumnStyleCollection.cs: same.
1949
1950 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
1951
1952         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
1953         TableLayoutPanel I've had in my local tree for way too long.
1954
1955 2006-12-19  Miguel de Icaza  <miguel@novell.com>
1956
1957         * TableLayoutSettings.cs: Finish the public API (still needs all
1958         the logic to update on changes). 
1959
1960         * TableLayoutPanelCellPosition.cs: new file.
1961         
1962         * TableLayoutRowStyleCollection.cs,
1963         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
1964         TableLayoutSettings.cs: Track the final 2.0 table api.
1965
1966 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1967
1968         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
1969         and Image List 2.0 members for ColummnHeader.
1970         * ListView.cs: Add key-related 2.0 methods for
1971         ColumnHeaderCollection.
1972
1973 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1974
1975         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
1976         ArgumentNullException if items argument is null. Ignore null item in
1977         arrays. Removed extra tabs.
1978
1979 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1980
1981         * MonthCalendar.cs: Fixed InvalidCastException.
1982
1983 2006-12-19  Jackson Harper  <jackson@ximian.com>
1984
1985         * TextControl.cs: Don't increment the position here.
1986         - When calculating char positions only add in the line break size
1987         for hard line breaks.
1988
1989 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1990
1991         * SendKeys.cs: Changed some things to match ms.net behaviour
1992         when parsing shifted capital letters.
1993         
1994         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
1995         Add window handle as parameter to SendInput. X11 needs the 
1996         window handle, and the handle being passed      to it in the keys 
1997         queue is the active control handle (which windows needs), not 
1998         the window handle.
1999         
2000         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2001         to support SendKeys on X.       
2002         
2003         * X11Keyboard: Implement helper method to lookup a linux keycode
2004         given the virtual keycode. Added table of keycode-2-virtualkey
2005         values to support this.
2006
2007 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2008
2009         * ListView.cs: Add support for SelectedIndexCollection
2010         and SelectedItemCollection 2.0 methods. Implement support
2011         for ImageKey too.
2012         * ListViewItem.cs: Add support for ListViewSubItemCollection
2013         2.0 methods. Also, fix an incorrect behavior of AddRange method
2014         (it shouldn't call Clear).
2015         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2016
2017 2006-12-19  Jackson Harper  <jackson@ximian.com>
2018
2019         * RichTextBox.cs: 
2020         * TextBoxBase.cs: New args for FormatText
2021         * TextControl.cs: Rewrote the main drawing method, this version
2022         feels a little easier to understand and debug to me.  Hopefully it
2023         does to others also
2024         - Fix FormatText to OR in the new formating values.  Added
2025         FormatSpecified param, basically this works in the same way as
2026         BoundsSpecified in Control.
2027         - Set the caret properties when the caret is positioned.
2028         - When wrapping text make sure that we calculate the width of the
2029         last character
2030         - when calculating alignments we might have wrapped down to the
2031         next line, so don't search for an individual tag, search for the
2032         end of the line
2033         - We need to invalidate the selection area when we replace the
2034         selection.
2035         
2036 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2037
2038         * Application.cs: add Restart () 2.0 support
2039
2040 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2041
2042         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2043         property. Fixes #80268.
2044         
2045 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2046
2047         * MenuAPI.cs: Dont trigger select event when closes top menu
2048         item. Fixes #80270.
2049
2050 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2051
2052         * MenuAPI.cs: When you click on menuitem only trigger onselect
2053         event for top menu itens. Fixes #80271.
2054         
2055 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2056
2057         * MdiWindowManager.cs: Make IconicBounds depend on
2058         the bottom of MdiClient, not the top (fixes #80267)
2059         
2060 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2061
2062         * MdiClient.cs: Added missing 2.0 attribute
2063
2064 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2065
2066         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2067         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2068
2069 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2070
2071         * MenuAPI.cs: Fix click when menuitem is not popup,
2072         this regression was caused by last commit (#80272).
2073
2074 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2075
2076         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2077         fire click event or close menu. Fixes #80272.
2078
2079 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2080
2081         * ListViewHitTestInfo.cs: add
2082
2083 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2084
2085         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2086         * FlatButtonAppearance.cs: add
2087         * DockingAttribute.cs: add
2088
2089 2006-12-17  Chris Toshok  <toshok@ximian.com>
2090
2091         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2092         and rebind our columns when it does - this way, if you make
2093         changes to the DataTable (or set the Table attribute on a DataView
2094         after setting it as the DataGrid's DataSource, the changes are
2095         made visible.)  Fixes bug #80107.
2096
2097 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2098
2099         * ListViewGroup.cs: add internal Location property for layouting.
2100         * Theme.cs: add abstract ListViewGroupHeight function.
2101         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2102
2103 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2104
2105         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2106         Added reset of selected index to 0 when adding first tab page.
2107         Fixes #80264
2108         
2109         * NumericUpDown.cs: Fix NET_2_0 check
2110
2111 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2112
2113         * ListViewGroup.cs: fixed DefaultValueAttribute value
2114
2115 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2116
2117         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2118
2119 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2120
2121         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2122         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2123         ScrollableControl.cs: Add a handful of methods that are
2124         overwritten in 2.0 
2125
2126 2006-12-15  Chris Toshok  <toshok@ximian.com>
2127
2128         * XplatUIWin32.cs: initial implementation of the Reversible
2129         drawing functions.  there are some problems.  DrawReversibleFrame
2130         doesn't seem to work at all for Dashed FrameStyle, and in the
2131         Thick case there are drawing errors at the corners (we probably
2132         need to bind Rectangle instead of doing moveto/lineto's.)
2133
2134 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2135         
2136         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2137         to send blocks of key messages. Send accumulates keys to send with Flush, 
2138         while SendWait sends all keys immediately.
2139                 
2140         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2141         XplatUIX11.cs,  XplatUIX11-new.cs:
2142         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2143         to Win32 SendInput.
2144         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2145         
2146         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2147         testing for ms.net on this class is very tricky, as the tests run too fast 
2148         to allow the hook to release, essentially freezing the keyboard and the 
2149         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2150         category :p
2151
2152 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2153
2154         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2155                         added missing attributes.
2156  
2157 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2158
2159         * ListViewGroup.cs: Added missing attributes.
2160         * ListViewGroupCollection.cs: Added missing attributes.
2161
2162 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2163
2164         * ListViewItem.cs: fixed ListViewSubItem text property.
2165
2166 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2167         
2168         * Control.cs: Added missing 2.0 attributes
2169         
2170 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2171         
2172         * MdiClient.cs: Added missing 2.0 attribute.
2173         * MonthCalendar.cs: Added some missing 2.0 attributes 
2174         and properties.
2175         
2176 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2177
2178         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2179
2180 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2181
2182         * MainMenu.cs: Add the new 2.0 constructor to help out people
2183         using the MainMenu in VS2005.
2184
2185 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2186         
2187         * MdiChildContext.cs: Removed it, no longer used.
2188         * MdiClient.cs: Added missing 2.0 attributes.
2189         
2190 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2191         
2192         * InternalWindowManager.cs: Fix a NullRef with previous 
2193         changes for toolwindows.
2194         
2195 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2196
2197         * Control.cs: 
2198         - Added AfterTopMostControl to allow for certain controls 
2199         to always stay on top when normal controls are brought to 
2200         front.
2201         
2202         * XplatUIWin32.cs: 
2203         - (DrawInversibleRectangle): Get window rectangle from Win32 
2204         in stead of from control, since Win32 doesn't calculate
2205         screen coords correctly from control's Location if it 
2206         have docked siblings.
2207         
2208         * MdiWindowManager.cs:
2209         - Correct the control menu popup location when clicked on
2210         the maximized form icon. (fixes #80223.1)
2211         - Don't show moving rectangle if mouse hasn't moved from
2212         the original clicked point.
2213         - Removed FormGotFocus handler (not used).
2214         - Calculate the control buttons location from the main
2215         window's size and not client size (fixes #79770).
2216         - Form is now closed when the form icon is double-clicked
2217         (fixes #79775). 
2218         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2219         
2220         * InternalWindowManager.cs:
2221         - Moved some MDI-only methods to MdiWindowManager.
2222         - Removed unused properties and methods.
2223         - Unified method naming for methods handling wm messages.
2224         - Moved all message handling to seperate methods for
2225         each message.
2226         
2227         * ThemeWin32Classic.cs:
2228         - DrawManagedWindowDecorations now draws the title bar 
2229         with a gradient brush.
2230         - Add a CPDrawButtonInternal that allows us to specify
2231         light, normal and dark colors for the buttons (control 
2232         buttons for MDI children were drawn with the same light
2233         color as the background, therefore loosing the 3D effect).
2234         
2235         * SizeGrip.cs:
2236         - Add a CapturedControl property that is used to 
2237         determine the control to resize (defaults to parent). 
2238         Needed for MdiClient, since its SizeGrip's parent is
2239         MdiClient, but the control to resize is the main form.
2240         
2241         * MdiClient.cs:
2242         - Set SizeGrip's CapturedControl to the main form in order
2243         to resize the main form and not the MdiClient.
2244         - Override AfterTopMostControl to leave the scrollbars 
2245         always on top.
2246
2247 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2248
2249         * ListView.cs: fixed ListViewItemCollection AddRange and
2250                         implemented ListViewItemCollection AddRange 2.0 support.
2251
2252 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2253
2254         * ListViewGroup.cs: Add.
2255         * ListViewGroupCollection.cs: Add
2256         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2257         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2258                                 stub for ImageKey 2.0 support.
2259
2260 2006-12-14  Mike Kestner  <mkestner@novell.com>
2261
2262         * ListView.cs: add text padding to the autocalculation for columns
2263         of width -2.  Fixes #80207.
2264  
2265 2006-12-14  Mike Kestner  <mkestner@novell.com>
2266
2267         * ListView.cs: add some index guarding for partial row navigation 
2268         logic.  Fixes #80250.
2269
2270 2006-12-14  Mike Kestner  <mkestner@novell.com>
2271
2272         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2273         are added or inserted to the collection.  Fixes #81099.
2274
2275 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2276
2277         * MenuAPI.cs: Closes menu when right click out side of popup
2278         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2279
2280 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2281
2282         * ListViewItem.cs: Fix dumb error.
2283
2284         * ListView.cs: Add Find and ContainsKey methods in 
2285         ListViewItemCollection, and also return true for IsReadOnly
2286         and IsFixedSize (changes for 2.0). 
2287
2288 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2289
2290         * Control.cs: Allow Region to be set to null.
2291
2292 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2293
2294         * MdiWindowManager.cs: Remove unused (commented out) code.
2295         * Form.cs: When the MdiChild is maximized, the form needs 
2296         WM_NCMOUSELEAVE, so request it.
2297         * InternalWindowManager.cs: 
2298         - Added tooltips to control buttons.
2299         - Removed duplicated control button handling code.
2300         - Removed unused (commented out) code.
2301         
2302 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2303
2304         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2305         was used because we must set cursor without trigger ChangeCursor event
2306         and without change Cursor control property. Fixes #79963.
2307
2308 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2309         
2310         * Control.cs: Check if Region setter value is null, and ignore
2311
2312 2006-12-12  Jackson Harper  <jackson@ximian.com>
2313
2314         * TextControl.cs: We were almost always drawing one more line then
2315         needed, since the GetLineByPixel will return the last line found
2316         at that pixel. In most cases though, we were invalidating up to
2317         the junction between two lines.
2318         - Improve debug code.
2319
2320 2006-12-12  Chris Toshok  <toshok@ximian.com>
2321
2322         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2323         and FillReversibleRectangle.
2324
2325         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2326         and FillReversibleRectangle.
2327
2328         * XplatUIWin32.cs: add stubs which do nothing for
2329         DrawReversibleFrame, DrawReversibleLine, and
2330         FillReversibleRectangle.
2331
2332         * XplatUIOSX.cs: add stubs which raise NIE for
2333         DrawReversibleFrame, DrawReversibleLine, and
2334         FillReversibleRectangle.
2335
2336         * XplatUIX11.cs: add working implementation for
2337         DrawReversibleFrame, DrawReversibleLine, and
2338         FillReversibleRectangle.
2339         
2340         * ControlPaint.cs: implement DrawReversibleFrame,
2341         DrawReversibleLine, and FillReversibleRectangle, by calling into
2342         the appropriate XplatUI method.
2343
2344 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2345
2346         * Form.cs: Make MdiClient have the focus even if it's
2347         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2348         messages. Fixes #79907.
2349         
2350 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2351
2352         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2353         queried after the window is created.
2354         
2355         * XplatUIX11.cs: Added SendParentNotify to implement 
2356         WM_PARENTNOTIFY logic. Fixes #79965.
2357         
2358         * Control.cs: Added MakeParam.
2359         
2360 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2361
2362         * MdiClient.cs: Resume Layout before setting window
2363         states (fixes #80201).
2364
2365 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2366
2367         * MenuAPI.cs: Deselect a menu item after performing
2368         the click (fixes #80197).
2369
2370 2006-12-11  Jackson Harper  <jackson@ximian.com>
2371
2372         * TextBoxBase.cs: We need to cap this value, since Maximum -
2373         ViewPortHeight can be less than zero.
2374         - Only do selection with the left mouse button.
2375         * TextBox.cs: Don't tell the world that we have a context menu.
2376         * Control.cs: New method so that we can control whether or not the
2377         context menu is visible outside MWF.
2378
2379 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2380
2381         * ToolBarButton.cs: Fix text positon. 
2382
2383 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2384
2385         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2386
2387         * Control.cs (DoubleBuffered): Add implementation.
2388
2389         * Application.cs (OpenForms): Add.
2390
2391 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2392
2393         * Form.cs: Use opacity instead of Opactiy to determine if we need
2394         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2395
2396 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2397
2398         * Control.cs: Fix NRE if Control.Site was set to null.
2399
2400 2006-12-11  Chris Toshok  <toshok@ximian.com>
2401
2402         * Control.cs: ControlCollection.Remove should return if the arg is
2403         null, and ControlCollection.SetChildIndex should raise a ANE.
2404
2405 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2406
2407         * Control.cs: Verify value set for Dock property. Code formatting
2408         updates.
2409
2410 2006-12-11  Jackson Harper  <jackson@ximian.com>
2411
2412         * TextControl.cs: Draw the caret and the selection when a flag is
2413         set on the owner.
2414         * TextBoxBase.cs: We want to draw the caret and the selection for
2415         TextBox but not for TextBoxBase.
2416         - If the window is resized and scrolling is no longer needed (the
2417         whole doc is visible) set the scroll position to zero.
2418         - The default SelectWord (the one TextBox uses) should move the
2419         caret to the end of the word.
2420         - SelectAll moves the caret to the end of the selection.
2421         * TextBox.cs: We don't selectall on focus, we just do it when the
2422         control is created.
2423         
2424 2006-12-11  Mike Kestner  <mkestner@novell.com>
2425
2426         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2427
2428 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2429
2430         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2431         2.0 support.
2432         * ListViewItem.cs: Add Name 2.0 property.
2433
2434 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2435
2436         * TabControl.cs: Set visibility on selected or default tab 
2437         when tabcontrol handle is created, so that it's contents
2438         actually show up (duh). Fixes #80193
2439         Don't redraw the control if there is no handle created, as
2440         the selected index might be completely invalid. Added some tests
2441         to check for this.
2442
2443 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2444
2445         * ToolBar.cs: Uses maximun width and height of all buttons as 
2446         button rectangle when ButtonSize specified, it looks strange but
2447         is what happens in Win32. Fixes #80189.
2448
2449 2006-12-11  Jackson Harper  <jackson@ximian.com>
2450
2451         * TextControl.cs: Need to track undo levels ourself, since
2452         compound actions will mess them up.
2453
2454 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2455
2456         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2457         SelectedIndex value is changed (even if it's not valid).
2458         Reset SelectedIndex to 0 when the handle is created and if
2459         the current index is invalid.
2460         Fixes SelectdeIndex unit tests and #80128
2461
2462 2006-12-08  Chris Toshok  <toshok@ximian.com>
2463
2464         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2465         calls EndEdit, it needs to be called before we set current_cell to
2466         its new value.  Otherwise, we end up committing the value in the
2467         textbox to the new cell as well.  Fixes bug #80160.
2468
2469 2006-12-08  Chris Toshok  <toshok@ximian.com>
2470
2471         * Form.cs (set_CancelButton): if the button's DialogResult is
2472         None, set it to Cancel.  Fixes bug 80180.
2473
2474 2006-12-08  Jackson Harper  <jackson@ximian.com>
2475
2476         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2477         to watch ourselves when setting the canvas size and setting the
2478         scrollbar values.
2479
2480 2006-12-08  Chris Toshok  <toshok@ximian.com>
2481
2482         * DataGrid.cs: comment out the two MakeTransparent calls for the
2483         time being so people using trunk (and not 1.2.2) on windows can
2484         actually use the datagrid.  This deals with bug #80151.
2485
2486 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2487
2488         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2489         Graphics.DrawImage (image, int, int, int, int) overload instead
2490         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2491         the dpi difference and was blurring images it drew.
2492         [Fixes bug #79960]
2493
2494 2006-12-08  Chris Toshok  <toshok@ximian.com>
2495
2496         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2497         rowcnt is 0 (such as with an empty datasource), and make sure we
2498         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2499         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2500
2501 2006-12-08  Chris Toshok  <toshok@ximian.com>
2502
2503         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2504         grid.
2505
2506 2006-12-08  Chris Toshok  <toshok@ximian.com>
2507
2508         [ Fixes bug #80167 ]
2509         
2510         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2511         style is FlatStyle.System.
2512
2513         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2514         ButtonBase.flat_style private, and switch uses of it to the public
2515         property.
2516         
2517 2006-12-08  Chris Toshok  <toshok@ximian.com>
2518
2519         [ Fixes bug #80121 ]
2520         
2521         * ThemeWin32Classic.cs: center the caption text in the datagrid
2522         when we draw it.
2523
2524         * DataGrid.cs: lessen the amount we add to the caption height from
2525         6 to 2.  6 was making it huge.
2526
2527 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2528
2529         * UpDownBase: Handle MouseWheel call directly instead of capturing
2530         the inner textbox's OnMouseWheel. Fixes #80166
2531
2532 2006-12-08  Jackson Harper  <jackson@ximian.com>
2533
2534         * TextControl.cs: We need to invalidate the textbox when we empty
2535         it (how had this not been discovered before?)
2536
2537 2006-12-08  Jackson Harper  <jackson@ximian.com>
2538
2539         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2540         to behave like MS, we now ignore the eventargs.Click and just
2541         track state ourself, which we were already doing anyways.
2542         - Constrain the double click handler to the double click size.
2543         
2544 2006-12-08  Chris Toshok  <toshok@ximian.com>
2545
2546         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2547         direction if that scrollbar isn't shown.  fixes bug #80158.
2548
2549 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2550
2551         * NumericUpDown.cs: Update value on getter. Fixes #79950
2552
2553 2006-12-08  Chris Toshok  <toshok@ximian.com>
2554
2555         * MenuItem.cs: add back in the event cloning code.  I didn't know
2556         how to do it in the face of the EventHandlerList work i'd done
2557         last week.  Fixes bug #80183.
2558
2559 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2560
2561         * Control.cs: Add an invalidate to the BackgroundImage setter.
2562         [Fixes 80184]
2563
2564 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2565
2566         * ToolStrip*: Add some small properties reported by MoMA, fix event
2567         firing and default properties based off of unit tests, and add some
2568         attributes based off of the class status page.
2569
2570 2006-12-07  Jackson Harper  <jackson@ximian.com>
2571
2572         * TextBoxBase.cs: Take HideSelection into account when determining
2573         whether or not to show the selection.
2574         * RichTextBox.cs: After inserting the RTF into the document move
2575         the cursor to the beginning of the document.
2576
2577 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2578
2579         * Control.cs: Remove static ArrayList "controls" which maintained
2580         a reference to every control created.
2581         * Application.cs: Create a static FormCollection to maintain a reference
2582         to every form created.  Use it in places that formerly enumerated through
2583         the controls one looking for forms.
2584         * Form.cs: Add and remove self from above FormCollection.
2585
2586 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2587
2588         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2589           not libgdk (though it makes me wonder why I didn't have any
2590           problems)
2591
2592 2006-12-07  Chris Toshok  <toshok@ximian.com>
2593
2594         [ you had to know this was coming after that last commit...]
2595         
2596         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2597         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2598         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2599         XCopyArea).
2600
2601 2006-12-07  Chris Toshok  <toshok@ximian.com>
2602
2603         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2604         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2605         all the behavior we need for double buffering.
2606
2607         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2608         client side Bitmap, just like the old Control-based double buffer
2609         code did.  The methods are virtual, so each XplatUI driver
2610         subclass can replace the implementation to use a faster, platform
2611         specific approach.
2612
2613         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2614         double buffer code, and clean things up a bit in the process.
2615
2616 2006-12-06  Chris Toshok  <toshok@ximian.com>
2617
2618         * Control.cs: reindent WndProc.
2619
2620 2006-12-06  Chris Toshok  <toshok@ximian.com>
2621
2622         [ I wanna be like BenM when I grow up ]
2623         
2624         * Hwnd.cs: create a single static Graphics object on the static
2625         Bitmap we create.  use this for our text measurements.
2626
2627         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2628         This was causing us to allocate a backbuffer for every control,
2629         even when it wasn't flagged as double buffered.  Instead use the
2630         single graphics instance.  This might have implications for
2631         multithreaded applications.  If we run into problems we can switch
2632         to creating 1 Graphics per control, on the static Hwnd bitmap.
2633
2634         this change nets us a 7M savings in private dirty mappings when
2635         running FormsTest.exe.
2636
2637 2006-12-06  Chris Toshok  <toshok@ximian.com>
2638
2639         * ListView.cs: the BackgroundImage override is just to set
2640         attributes.  chain up to base.BackgroundImage.
2641
2642         * RichTextBox.cs: same.
2643
2644         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2645         changes, so instead a handler for BackgroundImageChanged.
2646         
2647         * Control.cs: make background_image private.
2648
2649 2006-12-06  Chris Toshok  <toshok@ximian.com>
2650
2651         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2652         sure we even need this assignment, but roll with it for now.
2653
2654         * Control.cs: make the cursor field private.
2655
2656 2006-12-06  Chris Toshok  <toshok@ximian.com>
2657
2658         * Form.cs: we don't need to explicitly set ImeMode to
2659         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2660         behavior in the face of ImeMode.Inherit.
2661
2662         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2663         change the ctor's assignment to use ImeMode instead of ime_mode.
2664
2665         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2666         ImeModeInherit.  Only check for the parent's imemode (and return
2667         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2668         This fixes the button unit test, which sets both ImeMode and
2669         DefaultImeMode to ImeMode.Disable.
2670
2671         also make the ime_mode field private.
2672
2673 2006-12-06  Chris Toshok  <toshok@ximian.com>
2674
2675         * Control.cs: make control_style private.
2676
2677         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2678         setting the styles to true, then setting them to false instead of
2679         reverting to their previous values.
2680
2681         also, call SetStyle on the scrollbars instead of using
2682         control_style directly.
2683
2684 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2685
2686         * FormCollection.cs: Implement. [2.0]
2687
2688 2006-12-06  Chris Toshok  <toshok@ximian.com>
2689
2690         * Control.cs: make tab_stop private.
2691
2692         * Label.cs: set TabStop, not tab_stop.  reformat some event
2693         add/remove methods to make them more compact.
2694
2695 2006-12-06  Chris Toshok  <toshok@ximian.com>
2696
2697         * RadioButton.cs: fix TabStop handling.
2698
2699 2006-12-06  Chris Toshok  <toshok@ximian.com>
2700
2701         * TextBox.cs: remove the explicit assignments to has_focus.
2702         Control does that.
2703
2704         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2705         manage that.
2706         
2707 2006-12-06  Chris Toshok  <toshok@ximian.com>
2708
2709         * ButtonBase.cs: remove all uses of is_enabled from this code.
2710         it's always true when any of the code containing the checks is
2711         executed.
2712
2713 2006-12-06  Chris Toshok  <toshok@ximian.com>
2714
2715         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2716         with different semantics (some are present in both 1.1 and 2.0
2717         profiles) so that we match MS's behavior in our unit tests.
2718
2719 2006-12-06  Jackson Harper  <jackson@ximian.com>
2720
2721         * TextControl.cs: Make this operation undoable.
2722         * TextBoxBase.cs: Factor the border width into the preferred
2723         height.
2724         - implement Modified as per the spec.
2725
2726 2006-12-06  Chris Toshok  <toshok@ximian.com>
2727
2728         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2729
2730 2006-12-06  Chris Toshok  <toshok@ximian.com>
2731
2732         * Control.cs: make right_to_left and context_menu fields private.
2733
2734 2006-12-06  Chris Toshok  <toshok@ximian.com>
2735
2736         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2737         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2738         Control.child_controls private.  switch all uses over to
2739         Control.Controls.
2740
2741 2006-12-06  Chris Toshok  <toshok@ximian.com>
2742
2743         * System.Windows.Forms/GroupBox.cs,
2744         System.Windows.Forms/AccessibleObject.cs,
2745         System.Windows.Forms/ErrorProvider.cs,
2746         System.Windows.Forms/Control.cs,
2747         System.Windows.Forms/UpDownBase.cs,
2748         System.Windows.Forms/ScrollBar.cs,
2749         System.Windows.Forms/DateTimePicker.cs,
2750         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2751         System.Windows.Forms/ToolTip.cs,
2752         System.Windows.Forms/RadioButton.cs,
2753         System.Windows.Forms/LinkLabel.cs,
2754         System.Windows.Forms/Splitter.cs,
2755         System.Windows.Forms/TextBoxBase.cs,
2756         System.Windows.Forms/ToolStripTextBox.cs,
2757         System.Windows.Forms/ContainerControl.cs,
2758         System.Windows.Forms/ThemeWin32Classic.cs,
2759         System.Windows.Forms/SizeGrip.cs,
2760         System.Windows.Forms/ToolStripDropDown.cs,
2761         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2762         private.  switch all uses over to Control.Parent.
2763
2764 2006-12-06  Chris Toshok  <toshok@ximian.com>
2765
2766         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2767         Control does this before calling emitting these events.
2768
2769         * TabControl.cs: same.
2770
2771         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2772         Control.client_rect.
2773
2774         * ButtonBase.cs: use the ClientSize property instead of the
2775         client_size field.
2776
2777         * ScrollableControl.cs: same.
2778
2779         * Control.cs: another pass at making properties private.  also,
2780         move the initialization of tab_stop to the ctor.
2781
2782 2006-12-05  Andreia Gaita <avidigal@novell.com>
2783
2784         * TabControl.cs: Let the selected index be set freely if the 
2785         control handle is not yet created.
2786
2787 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2788
2789         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2790         internal until I can rewrite DefaultLayout.
2791         * ToolStrip.cs: Fix build error and some general cleaning.
2792         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2793         Fix build errors caused by making some of Control's fields private.
2794
2795 2006-12-05  Jackson Harper  <jackson@ximian.com>
2796
2797         * TextControl.cs: Redo Insert a little so that it use IndexOf
2798         instead of Split, this prevents it from messing up on things like
2799         \n\n\n. Also more effecient since the split array doesn't need to
2800         be created.
2801         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2802         multiline text differently, this is the first of many fixes that
2803         will make multiline/non-multiline the same thing as far as the
2804         TextBoxBase is concerned.
2805         - Don't split the text and insert lines, this can lose some line
2806         endings (like is the last line a soft or hard break). Instead use
2807         the new Insert.
2808         - Fix an off by one when combining all the lines in the Text
2809         getter.
2810         - Remove separate multiline handling from the Text getter/setter.
2811
2812 2006-12-05  Chris Toshok  <toshok@ximian.com>
2813
2814         * ButtonBase.cs: a few changes:
2815
2816         - don't reinitialize internal Control fields in the ctor when they
2817         have the same values as Control sets them.
2818
2819         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2820         this before calling those methods.
2821
2822         - we don't need to call Refresh for anything.  use Invalidate
2823         instead.
2824
2825         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2826         calls Refresh in its OnEnabledChanged.
2827         
2828         - several of the events we were registered for in the ctor to
2829         redraw ourselves already include calls to Invalidate in the
2830         property setters that raise the events.  remove the extra
2831         invalidation.
2832
2833         - reformat a switch statement that was 83274658 columns wide.
2834         
2835 2006-12-05  Mike Kestner  <mkestner@novell.com>
2836
2837         * ComboBox.cs: fix a unit test regression from a TextBox
2838         SelectionLength return of -1 when there's no selection.  
2839
2840 2006-12-05  Chris Toshok  <toshok@ximian.com>
2841
2842         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2843         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2844         cleaning up some of the internal Control fields being used by
2845         subclasses.
2846
2847 2006-12-05  Mike Kestner  <mkestner@novell.com>
2848
2849         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2850         listbox after AddImplicit calls since it defaults to hidden. Add a 
2851         hack to preserve requested heights across DropDownStyle changes.
2852
2853 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2854
2855         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2856
2857 2006-12-05  Chris Toshok  <toshok@ximian.com>
2858
2859         * DataGridView.cs: fix compiler warnings.
2860
2861         * PrintControllerWithStatusDialog.cs: same.
2862
2863         * ToolBar.cs: same.
2864
2865         * FolderBrowserDialog.cs: same.
2866
2867         * Splitter.cs: same.
2868
2869         * DataGridViewComboBoxCell.cs: same.
2870
2871         * XplatUIWin32.cs: same.
2872
2873         * PictureBox.cs: same.
2874
2875         * Win32DnD.cs: same.
2876
2877         * PageSetupDialog.cs: same.
2878
2879         * FileDialog.cs: same.
2880
2881         * PrintDialog.cs: same.
2882
2883         * DataGridTextBoxColumn.cs: same.
2884
2885         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2886
2887 2006-12-05  Chris Toshok  <toshok@ximian.com>
2888
2889         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2890         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2891         System.ComponentModel.EventHandlerList work.
2892
2893 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2894
2895         * DrawTreeNodeEventArgs.cs: Added.
2896
2897 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2898         
2899         * InternalWindowManager.cs: Remove an unused field.
2900         
2901 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2902
2903         * InternalWindowManager.cs:
2904         - Save the point where the title bar is clicked.
2905         
2906         * MdiWindowManager.cs:
2907         - Only allow moving of the window as long as the 
2908         clicked point on the title bar does not get out of
2909         MdiClient's rectangle. Fixes #79982.
2910         
2911         * MdiClient.cs:
2912         - Added Horizontal/VerticalScrollbarVisible.
2913         - Simplified the scrollbar sizing algorithm.
2914         - Cache the difference in scrolled value in
2915         H/VBarValueChanged and move the calculation out
2916         of the for loop.
2917
2918 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2919
2920         * Control.cs: Make the Console.WriteLine in WndProc 
2921         write more info.
2922
2923 2006-12-05  Chris Toshok  <toshok@ximian.com>
2924
2925         * ToolStripManager.cs, ToolStripButton.cs,
2926         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
2927         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
2928         ToolStripSplitButton.cs, ToolStripSeparator.cs,
2929         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
2930         ToolStripProgressBar.cs, ToolStripContainer.cs,
2931         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
2932         to using System.ComponentModel.EventHandlerList.
2933
2934 2006-12-04  Chris Toshok  <toshok@ximian.com>
2935
2936         * LinkLabel.cs: fix up compiler warnings.
2937
2938         * TableLayoutSettings.cs: same.
2939
2940         * TreeView.cs: same.
2941
2942         * ToolBar.cs: same.
2943
2944         * TabControl.cs: same.
2945
2946         * RichTextBox.cs: same.
2947
2948         * ListViewItem.cs: same.
2949
2950         * PropertyGrid.cs: same.
2951
2952         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
2953
2954         * ToolTip.cs same.
2955
2956         * TextRenderer.cs: fix up compiler warnings.
2957
2958         * Label.cs: same.
2959
2960         * Form.cs: corcompare fixes.
2961
2962         * PictureBox.cs: fix up compiler warnings.
2963
2964         * ImageListStreamer.cs: same.
2965
2966         * TrackBar.cs: corcompare fix.
2967
2968         * Control.cs: fix up compiler warnings.
2969
2970         * SplitterPanel.cs: same.
2971
2972         * NumericTextBox.cs: same.
2973
2974         * ImageList.cs: same.
2975
2976         * StatusStrip.cs: same.
2977
2978         * ProgressBar.cs: corcompare fix.
2979
2980         * ToolStripButton.cs: fix up compiler warnings.
2981
2982         * ToolStripStatusLabel.cs: same.
2983
2984         * ToolStripSplitButton.cs: same.
2985
2986         * ToolStripSeparator.cs: same.
2987
2988         * ToolStripProgressBar.cs: same.
2989
2990         * ToolStripDropDownMenu.cs: same
2991
2992         * ToolStripDropDown.cs: same.
2993
2994         * ToolStripDropDownButton.cs: same.
2995
2996         * ToolStrip.cs: same.
2997
2998         * ToolStripControlHost.cs: same.
2999
3000         * ToolStripContentPanel.cs: same.
3001
3002         * ToolStripDropDown.cs: same.
3003
3004         * ToolStripContainer.cs: same.
3005
3006         * ToolStripPanel.cs: same, and add "new" where we need it to work
3007         with the new ArrangedElementCollection.
3008
3009         * ToolStripItemCollection.cs: add "new" where we need it to work
3010         with the new ArrangedElementCollection.
3011
3012 2006-12-04  Andreia Gaita <avidigal@novell.com>
3013
3014         * TabControl.cs: Fix default tab selection to after TabControl
3015         gets focus and not before. Fixes #80128
3016
3017 2006-12-04  Chris Toshok  <toshok@ximian.com>
3018
3019         * DataGridTableStyle.cs: remove the gross calling of
3020         datagrid.Refresh from here.  It's a broken idea and it doesn't
3021         work anyway.
3022
3023         * DataGrid.cs: instead, just register/unregister from the
3024         DataGridTableStyle events in CurrentTableStyle.  we play it
3025         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3026         even though some would most likely not require it.  Fixes bug
3027         #80115 (and one portion of #80117 as a side effect).
3028
3029 2006-12-04  Chris Toshok  <toshok@ximian.com>
3030
3031         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3032         so the textbox (if any) goes away.  Fixes bug #80117.
3033
3034 2006-12-04  Chris Toshok  <toshok@ximian.com>
3035
3036         * DataGridColumnStyle.cs: set the column's readonly property
3037         initially based on the property descriptor's IsReadOnly.  Fixes
3038         bug #80044.
3039
3040 2006-12-04  Chris Toshok  <toshok@ximian.com>
3041
3042         * ComboBox.cs: wrap the dropdown style changing work in
3043         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3044
3045 2006-12-04  Jackson Harper  <jackson@ximian.com>
3046
3047         * TextBoxBase.cs: Fix off by one, since these are one-based.
3048         * TextBox.cs: Select all the text when we get focus.  The TextBox
3049         does this but the RTB does not.
3050
3051 2006-12-04  Chris Toshok  <toshok@ximian.com>
3052
3053         * DataGridTextBoxColumn.cs: remove some spew.
3054
3055         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3056         but some part of me is saying "it shouldn't be here.."  At any
3057         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3058         setting the value.
3059
3060 2006-12-04  Chris Toshok  <toshok@ximian.com>
3061
3062         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3063         to reassign the propertydescriptor.
3064
3065 2006-12-04  Jackson Harper  <jackson@ximian.com>
3066
3067         * TextBoxBase.cs:
3068         * TextControl.cs: Remove some unused variables.  Maybe this will
3069         patch things up between mike and I.
3070         - don't split lines less then one char wide, if the viewport is
3071         that small text won't be visible anyways.
3072         
3073 2006-12-04  Jackson Harper  <jackson@ximian.com>
3074
3075         * TextBoxBase.cs: Default selection length is -1, need to do some
3076         more testing on windows to see when this is used for the property.
3077         - Redid the Lines [] property to that we properly remove soft line
3078         breaks
3079         - added support for preserving carriage returns
3080         -  CanUndo is not a variable like 'is undo enabled' it just returns
3081         true if there is undo operations available.
3082         - AppendText doesn't need to grab the last tag itself anymore,
3083         this happens automatically when we move the cursor.
3084         * TextControl.cs: Add CompoundActions to the undo class. This
3085         allows combining the other operations into one big option.  ie a
3086         paste will combine { delete old, insert new, move cursor }
3087         - Add InsertString undo operation
3088         - New method for deleting multiline text
3089         - Add carriage returns to lines. So we can preserve carriage
3090         returns when text is 'roundtripped'
3091
3092 2006-12-04  Chris Toshok  <toshok@ximian.com>
3093
3094         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3095         minimum 0.  Fixes the scrollbar exception in bug #80136.
3096
3097 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3098
3099         * MdiClient.cs: 
3100         * MdiWindowManager: Removed unused fields and methods.
3101         
3102 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3103         
3104         * StatusBar.cs: Update all panels when a AutoSize=Contents
3105         panel needs updating.
3106         
3107         * StatusBarPanel.cs: Remove twidth and only use initialize.
3108         Fixes #80031.
3109                 
3110 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3111
3112         * Form.cs: When a form's MdiParent is set add it directly
3113         on top of the z-order in stead of relying on MdiClient's
3114         ActivateChild to do it. Fixes #80135.
3115         
3116         * MdiClient.cs: 
3117         - Remove original_order, mdi_child_list is already doing
3118         the same thing.
3119         - Create mdi_child_list on construction in
3120         stead of first use (avoids a few null checks).
3121
3122         * MenuItem.cs: Use an already existing list of mdi children
3123         to get the correct order of children and remove the other
3124         redundant list.
3125
3126 2006-12-04  Chris Toshok  <toshok@ximian.com>
3127
3128         * PropertyGridView.cs: cached_splitter_location is only used in
3129         !DOUBLEBUFFER code.
3130
3131         * PropertyGrid.cs: implement the ComComponentNameChanged event
3132         using Events, hoping that would fix the warning.  Looks like a
3133         compiler bug instead (#80144).
3134
3135         * PropertyManager.cs: remove unused method.
3136
3137 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3138
3139         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3140         include parentesis to fix expression evaluation. Fixes #79634.
3141
3142 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3143         
3144         * MenuAPI.cs:
3145         - Changes to fix behavior in Menu control, some reported in #80097
3146         and other detected during behavior refactory like a select event
3147         problems.
3148         - Remove unneded "if's" conditions.
3149         - Created an internal to flag when popup is active in control, we need 
3150         it because in .NET you can have menu active but without popup active
3151         when you active menu using popup without visible items.
3152         - Mimic win32 behavior for Select and Popup events.  
3153         - Dont open popup menu when you dont have visible subitems.
3154         - Do nothing when click on disabled menu item.
3155         - Some small changes to follow the coding style guidelines.
3156         - Unselect menu only when another control gives focus. Fixes #80097.
3157         - Remove unused code.
3158         
3159         * MenuItem.cs: internal VisibleItems method to check if menu
3160         theres visible subitems, it will be usefull to fix some 
3161         behavior in Menu control.
3162         
3163 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3164         
3165         * Timer.cs: Tag property for 2.0 profile.
3166         
3167 2006-12-01  Chris Toshok  <toshok@ximian.com>
3168
3169         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3170         
3171         * Win32DnD.cs: comment out some unused fields.
3172
3173         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3174         some unused properties/methods.
3175
3176         * XplatUIX11.cs: fix MousePosition so we override the base class's
3177         property instead of conflicting with it.
3178
3179         * PictureBox.cs: comment out some unused fields
3180
3181         * OSXStructs.cs: make some struct fields public.
3182
3183         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3184         MousePosition so we override the base class's property instead of
3185         conflicting with it.
3186
3187         * X11Dnd.cs: comment out some unused fields
3188
3189         * X11DesktopColors.cs: fix some struct field visibility to quiet
3190         the compiler.
3191
3192         * X11Dnd.cs: remove some debug code.
3193
3194         * ThemeClearlooks.cs: comment out unused field.
3195
3196         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3197
3198         * ThemeGtk.cs: comment out some unused pinvokes.
3199
3200         * Timer.cs: remove some unused fields.
3201
3202         * ThemeClearlooks.cs: comment out unused field.
3203
3204         * UpDownBase.cs: comment out unused field.
3205
3206         * DataObject.cs: comment out unused field.
3207
3208         * DataGridBoolColumn.cs: reomve unused field.
3209
3210         * DataGrid.cs: remove unused field.
3211
3212         * Cursor.cs: remove old ToBitmap code.
3213
3214         * ControlPaint.cs: remove unused method.
3215
3216         * ScrollBar.cs: remove unused fields.
3217
3218         * ComboBox.cs: remove unused field, and chain up to
3219         AccessibleObject ctor.
3220
3221         * ListBox.cs: remove unused field.
3222
3223         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3224
3225         * GridEntry.cs: remove unused fields.
3226
3227         * Binding.cs: remove unused fields.
3228
3229         * AxHost.cs: remove unused method.
3230
3231         * ContainerControl.cs: remove unused field.
3232
3233         * ScrollableControl.cs: remove unused fields.
3234
3235 2006-12-01  Chris Toshok  <toshok@ximian.com>
3236
3237         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3238         the Where/WhereString stuff.  it's easy enough to CWL
3239         Environment.StackTrace.
3240
3241         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3242         unused private fields.
3243
3244 2006-12-01  Jackson Harper  <jackson@ximian.com>
3245
3246         * TextControl.cs: Do not update the view while inserting multiline
3247         text. If we update the view we might wrap lines, before entering
3248         the new lines, which causes the new line insertion calculations to
3249         be totally fubared.
3250         - Remove an old TODO
3251         - Make debug output a little nicer
3252         
3253 2006-12-01  Chris Toshok  <toshok@ximian.com>
3254
3255         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3256
3257 2006-12-01  Chris Toshok  <toshok@ximian.com>
3258
3259         [ fix the majority of the CS0108 warnings we've been suppressing ]
3260         
3261         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3262
3263         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3264         to "LayoutToolBar" to quiet mcs.
3265         
3266         * TabControl.cs: mark our ControlCollection class as 'new'.
3267
3268         * TextBoxBase.cs: mark some events as 'new'.
3269
3270         * Splitter.cs: TabStop is 'new'.
3271
3272         * ControlBindingsCollection.cs: mark a few methods as new since
3273         they change the visibility from protected to public.
3274
3275         * RadioButton.cs: DoubleClick -> base class, and remove unused
3276         HaveDoubleClick.
3277
3278         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3279         events as new.
3280
3281         * NumericUpDown.cs: TextChanged -> base class.
3282
3283         * CheckedListBox.cs: mark our ObjectCollection class as new to
3284         quiet mcs.
3285
3286         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3287         muck with the base class.
3288
3289         * StatusBar.cs: fix some mcs warnings about Update being the same
3290         name as a base class method.
3291
3292         * RichTextBox.cs: mark some events as new, and make them do things
3293         to the base class impl.
3294
3295         * UserControl.cs: mark TextChanged as new, and have it manipulate
3296         base.TextChanged.
3297
3298         * UpDownBase.cs: mark some things new.
3299
3300         * CheckBox.cs: mark DoubleClick "new", and add some text about
3301         what we need to look at.
3302
3303         * Panel.cs: make the events "new", and manipulate the base
3304         version.  these are just here for attributes.
3305
3306         * AccessibleObject.cs: make owner private.
3307
3308         * Control.cs: deal with AccessibleObject.owner being private.
3309         cache our own copy if we need it.
3310
3311         * Button.cs: add "new" to the DoubleClickEvent.
3312
3313         * ListBox.cs: no need to track our own has_focus here.  let
3314         Control.has_focus do it for us.  Also some other work to clear up
3315         warnings about not overriding base class methods of the same name.
3316         
3317         * ComboBox.cs: clear up some warnings about not override base
3318         class methods of the same name.
3319
3320 2006-12-01  Chris Toshok  <toshok@ximian.com>
3321
3322         * Form.cs: flag a few things as "new" to quiet some of the mcs
3323         warnings.
3324
3325         * AxHost.cs: same.
3326
3327         * PrintPreviewDialog.cs: same.
3328
3329         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3330         now DGV isn't so horrible on the class status page.  also, move
3331         all events to using System.ComponentModel.EventHandlerList.  my
3332         wrists hurt.
3333
3334 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3335
3336         * MdiWindowManager.cs:
3337         - Set form to active mdi child if shown,
3338         and update the active mdi child to the next 
3339         remaining child in the z-order if the form is hidden.
3340
3341         * Form.cs: 
3342         - Track if the form has been visible and if its 
3343         visibility is beeing changed, so that the MdiClient
3344         can properly decide the ActiveMdiChild. The MdiClient 
3345         cannot track this since the form can change visibility 
3346         before MdiClient is created.
3347
3348         * MdiClient.cs:
3349         - Don't activate anything of the parent form is changing
3350         its visibility.
3351         - Rework ActiveMdiChild to only return visible mdi 
3352         children and take into account several other corner 
3353         cases.
3354
3355 2006-12-01  Chris Toshok  <toshok@ximian.com>
3356
3357         * IBindableComponent.cs: new 2.0 interface.
3358
3359 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3360
3361         * DataGrid.cs: Font for caption area is bold by default.
3362
3363 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3364
3365         * Menu.cs: Tag property for 2.0.
3366         
3367 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3368
3369         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3370         
3371 2006-12-01  Chris Toshok  <toshok@ximian.com>
3372
3373         * TreeView.cs: doh, the Begin* events should be
3374         TreeViewCancelEventHandler.
3375
3376 2006-12-01  Chris Toshok  <toshok@ximian.com>
3377
3378         * Form.cs: Form.ControlCollection already stores off the
3379         form_owner field.  don't access the base class's internal "owner"
3380         field.
3381
3382         * Control.cs: make all the fields in Control.ControlCollection
3383         private.  there's no need for any internal fields here.
3384
3385 2006-12-01  Chris Toshok  <toshok@ximian.com>
3386
3387         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3388         OnHandleCreated.  Fixes bug #80109.
3389
3390 2006-12-01  Chris Toshok  <toshok@ximian.com>
3391
3392         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3393         SplitContainer.cs, Control.cs, StatusStrip.cs,
3394         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3395         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3396         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3397         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3398         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3399         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3400         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3401         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3402         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3403         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3404
3405         do most of the work to convert our code over to use
3406         System.ComponentModel.Component.Events for
3407         adding/removing/dispatching events.
3408
3409
3410 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3411
3412         * DataGridView.cs: Fix an ArgumentNullException reported 
3413         twice today in IRC.
3414
3415 2006-11-30  Mike Kestner  <mkestner@novell.com>
3416
3417         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3418         grabbed listbox.  Fixes #80036 and #80101.
3419
3420 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3421
3422         * Message.cs: Changed ToString() to match MS.
3423         
3424 2006-11-30  Jackson Harper  <jackson@ximian.com>
3425
3426         * TextBoxBase.cs: You can still change the selected text on a read
3427         only textbox.
3428         * TextControl.cs: Lower magic number for wrap calculations. This
3429         lets text get closer to the right (far) edge.
3430
3431 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3432
3433         * Control.cs: Tweak 2.0 layout properties.
3434         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3435         * TextRenderer.cs: Add a new overload.
3436         * ToolStrip*: Huge amount of changes and new features.
3437
3438 2006-11-30  Mike Kestner  <mkestner@novell.com>
3439
3440         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3441         scroll range correct.  Fixes #79994.
3442
3443 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3444
3445         * MdiWindowManager.cs: Update main form's text when
3446         a form is closed. (fixes #80038)
3447         
3448 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3449
3450         * ToolBar.cs:
3451         - Fix an regression in ButtonSize.
3452         - Get ImeMode default value change to "Disable".
3453         - Get ShowTooltips default value change to true, default value is 
3454         "false" but after make a test in .NET we get "true" result as default.
3455         
3456 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3457
3458         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3459
3460 2006-11-29  Chris Toshok  <toshok@ximian.com>
3461
3462         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3463         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3464         SetWindowTransparency hasn't been called.
3465
3466 2006-11-29  Chris Toshok  <toshok@ximian.com>
3467
3468         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3469         if it's supported.
3470         (set_AllowTransparency): reorder things a little so that the
3471         WS_EX_LAYERED style is removed properly.
3472
3473 2006-11-29  Chris Toshok  <toshok@ximian.com>
3474
3475         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3476         
3477         * Form.cs: only call the XplatUI transparency method (get/set) if
3478         SupportsTransparency says it's supported. Otherwise fallback to
3479         doing nothing (in the set case) or returning the instance field we
3480         cache (in the get case).
3481
3482         * XplatUIStructs.cs: add TransparencySupport flag enum.
3483         
3484         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3485         change to SupportsTransparency.
3486
3487         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3488         TransparencySupport.None from SupportsTransparency.
3489
3490         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3491         TransparencySupport.Set from SupportsTransparency.
3492
3493         * XplatUIWin32.cs: implement GetWindowTransparency calling
3494         GetLayeredWindowAttributes, and implement SupportsTransparency by
3495         checking whether or not both
3496         GetWindowTransparency/SetWindowTransparency are available
3497         entrypoints.  We need to do this since SetWindowTransparency is
3498         available as of win2k, but GetWindowTransparency requires winxp.
3499         yay win32 api.
3500
3501         * XplatUI.cs: Add GetWindowTransparency, and change
3502         SupportsTransparency to allow for either/both Get/Set.
3503
3504 2006-11-29  Chris Toshok  <toshok@ximian.com>
3505
3506         * DataGrid.cs: keep from going into an infinite loop redrawing a
3507         datagrid that has no datasource.  Fixes bug #80033.
3508
3509 2006-11-29  Chris Toshok  <toshok@ximian.com>
3510
3511         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3512         Invalidate) before the mainmenu has been assigned to a control.
3513
3514 2006-11-29  Chris Toshok  <toshok@ximian.com>
3515
3516         * DataGrid.cs: detect when we should be double the double click
3517         row/column autosize stuff, although that codepath has yet to be
3518         written.  part of the work for bug #79891.
3519
3520 2006-11-29  Chris Toshok  <toshok@ximian.com>
3521
3522         * Binding.cs (SetControl): fix unit test.
3523
3524 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3525
3526         * PageSetupDialog.cs: Validate the margins and set them in
3527         PageSettings. 
3528         * NumericTextBox.cs: New class to mimic the behavior of the
3529         textboxes used in the printing dialogs.
3530
3531 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3532         
3533         * Form.cs: Revert previous change (remove call UpdateBounds
3534         from form constructor), because it messes with the handle creation
3535         order, and that one needs lots and lots of love.
3536         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3537         for valid printer and throw InvalidPrinterException if document
3538         is set but printer not valid), adding a MonoTODO. Once 
3539         handle creation is done properly, we can put this back in.
3540
3541 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3542
3543         * MenuItem.cs: Create a invalidate method for menu item, to be
3544         calling from set text, it make text changes to imadiate update
3545         on screen. Fixes #80013. 
3546         
3547 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3548
3549         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3550         fixes bug #80070 and some other problem on toolbar buttons
3551         layout.
3552
3553 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3554
3555         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3556         with dotted brush.      Fixes #79564
3557         
3558 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3559
3560         * Form.cs: Removed call to UpdateBounds on Form
3561         constructor, it was causing a call to CreateHandle
3562         before it was supposed to.
3563         * PrintControllerWithStatusDialog: Applied patch
3564         by Chris Toshok to hide controller when there are
3565         no printers available.
3566         PrintDialog.cs: initialize printer settings to 
3567         null - correct DefaultValues test #5
3568         * PrintPreviewControl.cs: Move PrintController
3569         initialization to GeneratePreview
3570         * PrintPreviewDialog.cs: 
3571         - Remove Preview generation     from Document_set(). It is 
3572         called on OnPaint
3573         - Throw InvalidPrinterException on CreateHandle if
3574         a Document is set but there are no printers or 
3575         printer is not valid.
3576         * ThemeWin32Classic: don't paint PrintPreviewControl
3577         if there is nothing to paint    
3578
3579 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3580
3581         * Form.cs: Add another popular method.
3582
3583         * TabPage.cs: ditto.
3584
3585 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3586
3587         * MenuItem.cs: Fixed a warning.
3588         * InternalWindowManager: Fixed a warning.
3589
3590 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3591
3592         * MenuItem.cs:
3593         - When cloning a menu also clone MdiList and clone the 
3594           window menu items properly (as the forms and menuitems
3595           are kept in an internal hashtable, these need updating 
3596           as well)
3597         - Rewrote the window menu code, menu items are added in the
3598           order the forms were added to their parent, and they are
3599           updated every time the window menu is shown (before the
3600           list was only generated once, in the current order of the
3601           forms, and would never be updated). A checkmark is shown
3602           next to the item corresponding to the active mdi child.
3603
3604 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3605
3606         * XplatUIStructs.cs: 
3607         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3608         
3609         * XplatUIWin32.cs: 
3610         - Added TME_NONCLIENT to TMEFlags.
3611         - Handles WM_NCMOUSEMOVE in GetMessage to 
3612           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3613
3614         * MdiWindowManager:
3615         - Now merges mdi child menu to parent menu when maximized.
3616         - Recalculate NC areas of both mdi child and mdi parent. 
3617           Fixes #79757 (4).
3618           on window state and size changes.Fixes #79844 (3).
3619         - Handle WM_NCCALCSIZE to properly calculate borders.
3620
3621         * Form.cs:
3622         - Add/remove to the mdi containers list of mdi children 
3623           in the order they are added.
3624         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3625           to the maximized mdi child.
3626         
3627         * InternalWindowManager.cs:
3628         - Only execute a click on the control buttons on the mouse up,
3629           not on the mouse down. Show the state of the button 
3630           (was only showing Normal state, never Pressed state). The
3631           pressed button now follows the mouse (if you click the Close 
3632           button and move the mouse over the Maximize button, the 
3633           Maximize button will be shown as pressed). Since Win32 does
3634           not generate WM_NCLBUTTONUP if you release the button outside
3635           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3636           it as a mouse up.
3637         
3638         * ThemeWin32Classic.cs:
3639         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3640
3641         * MdiClient.cs:
3642         - Added a list of forms which contains the order the forms are
3643           added to the mdi parent.
3644         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3645         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3646         - If the active form changes set the scrollbars to the top
3647           of the Z order, otherwise the form could hide them.
3648         - Scrollbars are now sized according to ClientSize, not 
3649           to Size, and they take into account the other scrollbar
3650           to determine maximum.
3651         
3652 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3653         
3654         * XplatUI.cs:
3655         * XplatUIDriver.cs:
3656         * XplatUIX11.cs:
3657         * XplatUIWin32.cs:
3658         * XplatUIOSX.cs:
3659         - Added RequestAdditionalWM_NCMessages for windows to 
3660           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3661           Currently only implemented in XplatUIWin32.
3662
3663 2006-11-27  Chris Toshok  <toshok@ximian.com>
3664
3665         * Hwnd.cs: only add the hwnd to the windows hash in
3666         set_WholeWindow and set_ClientWindow if whole_window/client_window
3667         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3668
3669 2006-11-27  Mike Kestner  <mkestner@novell.com>
3670
3671         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3672         from the ComboListBox.ShowWindow code. Fixes #79969.
3673
3674 2006-11-27  Chris Toshok  <toshok@ximian.com>
3675
3676         * Hwnd.cs: remove the setters for ExposePending and
3677         NCExposePending - noone uses them.
3678
3679 2006-11-27  Jackson Harper  <jackson@ximian.com>
3680
3681         * TextControl.cs: new param for ReplaceSelection which determines
3682         whether we select the new selection, or set the cursor to the end
3683         of the new selection.
3684         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3685         pasting, select the new text.
3686         * RichTextBox.cs: Use new param for ReplaceSelection.
3687
3688 2006-11-27  Jackson Harper  <jackson@ximian.com>
3689
3690         * TextBoxBase.cs: Set the selection to the caret after the caret
3691         is moved, otherwise they get out of sync.
3692
3693 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3694
3695         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3696         it fixes #80015
3697
3698 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3699
3700         * ThemeWin32Classic.cs: 
3701         - Fix toolbar drop down arrow position.
3702         - Fix drop down appearance when ToolBar.Appearance is normal,
3703         it fixes #80018.
3704         
3705 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3706
3707         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3708         * Control.cs: Same.
3709         * UpDownBase.cs: Same.
3710         * ButtonBase.cs: Same.
3711         * ScrollBar.cs: Same.
3712         * TrackBar.cs: Same.
3713         * PictureBox.cs: Same.
3714         * UserControl.cs: Same.
3715         * Label.cs: Same.
3716         * ListControl.cs: Same.
3717         * TextBoxBase.cs: Same.
3718         * ListView.cs: Same.
3719         * RichTextBox.cs: Same.
3720         * TreeView.cs: Same.
3721
3722 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3723
3724         * PrintDialog.cs:
3725         - Text label for where 
3726         - Text label comment was not shown
3727
3728 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3729
3730         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3731
3732 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3733
3734         * InternalWindowManager.cs: 
3735         - Handle WM_PARENTNOTIFY to activate the form
3736         if any child control is clicked.
3737         - The form is only sizable if not minimized.
3738
3739         * MdiWindowManager.cs:
3740         - Save the IconicBounds if the form is moved.
3741         - Rework SetWindowState, now the window bounds 
3742         are stored only if the old window state is Normal.
3743         
3744         * MdiClient.cs:
3745         - In SetWindowStates store the old window state if 
3746         the window is maximized and restore window state if
3747         the window looses focus.
3748         - Don't handle any scrollbar value changes if 
3749         initializing the scroll bars. Fixes #79771.
3750         - Reworked ArrangeIconicWindows. Current algorithm
3751         tests bounds agains all other minimized windows, if
3752         any intersections create new bounds (going left to 
3753         right, bottom to top) and then test again. When 
3754         successful the bounds are saved and never computed
3755         again. Fixes #79774.
3756
3757 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3758
3759         * InternalWindowManager.cs: Added HandleTitleBarUp.
3760
3761 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3762
3763         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3764         hexadecimal in ParseUserEdit.
3765
3766         
3767 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3768
3769         * MdiWindowManager.cs: 
3770         - Handle a click on the form's icon to show the 
3771         system menu (when maximized). Fixes #79775.
3772         - Change the existing click handler for the form's
3773         icon when not maximized to show on MouseUp.
3774         Fixes #79776.
3775
3776         * Form.cs: In OnResize only layout the mdi child's
3777         parent if it actually has a parent. Might not if
3778         the window is closing.
3779
3780
3781 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3782
3783         * MdiClient.cs: Ignore active MDI client for text of parent, if
3784         child has no text set.
3785
3786 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3787
3788         * ToolBar.cs: Fixed ToString to match MS.
3789
3790 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3791
3792         * NumericUpDown: 
3793         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3794         update inner values on set. Fixes #79966.
3795         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3796         - Fix hexadecimal parsing.
3797         
3798         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3799         parent. Fixes #79957
3800
3801 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3802
3803         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3804         the actual size has to be queried, since if height /
3805         width is negative Win32 changes it to 0. 
3806         Fixes #79999 on Windows.
3807         
3808         * XplatUIX11.cs: Set height / width to 0 if negative
3809         in SetWindowPos. Fixes #79999 on Linux.
3810         
3811 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3812
3813         * ThemeWin32Classic.cs: Fix text redenring when button is
3814         pressed.
3815
3816 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3817
3818         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3819         and later navigate by mouse. Fixes #79528.
3820
3821 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3822
3823         * ToolBar.cs: Set default value for TabStop to false in
3824         constructor, it fixes remaining behavior of bug #79863.
3825
3826 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3827
3828         * MdiWindowManager.cs:
3829         * InternalWindowManager.cs:
3830         - Moved a few methods specific to Mdi from 
3831         InternalWindowManager to MdiWindowManager.
3832         Fixes #79996.
3833         
3834 2006-11-21  Chris Toshok  <toshok@ximian.com>
3835
3836         * XplatUIOSX.cs: stub out InvalidateNC.
3837
3838         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3839         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3840
3841         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3842
3843         * XplatUIDriver.cs: add InvalidateNC abstract method.
3844
3845         * XplatUI.cs: add InvalidateNC.
3846
3847 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3848
3849         * ToolBar.cs: Invalidate complete button area when pressed status 
3850         was changed.
3851         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3852         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3853         by 1 when button is pressed.
3854
3855 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3856
3857         * ToolButton.cs: Invalidate middle of DropDown button when
3858         ToolBar theres DropDownArrows.
3859         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3860         fix DropDown drawing operations.
3861
3862 2006-11-20  Chris Toshok  <toshok@ximian.com>
3863
3864         * NativeWindow.cs: fix the formatting of functions ('{' on the
3865         following line), and enable the thread exception dialog.
3866
3867         * Application.cs: remove the duplicate exception catching from
3868         here.
3869
3870 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3871
3872         * Toolbar.cs: Triggers button click event when click on icon
3873         of dropdown ToolBarButton. Fixes #79912.
3874         
3875 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3876
3877         * Theme.cs:
3878         * ThemeWin32Classic.cs:
3879         - Added a property WindowBorderFont to enable themeing
3880           of mdi child windows' Text.
3881           
3882 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3883
3884         * InternalWindowManager.cs:
3885         * Form.cs:
3886         * MdiClient.cs:
3887         * MdiWindowManager.cs: 
3888         - If mdi child is maximized, set mdi parent's
3889           text to "Parent - [Child]". Fixes #79770.
3890         - If there is any maximized mdi child windows, only the active 
3891           window (and any new windows) is maximized, the rest are normal.
3892         - On a WindowState change only save mdi child's window bounds 
3893           if the old window state was normal. Fixes #79774.
3894         - The scroll bars are now calculated on hopefully all
3895           necessary events. Fixed #79771 / #79844->6 / #79906.
3896         - MdiClient.SizeScrollBars() now takes into account docked 
3897           controls in the parent when calculating available space.
3898         - InternalWindowManager now always repaints the entire title
3899           area. Fixes #79844->1/4/5.
3900         - Added RequestNCRecalc on mdi child windowstate changes.
3901           Fixes #79772.
3902
3903 2006-11-20  Mike Kestner  <mkestner@novell.com>
3904
3905         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3906         in the MouseUp handler of the listbox and move the return handling
3907         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3908
3909 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3910
3911         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
3912
3913 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3914
3915         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
3916           working in 1.2.x anymore. So, updated.
3917
3918 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
3919
3920         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
3921         NumberGroupSeparator of current culture instead of assuming en-US.
3922         Fixed bug #79967.
3923
3924 2006-11-17  Mike Kestner  <mkestner@novell.com>
3925
3926         * Control.cs: Add the concept of implicit bounds setting so that
3927         dock/undock round trips preserve explicitly set size/locations.
3928         Fixes #79313.
3929
3930 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3931
3932         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
3933           can't handle those filters. (Fixes bug #79961)
3934
3935 2006-11-17  Chris Toshok  <toshok@ximian.com>
3936
3937         [ fixes the exit/crashes associated with #79835.  it's clearly
3938         suboptimal though, we need to figure out a better way to solve
3939         this. ]
3940         
3941         * PrintPreviewControl.cs: deal with the new invalid printer
3942         exceptions.
3943
3944         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
3945         and return false (so CommonDialog.ShowDialog doesn't actually show
3946         the form.)
3947
3948         * PrintDialog.cs: enable/disable the Ok button depending on
3949         whether or not the printer is valid.
3950
3951         * CommonDialog.cs (ShowDialog): only actually show the form if
3952         RunDialog returns true.
3953
3954 2006-11-17  Jackson Harper  <jackson@ximian.com>
3955
3956         * TextControl.cs: When soft splitting a line, mark it as a soft
3957         split line. Also carry over the current line break to the next
3958         line.
3959
3960 2006-11-17  Chris Toshok  <toshok@ximian.com>
3961
3962         * XplatUIX11.cs: when scrolling a window with an invalid area, we
3963         only want to shift the part of the invalid area that overlaps the
3964         area we're scrolling.  we also don't want to clear the invalid
3965         area unless the invalid area was entirely contained within the
3966         scrolling area.
3967
3968 2006-11-16  Chris Toshok  <toshok@ximian.com>
3969
3970         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
3971         also make sure to free the memory returned by XGetWindowProperty
3972         in GetText().
3973
3974         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
3975
3976 2006-11-16  Chris Toshok  <toshok@ximian.com>
3977
3978         * XplatUI.cs: add a new super secret way to get at the totally
3979         unsupported X11 backend.
3980
3981 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
3982
3983         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
3984
3985 2006-11-16  Jackson Harper  <jackson@ximian.com>
3986
3987         * TreeView.cs: Allow more explicit setting of top node position
3988         for scrollbars. Slower algo, but more accurate.
3989         - CollapseAll should maintain the current top node.
3990         * TextBoxBase.cs: When positioning the caret, use the line, pos
3991         method, since the x, y method does not grab the correct tag, and
3992         the caret height never gets set correctly. (Maybe I should just do
3993         away with the caret having its own height, and always use the
3994         carets current tag for height).
3995
3996 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
3997
3998         [Fixes 79778, 79923]
3999
4000         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4001         Parent to the FosterParent instead.
4002
4003 2006-11-16  Jackson Harper  <jackson@ximian.com>
4004
4005         * TreeView.cs: Need to recalc the topnode when we expand or
4006         collapse. The scrolling methods can't handle this on their own,
4007         since they use differences between the last scroll position, and
4008         those difference get completely messed up since we are expanding
4009         nodes.  This problem should probably be fixed in the scrolling
4010         methods, so they can figure out exactly where they are, but this
4011         will slow things down a little.
4012         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4013         strings, makes nunit-gui look a lot nicer.
4014
4015 2006-11-16  Chris Toshok  <toshok@ximian.com>
4016
4017         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4018         the broken multithreaded event handling we have in here.  File
4019         this entry under "Why we should move to the new X11 backend".
4020
4021         Any thread can make it into UpdateMessageQueue, which gets events
4022         from the X socket - some of which could belong to hwnds being
4023         managed by a different thread.  We can also have multiple threads
4024         in UpdateMessageQueue at the same time, with each one reading from
4025         the X socket.  This leads to many problems, with the following
4026         solutions:
4027
4028         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4029         EnqueueLocked.
4030
4031         The MotionNotify compression we do can't work across threads
4032         (without locking the entire queue, perhaps) since we call
4033         hwnd.Queue.Peek, so we just punt and don't compress motion events
4034         unless the owning thread is the one which got the X event.
4035
4036         ConfigureNotify is another fun one, since it modifies the hwnd's
4037         bounds and then enqueues the event.  We add a lock to Hwnd which
4038         is held when setting configure_pending to true (and enqueuing the
4039         event).
4040
4041         There is a race wrt the wake socket.  we need to make sure that
4042         only 1 thread is waiting on that socket, or else a thread could
4043         sleep waiting for data that never comes.  It's difficult (but not
4044         impossible) to make happen, because it seems to require something
4045         like the following:
4046
4047             1. Thread 1 polls on wake_receive
4048         
4049             2. poll returns saying there's data to be read on
4050                wake_receive.
4051         
4052             3. Thread 2 polls on wake_receive and immediately returns
4053                saying there's data to be read.
4054
4055             4. Thread 2 reads the wakeup byte from wake_receive
4056
4057             5. Thread 1 attempts to read the wakeup byte from
4058                wake_receive.
4059
4060             6. Thread 2 exits (due to a form closing, perhaps).
4061
4062             7. Thread 1 blocks forever.
4063         
4064         Fun, eh?
4065
4066         Fixing the Expose handling isn't done yet, and the races inherent
4067         in that piece of code are responsible for the drawing mistakes you
4068         see when generating expose events in a MT app (like NPlot).  This
4069         one is the likely to be the hardest to bandaid, and it doesn't
4070         appear to cause anything but drawing problems.  The other issues
4071         caused apps to exit or hang.
4072
4073         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4074         called from a different thread than the one that should be calling
4075         these functions.
4076
4077         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4078
4079 2006-11-15  Chris Toshok  <toshok@ximian.com>
4080
4081         * Application.cs: null out the context's MainForm when we exit
4082         RunLoop.  Fixes a newly checked in unit test as well as the last
4083         ODE from bug #79933.
4084
4085 2006-11-15  Chris Toshok  <toshok@ximian.com>
4086
4087         * Form.cs (set_Owner): allow a null value so we can clear the
4088         form's owner.
4089         (Dispose): set all our owned_form's Owner properties to null, and
4090         clear the owned_forms collection.
4091         (WM_CLOSE): clean up this a little bit.. still not right though.
4092
4093         * ApplicationContext.cs: OnMainFormClosed should only call
4094         ExitThreadCore if the main form isn't recreating.  Fixes unit
4095         test.
4096
4097 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4098
4099         [Fixes 78346]
4100
4101         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4102
4103 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4104
4105         [Fixes 79433]
4106
4107         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4108         keep popup window types from stealing focus from the main form
4109         on Windows.
4110
4111         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4112
4113         * MenuAPI.cs: Set above flag to true.
4114
4115 2006-11-15  Chris Toshok  <toshok@ximian.com>
4116
4117         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4118         the button being released is not in wParam.
4119
4120 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4121
4122         * Form.cs: Add the released button to MouseEventArgs.Button
4123         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4124         on Win32.
4125
4126 2006-11-15  Chris Toshok  <toshok@ximian.com>
4127
4128         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4129         GetText().  untested because it's unused in our implementation.
4130         Control.Text always caches the text, even if
4131         ControlStyles.CacheText is not set.
4132
4133         fixes bug #79939.
4134
4135 2006-11-15  Chris Toshok  <toshok@ximian.com>
4136
4137         [ fixes #79933 ]
4138         
4139         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4140         message.  no hiding, no disposing.
4141
4142         in the WM_CLOSE handler, hide the form if it's modal.
4143
4144 2006-11-15  Chris Toshok  <toshok@ximian.com>
4145
4146         * XplatUIX11.cs: use AddExpose instead of sending a message.
4147         fixes textbox border drawing.
4148
4149 2006-11-15  Chris Toshok  <toshok@ximian.com>
4150
4151         * PropertyGridView.cs: keep from crashing on mouse move/down when
4152         the property grid is empty.
4153
4154 2006-11-14  Jackson Harper  <jackson@ximian.com>
4155
4156         * TextControl.cs: Make PageUp and PageDown more like the MS
4157         versions.
4158         * TextBoxBase.cs: When we set the text property position the
4159         cursor at the beginning of the document.
4160
4161 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4162
4163         * Form.cs: if a mdi child's WindowState has changed
4164         before it's creation, it would display wrong control
4165         buttons.
4166         
4167 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4168
4169         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4170           (Fixes bug #79927)
4171
4172 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4173
4174         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4175         the window gets to paint its borders even if the window is
4176         getting smaller.
4177         
4178         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4179         otherwise the old control buttons would still be painted 
4180         if the window gets bigger.
4181         
4182         * PaintEventArgs.cs: add an internal method so that the clip 
4183         rectangle can be changed.
4184         
4185 2006-11-13  Chris Toshok  <toshok@ximian.com>
4186
4187         [ fixes bug #79745 ]
4188         
4189         * NotifyIcon.cs: lots of cleanup.
4190
4191         * X11Structs.cs: add an enum for XEMBED messages.
4192
4193         * XplatUIX11.cs: reindent one of the giant switch statements, it
4194         was taking up an additional tab stop, and this file is already way
4195         too wide for my laptop's screen.
4196
4197         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4198         we get it, resize the hwnd to the WMNormalHints max_width/height.
4199
4200 2006-11-13  Jackson Harper  <jackson@ximian.com>
4201
4202         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4203         teh simple way.
4204
4205 2006-11-13  Chris Toshok  <toshok@ximian.com>
4206
4207         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4208         #79898.  force a reference to the Region to stick around so the
4209         unmanaged object isn't collected (rendering our handle in the MSG
4210         stale).
4211
4212 2006-11-13  Chris Toshok  <toshok@ximian.com>
4213
4214         * XplatUIX11.cs: fix #79917 for window managers which support
4215
4216         using XStoreName on the raw utf8, and we need to convert to
4217         COMPOUND_TEXT if it's non-latin1.
4218
4219 2006-11-13  Chris Toshok  <toshok@ximian.com>
4220
4221         * Form.cs (set_DialogResult): we need to set closing to false if
4222         we're setting our result to None.  fixes bug #79908.
4223
4224 2006-11-13  Jackson Harper  <jackson@ximian.com>
4225
4226         * TextControl.cs: When formatting text, compute the adjusted tag
4227         lengths correctly, using FindTag for the end tag instead of trying
4228         to figure it out outselves.
4229         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4230         the item, ItemHeight doesn't work, because trees with large
4231         imagelists use those for their height
4232         * TreeView.cs: ActualItemHeight factors in the image height
4233         - compute left edge of checkboxes correctly
4234         - when expanding/collapsing move the bottom down one pixel, so we
4235         aren't moving part of the node
4236
4237 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4238
4239         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4240         stack in PaintEventStart so that it won't get disposed by the gc
4241         before reaching PaintEventEnd.
4242
4243 2006-11-13  Jackson Harper  <jackson@ximian.com>
4244
4245         * TextBoxBase.cs: Don't select the word if we are on a line with
4246         no text.
4247         - We don't need to position the caret on mouse up, since the mouse
4248         move handler should be doing this
4249         - When double clicking a blank line, the caret is advanced to the
4250         next line.
4251
4252 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4253
4254         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4255
4256 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4257
4258         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4259         Fixes part of bug #79910.
4260
4261 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4262
4263         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4264           (bug #79903). Some minor string updates to match ms.
4265
4266 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4267
4268         * FileDialog.cs: Don't add an extension if the filename
4269           already ends with that extension.
4270
4271 2006-11-10  Jackson Harper  <jackson@ximian.com>
4272
4273         * TreeView.cs: Use the currently highlighted node for the
4274         BeforeSelect event.
4275         * TextBoxBase.cs: There is no need to expand selection on
4276         MouseMove.
4277         - CanUndo means 'is there any undo operations', not 'is undo
4278         allowed on this textcontrol. Fixed ClearUndo unit test.
4279
4280 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4281
4282         * Button.cs: only perform click when button is Selectable (so as 
4283         not to activate default buttons when they're disabled)
4284         
4285         * Control.cs: Rewrite of the SelectNextControl and related 
4286         methods. HandleClick now selects next control if the current one
4287         is being disabled.
4288         
4289         * Form.cs: OnActivated selects next active control only if Load 
4290         has already occurred. If Load hasn't run, there's no point in 
4291         selecting here, Load might change the state of controls.
4292         
4293         * FocusTest.cs: Tests marked as working again for these fixes
4294
4295 2006-11-10  Chris Toshok  <toshok@ximian.com>
4296
4297         * XplatUIX11.cs: a couple of fixes.
4298
4299         - use XInternAtoms with almost all the atoms we need to register,
4300         instead of many, many calls to XInternAtom.  should help a bit on
4301         startup time, at the expense of making the code look a little
4302         worse.
4303
4304         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4305         isn't reparented (which seems to be a clue that we're running fon
4306         compiz) and they have an Owner form.  This fixes the tool windows
4307         in paint.net when running under compiz.
4308
4309         - when setting the opacity of a window, support both the case
4310         where the window has been reparented and also when it hasn't been.
4311         Since compiz/beryl doesn't seem to reparent windows, and these are
4312         the only window managers which support translucency, I'm not sure
4313         why we need the hwnd.reparented case at all.. but leave it in.
4314         now we get translucent windows in paint.net under compiz/beryl.
4315
4316 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4317
4318         * FileDialog.cs: Always return the value for FilterIndex that
4319           was set. Internally convert it to values that make sense.
4320
4321 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4322         
4323         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4324
4325 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4326
4327         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4328         signature still using false to make it compatible with MS but the 
4329         initial value is true. Fixes #79855.
4330
4331 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4332
4333         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4334           only available on Linux.
4335
4336 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4337
4338         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4339         reduce number of calls to redraw method during toolbar creation.
4340
4341 2006-11-09  Mike Kestner  <mkestner@novell.com>
4342
4343         * ListView.cs : raise SelectedIndexChanged when an item is selected
4344         programmatically via the Item.Selected property.  Gert's nice 
4345         ListViewSelectedIndexChanged test fixture now runs clean.
4346
4347 2006-11-09  Mike Kestner  <mkestner@novell.com>
4348
4349         * ListView.cs : raise SelectedIndexChanged when a selected item is
4350         removed from the item collection using Remove or RemoveAt.
4351
4352 2006-11-09  Mike Kestner  <mkestner@novell.com>
4353
4354         * ListView.cs : raise SelectedIndexChanged once per selected item
4355         for compat with MS.  Fixes #79849+.
4356
4357 2006-11-09  Chris Toshok  <toshok@ximian.com>
4358
4359         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4360         we need to (if we have any tab pages).  Fixes unit test.
4361
4362 2006-11-09  Chris Toshok  <toshok@ximian.com>
4363
4364         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4365         width is 0, not 3.  Fixes a unit test.
4366
4367 2006-11-09  Mike Kestner  <mkestner@novell.com>
4368
4369         * ListView.cs : use Implicit scrollbars so that focus isn't 
4370         stolen from the listview when they are clicked. Fixes #79850.
4371
4372 2006-11-09  Chris Toshok  <toshok@ximian.com>
4373
4374         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4375         have a root item.  Fixes #79879.
4376
4377 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4378
4379         * FileDialog.cs:
4380           - Fix ToString ()
4381           - An ArgumentException is now thrown if a wrong filter
4382             is applied (matches ms). The previous filter doesn't change
4383             anymore if an exception is thrown.
4384           - Changing the FileName property also affects FileNames
4385         * ColorDialog.cs: The length of the CustomColors array is always
4386           16. It doesn't matter if we use a smaller array or null to update
4387           or change the custom colors property.
4388         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4389           for RootFolder if we get a undefined value.
4390
4391 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4392
4393         * StatusBarPanel.cs: 
4394         - Width is set to MinWidth if Width is smaller than
4395         MinWidth. Fixes #79842.
4396         - MinWidth now always overrides Width (MSDN says MinWidth
4397         is set to Width when AutoSize = None, but they do not 
4398         behave like that).
4399         - Style has now the the correct default value.
4400         
4401 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4402  
4403         * TrackBar.cs: 
4404         - The control is completely invalidated on 
4405         Got/LostFocus to draw the focus rectangle correctly.
4406         - When AutoSize then height is always 45 (width for 
4407         vertical controls).
4408         
4409         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4410         on the mouse when moved and it doesn't move when grabbed
4411         until the mouse moves as well. Also fixed some wrong 
4412         calculations when clicking on the thumb (control thought
4413         click was outside of thumb and didn't grab it).
4414         Fixes some of the issues in #79718.
4415
4416 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4417
4418         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4419
4420 2006-11-08  Chris Toshok  <toshok@ximian.com>
4421
4422         * PropertyGridView.cs: only call ToggleValue if the item is not
4423         readonly.
4424
4425 2006-11-08  Jackson Harper  <jackson@ximian.com>
4426
4427         * TextBoxBase.cs: The RichTextBox and textbox have very different
4428         word selection methods.  Implement the textbox's simple word
4429         selection here, and let the RichTextBox override and provide it's
4430         own.
4431         - Don't do extra selection on mouseup
4432         * RichTextBox.cs: Use the documents word selection algorithm, I
4433         think ideally, this function will be pulled into the
4434         RichTextBox.cs code someday.
4435
4436 2006-11-08  Chris Toshok  <toshok@ximian.com>
4437
4438         * RootGridEntry.cs: new class to represent GridItemType.Root.
4439
4440         * CategoryGridEntry.cs: reformat, and add boilerplate.
4441         
4442         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4443         returns the UI parent anyway, and we need special handling to
4444         implement the GetTarget method in the face of it.  Also, implement
4445         Select().
4446
4447         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4448         a root grid item, and use that instead of PropertyGrid.grid_items.
4449         Also, make use of TypeConverters (and add limitted support for
4450         ICustomTypeDescriptors) when initially populating the grid.
4451         Arrays now show up more or less properly.
4452
4453 2006-11-08  Chris Toshok  <toshok@ximian.com>
4454
4455         * Application.cs: set the modal dialog to non modal after we close
4456         it.  Fixes bug #79866.
4457
4458 2006-11-08  Jackson Harper  <jackson@ximian.com>
4459
4460         * TextControl.cs: When combining lines carry over the line end
4461         style from the end line.
4462         - Invalidate the selected area when setting it, if it is visible.
4463         * TextBoxBase.cs: Only rich text box can do full line selects.
4464         - Make sure to set the cursor position when there is a click,
4465         otherwise two clicks in separate areas could cause a large chunk
4466         to be selected.
4467
4468 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4469
4470         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4471         Fixes #79863.
4472
4473 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4474
4475         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4476         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4477
4478 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4479
4480         * MenuAPI.cs: Ignore right click for menu actions and fixes
4481         menu border when clicked.  Fixes #79846.
4482
4483 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4484
4485         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4486         MouseState after create wParam for message, this fixes mouse button 
4487         equal none in mouse up events.
4488         
4489 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4490
4491         * Control.cs : Focus() now calls Select to set the Container's
4492         Active Control and to give it focus. To avoid infinite recursion
4493         (because ActiveControl also calls Focus at one point), a check 
4494         is made in Focus with the help of a new internal variable
4495         is_focusing.
4496
4497 2006-11-07  Mike Kestner  <mkestner@novell.com>
4498
4499         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4500         if there's a selection.  Fixes #79849.
4501
4502 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4503
4504         * PropertyGrid.cs: Avoid fixed height of help description label.
4505         Fixes part of bug #79829.
4506
4507 2006-11-07  Chris Toshok  <toshok@ximian.com>
4508
4509         * XplatUIX11.cs: fix #79790 again, by using the
4510         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4511
4512 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4513
4514         * ToolBar.cs: Fix left click checking.
4515
4516 2006-11-07  Chris Toshok  <toshok@ximian.com>
4517
4518         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4519
4520 2006-11-07  Chris Toshok  <toshok@ximian.com>
4521
4522         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4523         PropertyManager unit tests.
4524
4525         * PropertyManager.cs: make property_name internal.
4526
4527 2006-11-07  Chris Toshok  <toshok@ximian.com>
4528
4529         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4530         pass a unit test.  Also, don't set image_index to anything in
4531         response to setting the ImageList property.
4532
4533 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4534
4535         * ToolBar.cs: Ignore click events when mouse button is not a
4536         left button, only accepts other button for dropdown menus.  
4537         Fixes #79854.
4538
4539 2006-11-07  Chris Toshok  <toshok@ximian.com>
4540
4541         * DataGrid.cs: make the back and parent row buttons a little less
4542         ugly.
4543
4544 2006-11-07  Jackson Harper  <jackson@ximian.com>
4545
4546         * TextBoxBase.cs: When converting to Text don't put line breaks in
4547         for soft line breaks.
4548         * TextControl.cs: There is an initial "fake" line in the document,
4549         this is now a soft break line, so that an extra line feed doesn't
4550         get added to the end of documents.
4551
4552 2006-11-07  Chris Toshok  <toshok@ximian.com>
4553
4554         [ fix bug #79778 ]
4555         
4556         * CurrencyManager.cs: if the list is readonly, don't bother
4557         checking if IBindingList.AllowNew is true.
4558
4559         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4560         for non-DataRowView datasources..  or rather, make it not crash.
4561         (DataGridPaintRelationRow): make sure we limit the row painting to
4562         the area not covered by the row header, and make our cell width at
4563         least large enough to cover the relation area.  This allows grids
4564         that have relations but no rows to render correctly.
4565         (DataGridPaintRowContents): same type of changes here.
4566         (SetDataSource): move back to always calling
4567         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4568         navigating back through relations.
4569         (HitTest): handle the case where we have no cells but have
4570         relations.  Right now we generate a hit in cell 0 of whatever the
4571         row is, not sure if this is strictly correct, but it works for our
4572         purposes.
4573         
4574         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4575         bother doing anything.
4576
4577 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4578
4579         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4580         early version of StatusStrip.  Not responsible for eaten
4581         application or firstborn children.
4582
4583 2006-11-06  Chris Toshok  <toshok@ximian.com>
4584
4585         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4586         call GetTabRect with a -1 index.  Fixes #79847.
4587
4588 2006-11-06  Jackson Harper  <jackson@ximian.com>
4589
4590         * TreeNodeCollection.cs: Update scrollbars after clearing.
4591
4592 2006-11-06  Chris Toshok  <toshok@ximian.com>
4593
4594         * NumericUpDown.cs: fix the ToString method for some unit test
4595         love.
4596
4597 2006-11-06  Chris Toshok  <toshok@ximian.com>
4598
4599         * PropertyGrid.cs:
4600         - set the initial SelectedGridItem if we can.
4601
4602         - Exclude non-mergable properties only if we're merging > 1
4603         object.  Merging 1 object isn't really merging, obviously.
4604
4605         - Handle PropertySort.NoSort just like Alphabetical, which is
4606         wrong of course, but at least gets things on the screen.
4607         
4608         * PropertyGridView.cs:
4609         - Add method "FindFirstItem" which finds the first property grid
4610         item, so we can select it by default.
4611
4612         - make use of GridEntry.CanResetValue.
4613
4614         - Don't call RedrawBelowItemOnExpansion here anymore, the
4615         individual GridEntry's will do that.
4616
4617         - Remove the ITypeDescriptorContextImpl internal class.
4618         
4619         * GridEntry.cs:
4620         - this class needs to implement ITypeDescriptorContext, as it's
4621         what MS's PropertyDescriptorGridEntry does, which means we can
4622         remove the ITypeDescriptorContextImpl internal class from
4623         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4624
4625         - keep a reference to our PropertyGridView, and move the call to
4626         RedrawBelowItemOnExpansion here from PGV.  This means
4627         programmaticly setting Expanded actually does something visible.
4628
4629         - add a CanResetValue() function which takes into account our
4630         possibly multiple "selected_objects" in the merged case.  Shifting
4631         PropertyGridView to use this method fixes another unreported
4632         crasher found running the test for #79829.
4633
4634         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4635         is updated to reflect this.
4636
4637         * CategoryGridEntry.cs: the ctor takes the PGV now.
4638         
4639 2006-11-06  Jackson Harper  <jackson@ximian.com>
4640
4641         * TextControl.cs: These are 1 based.
4642         * TextBoxBase.cs: When setting the selected text, don't change the
4643         selected text tags, this is done by ReplaceText, just position the
4644         cursor at the end of the new text.
4645
4646 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4647
4648         * ListView.cs: Allow label edit only when, when LabelEdit is
4649           set to true.
4650
4651 2006-11-06  Jackson Harper  <jackson@ximian.com>
4652
4653         * TextControl.cs: If a suitable wrapping position isn't found,
4654         just wrap right in the middle of a word.
4655
4656 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4657
4658         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4659           bug #79820.
4660
4661 2006-11-06  Jackson Harper  <jackson@ximian.com>
4662
4663         * TreeView.cs: Can't use the VisibleCount property when setting
4664         scrollbar heights, because this doesn't take into account whether
4665         or not the horz scrollbar just came visible.
4666
4667 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4668
4669         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4670         activated.  Fixes #79369, #79832.
4671
4672 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4673
4674         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4675           had to remove support for links that point to a directory. FileInfo
4676           returns no usefull information (means, the directory they point to)
4677           for such links. Replaced some empty string ("") with String.Empty.
4678
4679 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4680
4681         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4682         NullReferenceException when attempting to remove node that is not in
4683         collection. Throw NullReferenceException when null is passed to 
4684         Remove. Allow first element of the collection to be removed. Fixes
4685         bug #79831.  In GetEnumerator ().Current return null if positioned 
4686         before the first element of the collection. In GetEnumerator ().Reset,
4687         position before first element of the collection.
4688
4689 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4690
4691         * PropertyGrid.cs: To match MS, remove default title and description
4692         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4693         buttons.
4694
4695 2006-11-04  Chris Toshok  <toshok@ximian.com>
4696
4697         * Theme.cs: add a Clamp method, just for kicks.
4698
4699         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4700
4701 2006-11-04  Chris Toshok  <toshok@ximian.com>
4702
4703         * Form.cs: if the form isn't visible, Close() does nothing.
4704
4705 2006-11-03  Chris Toshok  <toshok@ximian.com>
4706
4707         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4708         Hide it.
4709         (WndProc): don't Dispose after handling the WM_CLOSE message.
4710
4711         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4712         them as such, instead of using casts from Control to Form.  Also,
4713         don't Dispose of the modal dialog when we fall out of the loop -
4714         Close() it instead.
4715
4716         fixes bug #79813.
4717
4718 2006-11-03  Chris Toshok  <toshok@ximian.com>
4719
4720         * Control.cs (Dispose): only go through the dispose thing if we're
4721         @disposing, and we haven't already been disposed.  Fixes bug
4722         #79814.
4723
4724         * Form.cs: no reason to call "base.Dispose()" here instead of
4725         "Dispose()".
4726
4727 2006-11-03  Mike Kestner  <mkestner@novell.com>
4728
4729         * ComboBox.cs : use ToString instead of casts in AddItem for
4730         sorting functionality.  Fixes #79812.
4731
4732 2006-11-03  Chris Toshok  <toshok@ximian.com>
4733
4734         * Application.cs: pave the way for actually using the thread
4735         exception dialog.  it's ifdefed out at the moment.
4736
4737 2006-11-03  Chris Toshok  <toshok@ximian.com>
4738
4739         * ThreadExceptionDialog.cs: until we get a better layout, actually
4740         hide the details textbox and label when we shouldn't see them.
4741
4742 2006-11-03  Jackson Harper  <jackson@ximian.com>
4743
4744         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4745         multiline textboxes anymore.  This method also determines the
4746         width/height of a textboxes canvas area.
4747         - Sorta a revert of the last patch.  For multiline just position
4748         the controls, then bail.  This way the scrollbar width won't be
4749         altered.
4750
4751 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4752
4753         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4754         it dont need.  Fixes #79537.
4755
4756 2006-11-02  Jackson Harper  <jackson@ximian.com>
4757
4758         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4759         send the status after firing the DndOver event.
4760
4761 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4762
4763         * TrackBar.cs: Now orientation only switches height / width if
4764         the control's handle is created (Win32 does it like this). Also 
4765         fixed a typo in ToString() for a test to pass, changed the 
4766         exception thrown in set_LargeChange and set_SmallChange to 
4767         match Win32 behaviour, and added TrackBar tests to the unit 
4768         tests.
4769
4770 2006-11-02  Chris Toshok  <toshok@ximian.com>
4771
4772         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4773         not _NET_WM_STATE_NO_TASKBAR.
4774
4775 2006-11-02  Jackson Harper  <jackson@ximian.com>
4776
4777         * TextControl.cs: Increment count by one, since in the update view
4778         count - 1 is used.
4779
4780 2006-11-02  Jackson Harper  <jackson@ximian.com>
4781
4782         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4783         the mouse is in the client rectangle (duh).
4784
4785 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4786         
4787         * TrackBar.cs: Fixed trackbar jumping around when clicking
4788         on it - the trackbar was not detecting correctly at which
4789         side of the thumb the click was done. (fixes #79718)
4790
4791 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4792
4793         * ListBox.cs: scroll visible area when change SelectedIndex to
4794         a non visible area.  Fixes #79481.
4795
4796 2006-11-01  Jackson Harper  <jackson@ximian.com>
4797
4798         * TextControl.cs: When replacing the selection move the selection
4799         start/end/anchor to the end of the new text.
4800
4801 2006-11-01  Jackson Harper  <jackson@ximian.com>
4802
4803         * XplatUIWin32.cs: When setting the parent change the controls
4804         visibility to it's visibility flag, not to it's old parents
4805         visibility (.Visible walks the parent chain).
4806
4807 2006-11-01  Chris Toshok  <toshok@ximian.com>
4808
4809         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4810         XSetTransientForHint fix breaks paint .net's tool windows.  more
4811         work needed for that one.
4812
4813 2006-11-01  Chris Toshok  <toshok@ximian.com>
4814
4815         * ScrollBar.cs: throw ArgumentException instead of Exception in
4816         LargeChange/SmallChange setters.  fixes unit tests.
4817
4818 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4819
4820         * ContainerControl.cs: reverted rev.67183 (which was itself
4821         a reversion of rev.66853... eh).
4822         
4823         * Control.cs: Fixes Reflector hang by changing Focus() call
4824         to what it was before rev.66643 (calling Select() here sets 
4825         ActiveControl, which in some situations calls back Focus and 
4826         eventually does a stack overflow). Temp fix.    
4827         Changes to GetNextControl() to not look for children to select when
4828         parent cannot be selectable (so it looks for siblings instead)  
4829         
4830 2006-10-31  Mike Kestner  <mkestner@novell.com>
4831
4832         * CheckedListBox.cs : off by one error in returned index from
4833         ObjectCollection.Add.  Fixes #79758.
4834
4835 2006-10-31  Chris Toshok  <toshok@ximian.com>
4836
4837         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4838         calls for the textbox/spinner, to keep from recursing to the point
4839         where we crash.  Fixes #79760.
4840
4841 2006-10-31  Chris Toshok  <toshok@ximian.com>
4842
4843         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4844         null/"" value, just return.  matches ms's behavior and fixes some
4845         failing tests.
4846
4847 2006-10-31  Chris Toshok  <toshok@ximian.com>
4848
4849         * Control.cs (set_Capture): make a logic a little easier to
4850         follow.
4851
4852         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4853         if it's being destroyed.  A necessary fix surely, but a bandaid
4854         also, to fix the stuck capture problem in bug #78413.
4855
4856 2006-10-31  Chris Toshok  <toshok@ximian.com>
4857
4858         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4859         convention of clearing hwnd.ClientRect when we set the
4860         width/height (so it'll be recalculated by Hwnd).
4861
4862 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4863
4864         * ContainerControl.cs: reversed Contains check from
4865         ActiveControl due to hanging problems. This fix
4866         partly regresses #79667 (button does not have
4867         initial focus), so this might be a symptom for 
4868         a larger parenting problem (set_ActiveControl
4869         is being called but the child control does
4870         not have the parent set yet?)   
4871         
4872 2006-10-31  Mike Kestner  <mkestner@novell.com>
4873
4874         * MenuAPI.cs : fix keynav when menu is click activated.
4875
4876 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4877
4878         * ToolStrip*: Version 0.2.
4879
4880         * MenuStrip.cs: Version 0.1.
4881
4882         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4883
4884 2006-10-30  Chris Toshok  <toshok@ximian.com>
4885
4886         [ fixes the oversized notify icon issue in bug #79745 ]
4887         
4888         * NotifyIcon.cs: scale the icon down to the size we're given by
4889         the XplatUI layer (this would be faster if we did it once instead
4890         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4891         since it's never invoked.
4892
4893         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4894         pixels high by default, so let's hardcode our systray icon to that
4895         size.  The SYSTEM_TRAY protocol should really have a way for
4896         client apps to query for the correct icon size.. but oh well.  A
4897         couple of patches to deal with the screwy client_window ==
4898         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4899         instance, and also make sure we don't XSelectInput twice).
4900
4901 2006-10-30  Chris Toshok  <toshok@ximian.com>
4902
4903         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4904         recreating forms.  Control recreation is the bane of my existence.
4905         Fix it in a way that keeps everyone happy.
4906
4907 2006-10-30  Chris Toshok  <toshok@ximian.com>
4908
4909         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
4910         just non-CHILD ones.  otherwise sometimes scrollbars end up with
4911         client_windows not being resized to the proper size (ReportBuilder
4912         shows this extremely well).
4913
4914 2006-10-30  Chris Toshok  <toshok@ximian.com>
4915
4916         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
4917         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
4918         showing up in the gnome taskbar.  Fixes bug #79790.
4919
4920 2006-10-30  Chris Toshok  <toshok@ximian.com>
4921
4922         * ApplicationContext.cs: guard against a NRE.
4923
4924         * Application.cs: null out the old MainForm for the context, so we
4925         don't try to use it again once it's disposed.  Fixes bug #79783.
4926
4927 2006-10-30  Chris Toshok  <toshok@ximian.com>
4928
4929         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
4930         BindingContext, set the data source directly, otherwise do the
4931         lazy approach - the actual ListManager will be created when we get
4932         a BindingContext. Fixes bug #79700.
4933
4934 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4935
4936         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
4937           XplatUIX11.cs: Remove old 2 parameter SetVisible.
4938
4939         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
4940
4941 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4942
4943         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
4944         of SetVisible that allows a window to be shown, but not activated.
4945         This is needed on Windows for MenuStrip, and can probably be used
4946         with MainMenu and ComboBox to fix the focus stealing issues on
4947         Windows.
4948
4949         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
4950
4951 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
4952
4953         * PictureBox.cs: Fix the output of the ToString method.
4954
4955 2006-10-29  Chris Toshok  <toshok@ximian.com>
4956
4957         * Control.cs (get_TopLevelControl): fix bug #79781.
4958
4959 2006-10-29  Chris Toshok  <toshok@ximian.com>
4960
4961         * ListControl.cs (set_DataSource): throw Exception here, not
4962         ArgumentException, to match MS behavior.
4963
4964 2006-10-29  Chris Toshok  <toshok@ximian.com>
4965
4966         * Form.cs: remove the try-catch's around calls to GetWindowState.
4967         We can just check the return value.
4968
4969         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
4970         Instead return -1.
4971
4972         * XplatUI.cs: Add note about additional return value for
4973         GetWindowState.
4974
4975 2006-10-29  Chris Toshok  <toshok@ximian.com>
4976
4977         * Control.cs (CreateHandle): when we create our handle, we also
4978         create the handles of our child controls.  Fixes one of the
4979         Control unit tests (CH11).
4980
4981 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4982
4983         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
4984
4985 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4986
4987         * ThemeClearlooks.cs: A little speedup.
4988
4989 2006-10-27  Chris Toshok  <toshok@ximian.com>
4990
4991         * Control.cs: implement Control.FromChildHandle in a way that
4992         matches the docs (and fixes the failed test.)
4993
4994 2006-10-27  Chris Toshok  <toshok@ximian.com>
4995
4996         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
4997         comments).
4998
4999         * DataGrid.cs: implement ResetForeColor such that the tests
5000         succeed.
5001         
5002 2006-10-27  Chris Toshok  <toshok@ximian.com>
5003
5004         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5005         being set to "".  Fixes bug #79759.
5006
5007 2006-10-27  Jackson Harper  <jackson@ximian.com>
5008
5009         * TextControl.cs: We need to clear the entire selection area when
5010         setting the start, otherwise multiline selections are still
5011         visible.
5012
5013 2006-10-26  Chris Toshok  <toshok@ximian.com>
5014
5015         * PropertyGridView.cs: 
5016
5017         - ifdef all the code specific to the double
5018         buffer case, and provide some alternatives in the non-doublebuffer
5019         code, which makes heavy use of XplatUI.ScrollWindow to move things
5020         around without having to invalidate (and cause flicker).  There
5021         are still some drawing problems in the non-doublebuffered case, so
5022         DOUBLEBUFFER is defined by default.
5023
5024         - Fix the way dropdowns are handled.  now we explicitly watch for
5025         the events which might cause the dropdown to close, and break out
5026         of the nested event loop there.  This gets rid of all Capture
5027         code, at the expense of the Msg special casing.  Seems to work,
5028         though, and fixes bug #79743.
5029
5030 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5031         * Control.cs: SetIsRecreating now recreates implicitly added
5032         child controls as well. Finally fixes #79629. The flag passed to 
5033         SetIsRecreating has also been removed since it wasn't used.
5034         
5035 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5036
5037         * PageSetupDialog.cs: Clean some code, fix some bits, 
5038         add some checks, and add a printer sub-dialog.
5039
5040 2006-10-26  Chris Toshok  <toshok@ximian.com>
5041
5042         * PropertyGrid.cs: make set_SelectedObject call
5043         set_SelectedObjects, and move the duplicate logic to the
5044         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5045
5046         * PropertyGridView.cs: hide the textbox when we get a
5047         SelectedObjectsChanged event.
5048
5049         Fixes bug #79748.
5050
5051 2006-10-26  Chris Toshok  <toshok@ximian.com>
5052
5053         * PropertyGridView.cs: deal with the type converter not supporting
5054         GetStandardValues() or GetStandardValues() returning null, which
5055         is does in the default case.  Fixes #79742.
5056
5057 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5058
5059         * CheckedListBox.cs: nunit no longer crashes when selecting 
5060         Project/Edit menu option
5061         
5062 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5063
5064         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5065         is no menu selected. fixes #79739
5066
5067 2006-10-25  Chris Toshok  <toshok@ximian.com>
5068
5069         * PropertyGridView.cs: factor out the splitter invalidation code
5070         into the SplitterPercent setter, and for kicks implement the
5071         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5072         amount in either direction.
5073
5074 2006-10-25  Chris Toshok  <toshok@ximian.com>
5075
5076         * PropertyGridView.cs: do some cleanup of the brush used to draw
5077         text - read only fields should be grayed out.  not sure how to do
5078         this with the textbox, though.  but the textbox's should also be
5079         readonly now at least.  Also, hide/show the textbox when resizing
5080         the control.
5081         
5082         * CursorConverter.cs: use System.Reflection when getting the
5083         properties of Cursors, as TypeDescriptor.GetProperties isn't
5084         returning static properties.
5085
5086 2006-10-25  Chris Toshok  <toshok@ximian.com>
5087
5088         * PropertyGridView.cs: factor out the up/down handling, and reuse
5089         it for page up/down.  also add End/Home support.
5090
5091 2006-10-25  Chris Toshok  <toshok@ximian.com>
5092
5093         * PropertyGridView.cs:
5094
5095         - ensure the selected grid item is visible in the scrolled area,
5096         fixes bug #79572.
5097
5098         - fix Keys.Down handling when you're on the last item in the
5099         propertygrid.
5100
5101 2006-10-25  Mike Kestner  <mkestner@novell.com>
5102
5103         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5104         clicks too.  Fixes #79725.
5105
5106 2006-10-24  Chris Toshok  <toshok@ximian.com>
5107
5108         * PropertyGrid.cs: use property.Converter instead of
5109         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5110         TypeConverters declared on the property as well as on the
5111         PropertyType.  Fixes bug #79678.
5112
5113 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5114
5115         * MimeIcon.cs, Mime.cs:
5116           Fallback to the default platform handler if no shared mime info
5117           stuff exists (fixes #79693).
5118
5119 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5120         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5121         from previous fix (duh).
5122
5123 2006-10-20  Chris Toshok  <toshok@ximian.com>
5124
5125         * PropertyGridView.cs: the dropdown should be MIN(number of items
5126         in list, 15).  Fixes #79551.
5127
5128 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5129         Fixes #79384, #79394, #79652, #79667
5130         * Application.cs: 
5131         
5132         - Modal windows are now destroyed in the proper order for windows
5133         
5134         * ContainerControl.cs:
5135         
5136         - ActiveControl setter has more conditions on when to return:
5137                 - if we're reselecting the active control, but it actually
5138                 didn't have focus (window hidden or some such), it runs
5139                 - if the active control being selected doesn't actually 
5140                 exist in the container, it returns
5141         
5142         * Form.cs
5143         
5144         - The ShowDialog now gets the current form as the owner when
5145         invoking without parameters, and correctly activates the owner 
5146         when returning
5147         
5148         * MessageBox.cs
5149         
5150         - MessageBox now catches the Escape key to exit
5151
5152 2006-10-20  Chris Toshok  <toshok@ximian.com>
5153
5154         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5155         most of bug #79676):
5156
5157         - you can navigate around the property grid with the arrow keys.
5158
5159         - the dropdown is sized properly when the pg has a vertical
5160         scrollbar.
5161
5162         - fix the indentation for subentries, and properly select the
5163         entire label rect.
5164
5165         - fix the gray bar's drawing (only draw it to the last element,
5166         not for the height of the control.  Also make sure we draw that
5167         last horizontal grid line.
5168
5169         - use the same mechanism the datagrid uses wrt the editing textbox
5170         when scrolling/resizing/etc.  Namely, we hide it first, do the
5171         operation, then show it again (if it's still visible).
5172         
5173         - aggressively remove a lot of unnecessary refreshes (and also
5174         calls to Invalidate(). call more limited variants, and only redraw
5175         what we need.)
5176         
5177         * PropertyGrid.cs:
5178
5179         - when we're populating the merged collection, fill in the UI
5180         parent with either the passed in item, or the category item we
5181         create.
5182
5183         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5184
5185         * GridItem.cs: drop some fully qualified names.
5186         
5187         * GridEntry.cs: add a "UIParent", which is basically the parent
5188         treenode.
5189
5190         * GridItemCollection.cs: add an IndexOf method.
5191
5192 2006-10-20  Mike Kestner  <mkestner@novell.com>
5193
5194         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5195         a working win32 NC invalidation mechanism, we can't invalidate
5196         menus.  [Fixes #79705]
5197
5198 2006-10-20  Mike Kestner  <mkestner@novell.com>
5199
5200         * ListBox.cs : don't update the VScrollbar if the list is empty,
5201         just hide it.  [Fixes #79692]
5202
5203 2006-10-20  Jackson Harper  <jackson@ximian.com>
5204
5205         * RichTextBox.cs: Handle some special chars better, and don't skip
5206         the entire group when we encounter a special char that we don't
5207         handle correctly.
5208
5209 2006-10-18  Chris Toshok  <toshok@ximian.com>
5210
5211         * PropertyGridView.cs: address a number of issues from bug #79676,
5212         mostly of the cosmetic variety.
5213
5214         - The highlight rectangle for indented items not extends all the
5215         way to the left.
5216
5217         - Indented items aren't indented so much.
5218
5219         - the dropdown is properly sized width-wise if the pg has a
5220         vertical scrollbar.
5221
5222 2006-10-18  Chris Toshok  <toshok@ximian.com>
5223
5224         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5225         systray stuff is rather convoluted to begin with.
5226
5227         systray icons are a single window for some reason (that I haven't
5228         figured out yet), and for them, client_window == whole_window.
5229         Given the way the tests are structured elsewhere to determine
5230         which paints are pending (client vs. nc), that situation will
5231         always yield PAINT, not NCPAINT.  So, if we have a pending
5232         nc_expose and no pending expose, remove the hwnd from the paint
5233         queue, and also set nc_expose_pending to false, to keep us from
5234         blocking further expose's adding the hwnd to the paint queue.
5235
5236         phew.  like i said, a rather convoluted change.  Fixes the
5237         notifyicon repaint issues in bug #79645.
5238
5239 2006-10-18  Chris Toshok  <toshok@ximian.com>
5240
5241         * Form.cs: when getting the backcolor of the form, don't get
5242         base.BackColor, as this allows parents to influence the background
5243         color.  This breaks mdi forms.  Instead, if the background_color
5244         is empty, return the default.
5245
5246 2006-10-18  Chris Toshok  <toshok@ximian.com>
5247
5248         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5249         to being private instead of internal static.
5250
5251         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5252         crap, it wasn't working for more deeply nested controls anyway,
5253         and we already have the is_recreating flag - use that instead.
5254         Before calling DestroyHandle in RecreateHandle, recurse through
5255         the control tree setting it to true.  this returns the recreate
5256         code to much of its original simplicity, while now guaranteeing we
5257         actually recreate everything we're supposed to.  This change gets
5258         fyireporting actually showing mdi children.
5259
5260 2006-10-17  Chris Toshok  <toshok@ximian.com>
5261
5262         * Form.cs: remove some debug spew, and collapse some duplicate
5263         code at the end of SetClientSizeCore.
5264
5265         * XplatUIX11.cs: 
5266         - add some more debug spew here too wrt Destroy handling.
5267         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5268         in Control's handling of WM_DESTROY.
5269         - Remove the handling of zombie window DestroyNotifies from the
5270         event loop - we don't need it.  Now the only DestroyNotifies we
5271         actually handle are ones generated by X.
5272         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5273         match gtk's (functioning) handling of this. This keep metacity
5274         from leaving droppings in the form of wm borders with no window
5275         contents all over the place.
5276
5277         * Control.cs:
5278         - add a bunch of debug spew wrt control recreation.
5279         - fix a bug where we weren't tracking Visible properly on
5280         recreated hwnds.
5281         - fixed the WM_PAINT double buffer handling to support re-entrant
5282         calls (yes, i know it's gross, but it's happening to us).
5283
5284 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5285         * ThemeWin32Classic.cs: changed drawing of selected days
5286         to make them look better.
5287
5288 2006-10-16  Chris Toshok  <toshok@ximian.com>
5289
5290         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5291         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5292
5293         * XplatUIX11.cs: move away from using hwnd.client_dc and
5294         hwnd.non_client_dc and on to a stack of dc's (and in window's
5295         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5296         without puking or not disposing of Graphics objects.
5297
5298         * XplatUIOSX.cs: same.
5299
5300         * XplatUIWin32.cs: same.
5301
5302 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5303
5304         * FileDialog.cs: Don't call on_directory_changed inside
5305           OnSelectedIndexChanged (it changes the SelectedIndex too).
5306           Instead move it to OnSelectionChangeCommitted.
5307
5308 2006-10-13  Chris Toshok  <toshok@ximian.com>
5309
5310         * XplatUIX11.cs: more Destroy work.  the current code does the
5311         following things, in order:
5312
5313         1. Enumerates all handles of all controls at or below the one
5314         being destroyed, in pre-order.  As it is doing this, it marks the
5315         handles as zombie and clears all references to them.
5316         
5317         2. calls XDestroyWindow on the window passed in.
5318
5319         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5320         list.
5321
5322 2006-10-13  Chris Toshok  <toshok@ximian.com>
5323
5324         * XplatUIX11.cs: set hwnd.zombie to true before calling
5325         SendMessage (WM_DESTROY).  this keeps us from marking the new
5326         window a zombie, and also keeps us from calling sendmessage at
5327         all.
5328
5329 2006-10-13  Jackson Harper  <jackson@ximian.com>
5330
5331         * TextControl.cs: Do not show the caret and selection at the same
5332         time.  Reduces ugliness by 35%.
5333
5334 2006-10-13  Chris Toshok  <toshok@ximian.com>
5335
5336         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5337         zombie after we do the recursive call, so we actually do call
5338         SendMessage on the children controls.
5339         (GetMessage): if we find a pending paint event for a zombie hwnd,
5340         remove the hwnd from the paint queue, or else it will always be
5341         there (and we'll effectively loop infinitely)
5342
5343 2006-10-13  Mike Kestner  <mkestner@novell.com>
5344
5345         * MenuItem.cs : add Selected format under keynav too.
5346         Fixes #79528.
5347
5348 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5349
5350         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5351         implementation and that of MS.
5352
5353 2006-10-13  Chris Toshok  <toshok@ximian.com>
5354
5355         * Control.cs (OnInvalidated) only futz with the invalid_region if
5356         the control is double buffered.  this fixes the apparent hang in
5357         the ListView unit tests.  Someone needs to make the
5358         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5359
5360 2006-10-13  Chris Toshok  <toshok@ximian.com>
5361
5362         * PropertyGridView.cs:
5363
5364         - do a little refactoring so that only one place calls
5365         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5366         else call that.  Also make it Refresh, since there are redraw bugs
5367         otherwise (we should take a look at that...)
5368
5369         - do a little more refactoring work to share the body of code
5370         involved with the drop down.  it was duplicated in the code
5371         dealing with the listbox handling and in the code dealing with the
5372         UITypeEditors.
5373
5374         - add a Capture to the dropdown form's control once it's
5375         displayed, and add a MouseDown handler that checks to make sure
5376         the position is inside the control.  If it's not, close the
5377         dropdown.  This fixes #78190.
5378
5379         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5380         if the value is different than the initial value.
5381         
5382 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5383
5384         * Control.cs: see #78650
5385         - Fixed GetNextControl for several cases:
5386                 - Changed FindFlatForward to return 
5387                 correct sibling control when more than one
5388                 control has same TabIndex as the currently 
5389                 focused one.
5390                 - Changed FindFlatBackward to loop children
5391                 from last to first and apply same logic as in
5392                 FindFlatForward
5393                 - Changed FindControlForward to search for
5394                 children when control is not a container
5395                 but has children, or search for siblings if
5396                 control is a container...
5397                 - Changed FindControlBackward   to continue
5398                 searching for child controls when hitting 
5399                 Panel-like parents
5400                 
5401         - Fixed Focus method to update ActiveControl
5402         (FocusTest.FocusSetsActive failure)
5403         
5404         * TabControl.cs:
5405         - Focus rectangle now refreshes when gaining
5406         or losing focus
5407         - Removed grab for Tab key on IsInputKey that 
5408         was keeping tab navigation from working (#78650)
5409
5410 2006-10-13  Chris Toshok  <toshok@ximian.com>
5411
5412         * PropertyGridView.cs:
5413         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5414         SelectedObjects.
5415
5416         - Deal with GridItem.Value == null a few places.
5417
5418         * PropertyGrid.cs: 
5419         - replace the PopulateGridItemCollection with a pair of methods
5420         which compute the intersection of all the properties in the
5421         SelectedObjects array.  Fixes #79615.
5422
5423         - Throw ArgumentException from set_SelectedObjects if there's a
5424         null in the array.
5425
5426         - Add GetTarget method which can be used to traverse up the
5427         GridItem.Parent chain.  It depends on the assumption that
5428         selected_objects for different GridEntries are always in the same
5429         order (a safe assumption).  Use this method and loop over all the
5430         selected objects in the entry when calling RemoveValueChanged and
5431         AddValueChanged.
5432         
5433         * GridEntry.cs: Make this handle multiple selected objects.
5434         .Value returns null if not all the selected objects share the same
5435         value.
5436
5437 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5438         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5439           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5440           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5441           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5442           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5443         add additional functionality.
5444
5445 2006-10-12  Mike Kestner  <mkestner@novell.com>
5446
5447         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5448         * HelpProvider.cs : new ToolTipWindow ctor sig.
5449         * ToolTip.cs : remove ToolTip param from Window sig since it is
5450         not used.
5451         * ToolBar.cs : add tooltip support.  Fixes #79565.
5452
5453 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5454
5455         * ComboBox.cs: move the events in set_SelectedIndex to 
5456         after the call to HighlightIndex in order to avoid 
5457         possible recursion and subsequent problems with the call
5458         to HighlightIndex and include a range check in 
5459         set_HighlightIndex. Fixes #79588
5460         
5461 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5462
5463         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5464         to ui thread's settings instead of sunday. 
5465         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5466
5467 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5468
5469         * DateTimePicker.cs
5470         * MonthCalendar.cs
5471         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5472         and implement missing functionality (selecting different parts 
5473         of the date and edit them individually with the keyboard).
5474         
5475 2006-10-11  Chris Toshok  <toshok@ximian.com>
5476
5477         * Control.cs (OnInvalidated): fix NRE relating to last change.
5478
5479 2006-10-11  Chris Toshok  <toshok@ximian.com>
5480
5481         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5482         atoms in _NET_WM_STATE here if the window is maximized.  We need
5483         to do this because we're *replacing* the existing _NET_WM_STATE
5484         property, so those atoms will be lost otherwise, and any further
5485         call to GetWindowState will return Normal for a window which is
5486         actually maximized.  Fixes #79338.
5487
5488 2006-10-11  Jackson Harper  <jackson@ximian.com>
5489
5490         * TextControl.cs: Special case for setting selection end to
5491         selection start, we basically kill the anchor.
5492         - some todo comments.
5493
5494 2006-10-11  Chris Toshok  <toshok@ximian.com>
5495
5496         * Control.cs: switch to using an "invalid_region" to track which
5497         parts of the image buffer need updating.  This is more code than
5498         the simple fix from r66532.  That version just attempted to always
5499         fill the entire buffer on redraw, which turns out to be
5500         inefficient when invalidating small rectangles.  This version
5501         simply adds the invalid rectangle to the invalid region.  When we
5502         get any WM_PAINT message we see if it can be filled using the
5503         image buffer, and if it can't (if the paint event's clip rectangle
5504         is visible in the invalid region) we first fill the image buffer.
5505         So, the image buffer is still a cache, we just fill it lazily.
5506
5507         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5508         need it any longer.
5509
5510 2006-10-11  Chris Toshok  <toshok@ximian.com>
5511
5512         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5513         well as size after calling XMoveResizeWindow.  This keeps us from
5514         ignoring future SetWindowPos calls.  Fixes the disappearing
5515         DateTimePicker in the ToolBarDockExample from bug #72499.
5516
5517 2006-10-11  Chris Toshok  <toshok@ximian.com>
5518
5519         * TextBoxBase.cs: reorder things a bit when it comes to
5520         resizing-causing-recalculation.  we were recalculating the
5521         document when our position was changed, which shouldn't happen.
5522         We only care about size changes.  Clear up some more redundant
5523         recalculation calls while I'm at it.  This makes the toolbar dock
5524         example snappy when you're just dragging toolbars around (since it
5525         causes a relayout whenever you move one.)
5526
5527 2006-10-11  Chris Toshok  <toshok@ximian.com>
5528
5529         * ToolBarButton.cs (get_Rectangle): this only returns
5530         Rectangle.Empty if Visible == false, or Parent == null.
5531         Parent.Visible doesn't matter.
5532
5533 2006-10-10  Chris Toshok  <toshok@ximian.com>
5534
5535         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5536         by .net 1.1, so switch to an internal method instead.
5537
5538 2006-10-10  Chris Toshok  <toshok@ximian.com>
5539
5540         * Control.cs (WM_PAINT): when a control is double buffered we draw
5541         initially to the ImageBuffer and then copy from there.  But when a
5542         parent control which has child controls is double buffered, the
5543         initial drawing doesn't encompass the entire ClientRectangle of
5544         the parent control, so we end up with uninitialized bits (this is
5545         easily seen by dragging the top toolbar in
5546         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5547         manually set the ClipRectangle of the paint_event (only the one we
5548         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5549         of the nastiness in bug #72499.
5550
5551         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5552         which we use in Control.cs's WM_PAINT handling.
5553
5554 2006-10-10  Jackson Harper  <jackson@ximian.com>
5555
5556         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5557
5558 2006-10-10  Chris Toshok  <toshok@ximian.com>
5559
5560         * Cursor.cs: Apply a slightly different patch to the one suggested
5561         in #79609.
5562
5563 2006-10-10  Jackson Harper  <jackson@ximian.com>
5564
5565         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5566         not the parent form.
5567         * TextControl.cs: use difference in old line count vs new count to
5568         calculate how many lines were added, this takes into account soft
5569         line breaks properly.
5570
5571 2006-10-10  Chris Toshok  <toshok@ximian.com>
5572
5573         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5574         rectangle located at 0,0 and the size of the text.  Use
5575         ClientRectangle instead.  This fixes rendering of non-left aligned
5576         link labels.
5577
5578 2006-10-10  Jackson Harper  <jackson@ximian.com>
5579
5580         * TextBoxBase.cs: When we set the selection start position the
5581         caret.
5582         * TextControl.cs: Need to update the caret when we decrement it to
5583         zero.
5584         - Make sure that the selection_visible flag gets reset to false if
5585         the selection isn't visible.  Before this you could get it set to
5586         visible by changing the selection start, then changing the end to
5587         equal the start.
5588
5589 2006-10-09  Jackson Harper  <jackson@ximian.com>
5590
5591         * TreeView.cs: Don't update scrollbars when we aren't visible.
5592         * TreeNodeCollection.cs: Only need to update scrollbars if being
5593         added to an expanded visible node or the root node.
5594
5595 2006-10-09  Chris Toshok  <toshok@ximian.com>
5596
5597         * XplatUIX11.cs (SendMessage): fix NRE.
5598
5599 2006-10-09  Jackson Harper  <jackson@ximian.com>
5600
5601         * TextBoxBase.cs: Implement horizontal autoscrolling.
5602         * TextControl.cs: Add a movement types that allows moving forward
5603         and backwards without wrapping.
5604
5605 2006-10-09  Mike Kestner  <mkestner@novell.com>
5606
5607         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5608         with focus "expansion" of labels.  Fixes #79532 and then some.
5609         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5610         when wrapping.
5611
5612 2006-10-09  Jackson Harper  <jackson@ximian.com>
5613
5614         * TextBoxBase.cs: Set the default max values to MaxValue since
5615         we use the scrollbar for autoscrolling and the default value is
5616         100.  If we don't do this the caret won't keep up with typing
5617         after about 18 characters.
5618         * TextControl.cs: Make sure the selection is offset by the
5619         viewport x.  This fixes selection when using auto scrolling.
5620
5621 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5622         
5623         * Form.cs: The active control should be selected after the 
5624         OnLoad so that any child control initialization that affects
5625         the selection is done. Fixes #79406
5626
5627 2006-10-06  Chris Toshok  <toshok@ximian.com>
5628
5629         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5630         to have no evil effects.
5631
5632         - Stop selecting StructureNotifyMask on non-toplevel windows.
5633
5634           The only way children should be resized is by using the SWF api,
5635           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5636           Toplevel windows can be interacted with via the window manager,
5637           and so we keep the input mask there.
5638
5639           The other event StructureNotifyMask gives us (that we care
5640           about) is DestroyNotify.  The code is already structured such
5641           that it assumes we won't be getting a DestroyNotify event for
5642           the window we pass to XDestroyWindow (which is what
5643           StructureNotifyMask is supposed to guarantee.)  So, that code
5644           shouldn't be affected by this either.
5645
5646         - Stop selecting VisibilityChangeMask altogether.
5647
5648           We weren't doing anything with the resulting events anyway.
5649         
5650         This vastly reduces the number of X requests and events we see
5651         when resizing/laying out a large ui.
5652
5653 2006-10-06  Chris Toshok  <toshok@ximian.com>
5654
5655         * ScrollableControl.cs (DisplayRectangle): we need to take into
5656         account the DockPadding regardless of whether or not auto_scroll
5657         == true.  rework this slightly to this effect, and fix bug #79606,
5658         and part of #72499 (you can now see the drag handles and drag
5659         toolbars around).
5660
5661 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5662
5663         * ListViewItem.cs: Collections of selected and checked items are now
5664         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5665         we mark the collection "dirty".
5666         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5667         to only clear SelectedItems when a new item is selected and MultiSelect
5668         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5669         event of ListViewItemCollection, and mark its list dirty whenever
5670         that event is fire. This allows us to return selected/checked items 
5671         in the same order as they are in the Items collection. This matches
5672         the MS behavior.
5673
5674 2006-10-06  Chris Toshok  <toshok@ximian.com>
5675
5676         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5677         right mouse clicks.  Fixes bug #79593.
5678
5679 2006-10-06  Chris Toshok  <toshok@ximian.com>
5680
5681         * Splitter.cs: doh, fix splitters that don't want to cancel the
5682         movement when you drag them.  Also, impose the limits on the
5683         values we send to the SplitterMovingEvent.  Fixes #79598.
5684
5685 2006-10-06  Jackson Harper  <jackson@ximian.com>
5686
5687         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5688         since we use this for auto scrolling also.
5689
5690 2006-10-05  Chris Toshok  <toshok@ximian.com>
5691
5692         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5693         beginning to think that most datagrid column types don't need this
5694         method.  Fixes bug #79392.
5695
5696 2006-10-05  Chris Toshok  <toshok@ximian.com>
5697
5698         * DataGrid.cs: move back to a more lazy scheme for creating the
5699         CurrencyManager, so we aren't updating it every time you set
5700         either DataSource or DataMember.  Also, don't call
5701         RecreateDataGridRows if the currency manager hasn't changed.
5702
5703 2006-10-05  Chris Toshok  <toshok@ximian.com>
5704
5705         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5706         emitted, SelectedIndex should already be updated.  Fixes bug
5707         #78929.
5708
5709 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5710
5711         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5712           ToolStripTextBox.cs: Initial commit.
5713         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5714
5715 2006-10-05  Jackson Harper  <jackson@ximian.com>
5716
5717         * TabControl.cs: We need to invalidate the tab control area when
5718         new ones are added (duh).
5719
5720 2006-10-03  Chris Toshok  <toshok@ximian.com>
5721
5722         * Form.cs (ProcessDialogKey): if the focused control is in this
5723         form and is a button, call its PerformClick method here.  Fixes
5724         #79534.
5725
5726 2006-10-04  Jackson Harper  <jackson@ximian.com>
5727
5728         * TabPage.cs: Ignore setting of Visible, and add an internal
5729         method for setting the controls visibility.  TabPage's Visible
5730         property is a little strange on MS, this seems to make us
5731         compatible, and fixes cases where people set all the tab pages to
5732         visible.
5733         * TabControl.cs: Use the new internal setting on tab pages
5734         visibility.
5735
5736 2006-10-03  Mike Kestner  <mkestner@novell.com>
5737
5738         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5739
5740 2006-10-03  Mike Kestner  <mkestner@novell.com>
5741
5742         * ListView.cs : use is_visible instead of Visible to check if 
5743         scrollbars should be placed/sized.  Also some max_wrap_width
5744         love for LargeIcon view.  [Fixes #79533]
5745
5746 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5747
5748         * TextControl.cs :
5749           Make set_TextAlign() do actually update the align. Fixed #78403.
5750
5751 2006-10-03  Chris Toshok  <toshok@ximian.com>
5752
5753         * DataGrid.cs: fix a crash when switching datasources if the
5754         vertical scrollbar is at someplace other than Value = 0.  Also,
5755         reduce the number of recalculation passes we do in SetDataSource
5756         from 2 to 1.
5757
5758 2006-10-03  Jackson Harper  <jackson@ximian.com>
5759
5760         * TextBoxBase.cs: Move the if value the same bail check up, we
5761         don't want to empty the document if it is already empty, this
5762         seems to severly mess up the caret.  TODO: I should probably fix
5763         the empty statement to update teh caret somehow.
5764
5765 2006-10-03  Chris Toshok  <toshok@ximian.com>
5766
5767         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5768         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5769         reflection, an internal row type, properties on said type, etc.)
5770         will work with our datagrid.  Fixes #79531.
5771
5772 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5773
5774         * FileDialog.cs: Don't crash if a path is not accessible
5775           (System.UnauthorizedAccessException). Fixes #79569.
5776         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5777           a ':' too. Return unknown icon for those paths/files.
5778
5779 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5780
5781         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5782         GetContainerControl returns null.
5783
5784 2006-10-02  Chris Toshok  <toshok@ximian.com>
5785
5786         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5787         call to XGetWindowAttributes instead of "handle".  fixes an X
5788         error using notifyicon after the NotifyIconWindow to Form base
5789         class switch.
5790
5791 2006-10-02  Chris Toshok  <toshok@ximian.com>
5792
5793         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5794         server grab and looping we need to do to get down to the most
5795         deeply nested child window.
5796         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5797         QueryPointer again after the WarpPointer so we can generate a
5798         proper (fake) MotionNotify event to be enqueued in the destination
5799         window's queue.
5800         (GetCursorPos): call QueryPointer.
5801
5802         Fixes #79556.
5803
5804 2006-10-02  Jackson Harper  <jackson@ximian.com>
5805
5806         * NotifyIcon.cs: Derive the notify icon from a form, so things
5807         like FindForm work on it.
5808         - Swallow the WM_CONTEXTMENU message, since that is generated on
5809         mouse down, and context menu is a mouse up kinda guy.  I believe
5810         the correct fix here is probably to make the notify icon entirely
5811         NC area, but this seems to work fine for anyone not manipulating
5812         WndProc.
5813
5814 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5815
5816         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5817           ToolStripItemCollection.cs, ToolStripLabel.cs,
5818           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5819           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5820           Initial implementation.
5821         * TextRenderer.cs: Provide padding to MeasureText.
5822
5823 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5824
5825         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5826         of ButtonBaseAccessibleObject. Fix bug #79552.
5827
5828 2006-10-02  Jackson Harper  <jackson@ximian.com>
5829
5830         * MdiWindowManager.cs: When maximizing use the containers client
5831         rect, not it's bounds, so nc area is accounted correctly.
5832         - Use the parent form's size for the menu position, since the
5833         client isn't always the full form size.
5834
5835 2006-10-01  Chris Toshok  <toshok@ximian.com>
5836
5837         * ScrollableControl.cs: make sure neither right_edge or
5838         bottom_edge are < 0, since they're used as LargeChange for the
5839         horiz/vert scrollbars respectively.  Fixes #79539.
5840
5841 2006-10-01  Chris Toshok  <toshok@ximian.com>
5842
5843         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5844         the xplatuix11 code can cause us to destroy/recreate our handle.
5845
5846         * XplatUIX11.cs
5847         (SystrayAdd):
5848         - this code can be invoked many times for the same Hwnd.  Make
5849           sure we only destroy the client window once (the first time this
5850           method is called).  This fixes bug #79544.
5851         - Remove the call to the improperly bound XSync.  why we had two
5852           bindings to this, I will never know, but this call resulted in
5853           events being discarded from the queue(!).
5854         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5855           not our current state but the state we wish to be in.  So, 0 if
5856           we don't want to be mapped.  Change it to 1.
5857         (SystrayRemove): The XEMBED spec makes mention of the fact that
5858         gtk doesn't support the reparent of client windows away from the
5859         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5860         The only avenue we have for removing systray icons is to destroy
5861         them.  We don't want the handle to go away for good, though, so
5862         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5863         #79545.
5864         
5865 2006-10-01  Chris Toshok  <toshok@ximian.com>
5866
5867         * Form.cs (WndProc): inline the native_enabled variable usage into
5868         the cases in which it's used.  Fixes #79536.
5869
5870 2006-09-29  Mike Kestner  <mkestner@novell.com>
5871
5872         * ListView.cs : toggle the selection state for ctrl clicks in 
5873         multiselect mode. [Fixes #79417]
5874
5875 2006-09-29  Mike Kestner  <mkestner@novell.com>
5876
5877         * ListView.cs : kill CanMultiSelect and refactor the selection
5878         code to support multiselection in the absence of mod keys. Steal
5879         arrow/home/end keys by overriding InternalPreProcessMessage to
5880         restore regressed keynav behavior.
5881         [Fixes #79416]
5882
5883 2006-09-29  Jackson Harper  <jackson@ximian.com>
5884
5885         * MdiClient.cs: Repaint the titlebars when the active window is
5886         changed.
5887
5888 2006-09-29  Chris Toshok  <toshok@ximian.com>
5889
5890         * Application.cs: when entering a runloop with a modal, make sure
5891         the hwnd is enabled.  Fixes #79480.
5892
5893 2006-09-29  Chris Toshok  <toshok@ximian.com>
5894
5895         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5896         when ListManager.CanAddRows == false, bump us back one.
5897
5898         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5899         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5900         using a datagrid, which is not right.
5901         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5902         is an IEditable, but call property_descriptor.SetValue regardless.
5903         fixes #79435.
5904
5905 2006-09-29  Chris Toshok  <toshok@ximian.com>
5906
5907         * DataGridBoolColumn.cs: we need to test equality in the face of
5908         possible null values (as is the case with the default NullValue).
5909         This patch keeps us from crashing in that case.
5910
5911 2006-09-29  Jackson Harper  <jackson@ximian.com>
5912
5913         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
5914         here, since it will get called for every node collection in the
5915         tree. This is now done in the treeview once the sorting is
5916         finished.
5917         * TreeView.cs: Recalculate the visible order, and update the
5918         scrollbars after sorting, set the top nope to the root so that the
5919         recalc actually works.
5920
5921 2006-09-29  Chris Toshok  <toshok@ximian.com>
5922
5923         * LinkLabel.cs: more handling of the default link collection in
5924         the face of LinkArea manipulation.  The default link collection
5925         contains 1 element (start=0,length=-1).  If the user sets LinkArea
5926         to anything and the links collection is the default, clear it.
5927         Then only add the link if its nonempty.  Fixes #79518.
5928
5929 2006-09-29  Chris Toshok  <toshok@ximian.com>
5930
5931         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
5932         piece correctly when we hit a '\n'.  Fixes #79517.
5933
5934 2006-09-29  Chris Toshok  <toshok@ximian.com>
5935
5936         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
5937         change the binding of gdk_init_check to take two IntPtr's, and
5938         pass IntPtr.Zero for both of them.  Fixes #79520.
5939
5940 2006-09-29  Mike Kestner  <mkestner@novell.com>
5941
5942         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
5943         [Fixes #78779]
5944
5945 2006-09-28  Jackson Harper  <jackson@ximian.com>
5946
5947         * XplatUIX11.cs: When translating NC messages make sure we go from
5948         whole window to screen, not client window to screen.
5949         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
5950         method doesn't exist
5951         - Skip over controls that aren't forms when arranging.
5952
5953 2006-09-28  Jackson Harper  <jackson@ximian.com>
5954
5955         * XplatUIWin32.cs: Clip the rect to the parent window.
5956         * XplatUIStructs.cs: Add clipping modes struct.
5957         * InternalWindowManager.cs: New private method that factors title
5958         bar heights in when calculating the pos of an NC mouse message.
5959         - Use SendMessage to force a paint when the form's size is changed
5960         instead of painting the decorations immediately.
5961         - Don't let the NC button click messages get to DefWndProc,
5962         because they will attempt to handle windowing themself, and this
5963         messes up z-order (it will put them in front of the scrollbars).
5964         * XplatUIX11.cs: Make sure that we don't reset window managers if
5965         we already have one (ie the window is an MDI window).
5966
5967 2006-09-28  Chris Toshok  <toshok@ximian.com>
5968
5969         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
5970         menu code really needs going over.
5971
5972 2006-09-27  Chris Toshok  <toshok@ximian.com>
5973
5974         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
5975         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
5976         window is maximizable.  So, we need to make sure that even if we
5977         clear the border/wm frame of those functions, they're still
5978         available (basically, we remove the decoration without removing
5979         the function).  Half the fix for #79338.
5980
5981 2006-09-27  Chris Toshok  <toshok@ximian.com>
5982
5983         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
5984         Fixes bug #79515.
5985
5986 2006-09-27  Chris Toshok  <toshok@ximian.com>
5987
5988         * Splitter.cs: reorder things a bit so that we don't actually
5989         draw/move the splitter until after calling OnSplitterMoving.  This
5990         lets users cancel/disallow the movement by explicitly setting
5991         event.SplitX/SplitY.  Fixes #79372.
5992
5993 2006-09-27  Jackson Harper  <jackson@ximian.com>
5994
5995         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
5996         because it is most likely on a window being destroyed, and that
5997         will give us an X11 error.
5998
5999 2006-09-27  Chris Toshok  <toshok@ximian.com>
6000
6001         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6002         the dropdown button now toggles between showing and hiding the
6003         dropdown.  Also, get rid of dropdown_form_showing and just use
6004         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6005         that part to someone who has handled Capture-fu before.
6006
6007 2006-09-27  Chris Toshok  <toshok@ximian.com>
6008
6009         * DataGrid.cs: return false if alt isn't pressed when '0' is
6010         pressed.  this keeps the '0' key from being swallowed, and fixes
6011         bug #79350.
6012
6013 2006-09-27  Chris Toshok  <toshok@ximian.com>
6014
6015         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6016         Calling Refresh (in response to a scrollbar event) screws up the
6017         scrollbar painting.  Fixes bug #78923.
6018
6019 2006-09-27  Chris Toshok  <toshok@ximian.com>
6020
6021         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6022         then insert into hashtable" blocks threadsafe.
6023
6024 2006-09-27  Chris Toshok  <toshok@ximian.com>
6025
6026         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6027         baseclass's, since otherwise the
6028         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6029         effect.  This gets the close button back in messageboxes.
6030
6031 2006-09-27  Chris Toshok  <toshok@ximian.com>
6032
6033         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6034         flag, not just != 0.  this makes flags that are actually multiple
6035         bits (like WS_CAPTION) work.  fixes bug #79508.
6036
6037 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6038
6039         * PageSetupDialog.cs: add support for getting and settings the 
6040         paper size, source and orientation.
6041
6042 2006-09-26  Chris Toshok  <toshok@ximian.com>
6043
6044         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6045         and caption == "", we need to remove the resize handles as well as
6046         the title bar.
6047
6048         * Control.cs (set_Text): turns out that setting Text on a form
6049         should change the WM styles on the window, since if ControlBox ==
6050         false, the only way to get a window border is to have a non-""
6051         Text property.  check winforms/forms/text.cs for an example.  so,
6052         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6053         update both window styles and title.  This fixes a lot of dialogs
6054         (including the preferences dialog in MonoCalendar.)
6055
6056 2006-09-26  Chris Toshok  <toshok@ximian.com>
6057
6058         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6059         control isn't a Form), call Win32ShowWindow to hide the window,
6060         but don't update the control Visible property.  When we reparent
6061         back to a parent control, call SetVisible in order for the
6062         window's visibility to be reinstated.
6063
6064         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6065         the FosterParent.
6066
6067         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6068         call for good, since it breaks MonoCalendar (and other things I'm
6069         sure.) Also, set all_controls to null *after* the owner calls,
6070         which end up regenerating it.
6071         (ChangeParent): allow new_parent to be == null, passing
6072         IntPtr.Zero down to XplatUI.
6073
6074         this fixes #79294 the right way.
6075
6076 2006-09-26  Mike Kestner  <mkestner@novell.com>
6077
6078         * GridEntry.cs : internal SetParent method.
6079         * PropertyGrid.cs : attach to property changed on the proper
6080         target if we have a hierarchical grid with subobjects. Setup
6081         GridItem.Parent for hierarchical items.
6082         * PropertyGridView.cs : Set value on the correct target for
6083         hierarchical grids. [Fixes #78903]
6084
6085 2006-09-26  Chris Toshok  <toshok@ximian.com>
6086
6087         * Control.cs (ChildNeedsRecreating): this should return true if
6088         either we're being recreated and the child is in our list, or our
6089         parent is waiting for our recreation.
6090
6091 2006-09-26  Chris Toshok  <toshok@ximian.com>
6092
6093         * Control.cs (ControlCollection.Remove): reinstate the
6094         value.Hide() call as suggested in bug #79294.
6095
6096 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6097
6098         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6099         coordinates (versus a relative move).
6100
6101 2006-09-26  Chris Toshok  <toshok@ximian.com>
6102
6103         * Control.cs: rework child recreation a little bit.  It turns out
6104         that we race between the DestroyNotify the WM_DESTROY message.  If
6105         the parent gets its DestroyNotify before the child gets the
6106         WM_DESTROY message, the child ends up not recreating (since the
6107         parent finishes its recreation on DestroyNotify, and the child
6108         checks ParentIsRecreating.)
6109
6110         So, instead we store off a list of all the child controls which
6111         need to be recreated when the parent control starts to recreate
6112         itself.  Then, when child controls get their WM_DESTROY message we
6113         check to see if they're in the parent's pending recreation list,
6114         and if so, we recreate.  This removes all dependency on ordering
6115         from the code and fixes the initial MonoCalendar upgrade dialog.
6116         
6117 2006-09-26  Jackson Harper  <jackson@ximian.com>
6118
6119         * TextControl.cs: Use the Line to get the length of the line,
6120         since soft line breaks can change the end line.
6121
6122 2006-09-26  Chris Toshok  <toshok@ximian.com>
6123
6124         * Control.cs (ControlCollection.AddImplicit): don't add the
6125         control again if it's already in one of our lists.  This keeps us
6126         from adding controls over and over again for comboboxes when their
6127         handle gets recreated (as the combobox adds implicit controls in
6128         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6129
6130 2006-09-26  Jackson Harper  <jackson@ximian.com>
6131
6132         * TextControl.cs: When deleting characters make sure that any
6133         orphaned zero lengthed tags get deleted.
6134         - Fix ToString for zero lengthed tags.
6135
6136 2006-09-25  Jackson Harper  <jackson@ximian.com>
6137
6138         * TextControl.cs: When getting a tag at the location there can be
6139         multiple tags at the same spot, these are 0-lengthed tags that
6140         appear when extra formatting has been stuck in a location.  We
6141         need to pull out the last of these 0 lengthed tags.
6142
6143 2006-09-25  Jackson Harper  <jackson@ximian.com>
6144
6145         * TextControl.cs: Fix print out in debug method.
6146         * TextBoxBase.cs: When text is set bail if we are setting to the
6147         previous value.
6148         
6149 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6150
6151         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6152           It is now possible to change the selected index in a FontXXXListBox
6153           with the up and down arrow keys from the FontXXXTextBoxes.
6154           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6155           FontXXXListBoxes to match ms.
6156
6157 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6158
6159         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6160         anyone can dispose it, anytime. All other properties returns enums, 
6161         structs or basic types so they don't need such tricks.
6162
6163 2006-09-22  Jackson Harper  <jackson@ximian.com>
6164
6165         * XplatUI.cs:
6166         * XplatUIWin32.cs:
6167         * Clipboard.cs:
6168         * DataFormats.cs:
6169         * XplatUIOSX.cs:
6170         * XplatUIDriver.cs: Update interface to add a primary selection
6171         flag, so the driver can use the primary selection buffer if
6172         needed.
6173         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6174
6175         * RichTextBox.cs: We need to supply the data object to paste now
6176         (so we can choose to supply CLIPBOARD or PRIMARY).
6177         * TextBoxBase.cs: Supply data object to paste (see above).
6178         - Middle click uses the primary selection data object.
6179         
6180 2006-09-21  Chris Toshok  <toshok@ximian.com>
6181
6182         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6183         of SetWMStyles.  It's still a rat's nest and is largely
6184         order-dependent which I dislike immensely.  This also fixes the X
6185         button disappearing from toplevel forms.
6186
6187 2006-09-21  Mike Kestner <mkestner@novell.com>
6188
6189         * ListBox.cs: move Jordi's click/dblclick raising code to the
6190         mouse up handler.
6191
6192 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6193
6194         * ListBox.cs: Fixes 79450
6195
6196 2006-09-21  Mike Kestner <mkestner@novell.com>
6197
6198         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6199         to deal with people updating the TreeNodeCollection after the tree
6200         is disposed.  "Fixes" 79330.
6201
6202 2006-09-20  Jackson Harper <jackson@ximian.com>
6203
6204         * TextControl.cs: Push the cursor record onto the undo stack
6205         before the delete action. This fixes 78651.
6206
6207 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6208
6209         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6210         CreateParams. Fixes 79329.
6211
6212 2006-09-19  Chris Toshok  <toshok@ximian.com>
6213
6214         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6215         things up a bit.  First, get rid of the NetAtoms array (and the NA
6216         enum), and just embed the atoms as static fields.  Also, add a
6217         couple of functions (StyleSet and ExStyleSet) to clean up all the
6218         bitmask testing of styles.
6219
6220         * X11Structs.cs: remove the NA enum, not needed anymore.
6221         
6222 2006-09-19  Chris Toshok  <toshok@ximian.com>
6223
6224         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6225         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6226         added cleanup to get MessageBox titles appearing again, which were
6227         broken by my earlier fix for caption-less/ControlBox-less windows.
6228
6229 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6230
6231         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6232           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6233           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6234           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6235           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6236           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6237           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6238           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6239           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6240           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6241           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6242             Inital import.
6243         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6244           ToolStripButton.cs: Stubs needed for above.
6245         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6246
6247 2006-09-15  Chris Toshok  <toshok@ximian.com>
6248
6249         * XplatUIX11.cs:
6250         - make the MessageQueues hashtable Synchronized.
6251         
6252         - SendMessage: if the Hwnd is owned by a different thread, use the
6253         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6254         thread.  Fixes bug #79201.
6255
6256 2006-09-15  Chris Toshok  <toshok@ximian.com>
6257
6258         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6259         ControlBox == false, we disallow maximize/minimize/close.  If the
6260         form Caption is "" we also disallow move (and get rid of the Title
6261         decoration).  Unfortunately, regardless of how things are set,
6262         we're stuck with the Title and WM menu.
6263
6264 2006-09-15  Chris Toshok  <toshok@ximian.com>
6265
6266         * Application.cs: add locking around the static message_filters
6267         ArrayList, part of #79196.
6268
6269 2006-09-15  Chris Toshok  <toshok@ximian.com>
6270
6271         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6272         Form.ControlBox == false, the window has no titlebar nor resize
6273         handles.  fixes bug #79368.
6274
6275 2006-09-15  Chris Toshok  <toshok@ximian.com>
6276
6277         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6278         >= 0.  Fixes bug #79370.
6279
6280 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6281         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6282         * Control.cs:
6283             Add properties: LayoutEngine, Margin, DefaultMargin.
6284             Add method: GetPreferredSize.
6285             Move layout logic from PerformLayout to layout engines. 
6286
6287 2006-09-13  Chris Toshok  <toshok@ximian.com>
6288
6289         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6290         fix for #79326 broke #78718, so this change addresses that.
6291
6292         - in SendWMDestroyMessages remove the call to
6293         CleanupCachedWindows, since we might be recreating the control and
6294         need to maintain the references to right Hwnd handles.  Also, set
6295         the zombie flag to true for each of the children in the hierarchy
6296         instead of calling hwnd.Dispose.  This will cause GetMessage to
6297         ignore all events for the window except for DestroyNotify.
6298
6299         - In GetMessage, ignore messages except for DestroyNotify for
6300         zombie hwnds.
6301         
6302         * Control.cs: revert the is_recreating fix from the last
6303         ChangeLog.  It's definitely "right", but it breaks switching from
6304         an MDI form to a non-MDI form.  Will need to revisit that.
6305
6306         * Hwnd.cs: add a zombie flag, which means "the
6307         client_window/whole_window handles are invalid, but we're waiting
6308         for the DestroyNotify event to come in for them".  Set the flag to
6309         false explicitly if setting WholeWindow/ClientWindow, and also
6310         when Disposing.
6311         
6312 2006-09-13  Chris Toshok  <toshok@ximian.com>
6313
6314         * XplatUIX11.cs: rework window destruction slightly.
6315
6316         - when destroying the windows associated with a control, we don't
6317         need 2 separate XDestroyWindow calls.  Just the one for the
6318         whole_window (or for client_window if whole_window is somehow
6319         IntPtr.Zero -- can this happen?) is enough.
6320
6321         - reworked SendWMDestroyMessages slightly, so we always dispose
6322         the child control hwnd's after sending the messages.
6323         
6324         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6325         the two places it was used (one was even using hwnd.Handle and the
6326         other hwnd.client_window.  ugh), adding another call in
6327         SendWMDestroyMessages.  We need this new call because now the
6328         DestroyNotify events in the queue will be ignored for the child
6329         controls (as their hwnd's were disposed, and the window id's
6330         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6331
6332         - this fixes bug #79326.
6333
6334 2006-09-13  Chris Toshok  <toshok@ximian.com>
6335
6336         * Control.cs: don't always set is_recreating to false at the end
6337         of RecreateHandle, since sometimes we're not done (and won't be
6338         until WndProc handles the WM_DESTROY message).  Also, set
6339         is_recreating to false in the WM_DESTROY handling code.  Part of
6340         the fix for bug #79326.
6341
6342 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6343
6344         * X11DesktopColors.cs: Start the droppage of debugging messages.
6345
6346         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6347
6348 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6349
6350         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6351
6352 2006-09-12  Chris Toshok  <toshok@ximian.com>
6353
6354         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6355         to create it using SetDataSource.  Fixes bug #79151.
6356
6357 2006-09-11  Chris Toshok  <toshok@ximian.com>
6358
6359         * XEventQueue.cs: add a DispatchIdle property.
6360
6361         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6362         either the queue is null, or the queue has DispatchIdle set to
6363         true.
6364         (DoEvents): set queue.DispatchIdle to false around the
6365         peek/translate/dispatch message loop in this method.  This keeps
6366         Application.Doevents from emitting idle events.  Part of the fix
6367         for #78823.
6368
6369 2006-09-11  Chris Toshok  <toshok@ximian.com>
6370
6371         * DataGrid.cs (set_DataSource): make this work for both the
6372         winforms/datagrid test and ReportBuilder.  It seems as though when
6373         we've created a ListManager (or maybe it's if we have a
6374         BindingContext?), when we set the DataSource it clears the
6375         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6376         #79333.
6377
6378 2006-09-11  Chris Toshok  <toshok@ximian.com>
6379
6380         * XplatUIX11.cs: deal with queue being null, which happens in all
6381         the Clipboard functions.  Fixes one of the two problems mentioned
6382         in #78612.
6383
6384 2006-09-11  Chris Toshok  <toshok@ximian.com>
6385
6386         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6387         button on various spots (including outside the menu) works closer
6388         to MS, and doesn't crash.  Fixes #79343.
6389
6390 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6391
6392         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6393         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6394         and the internal comparer is set. When a new ListViewItemSorter is set,
6395         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6396         was specified. No further processing is necessary if SortOrder is set
6397         to it's current value. If Sorting is modified to None, and View is
6398         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6399         (either custom or our internal ItemComparer) to null, on 1.0 profile
6400         only set item_sorter to null if its our internal IComparer. If Sorting
6401         is modified to Ascending or Descending, then use our internal IComparer
6402         if none is set, and if the current IComparer is our internal one then:
6403         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6404         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6405         Enum.IsDefined to verify whether a valid View value is specified in
6406         its setter. Automatically sort listview items when listview is
6407         created. In Sort, do nothing if ListView is not yet created, or if
6408         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6409         to None or ListViewItemSorter was set to null). Added Sort overload
6410         taking a bool to indicate whether the ListView should be redrawn when
6411         items are sorted (we use this in ListViewItemCollection to avoid double
6412         redraws). Modified our internal IComparer to take the sort order into
6413         account. In Add and AddRange methods of ListViewItemCollection, also
6414         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6415         view), but use overload with noredraw option to avoid double redraw.
6416         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6417         true when View is Tile, and do the same when attempting to set View to
6418         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6419         for selected/checked indices, as it involves overhead when sorting is
6420         done while these collections are not used all that often. Instead
6421         we'll build the indices on demand. Modified IList implementation of
6422         CheckedIndexCollection to use public methods if object is int.
6423         Modified CheckedListViewItemCollection to hide checked items if
6424         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6425         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6426         IList implementation in SelectedIndexCollection to use public methods
6427         if object is int. Modified SelectedListViewItemCollection to hide
6428         selected items if listview is not yet created.
6429         * ListViewItem.cs: CheckedIndices list no longer needs to be
6430         maintained separately (see ListView changes). Also clone font, fixes
6431         test failure.
6432
6433 2006-09-11  Mike Kestner  <mkestner@novell.com>
6434
6435         * ComboBox.cs: if we are updating the contents of the currently
6436         selected index, refresh the control or the textbox selection.
6437         [Fixes #79066]
6438
6439 2006-09-11  Mike Kestner  <mkestner@novell.com>
6440
6441         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6442         the 'specified' logic has been moved there.  This seems like a bug 
6443         in Control.cs, since our current SetBoundsCore completely ignores 
6444         the specified parameter.  Peter's commit seems to indicate that is 
6445         the way the MS control implementation works.  [Fixes #79325]
6446
6447 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6448
6449         * XplatUI.cs: Set default_class_name to be composed
6450         of current domain id. This allows MWF to be loaded in multiple
6451         domains on Win32.
6452
6453 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6454
6455         * X11Keyboard.cs: If we are unable to obtain the input method, do
6456         not call CreateXic to create the input context.   Should fix
6457         #78944/79276.
6458
6459 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6460
6461         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6462           Simplified gnome support by adding more pinvokes to get the
6463           icon for a file or mime type.
6464
6465 2006-09-08  Jackson Harper  <jackson@ximian.com>
6466
6467         * MenuAPI.cs: Deslect popup context menu items before closing the
6468         window, so that you don't see the previously selected item
6469         selected when you reopen the menu.
6470         * TextControl.cs: Update the cursor position even if we don't have
6471         focus.  This fixes typing in things like the ComboBox.  I'm not
6472         totally sure we should always set the visibility if we don't have
6473         focus, but couldn't find any corner cases where the cursor showed
6474         up when it shouldn't.
6475
6476 2006-09-08  Chris Toshok  <toshok@ximian.com>
6477
6478         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6479         our arrays are length 256.  & 0xff before indexing.  Fixes the
6480         crash in bug #78077.
6481         
6482 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6483
6484         * ThemeWin32Classic.cs: 
6485         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6486         is true. Handle that check box too.
6487
6488 2006-09-07  Chris Toshok  <toshok@ximian.com>
6489
6490         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6491         79244.
6492
6493 2006-09-07  Chris Toshok  <toshok@ximian.com>
6494
6495         * Control.cs: in set_BackColor only do the work if
6496         background_color != value.
6497
6498         * XplatUIX11.cs: move the clearing of invalid areas (both client
6499         and nc) to the same block of code where we set (nc_)expose_pending
6500         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6501         so things that cause invalidates from within OnPaint will trigger
6502         another call to OnPaint.  Fixes bug #79262.
6503
6504 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6505
6506         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6507         * FileDialog.cs: Fix typo
6508
6509 2006-09-07  Jackson Harper  <jackson@ximian.com>
6510
6511         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6512         for tab pages if they have any.
6513
6514 2006-09-06  Mike Kestner  <mkestner@novell.com>
6515
6516         * Splitter.cs: use the "current" rect when finishing drag handle
6517         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6518
6519 2006-09-06  Mike Kestner  <mkestner@novell.com>
6520
6521         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6522         support offset splitters. [Fixes #79298]
6523
6524 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6525
6526         * Mime.cs: Fixed a bug that could override the global mime type
6527           result.
6528
6529 2006-09-05  Jackson Harper  <jackson@ximian.com>
6530
6531         * TabControl.cs: Better calculation method for setting the slider
6532         pos. Prevents crashes on really wide tabs.
6533         - Draw Image on tab pages if an image list is used.
6534
6535 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6536
6537         * MonthCalendar.cs: When Font changes, the Size should be
6538         updated to fit the new font's space requirements.
6539
6540 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6541
6542         * ListBox.cs: If the items are cleared with Items.Clear set
6543           top_index to 0.
6544
6545 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6546
6547         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6548         fire DateChanged event instead of DateSelected event when
6549         the date was changed by keyboard interaction.
6550
6551 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6552
6553         * DateTimePicker.cs: Handle DateChanged for the associated
6554         month_calendar control, and set month_calendar.Font from 
6555         OnFontChanged method, as well as resize the height of the
6556         control when needed. Make PreferredHeight proportional.
6557
6558 2006-09-01  Chris Toshok  <toshok@ximian.com>
6559
6560         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6561         properties.
6562
6563         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6564
6565 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6566
6567         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6568           for decorations (Fixes #79219)
6569
6570 2006-09-01  Mike Kestner  <mkestner@novell.com>
6571
6572         * ComboBox.cs: first stab at sorting plus some selection handling
6573         fixes to bring us more in line with MS behavior.  Also switches back
6574         to index based selection.  Alternative patches for index-based 
6575         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6576         and latency@gmx.de on bug 78848.  I assume they were similar to this
6577         code I've had simmering in my tree forever.
6578         [Fixes #78848]
6579
6580 2006-09-01  Chris Toshok  <toshok@ximian.com>
6581
6582         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6583         when setting list position guard against ending up with a -1 index
6584         (the other part of the fix for #78812).  Should probably make sure
6585         we don't need the analogous fix in the ItemDeleted case.
6586
6587         * DataGrid.cs:
6588         - in SetDataSource, work around the fact that the way
6589         OnBindingContextChanged is invoked will cause us to re-enter this
6590         method.  I'll remove the hack once I investigate
6591         OnBindingContextChanged.
6592
6593         - fix the logic in set_DataSource and set_DataMember (basically
6594         what to do if the other of the two is null.)
6595         
6596         - in OnListManagerItemChanged, we need to take into account the
6597         edit row when deciding whether or not to call RecreateDataGridRows
6598         (part of the fix for #78812).
6599
6600 2006-09-01  Jackson Harper  <jackson@ximian.com>
6601
6602         * Splitter.cs: Don't do anything if there is no control to affect
6603         (prevents us from crashing in weird tet cases).
6604         * TreeView.cs: Bounding box for the mouse movement reverting
6605         focus/selection back to previously selected node.  This matches
6606         MS, and makes the tree a lot more useable.
6607         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6608         use clipping so they are not drawn.  This fixes when the control
6609         is set to have a transparent background, or if it was over an
6610         image.
6611
6612 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6613
6614         * MimeIcon.cs: Improved handling for reading default icons when
6615           using gnome (2.16 made it necessary). Check and read svg icons
6616           first, then 48x48 and then 32x32 icons.
6617
6618 2006-08-31  Chris Toshok  <toshok@ximian.com>
6619
6620         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6621         visible.
6622
6623         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6624         ProcessKeyPreview.  Fixes part of #77806.
6625
6626         * DataGrid.cs: big patch.
6627
6628         - revert the queueing up of DataSource/DataMember if inside
6629         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6630         its delayed databinding.  Instead, call SetDataSource in
6631         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6632         #78811.
6633
6634         - Also, it wasn't mentioned in #78811, but the test case exhibits
6635         behavior that was lacking in our datagrid implementation - Columns
6636         that have mapping names that don't exist in the datasource's
6637         properties aren't shown.  Yuck.  To fix this I added the bound
6638         field to the column style, and basically any calculation to figure
6639         out anything about columns uses a loop to find the bound columns.
6640         still need to investigate if I can cache an array of the bound
6641         columns or if the indices must be the same.
6642
6643         - When setting CurrentCell, we no longer abort if the cell being
6644         edited was in the add row.  This fixes the other part of #77806.
6645
6646         - The new code also fixes #78807.
6647         
6648         * ThemeWin32Classic.cs: perpetrate the same disgusting
6649         column.bound field hack, and only render bound fields.
6650
6651 2006-08-31  Chris Toshok  <toshok@ximian.com>
6652
6653         * DataGridColumnStyle.cs: add bound field.  this field is true if
6654         the datasource has a property corresponding to the mapping name.
6655
6656         * DataGridTableStyle.cs: set the bound field on the column styles
6657         depending on whether or not we have a column for that property.
6658
6659 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6660
6661         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6662           splitter control (fixes #79228)
6663
6664 2006-08-31  Chris Toshok  <toshok@ximian.com>
6665
6666         * DataGridColumnStyle.cs: we need to delay the assignment of
6667         property descriptor until the last possible moment due to the lazy
6668         databinding stuff in the datagrid.  Also, fix the exceptions
6669         thrown by CheckValidDataSource to match MS.
6670
6671 2006-08-31  Jackson Harper  <jackson@ximian.com>
6672
6673         * Form.cs: When activated select the active control, if there is
6674         no active control, we select the first control.
6675         * XplatUIX11.cs: If there is no focus control when we get a
6676         FocusIn event, find the toplevel form and activate it.  This
6677         occurs when you popup a window, it becomes the focus window, then
6678         you close that window, giving focus back to the main window.
6679
6680 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6681
6682         * MonthCalendar.cs: 
6683         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6684         as StringFormat with Center alignments in MonthCalendar,
6685         instead of creating new ones when drawing the control. 
6686         Also, draw the month name in bold style.
6687
6688 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6689
6690         * Control.cs:
6691           - PerformLayout(): It would seem MS performs the fill even if the 
6692             control is not visible (part of #79218 fix)
6693           - ResetBackColor(): Use the setter to reset the color, to allow
6694             overriders to catch the change.
6695         * Form.cs:
6696           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6697           - CreateHandle(): dito (part of $79218 fix)
6698           - Don't set an icon if we have a dialog
6699         * ScrollableControl.cs:
6700           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6701           - ScrollIntoView(): No need to scroll if control is already visible
6702             (resolves fixme and fixes #79218)
6703
6704 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6705
6706         * MonthCalendar.cs: Change proportions in SingleMonthSize
6707         to match the aspect of the original control.
6708
6709 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6710
6711         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6712           get updated when they get maximized.
6713
6714 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6715
6716         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6717
6718 2006-08-29  Chris Toshok  <toshok@ximian.com>
6719
6720         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6721
6722 2006-08-29  Jackson Harper  <jackson@ximian.com>
6723
6724         * TreeView.cs: Need to track selected node and highlighted node,
6725         they aren't always the same thing, when the mouse is down on a
6726         node it is hilighted, but not selected yet.
6727         - Do the HideSelection stuff right
6728         - Need to focus on rbutton mouse down. And redraw selection when
6729         right click is mouse upped.
6730
6731 2006-08-29  Mike Kestner  <mkestner@novell.com>
6732
6733         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6734         when SubItems.Count < Columns.Count.  [Fixes #79167]
6735
6736 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6737
6738         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6739
6740 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6741
6742         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6743           from X. Only send based on ConfigureNotify if we don't have the
6744           correct location in hwnd (if the window manager moved us)
6745
6746 2006-08-28  Mike Kestner  <mkestner@novell.com>
6747
6748         * ListView.cs: remove a TODO. 
6749         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6750         [Fixes ListView part of #79166]
6751
6752 2006-08-28  Mike Kestner  <mkestner@novell.com>
6753
6754         * ListView.cs: move wheel handler to parent since it is focused
6755         instead of the item_control now.  [Fixes #79177]
6756
6757 2006-08-28  Mike Kestner  <mkestner@novell.com>
6758
6759         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6760         when the control is focused. [Fixes #79171]
6761
6762 2006-08-28  Mike Kestner  <mkestner@novell.com>
6763
6764         * ListView.cs: size the item and header controls for empty and
6765         unscrollable views.
6766         * ThemeWin32Classic.cs: draw disabled backgrounds.
6767         [Fixes #79187]
6768
6769 2006-08-28  Chris Toshok  <toshok@ximian.com>
6770
6771         * Form.cs: remove unused "active_form" static field.
6772
6773         * Hwnd.cs: lock around accesses to static windows collection.
6774
6775         * Application.cs: lock threads in Exit ().
6776
6777 2006-08-28  Chris Toshok  <toshok@ximian.com>
6778
6779         * NativeWindow.cs: lock around accesses to window_collection.
6780         
6781 2006-08-28  Chris Toshok  <toshok@ximian.com>
6782
6783         * Control.cs: err, fix this the right way, by locking on controls
6784         when using it.  not by making it synchronized.
6785
6786 2006-08-28  Chris Toshok  <toshok@ximian.com>
6787
6788         * Control.cs: make the static "controls" field synchronized, as it
6789         gets updated from multiple threads.
6790
6791 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6792
6793         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6794           Prevent other threads from exiting when calling thread sets quit state.
6795         * XEventQueue.cs: Added PostQuitState property
6796
6797 2006-08-27  Chris Toshok  <toshok@ximian.com>
6798
6799         * AsyncMethodData.cs: add a slot for the window handle.
6800
6801         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6802         window (the destination control's window, not the foster window).
6803
6804         * Control.cs (BeginInvokeInternal): store the window's handle in
6805         the AsyncMethodData.
6806         
6807
6808 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6809
6810         * XplatUIX11.cs:
6811           - PostQuitMessage: Removed resetting S.D display handle, we might have
6812             another loop started after calling PostQuitMessage (Fixes #79119)
6813           - Created destructor to reset S.D handle
6814
6815 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6816
6817         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6818
6819 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6820
6821         * TextControl.cs (Insert): Update the caret position even if we don't
6822           have a handle yet, just don't call the driver in that case.
6823         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6824           to the end of the new selection text (Fixes #79184)
6825
6826 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6827
6828         * Form.cs (Activate): Only activate if the handle is created)
6829         * Control.c:
6830           - Mark window as invisible when it's disposed
6831           - Check if window handle is created when setting window visible, 
6832             instead of relying just on the is_created variable
6833           - Check if object is disposed when creating the control (Fixes #79155)
6834
6835 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6836
6837         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6838           when allowing layout again. Otherwise we re-generate the anchoring 
6839           distance to the border again and actually alter what the user wanted
6840           This is ugly, it'd be better if we used DisplayRectangle instead of
6841           ClientRectangle for Control.UpdateDistances, but that causes us to
6842           have other problems (initial anchoring positons would be wrong)
6843           (Fixes #78835)
6844
6845 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6846
6847         * Control.cs:
6848           - The size and location setters shouldn't go directly to 
6849             SetBoundsCore, but to SetBounds, which triggers layout on the
6850             parent, then calls SetBoundsCore. (Related to fix for #78835)
6851           - SetBounds: Moved actual location update code into this function
6852             from SetBoundsCore, to match MS. Added call to PerformLayout if
6853             we have a parent (to trigger resizing of anchored parents if the 
6854             child size has changed (see testcase for #78835) 
6855         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6856           new control code
6857         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6858
6859 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6860
6861         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6862           System.Drawing when a toplevel window gets closed; there might
6863           be other toplevel windows belonging to the same app (Fixes #78052)
6864
6865 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6866
6867         * FileDialog.cs: After reading FileDialog settings from mwf_config
6868           use Desktop prefix only if a real folder doesn't exist anymore.
6869         * FontDialog.cs: Added char sets.
6870           It is now possible to select the font, size or style with the
6871           textboxes.
6872
6873 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6874
6875         * PrintPreviewDialog.cs: Use assembly name constants.
6876
6877 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6878
6879         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6880           scrollbar from whacking it's buttons)
6881
6882 2006-08-24  Chris Toshok  <toshok@ximian.com>
6883
6884         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6885         in this patch (aggregating setting Left/Top/Width/Height to
6886         setting Bounds on the scrollbars), but the crux of the fix is in
6887         Recalculate, where we scroll by the remaining scroll_position if
6888         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6889         serious.
6890
6891 2006-08-24  Jackson Harper  <jackson@ximian.com>
6892
6893         * MdiClient.cs:
6894         * MdiWindowManager.cs: If the form is made a non-mdi window we
6895         need to remove the form closed event so that closing forms works
6896         correctly.
6897
6898 2006-08-24  Jackson Harper  <jackson@ximian.com>
6899
6900         * Control.cs: Make IsRecreating internal so that the driver can
6901         check it
6902         - Temporarily remove the Hide when controls are removed, its
6903         making a whole bunch of things not work because visibility isn't
6904         getting reset elsewhere correctly
6905         * Form.cs: Need to do a full handle recreation when the mdi parent
6906         is set.
6907         * XplatUIX11.cs: If we are recreating handles don't dispose the
6908         HWNDs.  What was happening is the handles were being recreated in
6909         SendWMDestroyMessages, but then flow continued on in that method
6910         and destroyed the new handles.
6911
6912 2006-08-23  Jackson Harper  <jackson@ximian.com>
6913
6914         * Form.cs: MdiClient is always at the back of the bus
6915         * Control.cs: When the order of items in the collection is changed
6916         we need to reset the all_controls array
6917         - do the same sorta setup thats done when adding a control when a
6918         control is set on the collection.
6919
6920 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6921
6922         * TextBoxBase.cs (get_Text): Return an empty array if our document
6923           is empty (fixes #79052)
6924
6925 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6926
6927         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
6928           on WM_SYSCHAR messages (fixes #79053)
6929
6930 2006-08-23  Chris Toshok  <toshok@ximian.com>
6931
6932         * DataGrid.cs: fix flickering when scrolling vertically.
6933
6934 2006-08-23  Chris Toshok  <toshok@ximian.com>
6935
6936         * DataGrid.cs (EndEdit): only invalidate the row header when we
6937         need to.
6938
6939 2006-08-23  Chris Toshok  <toshok@ximian.com>
6940
6941         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
6942         methods.  fixes the flicker when scrolling around.
6943
6944 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6945
6946         * FileDialog.cs: Making sure the control is created before we get a 
6947           chance to use it with BeginInvoke (Fixes #79096)
6948
6949 2006-08-23  Chris Toshok  <toshok@ximian.com>
6950
6951         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
6952         width to use when painting the rows.
6953
6954 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6955
6956         * TextBoxBase.cs:
6957           - Throw ArgumentException if a negative value is passed to SelectionLength
6958           - Update the selection end if start is moved. end needs to be always
6959             after start. (Fixes #79095)
6960           - Track selection length; MS keeps the selection length even if start
6961             is changed; reset on all other operations affection selection
6962
6963 2006-08-22  Jackson Harper  <jackson@ximian.com>
6964
6965         * TreeView.cs: Make sure both scrollbars get displayed and sized
6966         correctly when the other bar is visible.
6967         - Use the original clip rectangle for checking if the area between
6968         the two scrollbars is visible, not the viewport adjusted clipping
6969         rectangle.
6970
6971 2006-08-22  Jackson Harper  <jackson@ximian.com>
6972
6973         * Binding.cs: We don't use IsBinding because it requires the
6974         control to be created, which really shouldn't be necessary just to
6975         set a property on the control.
6976
6977 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6978
6979         * ComboBox.cs: Some CB.ObjectCollection methods must throw
6980         ArgumentNullReferenceException when the argument is null.
6981
6982 2006-08-21  Jackson Harper  <jackson@ximian.com>
6983
6984         * Timer.cs: Track the thread that the timer is started in (NOT
6985         CREATED), this way messages for it will only be triggered on its
6986         queue.
6987         * XEventQueue.cs: Track the timers here, this makes timers per
6988         thread, like MS.
6989         * XplatUIX11.cs: The timers are moved to the XEventQueue.
6990
6991 2006-08-19  Chris Toshok  <toshok@ximian.com>
6992
6993         * XplatUIX11.cs: after further communication with pdb, we get the
6994         best of both worlds.  SetZOrder working for un-Mapped windows, and
6995         no X errors for un-mapped windows.
6996
6997 2006-08-19  Chris Toshok  <toshok@ximian.com>
6998
6999         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7000         as it was causing pdn toolbars to not have the correct stacking.
7001
7002 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7003
7004         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7005         calculation.  Not sure why control should ever be setting a negative
7006         width though.  Fixes #78931.
7007
7008 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7009
7010         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7011         null items in ObjectCollection class.
7012         * ListBox.cs.: Likewise.
7013
7014 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7015
7016         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7017           as the base method in ThemeWin32Classic should work fine.
7018           Fixed bug #78607.
7019
7020 2006-08-18  Jackson Harper  <jackson@ximian.com>
7021
7022         * Binding.cs: When validating if the value entered doesn't convert
7023         properly reset to the old value.
7024         * RadioButton.cs: Don't fire click when we get focus.
7025
7026 2006-08-18  Jackson Harper  <jackson@ximian.com>
7027
7028         * FileDialog.cs: Paint the selection on the directory combobox the
7029         same way as on MS. 
7030
7031 2006-08-17  Jackson Harper  <jackson@ximian.com>
7032
7033         * ErrorProvider.cs: Don't allow the error control to be selected.
7034         * Control.cs: Don't send the SetFocus messages, the control
7035         activation will do this, and if we do it blindly here validation
7036         does not work.
7037
7038 2006-08-17  Jackson Harper  <jackson@ximian.com>
7039
7040         * Control.cs:
7041         * ContainerControl.cs: Make validation events fire in the correct
7042         order.  TODO: For some reason the first validation event is not
7043         getting fired.
7044
7045 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7046
7047         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7048
7049 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7050
7051         * ComboBox.cs : implement scroll wheel support for popped-down
7052         state. Fixes #78945. 
7053
7054 2006-08-17  Jackson Harper  <jackson@ximian.com>
7055
7056         * TreeView.cs: Specify treeview actions (old patch that didn't get
7057         committed for some reason).
7058         - Don't let the mouse wheel scroll us too far.  Just want to make
7059         the bottom node visible, not scroll it all the ways to the top.
7060
7061 2006-08-17  Jackson Harper  <jackson@ximian.com>
7062
7063         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7064
7065 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7066
7067         * ComboBox.cs : don't do mouseover selection in simple mode.
7068
7069 2006-08-16  Jackson Harper  <jackson@ximian.com>
7070
7071         * Form.cs: Fire the closing events for all the mdi child windows
7072         when a window is closed.  If the cancel args are set to true, the
7073         main window still gets the event fired, but it doesn't not close.
7074         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7075         handler, instead of when the button is clicked, so cancelling the
7076         close works correctly.
7077         * ComboBox.cs: Send the mouse down to the scrollbar.
7078
7079 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7080
7081         * ListBox.cs: When passing 'null' to SelectedItem,
7082         set SelectedIndex to -1, to unselect items. This is the
7083         observed behaviour in .Net.
7084
7085 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7086
7087         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7088           MS flags saying there won't be any. (fixes #78800)
7089         * Control.cs (HandleClick): Made virtual
7090
7091 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7092
7093         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7094           cultures. Fixed bug #78399.
7095
7096 2006-08-16  Jackson Harper  <jackson@ximian.com>
7097
7098         * Form.cs: Use the MdiClients MdiChildren property to access
7099         MdiChildren instead of creating the array from the child controls.
7100         * MdiClient.cs: Maintain a separate array of the mdi children, so
7101         that insertion order is maintained when the Z-order is changed.
7102
7103 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7104
7105         * ListView.cs : add an ItemComparer and default to it for sorting.
7106         Fixes #79076, but sorting needs a complete overhaul to be compat with
7107         MS.
7108
7109 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7110
7111         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7112
7113 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7114
7115         * Hwnd.cs (Mapped): Properly traverse the tree
7116
7117 2006-08-15  Chris Toshok  <toshok@ximian.com>
7118
7119         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7120         pass manager.Current.GetType() to ParseData.  It has to be the
7121         property type.  So, hold off doing the ParseData until we're in
7122         SetPropertyValue where we know the type.  This fixes the crash in
7123         #78821 but the textbox is still empty.
7124
7125 2006-08-15  Chris Toshok  <toshok@ximian.com>
7126
7127         * DataGrid.cs:
7128         - when we're scrolling, only call Edit() again if the
7129         current cell is still unobscured. Fixes bug #78927.
7130         - when handling mousedown on a cell, ensure the cell is visible
7131         before calling Edit.
7132         - remove the properties from DataGridRow, and remove the
7133         DataGridParentRow class altogether.
7134         
7135
7136 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7137
7138         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7139           fire OnTextChanged by ourselves. There's no point calling base,
7140           we don't set the base value anywhere else. Fixes #78773.
7141
7142 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7143
7144         * ListBox.cs: Call CollectionChanged when modifying
7145         an item from Items indexer, to update the actual items
7146         in the list box.
7147
7148 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7149
7150         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7151         to match .Net behaviour.
7152
7153 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7154
7155         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7156
7157 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7158
7159         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7160
7161 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7162
7163         * MessageBox.cs: Prevent potential NRE exception.
7164         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7165
7166 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7167
7168         * MessageBox.cs: Calculate the owner of a messagebox, also make
7169           it topmost. Fixes #78753
7170
7171 2006-08-14  Chris Toshok  <toshok@ximian.com>
7172
7173         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7174         programmatically move windows.  first, set the PPosition hint as
7175         well as the USPosition hint.  Second include some code from pdb
7176         that sets the window type to NORMAL when we set the transient for
7177         hint.  This is because, in the absence of a window type, metacity
7178         thinks any window with TransientFor set is a dialog, and refuses
7179         to let us move it programmatically.  fascists.
7180
7181 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7182
7183         * XplatUIX11.cs: When setting normal hints, take into consideration
7184           an different hints previously set so we don't delete them (fixes #78866)
7185
7186 2006-08-12  Chris Toshok  <toshok@ximian.com>
7187
7188         * ToolBarButton.cs: make Layout return a boolean, if something to
7189         do with the button's layout changed.
7190
7191         * ToolBar.cs:
7192         - add another parameter to Redraw, @force, which all existing
7193           calls set to true.
7194         - make the Layout function return a boolean which is true if the
7195           layout has actually changed.  Redraw now uses this (and @force)
7196           to determine when to invalidate.  At present the only place
7197           where @force can be false is the call from OnResize, when
7198           background_image == null.  So, resizing a toolbar when the
7199           layout doesn't change results in no drawing.
7200
7201 2006-08-12  Chris Toshok  <toshok@ximian.com>
7202
7203         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7204         the VScrollBar and HScrollbar reversed.  oops.
7205
7206         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7207         scrollbars.  we were assigning them twice (once in
7208         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7209         therefore causing two scrollbar resizes (and redraws?) to happen
7210         per grid resize.
7211
7212 2006-08-12  Chris Toshok  <toshok@ximian.com>
7213
7214         * ToolBarButton.cs: redraw the entire button if the theme tells us
7215         to.
7216
7217         * Theme.cs: add ToolBarInvalidateEntireButton.
7218
7219         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7220         buttons, just the border.
7221
7222         * ThemeNice.cs: redraw the entire toolbar button since we need to
7223         draw the highlight image.
7224
7225         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7226         we need to redraw the entire button (not just the border).
7227
7228 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7229
7230         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7231           for vertical bars. Fixes the mismatches shown by #78513
7232
7233 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7234
7235         * FileDialog.cs: If a saved/remembered path doesn't exist
7236           anymore, fall back to "Desktop".
7237
7238 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7239
7240         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7241           parent. It's apparently legal to not have one
7242         * XplatUIX11.cs:
7243           - SetZOrder: Don't try to set Z-Order on an unmapped window
7244           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7245             it unless the coordinates are negative
7246
7247 2006-08-10  Mike Kestner  <mkestner@novell.com>
7248
7249         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7250         when setting to null per msdn docs.  Fixes #78854.
7251
7252 2006-08-10  Chris Toshok  <toshok@ximian.com>
7253
7254         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7255         flickering by setting a clip rectangle on the Graphics when we
7256         need to redraw just a particular menuitem.  Also, rename "OnClick"
7257         to "OnMouseDown" to reflect what it actually is.
7258         
7259         * Form.cs: track the OnMouseDown change.
7260
7261 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7262
7263         * CommonDialog.cs: Properly inherit the CreateParams from the form
7264           and only change what we need. Fixes #78865
7265
7266 2006-08-10  Chris Toshok  <toshok@ximian.com>
7267
7268         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7269         flickering in flat mode (and most of the flickering in general) by
7270         only invalidating the button border (and not the entire rectangle)
7271         when the state changes.  A couple of cases still flicker:
7272         ToggleButtons, and the dropdown arrow case when the user mouse
7273         ups.
7274
7275 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7276
7277         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7278           for german keyboards. Numlock state shouldn't affect the behaviour
7279           of the Del key. Fixes bug #78291.
7280
7281 2006-08-10  Chris Toshok  <toshok@ximian.com>
7282
7283         * ListControl.cs: remove the items.Clear line from BindDataItems,
7284         as this is the first thing done by both subclasses in their
7285         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7286         passed -1, refresh the list.  This gets databinding working when
7287         the datasource is set on the list before the datasource is
7288         populated (as in wf-apps/ReportBuilder.)
7289
7290         * ComboBox.cs: remove the argument to BindDataItems.  This call
7291         should really go away, and be initiated by the ListControl code.
7292
7293         * ListBox.cs: same.
7294
7295 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7296
7297         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7298           if no data is in the document when the control is displayed
7299
7300 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7301
7302         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7303           yes (fixes #78806)
7304         * TextControl.cs: 
7305           - PositionCaret: Allow positioning of caret but don't call methods 
7306             requiring a handle if the window isn't created yet
7307           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7308           - owner_HandleCreated: Don't position the caret, just update it's 
7309             location. User might have already set a different position
7310
7311 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7312
7313         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7314           windows. Screws up the returned coordinates for child windows. 
7315           Fixes #78825. I'm hoping this doesn't break something, since the
7316           code was explicitly put in 8 months ago, but no bug was attached.
7317           Menus still seem to work properly.
7318
7319 2006-08-08  Chris Toshok  <toshok@ximian.com>
7320
7321         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7322         supposed to do - delay data binding until the EndInit call.  Also,
7323         make the table style collection's CollectionChangeAction.Refresh
7324         work properly.
7325
7326         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7327         (with action = Refresh) when a consituent table's MappingName is
7328         changed.
7329
7330 2006-08-08  Chris Toshok  <toshok@ximian.com>
7331
7332         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7333         Invalidate, since changing the text can change the size of the all
7334         toolbar buttons.
7335
7336 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7337
7338         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7339           we don't have it yet
7340
7341 2006-08-08  Chris Toshok  <toshok@ximian.com>
7342
7343         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7344         dialog, as this causes X errors later on, since we actually
7345         destroy the window.  Instead, .Hide() it.
7346
7347 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7348
7349         * ComboBox.cs: Added focus reflection for popup window
7350         * XplatUIX11.cs: 
7351           - Removed transient setting for non-app windows for now, not sure it
7352             was needed
7353           - Fixed logic checking if we have captions when deciding 
7354             override_redirect, WS_CAPTION is two bits and a 0 check was not
7355             sufficient
7356           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7357             complicated
7358         * Form.cs: 
7359           - AddOwnedForm: Don't just add the form to the list, call the property
7360             to ensure the driver is informed about the ownership as well
7361           - CreateHandle: Set the TopMost status in the driver if we have an owner
7362         * XplatUI.cs: Fixed debug statement
7363
7364 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7365         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7366           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7367           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7368           TrackBarRenderer.cs: Make constructor private.
7369         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7370         * ProfessionalColorTable.cs: Make properties virtual.
7371
7372 2006-08-06  Duncan Mak  <duncan@novell.com>
7373
7374         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7375         is not changing.
7376
7377 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7378         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7379           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7380           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7381           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7382           Initial import of new 2.0 classes.
7383
7384 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7385         * Application.cs: Add 2.0 VisualStyles properties.
7386
7387 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7388         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7389           XplatUIX11.cs: Create property to allow access to existing private
7390           variable "themes_enabled"
7391
7392 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7393
7394         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7395         file size, as otherwise our class libraries fail using windows. Fixes
7396         bug #78759.
7397
7398 2006-08-04  Jackson Harper  <jackson@ximian.com>
7399
7400         * Form.cs:
7401         * XplatUIX11.cs: Move the toolwindow window manager creation into
7402         the X11 driver, this way on win32 we can let windows create/handle
7403         the toolwindows.
7404
7405 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7406
7407         * PrintDialog.cs: Remove some redundant checks, add some others,
7408         clean some code, and move the focus to the text boxes when the
7409         values are incorrect.
7410
7411 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7412
7413         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7414
7415 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7416
7417         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7418           handled correctly. Fixes bug #79001.
7419
7420 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7421
7422         * PrintDialog.cs: The "Copies" numeric up down must have
7423         set the Minimum property to 1; only if the value is bigger
7424         than 1, activate "Collate" check box. This is the behaviour of .Net.
7425         Also modify the Document elements only if it is not null.
7426
7427 2006-08-03  Jackson Harper  <jackson@ximian.com>
7428
7429         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7430         length. (We have a larger array then actual node count).
7431                 
7432 2006-08-03  Jackson Harper  <jackson@ximian.com>
7433
7434         * ComboBox.cs: Don't show selection by default.
7435         - The SelectAll isn't needed here, since the focus code should do
7436         that
7437         - DDL style lists to manual selection drawing, so when they
7438         get/lose focus they have to invalidate.
7439
7440 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7441
7442         * TextBoxBase.cs: Don't always show all selections by default.
7443
7444 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7445         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7446           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7447           Fixed various typos.
7448
7449 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7450
7451         * Control.cs: Removing the controls in a ControlCollection with
7452           Clear now hides the controls as expected. Fixes bug #78804. 
7453
7454 2006-08-03  Jackson Harper  <jackson@ximian.com>
7455
7456         * Control.cs: Revert previous focus patch, it breaks reflector.
7457
7458 2006-08-03  Jackson Harper  <jackson@ximian.com>
7459
7460         * ComboBox.cs: Cleanup selection and focus with the combobox.
7461         This also eliminates some duplicated keyboard code, since now
7462         everything is handled by the main class.
7463         - Make list selection work on mouse up instead of down, to match
7464         MS.
7465
7466 2006-08-02  Jackson Harper  <jackson@ximian.com>
7467
7468         * Control.cs: Setting focus needs to go through the whole
7469         selection mechanism.
7470
7471 2006-08-02  Chris Toshok  <toshok@ximian.com>
7472
7473         * PrintPreviewDialog.cs: change MinimumSize to use
7474         base.MinimumSize so it works.
7475
7476 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7477
7478         * TextControl.cs:
7479           - UpdateCaret: Added sanity check in case caret isn't defined yet
7480           - Line.Delete: Now updating selection and caret markers if we're
7481             transfering a node (Properly fixes #78323)
7482           - SetSelectionEnd: Added sanity check
7483         * TextBoxBase.cs: Removed broken attempt to fix #78323
7484
7485 2006-08-01  Chris Toshok  <toshok@ximian.com>
7486
7487         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7488         Close() call is handled in Form, not here.
7489
7490 2006-08-01  Chris Toshok  <toshok@ximian.com>
7491
7492         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7493         layout/rendering.
7494
7495         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7496         for sizes < 100% zoom.  The code now aggressively attempts to keep
7497         from calling document.Print (), and tries not to use the scaling
7498         g.DrawImage whenever possible (it still does if you scale to >
7499         100%, since usually that involves huge images).
7500
7501         * PrintPreviewControl.cs: hook up the close button.
7502
7503 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7504         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7505           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7506           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7507           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7508           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7509           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7510           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7511           Removed [Serializable] for 2.0 Event Handlers.
7512
7513 2006-07-31  Jackson Harper  <jackson@ximian.com>
7514
7515         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7516         * TextControl.cs: Uncomment out the body of this method.
7517
7518 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7519
7520         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7521           standard cursors.
7522
7523 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7524
7525         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7526           that embed TextBox and need selections visible even if textbox is not
7527           focused to enforce that behaviour.
7528         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7529           selection drawing
7530
7531 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7532
7533         * TextControl.cs:
7534           - Added new SetSelectionStart/SetSelectionEnd overloads
7535           - Fixed viewport width assignment to be accurate
7536           - Adjusted alignment line shift calculations to allow cursor on right
7537             aligned lines to be always visible at the right border (like MS)
7538         * TextBoxBase.cs:
7539           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7540           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7541           - CalculateScrollBars: Use ViewPort size instead of window size, to
7542             properly consider space occupied by the border and scrollbars 
7543             (Fixes #78661)
7544           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7545             calculations; no longer leaves artifacts
7546           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7547             calculation bugs (Still missing right/center align calculations)
7548
7549 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7550
7551         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7552           use of both scroll rect and clip rect, as they do the same.
7553
7554 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7555
7556         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7557           in the event handler (fixes #78912)
7558
7559 2006-07-31  Chris Toshok  <toshok@ximian.com>
7560
7561         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7562         grid.ListManager.Count, since grid.ListManager might be null.
7563         This of course begs the question "why are we drawing rows for a
7564         grid with no list manager (and therefor no rows)?"  Fixes the
7565         crash in bug #78929.
7566
7567 2006-07-31  Chris Toshok  <toshok@ximian.com>
7568
7569         * RelatedPropertyManager.cs: Don't always chain up to the parent
7570         ctor.  instead, call SetDataSource if the parent's position is !=
7571         -1.  Fixes the crash in #78822.
7572
7573 2006-07-31  Chris Toshok  <toshok@ximian.com>
7574
7575         * DataGrid.cs (get_ListManager): use field instead of property
7576         accessors for datasource and datamember.
7577         (RowsCount): make internal again.
7578         (OnMouseDown): end edits before resizing columns/rows.
7579         (OnMouseUp): restart edits after resizing columns/rows.
7580
7581 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7582
7583         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7584           This fixes the situation where the last set cursor is displayed
7585           whenever the mouse is over scrollbars.
7586
7587 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7588
7589         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7590         Document properties, as well as initial values.
7591
7592 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7593
7594         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7595           and ClientEdge results in a 3-pixel border, which is
7596           wrong.
7597
7598 2006-07-28  Jackson Harper  <jackson@ximian.com>
7599
7600         * TreeNodeCollection.cs: Fix the clear method.
7601         - Fix the Shrink also
7602
7603 2006-07-27  Jackson Harper  <jackson@ximian.com>
7604
7605         * TreeView.cs: Make sure the visible order is computed when we
7606         attempt to size the scrollbars (for trees that mess with the
7607         scrolling when they shouldn't.
7608         - Make sure to give the scrollbars valid values.
7609
7610 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7611
7612         * XplatUIX11.cs: Move motion compression code to where it
7613           has less performance impact
7614
7615 2006-07-26  Jackson Harper  <jackson@ximian.com>
7616
7617         * UpDownBase.cs: When the control is selected make the child
7618         controls non selectable, so that a click on them won't do a
7619         focus/unfocus cycle.
7620         - Don't give focus to the text box when the spinner is selected.
7621         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7622
7623 2006-07-26  Chris Toshok  <toshok@ximian.com>
7624
7625         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7626         satisfied with this solution.  If the bitmaps are small, we should
7627         just cache them in the PrintPreviewDialog and draw them here.
7628         Also, the layout is broken for the 2-up and 3-up cases.
7629
7630         * Theme.cs: add PrintPReviewControlPaint.
7631
7632         * PrintPreviewDialog.cs: first pass implementation.
7633
7634         * PrintPreviewControl.cs: first pass implementation.  No
7635         scrollbars yet.
7636
7637         * PrintDialog.cs: only validate fields if that particular portion
7638         of the UI is enabled.  Also, set the document's controller to a
7639         PrintControllerWithStatusDialog wrapping the document's print
7640         controller.
7641
7642         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7643         bring up a SaveFileDialog (i hope we don't want to match the
7644         behavior of the crappy windows file entry) and set the
7645         PrinterSettings.PrintFileName accordingly.
7646
7647 2006-07-26  Jackson Harper  <jackson@ximian.com>
7648
7649         * ContainerControl.cs: Add a field that disables auto selecting
7650         the next control in a container when the container is activated.
7651         * UpDownBase.cs: Don't select the text box when the up down is
7652         selected.
7653
7654 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7655
7656         * XEventQueue.cs: Added methods for peeking (used for compression
7657           of successive events)
7658         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7659           mouse move events (fixes #78732)
7660
7661 2006-07-25  Jackson Harper  <jackson@ximian.com>
7662
7663         * UpDownBase.cs: Use an internal class for the textbox so that we
7664         can control focus.  the updown control should always have focus,
7665         if either the text area or the buttons are clicked.
7666         - Send the key messages to the textbox, since it never actually
7667         has focus
7668         - Activate and decativate the textbox caret.
7669
7670 2006-07-24  Jackson Harper  <jackson@ximian.com>
7671
7672         * Control.cs: Use the directed select when selecting a control,
7673         this way the container controls override will get called and the
7674         whole ActiveControl chain will get triggered.  TODO: probably need
7675         to make sure this gets done everywhere instead of the old
7676         Select(Control).
7677         * ContainerControl.cs: Implement the directed Select method to
7678         find and activate the correct child control.    
7679         
7680 2006-07-22  Mike Kestner  <mkestner@novell.com>
7681
7682         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7683         menu handling code so that clicks without a grab work too.
7684         [Fixes #78914]
7685
7686 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7687
7688         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7689           Added some small optimizations.
7690
7691 2006-07-21  Matt Hargett  <matt@use.net>
7692
7693         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7694
7695 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7696
7697         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7698           tests pass and match MS in some strange border cases.
7699
7700 2006-07-21  Chris Toshok  <toshok@ximian.com>
7701
7702         * ThemeWin32Classic.cs: handle drawing of the relation links and
7703         parent row buttons.
7704
7705         * Theme.cs: change args to DataGridPaintParentRow.
7706
7707         * DataGrid.cs: Don't use controls for the relation links and
7708         parent buttons, so we have to handle all their interactions in
7709         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7710         when we're navigating through child tables, so we can reinstate
7711         selection, expanded state, current cell, etc.
7712
7713 2006-07-20  Chris Toshok  <toshok@ximian.com>
7714
7715         * ToolBar.cs: When we redraw a button, for whatever reason,
7716         there's no reason to redraw the entire toolbar.  Also, don't call
7717         Control.Refresh from within Redraw, as it's much heavier than
7718         Invalidate (which is really what we want).
7719
7720 2006-07-20  Chris Toshok  <toshok@ximian.com>
7721
7722         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7723         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7724         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7725         traces from within a debug IBindingList datasource
7726         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7727         to work in a similar fashion.
7728
7729 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7730
7731         * ListBox.cs: Don't call Sort () when setting 
7732         the Sorted property to false (avoid an unnecessary sort).
7733
7734 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7735
7736         * ListControl.cs: DataSource should throw an ArgumentException
7737         instead of a normal exception when the argument is not of the 
7738         correct type.
7739
7740 2006-07-20  Mike Kestner  <mkestner@novell.com>
7741
7742         * Control.cs: add InternalPreProcessMessage to allow us to steal
7743         key events before MWF gets its paws on them.  Adapted from a
7744         suggestion by eno.
7745         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7746         up/down/left/right navigation. Override the new internal control
7747         method to steal the events since they never make it to WndProc.
7748         * ToolBarButton.cs: don't worry about pushed when setting hilight
7749         since the drawing code prefers pushed to hilight. Invalidate on 
7750         Hilight changes. Fixes #78547 and #78525.
7751
7752 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7753
7754         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7755           the canvas size. Fixes #78868
7756
7757 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7758
7759         * Splitter.cs: Track requested split position until first layout
7760           is performed. Fixes #78871
7761
7762 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7763
7764         * Application.cs: Removed code that forces 1.x for the version
7765           number if the version started with 0. Not sure why that code was
7766           there and I couldn't find any bugs that indicated we needed it.
7767           Fixes #78869
7768
7769 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7770
7771         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7772           ResetDefaults(), just write some output to the console until it's
7773           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7774
7775 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7776
7777         * PropertyGridView.cs: set StartPosition of drop down forms
7778         so they appear in correct initial spot.  Fixes #78190.
7779
7780 2006-07-19  Mike Kestner  <mkestner@novell.com>
7781
7782         * ThemeWin32Classic.cs: use parent background color when drawing
7783         flat toolbars.  Restructure the conditionals to make sure non-flat
7784         non-Divider toolbars are filled too.  Fixes #78837.
7785
7786 2006-07-19  Mike Kestner  <mkestner@novell.com>
7787
7788         * ListBox.cs: Sort on collection changes even if the handle
7789         isn't created yet.  Fixes #78813.
7790
7791 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7792
7793         * ListControl.cs: DisplayMember should never be null,
7794         and now we assign String.Empty when null is passed to it (this
7795         is the .Net way).
7796
7797 2006-07-17  Mike Kestner  <mkestner@novell.com>
7798
7799         * ListViewItem.cs: restructure Font and subitem Font handling 
7800         to hold a specific font and refer back to owner on null.
7801         Fixes #78761.
7802
7803 2006-07-17  Mike Kestner  <mkestner@novell.com>
7804
7805         * ToolBar.cs: bandaid for side-effect of previous patch which was
7806         discarding explicit heights for non-AutoSize toolbars.  Need to
7807         extend my format tester to deal with AutoSize=false. Fixes #78864.
7808
7809 2006-07-15  Jackson Harper  <jackson@ximian.com>
7810
7811         * LabelEditTextBox.cs:
7812         * TreeView.cs: Use a new LabelEdit class for node editing, this
7813         class automatically 'closes' itself when it gets the enter key or
7814         loses focus.
7815         - Use the client rectangle when setting the trees scrollbars, so
7816         border style is taken into account.
7817         
7818 2006-07-14  Jackson Harper  <jackson@ximian.com>
7819
7820         * TreeNode.cs:
7821         * TreeView.cs: Make the editing work similar to MSs, firing the
7822         events correctly and ending edits correctly.
7823
7824 2006-07-14  Mike Kestner  <mkestner@novell.com>
7825
7826         * ToolBarButton.cs:
7827         * ToolBar.cs: layout restructuring and redraw enhancements to support
7828         formatting changes gracefully, like setting TextAlign, ImageList, 
7829         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7830         of the MS controls.  Things like flat toolbars ignoring button size
7831         but becoming constant sized at the largest button's size.  Normal
7832         toolbars with an image set cannot be shrunk smaller than the image,
7833         but text can be clipped/ignored.
7834         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7835         is zero.  Seems like DrawString should be smart enough to not put
7836         anything on screen though. Also trim labels and ellipsize at the char
7837         boundary, not word.
7838         Fixes #78711 and #78483.
7839
7840 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7841
7842         * FolderBrowserDialog.cs: Disable "New Folder" button and
7843           "New Folder" contextmenu menuitem if a folder like "My Computer"
7844           is selected.
7845
7846 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7847
7848         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7849         * FolderBrowserDialog.cs:
7850           - Use MWFConfig to store and read size and position settings
7851           - Added code to create a new folder (button or context menu).
7852             Use TreeView labeledit to change the name of the new folder.
7853
7854 2006-07-14  Jackson Harper  <jackson@ximian.com>
7855
7856         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7857         when the tree is scrolled we end editing.
7858
7859 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7860
7861         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7862           Down arrows
7863
7864 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7865
7866         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7867         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7868         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7869         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7870         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7871         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7872         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7873         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7874         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7875         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7876         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7877         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7878         ListViewItemSelectionChangedEventHandler.cs,
7879         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7880         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7881         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7882         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7883         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7884         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7885         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7886         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7887         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7888         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7889         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7890         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7891         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7892         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7893         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7894         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7895         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7896         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7897         WebBrowserNavigatingEventHandler.cs, 
7898         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7899
7900 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7901
7902         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7903         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7904         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7905         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7906         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7907         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7908         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7909         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
7910         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
7911         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
7912         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
7913         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
7914         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
7915         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
7916         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
7917         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
7918         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
7919         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
7920         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
7921         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
7922         ListViewItemStates.cs, MaskFormat.cs: Added
7923
7924 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
7925
7926         * PropertyGridView.cs: Fix keyboard navigation of drop down.
7927         Patch from eno for bug 78558.
7928         
7929 2006-07-13  Jackson Harper  <jackson@ximian.com>
7930
7931         * TreeView.cs: When an edit is finished make sure that the
7932         selected node is visible.
7933         - When setting the top/bottom use the scrollbars is_visible, so
7934         everything will be set correctly even if the tree isn't visible
7935         yet.
7936
7937 2006-07-13  Jackson Harper  <jackson@ximian.com>
7938
7939         * ComboBox.cs: Revert the item->index part of my previous patch.
7940         * TreeView.cs: Use LostFocus instead of Leave for detecting when
7941         the edit box has lost focus (duh).
7942         - Just make the edit box not visible when we get return, that will
7943         take the focus, which will call EndEdit
7944         * TreeNode.cs When we start editing, notify the treeview.
7945
7946 2006-07-12  Jackson Harper  <jackson@ximian.com>
7947
7948         * ComboBox.cs: Clear out old items before setting the item list.
7949         This prevents databound controls from having their items added
7950         twice.
7951         - Switch the combobox to use indices whereever possible instead of
7952         using Item's.  This allows usto navigate through lists that have
7953         more then one item with the same string value (ie a, b, b, a).
7954         - Scroll the listboxes scrollbar when a non visible item is
7955         highlighted
7956         - Allow keypress to cycle through all the possible values. For
7957         example if you have b1, b2, b3 and hold down the B key all the
7958         values will be cycled through.
7959         
7960 2006-07-12  Jackson Harper  <jackson@ximian.com>
7961
7962         * TextBoxBase.cs:
7963         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
7964         this using the internal methods.
7965         * Control.cs: Add OnGotFocusInternal.  A new method that allows
7966         controls to "override" OnGotFocus and change focus behavior if
7967         needed.
7968         - Same thing for LostFocus
7969         * ComboBox.cs: Pass off focus to the text control properly.
7970
7971 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
7972
7973         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
7974         * FolderBrowserDialog.cs: Almost a complete rewrite.
7975           - Better support for Environment.Specialfolders
7976           - Added support for MWFVFS
7977           - Made setting SelectedPath work
7978
7979 2006-07-12  Jackson Harper  <jackson@ximian.com>
7980
7981         * Control.cs: Optimze getting all the controls.
7982
7983 2006-07-11  Jackson Harper  <jackson@ximian.com>
7984
7985         * ContainerControl.cs: Override SETFOCUS in the container control,
7986         so that it is not selected on mouse click.
7987
7988 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
7989
7990         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
7991           Hopefully we will have a better way once all of focus is complete.
7992
7993 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
7994
7995         * ThemeWin32Classic.cs: Commented out some debug code and fixed
7996           a compile error with csc.
7997
7998 2006-07-11  Jackson Harper  <jackson@ximian.com>
7999
8000         * Control.cs: When hiding a control only select the next control
8001         if the current control was focused.
8002         - Don't handle enter/leave when setting/killing focus, this is
8003         done by the container control.
8004         - Remove is_selected, it's not needed anymore.
8005         - Add utility methods for selecting a child control, and for
8006         firing the Enter/Leave events.
8007         * ContainerControl.cs: When a control is activated fire the
8008         enter/leave events.
8009         - Don't wrap when processing the tab key, so that focus can be
8010         moved outside of the container.
8011         - Use the correct active control
8012
8013 2006-07-11  Jackson Harper  <jackson@ximian.com>
8014
8015         * ComboBox.cs: Remove some debug code that was blinding me.
8016         * UpDownBase.cs: These controls actually aren't implicit, they are
8017         visible to the user.
8018
8019 2006-07-10  Chris Toshok  <toshok@ximian.com>
8020
8021         * DataGrid.cs: move back to the is_adding boolean field.  god i
8022         hate this is_editing/is_adding/is_changing stuff.
8023
8024 2006-07-10  Chris Toshok  <toshok@ximian.com>
8025
8026         * DataGridTableStyle.cs: just check if the property type is bool.
8027         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8028         Don't use CanRenderType.
8029
8030         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8031         if our text == NullText.  Remove CanRenderType.
8032
8033         * DataGridBoolColumn.cs: nuke CanRenderType.
8034
8035         * DataGrid.cs: reenable some code to end the current edit inside
8036         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8037         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8038         Also, remove the visible_row_count arg from CalcRowHeaders, since
8039         we don't need to worry about the actual height of the area.
8040
8041 2006-07-10  Chris Toshok  <toshok@ximian.com>
8042
8043         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8044         mode, just return.
8045
8046         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8047         the real sense of the IsInEditOrNavigateMode property (true =
8048         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8049
8050         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8051         column style exists, we still need to set its property descriptor
8052         to match up with our list manager.
8053
8054 2006-07-10  Chris Toshok  <toshok@ximian.com>
8055
8056         * ThemeWin32Classic.cs: implement the new row/header painting
8057         approach.  The parent row painting will likely go away and
8058         replaced with label controls, but the rest seems to work ok (and
8059         efficiently).
8060
8061         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8062         the row headers as a block now.  Instead we draw them in the
8063         normal draw-row loop.  Add some calls for drawing parent rows and
8064         relation rows.
8065
8066         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8067         a default table style.  Set the defaults from ThemeEngine.Current,
8068         not SystemColors.  Fix lots of misc issues with property setters.
8069
8070         * DataGrid.cs: move loads of style information out of this class
8071         as it's being duplicated with DataGridTableStyle.  keep track of a
8072         special DataGridTableStyle for the properties we used to mirror
8073         here.  Switch all the style properties to access this table style
8074         instead of instance fields of this class.  Also add a internal
8075         class to represent parent rows (more needs to be stored here, like
8076         the selection state from the parent table, as well as the
8077         expansion state.)  Also, for datasources with relations, do the
8078         right thing for collapse/expand, and add support for the
8079         navigation/parent row buttons.
8080
8081         Lastly, fix the crash in the 1.1.16 build.
8082
8083         * GridTableStylesCollection.cs: make the explicit interface
8084         implementations call the class's methods as opposed to duplicating
8085         them.
8086
8087         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8088         0 so the text doesn't jump around when we move the cursor.
8089
8090 2006-07-10  Jackson Harper  <jackson@ximian.com>
8091
8092         * TextBoxBase.cs:
8093         * ListBox.cs: Match MS's ToString (this makes debugging focus
8094         stuff infinitely easier).
8095
8096 2006-07-10  Jackson Harper  <jackson@ximian.com>
8097
8098         * Control.cs (SelectNextControl): When checking the control's
8099         parent use this instead of ctrl.parent so that null can be passed
8100         to SelectNextControl. (I have unit tests for this).
8101         - Remove unused var.
8102
8103 2006-07-10  Chris Toshok  <toshok@ximian.com>
8104
8105         * CurrencyManager.cs: correct one regression, the removal of the
8106         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8107         Refresh() correctly, and fix some event emission in
8108         ListChangedHandler.
8109
8110 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8111
8112         * FileDialog.cs: Don't use brackets for new folders if they exist
8113           under *nix. Instead use -(number of existing folders +1).
8114
8115 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8116
8117         * FileDialog.cs:
8118           - Fixed really nasty bug #78771
8119           - Don't block the whole GUI when reading directories with a lot of
8120             entries. Use an other thread instead and call BeginInvoke to
8121             update the ListView in MWFFileView
8122
8123 2006-07-07  Chris Toshok  <toshok@ximian.com>
8124
8125         * Control.cs (Dispose): release any Capture when disposing.
8126
8127 2006-07-07  Chris Toshok  <toshok@ximian.com>
8128
8129         * LinkLabel.cs (Select): if we chain up to the parent, set
8130         focused_index to -1 so we'll search for the first available link
8131         the next time the user tabs into us.  Also, if the direction is
8132         backward and focused_index == -1, start the search from the last
8133         element.
8134
8135 2006-07-07  Chris Toshok  <toshok@ximian.com>
8136
8137         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8138         is beyond the end of the text, don't do anything.
8139         (CreateLinkPieces): set our ControlStyles.Selectable based on
8140         whether or not we have any links.
8141         (Link.Invalidate): use a loop instead of foreach.
8142         (Link.set_Start): null out owner.sorted_links so it'll be
8143         recreated by CreateLinkPieces.
8144
8145 2006-07-06  Chris Toshok  <toshok@ximian.com>
8146
8147         * LinkLabel.cs: revert the SetStyle change.
8148
8149 2006-07-06  Chris Toshok  <toshok@ximian.com>
8150
8151         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8152         (OnEnableChanged): s/Refresh/Invalidate
8153         (OnGotFocus): if we have a focused index already, refocus it (so
8154         if we mouse out/in to the window it'll focus the right link).
8155         (OnKeyDown): move the tab handling out of here.
8156         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8157         when we lose focus.
8158         (OnMouseDown): don't Capture here - Control handles it.  Also,
8159         focus the active link.
8160         (OnMouseUp): don't deal with Capture.
8161         (OnPaintBackgroundInternal): remove.
8162         (OnTextAlignChanged): CreateLinkPieces before calling the
8163         superclass's method.
8164         (OnTextChanged): call CreateLinkPieces before calling superclass's
8165         method.
8166         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8167         move around.
8168         (Select): implement this, moving the selection between different
8169         links, and call parent.SelectNextControl if we don't have another
8170         link to focus in the given direction.
8171         (CreateLinkPieces): call Invalidate instead of Refresh.
8172         
8173 2006-07-06  Chris Toshok  <toshok@ximian.com>
8174
8175         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8176         new LinkLabel internals.
8177
8178         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8179         over pieces looking for active/focused/etc links.  also, deal with
8180         runs of text (and links) with embedded \n's in them, and use
8181         MeasureCharacterRanges instead of MeasureString to figure out the
8182         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8183         two-step.
8184
8185 2006-07-04  Jackson Harper  <jackson@ximian.com>
8186
8187         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8188         XKB or key auto repeat, do it manually.  Without key auto repeat,
8189         when a key is held down we get key press, key release, key press,
8190         key release, ... with auto repeat we get key press, key press, key
8191         press ..., and then a release when the key is actually released.
8192
8193 2006-07-03  Jackson Harper  <jackson@ximian.com>
8194
8195         * TabControl.cs:
8196         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8197         rules, they are always control color regardless of the background
8198         color.
8199
8200 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8201
8202         * FileDialog.cs: Added internal class MWFConfig.
8203           Removed Registry support and replaced it with support for the new
8204           MWFConfig class. See MWFConfig comments for more information.
8205
8206 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8207
8208         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8209           rectangle. Added some patches from eno from bug #78490 and fixed
8210           the arrow position for small up and down CPDrawScrollButtons.
8211
8212 2006-06-30  Jackson Harper  <jackson@ximian.com>
8213
8214         * InternalWindowManager.cs: Remove some debug code.
8215         * Form.cs: When an MdiParent is set to null, the window is
8216         "detatched" and becomes a normal window.
8217         * MdiClient.cs: Don't bring the new child form to the front until
8218         it is activated (setting it as active does this), this makes the
8219         previously active forms titlebar get redrawn as inactive.
8220
8221 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8222
8223         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8224           with later controls
8225
8226 2006-06-29  Mike Kestner  <mkestner@novell.com>
8227
8228         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8229         arrow in keynav state.  Fixes #78682.
8230
8231 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8232
8233         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8234           order (fixes #78393)
8235
8236 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8237
8238         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8239           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8240           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8241           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8242           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8243           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8244           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8245           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8246           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8247           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8248           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8249           values)
8250
8251 2006-06-28  Mike Kestner  <mkestner@novell.com>
8252
8253         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8254
8255 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8256
8257         * PropertyGrid.cs,
8258           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8259           item lines from other area (It also makes BackColor consistent and
8260           compatible with .NET). Fixed bug #78564.
8261
8262 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8263
8264         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8265         Patch from Eno for #78555.
8266
8267 2006-06-27  Chris Toshok  <toshok@ximian.com>
8268
8269         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8270
8271         * DataGridColumnStyle.cs: same.
8272
8273         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8274         
8275         * DataGridDrawingLogic.cs: nuke.
8276
8277 2006-06-27  Chris Toshok  <toshok@ximian.com>
8278
8279         * DataGridTableStyle.cs: clean up the constructors, and build the
8280         list of child relations for this table.  I have no idea if this is
8281         where we should be doing it (it probably isn't), but since we're
8282         already iterating over the properties..
8283
8284         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8285         struct and array for keeping track of row information, similar to
8286         what's shown in a hack on
8287         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8288
8289         * Theme.cs: be consistent about the naming of DataGrid methods,
8290         prefering ColumnWidths and RowHeights over columnsWidths and
8291         RowsHeights.
8292
8293         * ThemeWin32Classic.cs: same, and also add support for variable
8294         sized rows (and the +/- expansion icons for related rows).
8295
8296 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8297
8298         * TextBoxBase.cs: Applied Eno's patch from #78660
8299
8300 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8301
8302         * Form.cs (ScaleCore): We don't want to scale our form if it's
8303           state is minimized or maximized, but we still need to scale our
8304           child windows. Also, added try/finally block to ensure layout
8305           gets reset (Fixes #78697)
8306
8307 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8308
8309         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8310
8311 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8312
8313         * Form.cs: Fixed c+p error and added check to resize form if minimum
8314           size is bigger than current size (Fixes #78709)
8315
8316 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8317
8318         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8319
8320 2006-06-26  Mike Kestner  <mkestner@novell.com>
8321
8322         * ComboBox.cs: only do Keypress handling in the combo when there  
8323         are items in the collection. Fixes #78710.
8324
8325 2006-06-26  Chris Toshok  <toshok@ximian.com>
8326
8327         * Binding.cs: make this work bi-directionally.  also, clear up
8328         other mixups between Push/Pull Data (e.g. we're supposed to pull
8329         data when validating).
8330
8331         * BindingManagerBase.cs: trim some fully qualified collection
8332         types.
8333
8334         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8335
8336 2006-06-23  Chris Toshok  <toshok@ximian.com>
8337
8338         * PropertyManager.cs: It appears (according to the unit tests)
8339         that PropertyManager doesn't use
8340         PropertyDescriptor.AddValueChanged to track propery value changes
8341         in its datasource, but uses the same scheme as Binding, where it
8342         looks for a <Property>Changed event and binds to it.
8343
8344         Also, according to the docs, IsSuspended always returns false for
8345         a property manager with a non-null datasource.
8346
8347 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8348
8349         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8350           need to update the actual DialogResult. (Fixes #78613)
8351
8352 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8353
8354         * Form.cs (ShowDialog): Release any captures before running the
8355           new message pump (fixes #78680)
8356
8357 2006-06-22  Mike Kestner  <mkestner@novell.com>
8358
8359         * ListView.cs: Layout column widths properly in details mode even 
8360         if HeaderStyle.None is set.  Fixes #78691.
8361
8362 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8363
8364         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8365
8366 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8367
8368         * Control.cs (ContainsFocus): Using new driver method to get focused
8369           window, instead of trying to use internal tracking var, which can
8370           recursion issues (Fixes #78685)
8371         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8372           XplatUIWin32.cs: Added GetFocus method to return focused window
8373
8374 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8375
8376         * ColorDialog.cs: when the mouse button is pressed inside the color
8377         matrix, don't let the cursor move out of it until the button is
8378         released, which is the behavior on windows. Changed 'colours' by
8379         'colors' to use the same word consistently.
8380
8381 2006-06-21  Chris Toshok  <toshok@ximian.com>
8382
8383         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8384         child relation and back, using a stack).  Also, remove
8385         GetDataSource and the code that calls it - it's not needed.  Also,
8386         track CurrencyManager.ListName's removal.
8387
8388 2006-06-21  Chris Toshok  <toshok@ximian.com>
8389
8390         * CurrencyManager.cs: push some of the original type checking from
8391         BindingContext.CreateBindingManager to here, and remove some of
8392         the finalType stuff.  Need more tests to make sure I've got the
8393         ListName part right, and we might need more in SetDataSource.
8394
8395         * PropertyManager.cs: add a ctor that takes just the datasource,
8396         and no property name.  Make SetDataSource work with a null
8397         property_name, and make Current return the data_source if the
8398         property descriptor is null.  this makes 'string foo = "hi";
8399         BindingContext[foo].Current' return "hi" as it should.
8400
8401         * RelatedCurrencyManager.cs: make this code more generic - there's
8402         no reason the parent manager has to be CurrencyManager, and
8403         there's no reason to pass the DataRelation.  It suffices to use a
8404         BindingManagerBase and PropetyDescriptor.
8405
8406         * RelatedPropertyManager.cs: make a similar change here.
8407         
8408         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8409         flower I knew it could be.
8410
8411 2006-06-20  Chris Toshok  <toshok@ximian.com>
8412
8413         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8414         data in the source has changed and we need to update the control,
8415         so s/PullData/PushData.
8416
8417         * CurrencyManager.cs: Refresh is meant to update the control from
8418         data in the datasource.  So, s/PullData/PushData.
8419
8420         * BindingContext.cs: add more ugliness (we weren't handling the
8421         case where data_source = DataTable and data_member = column_name).
8422
8423         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8424         from the perspective of the datasource.  PullData pulls from the
8425         control, PushData pushes to the control.
8426
8427 2006-06-20  Chris Toshok  <toshok@ximian.com>
8428
8429         * BindingContext.cs: rewrite the CreateBindingManager code to
8430         handle navigation paths more or less properly.  This could
8431         definitely stand some more work, in particular to push the
8432         recursion up to the toplevel.  But that relies on fixes in other
8433         places (System.Data comes to mind).
8434
8435         Also, move to a flat hashtable (and encode the twolevel nature of
8436         the dictionary into the hash key).  This lets us implement the
8437         IEnumerable.GetEnumerator method.
8438
8439         * RelatedCurrencyManager.cs: new class.  Update our view based on
8440         our relation and our parent CurrencyManager's position.
8441
8442         * CurrencyManager.cs: split out some logic from the ctor into
8443         SetView, so it can be called from the new RelatedCurrencyManager
8444         subclass.
8445
8446         * RelatedPropertyManager.cs: new class.  Update our datasource
8447         based on the position of our parent CurrencyManager.
8448
8449         * PropertyManager.cs: split out some logic from the ctor into
8450         SetDataSource, so it can be called from the new RelatedDataSource
8451         subclass.  Also, make the Current getter return the value
8452         of the PropertyDescriptor, not the data_source.
8453
8454         * Binding.cs: no need to duplicate the string splitting code here.
8455
8456 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8457
8458         * Control.cs:
8459           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8460             of the control is not altered, even though  we might be changing the
8461             internal state of the control (#78458)
8462           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8463             OnEnabledChanged, to allow easy altering of any child window state
8464           - OnEnabledChanged: Added code to enable/disable driver window state
8465           - OnParentEnabledChanged: Instead of firing the event, call 
8466             OnEnabledChanged, which will fire the event and also a) set driver
8467             window state and pass the enabled state to any grandchildren (#78458)
8468
8469 2006-06-19  Jackson Harper  <jackson@ximian.com>
8470
8471         * InternalWindowManager.cs: We don't set the cursor explicitly
8472         thats done via the response to NCHITTESTs.
8473         - Don't need to adjust for titlebar heights anymore, the
8474         coordinates are coming in the correct coordinates now (see peters
8475         last patch).
8476
8477
8478 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8479
8480         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8481           being translated relative to whole window, instead of client window.
8482           That caused broken offsets on mouseclick (and caused gas for our
8483           InternalWindowManager)
8484
8485 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8486
8487         * TextControl.cs:
8488           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8489           - Undo(): Added replay of cursor move on DeleteChars action; added
8490             calling Undo() again if a recorded cursor move is invalid (to
8491             ensure that some action is performed on Undo)
8492         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8493
8494 2006-06-16  Jackson Harper  <jackson@ximian.com>
8495
8496         * MdiClient.cs: Instead of just sizing maximized windows when
8497         there is a resize we also have to adjust the Y of minimized
8498         windows, so they stay pinned to the bottom of the mdi container.
8499         - Eliminate separate tracking of the active control, we can just
8500         get this from the controls collection.
8501         - Paint the decorations for the newly activated titlebar so we get
8502         a pretty blue bar.
8503         * InternalWindowManager.cs:
8504         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8505         even if they are a tool window.
8506         
8507 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8508
8509         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8510           undo buffer, these can happen when text was deleted and the cursor
8511           was recorded first. Since we will also have a recorded cursor
8512           after the delete this is not an issue. (Fixes #78651)
8513
8514 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8515
8516         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8517           instead properly track control states internally (allows us to
8518           remove is_selected from Control)
8519
8520 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8521
8522         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8523         whose width is not a multiple of 8.
8524
8525 2006-06-13  Jackson Harper  <jackson@ximian.com>
8526
8527         * MdiClient.cs:  Only maximize the next child if the current one
8528         is maximized.
8529
8530 2006-06-13  Chris Toshok  <toshok@ximian.com>
8531
8532         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8533         modified.  Also, guard against grid or grid_drawing being null in
8534         Invalidate.
8535
8536         * DataGrid.cs: Reformat tons of getters/setters.  In the
8537         DataMember setter, just call SetNewDataSource instead of
8538         duplicating some of its functionality.  In SetNewDataSource, don't
8539         check ListManager for null, since the property getter creates the
8540         object if needed.
8541
8542         * DataGridTableStyle.cs: don't set TableStyle or call
8543         SetDataGridInternal on the column here, it's done in
8544         GridColumnStylesCollection.Add.
8545
8546         * GridColumnStylesCollection.cs: fix all the explicit interface
8547         implementations to just call our methods.  Nuke AddInternal() and
8548         move the body of it to Add().  Also, add a call to
8549         column.SetDataGridInternal to Add().
8550
8551         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8552         base()+duplicate code.  Also, use the Format property instead of
8553         format to generate an Invalidate ala MS.  Lastly, create the
8554         textbox here, unconditionally.
8555         (set_Format): call Invalidate.
8556         (get_TextBox): no need to call EnsureTextBox.
8557         (Commit): remove the message box.
8558         (Edit) remove the call to EnsureTextBox.
8559         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8560         (EnterNullValue): no need to check textbox for null.
8561         (HideEditBox): no need to check textbox for null.
8562         (SetDataGridInColumn): add the textbox to the grid's controls.
8563         (EnsureTextBox): nuke.
8564         
8565 2006-06-13  Jackson Harper  <jackson@ximian.com>
8566
8567         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8568         and redraw the buttons when needed. Unhook when the window is
8569         unmaximized.
8570         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8571         needs this so that it can redraw its buttons when the menu is
8572         repainted.
8573         * InternalWindowManager.cs:
8574         * Form.cs: The method order has changed for DrawMaximizedButtons,
8575         so that it can be a PaintEventHandler.
8576         
8577 2006-06-13  Jackson Harper  <jackson@ximian.com>
8578
8579         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8580         window is activated and maximized, even if it wasn't before.
8581         - When  a new window is activated repaint the decorations of the
8582         old one, so that it no longer has the Active "look" (the blue
8583         titlebar).
8584         * InternalWindowManager.cs: Open up CreateButtons to base classes
8585         so they can recreate the buttons on state changes.
8586         - If a window is maximized give it all three buttons
8587         * MdiWindowManager.cs: Create the titlebar buttons when the state
8588         is changed, this is needed because a toolwindow will not have all
8589         three buttons until it is maximized.
8590
8591 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8592
8593         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8594           Fixed bug #78609.
8595
8596 2006-06-12  Jackson Harper  <jackson@ximian.com>
8597
8598         * KeysConverter.cs: Make sure we handle the Ctrl special case
8599         if its the only key.
8600         
8601 2006-06-12  Jackson Harper  <jackson@ximian.com>
8602
8603         * Theme.cs: Add a method to get the size of a managed window
8604         toolbar button.
8605         * InternalWindowManager.cs: Remove the ButtonSize property, this
8606         should be retrieved from the theme.
8607         * MdiWindowManager.cs: Get the button size from the theme
8608         * ThemeWin32Classic.cs: Make the method to get the managed window
8609         titlebar button size public.
8610         - Handle the different button sizes of maximized toolwindows
8611         (should match any maximized window).
8612         - Get the titlebar height from the theme, not the WM (which gets
8613         it from the theme).
8614
8615 2006-06-12  Jackson Harper  <jackson@ximian.com>
8616
8617         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8618         event down to the mdi window manager.
8619         - Expose some extra stuff to base classes
8620         - Make sure to end the Capture on an NC Mouse up, so that we can
8621         get double clicks properly, and the sizing doens't stick.
8622         - When doing PointToClient contain it in the workable desktop
8623         area, this prevents windows from changing size when the cursor is
8624         pulled outside of the working area while sizing.
8625         * MdiWindowManager.cs: When we get a double click maximize the
8626         window.
8627         - Reset the cursor after handling mode changes.
8628
8629 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8630
8631         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8632           current desktop, instead of just assuming a 0, 0 origin. This
8633           is needed for our internal window manager, to know the top
8634           margin of the desktop
8635
8636 2006-06-12  Chris Toshok  <toshok@ximian.com>
8637
8638         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8639         we need this to get rid of the selected background in the bool
8640         column.
8641         (CancelEditing): move the ConcedeFocus call to above the Abort
8642         call.  Also, set is_changing to false and invalidate the row
8643         header if we were changing before.
8644         (ProcessKeyPreviewInternal): remove, since noone outside this
8645         class calls it anymore.  Roll the code into ProcessKeyPreview.
8646         (EndEdit): remove the internal version.
8647         (InvalidateCurrentRowHeader): make private.
8648
8649         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8650         Keys.Escape handling (and with it the last call to
8651         DataGrid.EndEdit from outside the class.)
8652
8653
8654 2006-06-12  Chris Toshok  <toshok@ximian.com>
8655
8656         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8657         (OnKeyPress): set isedit to true.
8658         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8659         already handled by the grid.
8660
8661         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8662         right.  ugh.
8663         (set_DataSource): SetDataSource always returns true, so stop
8664         putting it in an if statement.
8665         (EndEdit): get rid of some {}'s
8666         (ProcessGridKey): return true in case Keys.Escape.
8667         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8668         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8669         PositionChanged, stopped connecting to CurrentChanged.
8670         (GetDataSource): simplify this a bunch.
8671         (SetDataSource): change return type from bool to void.
8672         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8673         to this, and make sure we don't set ListManager.Position inside
8674         set_CurrentCell.
8675         (OnListManagerItemChanged): if we're passed an actual index,
8676         redraw that row.
8677
8678         * CurrencyManager.cs (set_Position): don't call PullData here.
8679
8680 2006-06-09  Jackson Harper  <jackson@ximian.com>
8681
8682         * TreeNode.cs:  Recalculate the visible order before doing the
8683         Expand/Collapse Below calls, because those calls generate an
8684         expose.
8685         - Reduce calls to the TreeView property, which is mildly expensive
8686         by using a local var.
8687         * Form.cs: Layout the MDI child windows when creating the parent
8688         form.
8689         - Don't use the internal constructor anymore
8690         * MdiClient.cs: use the parent form width/height (if available)
8691         when laying out the child windows, we do this because the
8692         mdiclient isn't docked yet when the initial layout is done.
8693         - Don't need an internal constructor anymore.
8694
8695 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8696
8697         * FileDialog.cs: handle access errors when trying to create a folder
8698         or changing to a directory. No need to initialize out parameters.
8699
8700 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8701
8702         * FileDialog.cs: Append a number when creating a new folder if the
8703           folder already exists (use parenthesis instead of square brackets)
8704
8705 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8706
8707         * FileDialog.cs:
8708           - Disabled registry support for windows and added better registry
8709             error checking for other systems (need to investigate why it
8710             works perfectly on my system)
8711           - If a folder already exist show an error MessageBox instead of
8712             trying to create an indexed name.
8713           - Fixed a non intentional typo.
8714
8715 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8716
8717         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8718
8719 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8720
8721         * FileDialog.cs: When creating a new folder don't crash if the
8722           folder already exists.
8723
8724 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8725
8726         * FileDialog.cs: Allmost a complete rewrite.
8727           - added a "virtual" file system that handles the differences
8728             between unix and windows file systems (especially the directory
8729             structure). Moved most of the directory and file handling code
8730             into the vfs.
8731             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8732             UnixFileSystem and FSEntry.
8733           - Recently used folder/directory, size, location and used file names
8734             (file name ComboBox) are now stored in the registry and get read
8735             before the dialog shows up (fixes part 6 of bug #78446).
8736           - Creation of new folders/directories is now possible (context menu
8737             or ToolBar). Added TextEntryDialog for this that fills in the gap
8738             until ListView.LabelEdit works.
8739           - Fixed cursor handling (bug #78527) and focus handling for
8740             PopupButtonPanel
8741           - Various "Search in" ComboBox enhancements. The content of the
8742             dropdown listbox now almost matches ms.
8743           - Changed the behaviour when the user switches to SpecialFolder
8744             Recent to show the ListView in View.Details.
8745           - Beside using the ToolBar to change the View property of the
8746             file ListView it is now possible to use the context menu too.
8747
8748 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8749
8750         * ComboBox.cs: Don't create a new ObjectCollection when an item
8751           gets inserted. Just insert the item in the existing object_items
8752           ArrayList.
8753
8754 2006-06-08  Jackson Harper  <jackson@ximian.com>
8755
8756         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8757         that the treeview and root node checks are done also, this fixes a
8758         regression i caused in the unit tests.
8759
8760 2006-06-07  Wade Berrier <wberrier@novell.com> 
8761
8762         * RichTextBox.cs: More ISO8859-1 -> unicode
8763
8764 2006-06-07  Mike Kestner  <mkestner@novell.com>
8765
8766         * ComboBox.cs : use items to hold highlight/selection so that
8767         collection insertions don't require synchronization.
8768
8769 2006-06-07  Jackson Harper  <jackson@ximian.com>
8770
8771         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8772         routine.  We now always keep the sized edge at the cursor instead
8773         of computing movement and adjusting rects.  There is one buglet
8774         with this method though when the cursor is moved over area that
8775         the window can not expand too (such as the toolbars on the desktop).
8776
8777 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8778
8779         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8780         here. Fixes crash on startup in AlbumSurfer.
8781
8782 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8783
8784         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8785           values
8786
8787 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8788
8789         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8790         statement to avoid calling XNextEvent which will block if another thread
8791         took the event that we were expecting. Fixes bug #78605.
8792
8793 2006-06-07  Mike Kestner  <mkestner@novell.com>
8794
8795         * ListView.cs : isolated checkbox clicking from the selection logic.
8796         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8797
8798 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8799
8800         * Form.cs: Check that the value passed to Form.DialogResult
8801         is a valid enum value.
8802
8803 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8804
8805         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8806         Computer'. Clicking it in the network view goes to 'My Computer'.
8807         Added CIFS filesystem type. Display the mount point of filesystems.
8808         Avoid duplicate mount points (happens for me with CIFS);
8809
8810 2006-06-06  Jackson Harper  <jackson@ximian.com>
8811
8812         * InternalWindowManager.cs: Draw the maximized windows buttons
8813         when resizing.
8814
8815 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8816
8817         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8818         all other dialogs. Fixes bug #78585.
8819
8820 2006-06-06  Mike Kestner  <mkestner@novell.com>
8821
8822         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8823         Only invalidate checkbox on checkstate changes to avoid flicker.
8824         * ListBox.cs : avoid unselect/select when clicking selected item.
8825         avoid reselection flicker for already multiselected items.
8826         Fixes #78382.
8827
8828 2006-06-06  Jackson Harper  <jackson@ximian.com>
8829
8830         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8831         the parent form so that the menu is removed if needed.
8832
8833 2006-06-06  Mike Kestner  <mkestner@novell.com>
8834
8835         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8836         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8837
8838 2006-06-06  Mike Kestner  <mkestner@novell.com>
8839
8840         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8841
8842
8843 2006-06-06  Jackson Harper  <jackson@ximian.com>
8844
8845         * Control.cs: Use the property (instead of the field) to get the
8846         default cursor so it is instantiated correctly.
8847         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8848         resizes so we need to manually repaint the window decorations here.
8849         - Set the titlebar button locations as soon as they are created,
8850         otherwise they are not set correctly on win32.
8851         
8852 2006-06-06  Chris Toshok  <toshok@ximian.com>
8853
8854         * CurrencyManager.cs (set_Position): call PullData before
8855         OnCurrentChanged.
8856         (AddNew): after calling IBindingList.AddNew, update our
8857         listposition, and call OnCurrentChanged/OnPositionChanged (without
8858         calling PullData).
8859         (OnCurrentChanged): remove the call to PullData from here.
8860         (OnItemChanged): remove the call to PushData from here.
8861         (OnPositionChanged): change the test from == null to != null to
8862         match the other methods.
8863         (ListChangedHandler): the grossest part of the patch.  Implement
8864         this such that it passes the unit tests in CurrencyManagerTest and
8865         the output more or less matches that of MS's implementation.
8866  
8867 2006-06-06  Mike Kestner  <mkestner@novell.com>
8868
8869         * ListView.cs : only update check state on single click.
8870         * ThemeWin32Classic.cs : fix focus drawing for details view without
8871         fullrowselect.  Fixes #78454.
8872         * XplatUIX11.cs : fix for double click emission.
8873
8874 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8875
8876         * PropertyGridView.cs : Applied Atsushi's patch to fix
8877         font dialog bug  (#78197).
8878
8879 2006-06-05  Jackson Harper  <jackson@ximian.com>
8880
8881         * TreeNode.cs: Compute the next node for expanding/collapsing
8882         correctly. We now factor in nodes without a NextNode
8883         correctly. (Fixes somes cases in nunit-gui).
8884         * InternalWindowManager.cs: Set the bounds when updating the
8885         virtual position of a tool window.
8886         
8887 2006-06-05  Chris Toshok  <toshok@ximian.com>
8888
8889         * DataGrid.cs: rename cached_currencymgr to list_manager.
8890         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8891         some.
8892         (CurrentRow, CurrentColumn): single accessors so we can make the
8893         cursor movement code a lot easier to understand.
8894         (CurrentRowIndex): implement this in terms of CurrentRow.
8895         (BeginEdit): clean this up a bit.
8896         (CancelEditing): sort out the is_editing/is_changing/is_adding
8897         stuff a little.
8898         (EndEdit): minor changes.
8899         (OnKeyDown): add a comment about a (most likely) unnecessary
8900         check.
8901         (OnMouseDown): cancel editing when we click on a row header.  And
8902         use the CurrentRow setter, not CurrentCell.
8903         (ProcessDialogKey): directly call ProcessGridKey.
8904         (UpdateSelectionAfterCursorMove): factor out this common block of
8905         code (it's used everywhere that we move the cursor by updating row
8906         or column).
8907         (ProcessGridKey): pretty substantial overhaul.  Use the
8908         CurrentRow/CurrentColumn properties to make the code a lot more
8909         readable.  Only use the CurrentCell property when we have to
8910         modify both row and column at once.  Tab behavior is still broken,
8911         and Delete is untested.
8912         (Select): if we have no selected rows, set selection_start to
8913         @row.
8914         (EditCurrentCell): rename EditCell this.  It was only ever invoked
8915         with CurrentCell as the arg, so drop the arg and rename it.
8916
8917         * DataGridColumnStyle.cs: clean up the constructors a little, and
8918         drop CommonConstructor().
8919
8920         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
8921         actually get notified when the user hits it.
8922         (ProcessKeyMessage): *substantially* simplify this method.
8923         There's no reason (that I can see) for the textbox to be making
8924         calls into the datagrid at all.  Remove all of them but the ones
8925         for Enter handling.  those will take some more work.
8926
8927         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
8928         calling HideEditBox.
8929         (HideEditBox): if we have an active textbox, render it invisible
8930         without causing a re-layout of the datagrid.
8931
8932 2006-06-05  Mike Kestner  <mkestner@novell.com>
8933
8934         * ListView.cs : fix NRE crasher when focuseditem is cleared by
8935         collection changes by resetting it to Items[0].  Fixes #78587.
8936
8937 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8938
8939         * MessageBox.cs: if the height of the text is larger than the icon_size,
8940         use that. Fixes bug #78575.
8941
8942 2006-06-05  Jackson Harper  <jackson@ximian.com>
8943
8944         * TreeView.cs: Fix line drawing when scrolling.  To do this each
8945         node is basically responsible for drawing its entire horizontal
8946         area.  When drawing a node it draws its parent node lines if
8947         needed.
8948         - Adjust the clip area to the viewport rectangle
8949         - Fix Left/Right key handling to match MS. (It expand/collapses
8950         and moves to parents/first child but does not move selection to
8951         sibling nodes).
8952         - Fix SetTop to work with new bound calculation code
8953         - When scrollbars are no longer needed we need to reset scrolling
8954         vars and recalculate the visible order so the redraw is correct
8955         * TreeNode.cs: We can't expand/collapse nodes with no children.
8956
8957 2006-06-03  John Luke  <john.luke@gmail.com> 
8958
8959         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
8960         so the colors work without dev packages
8961         
8962 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
8963
8964         * Control.cs 
8965           - Select: Implemented to just use activate. Seems to match MS 
8966             behaviour closest. Documented to only do actual control walking 
8967             based on it's parameters if in a container control so I moved 
8968             the code there.
8969           - Removed selection check logic from our internal Select() method
8970         * ContainerControl.cs:
8971           - Select: Moved selection logic from Control here, since MS documents
8972             that containers obey the bool arguments. No longer calling base
8973
8974 2006-06-02  Jackson Harper  <jackson@ximian.com>
8975
8976         * TreeView.cs: If the selected node isn't changed when we get
8977         focus update the previously selected node so that we see the
8978         selection box.
8979
8980 2006-06-02  Mike Kestner  <mkestner@novell.com>
8981
8982         * ComboBox.cs: restructure grab and general mouse event handling.
8983         Make the composite control raise mouse events like it was a single
8984         control for leaves/enters/motion/up/down events.  fix dropdown list
8985         coordinate mangling and refactor it into the scrollbar subclass to
8986         reduce code duplication.  Fixes #78282 #78361 and #78457.
8987
8988 2006-06-02  Mike Kestner  <mkestner@novell.com>
8989
8990         * ScrollBar.cs: remove Capture setting/clearing, as it happens
8991         automatically in the Control.WndProc.
8992
8993 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8994
8995         * FileDialog.cs: fix crash when running SharpChess, which sets the
8996         FilterIndex to 2 with only one Filter.
8997
8998 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8999
9000         * ToolBar.cs: add SizeSpecified property.
9001         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9002         try to figure out our real size, otherwise fallback to what the
9003         container says.
9004
9005 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9006
9007         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9008         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9009           up the event
9010
9011 2006-06-01  Mike Kestner  <mkestner@novell.com>
9012
9013         * ListView.cs: revamp the focus management in ListView.  It still
9014         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9015         better than not handling focus at all.  Will revisit when pdb feels
9016         the general focus handling is solid.  Fixes #78526.
9017
9018 2006-06-01  Jackson Harper  <jackson@ximian.com>
9019
9020         * TreeView.cs: Set the default border style in the constructor.
9021         - Move painting to use OnPaintInternal instead of capturing
9022         WM_PAINT, this is the correct way of doing things
9023         - UpdateBelow shouldn't invalidate the scrollbar area
9024         - Cap the top on update below in case the node was above the top
9025         of the viewport rectangle.
9026         - ExpandBelow and Collapse below need to obey Begin/End Update.
9027         * TreeNode.cs: Make is_expanded internal so the treenode
9028         collection can change it without firing the whole event chain.
9029         * TreeNodeCollection.cs: When clearing all the child nodes make
9030         sure to recalc the visible order.
9031         - Improve algo for remove the top node
9032
9033 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9034
9035         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9036           SendMessage directly calling window procedures, which in turn might
9037           call SetFocus()
9038
9039 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9040
9041         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9042           has focus (works around X11 sending a FocusIn after our SetFocus)
9043         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9044
9045 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9046
9047         * Mime.cs: Fix for the NET_2_0 build.
9048           NameValueCollection needs StringComparer now.
9049
9050 2006-05-31  Chris Toshok  <toshok@ximian.com>
9051
9052         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9053         return (via an out parameter) the starting X of the column.
9054         (UpdateVisibleColumn): track change to FromPixelToColumn.
9055         (HitTest): add a ColumnResize case here.
9056         (DrawResizeLine): new function, probably poorly named.
9057
9058         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9059         only need to keep one reference.
9060         (set_ListManager): same.
9061         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9062         Also, add support for HitTestType.ColumnResize.
9063         (OnMouseMove): add column resize behavior here, and change the
9064         cursor to the correct one as we move around the datagrid.
9065         (OnMouseUp): terminate the column resize if we're resizing.
9066         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9067         for the current cell.
9068         (ConnectListManagerEvents): use cached_currencymgr.
9069         (DisconnectListManagerEvents): fill this in, using
9070         cached_currencymgr.
9071         (SetCurrentCell): remove cached_currencymgr_events handling.
9072         (SetDataMember): only call DisconnectListManagerEvents if
9073         cached_currencymgr is != null.
9074         (SetDataSource): same.
9075         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9076         cached_currencymgr.
9077
9078 2006-05-31  Jackson Harper  <jackson@ximian.com>
9079
9080         * BindingManagerBase.cs: Remove somedebug code that creeped into
9081         SVN.
9082         * TreeNode.cs: We get the indent level dynamically right now, so
9083         don't track it as a member.
9084         * TreeNodeCollection.cs: Make sure all nodes added to the list
9085         have parents, treeviews/topnodes setup properly.
9086         - Don't attempt to track indent level.
9087
9088 2006-05-30  Jackson Harper  <jackson@ximian.com>
9089
9090         * BindingContext.cs: Create the currency manager tables here.
9091         This allows us to more easily create null tables (when bad data
9092         members are used), and more easily create related currency
9093         managers.
9094         * CurrencyManager.cs: All the table creation stuff is done by the
9095         binding context now.
9096         - Current should throw an exception if listposition is -1.
9097         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9098         been bound yet.
9099
9100 2006-05-30  Mike Kestner  <mkestner@novell.com>
9101
9102         * ListView.cs: allow reexpansion of zero-width column headers.
9103         Fixes #78528.
9104
9105 2006-05-28  Chris Toshok  <toshok@ximian.com>
9106
9107         * CurrencyManager.cs (get_Current): after the late binding
9108         listposition = -1 fix, we need to guard against it here and return
9109         null, otherwise we raise an exception (which is swallowed
9110         elsewhere, and breaks datagrid databinding.)
9111
9112 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9113
9114         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9115           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9116
9117 2006-05-26  Jackson Harper  <jackson@ximian.com>
9118
9119         * ControlPaint.cs:
9120         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9121         values, it's faster and it's all we care about (we don't care if
9122         the names aren't equal).
9123         * KeyboardLayouts.cs: Eliminate some dead code.
9124         - Lazy init things
9125         * X11Keyboard.cs: Lazy init keyboard detection.
9126         - Cleanup access modifiers a little.
9127
9128 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9129
9130         * XplatUIX11.cs: Once again, attempting to get layout just right.
9131
9132 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9133
9134         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9135           the sizes of each link section, that will result in sizes that
9136           match DrawString's layout (Fixes #78391)
9137
9138 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9139
9140         * FileDialog.cs: If AddExtension property is true autocomplete the
9141           extensions in SaveFileDialog correctly. Fixes bug #78453.
9142           Set MyNetwork and MyComputer to "C:\" for windows. This should
9143           fix part 8 of bug #78446 for now.
9144
9145 2006-05-26  Chris Toshok  <toshok@ximian.com>
9146
9147         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9148         invalidate the current row header if we need to, but presumably
9149         we'll invalidate the row corrsponding to the bounds or
9150         editingControl.
9151         (GridHScrolled): switch back to this method, as it's part of the
9152         public api.  *sigh*.
9153         (GridVScrolled): same.
9154         (OnMouseWheel): hack up something that more or less works.  Call
9155         GridHScrolled/GridVScrolled directly, instead of duplicating much
9156         of their code here.
9157         (EnsureCellVisibility): reinstate a bunch of this code, since we
9158         can't just set the scrollbar Value and expect to do all the work
9159         in the ValueChanged handler.  Also, Call Update() after scrolling
9160         in one direction so the other XplatX11.ScrollWindow call has the
9161         proper stuff in the proper places.
9162         (EditCell): set is_editing to true before calling .Edit.
9163
9164         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9165         don't bother comparing first.
9166         (OnKeyPress): call grid.ColumnStartedEditing before calling
9167         base.OnKeyPress.  this will set is_changing and invalidate the row
9168         header if necessary.
9169         (ProcessKeyMessage): for WM_CHAR messages, call
9170         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9171         and WM_KEYDOWN.
9172         
9173         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9174         it's done in the DataGrid.
9175         (NextState): call grid.ColumnStartedEditing, which takes care of
9176         invalidating the row header (and setting is_changing).
9177
9178         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9179         here.  it's done in the DataGrid.
9180
9181 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9182
9183         * Control.cs: allow changing the cursor when the mouse position is
9184         out of bounds but Capture is set.
9185         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9186         linklabel but released somewhere else.
9187
9188 2006-05-25  Jackson Harper  <jackson@ximian.com>
9189
9190         * TreeView.cs: When we get focus if there is no selected node make
9191         it the top node
9192         - Remove some uneeded setup code from Draw.
9193         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9194         a new node is inserted make the new node the top.
9195         * XplatUIX11.cs:
9196         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9197         be used (should be faster).
9198         
9199 2006-05-25  Chris Toshok  <toshok@ximian.com>
9200
9201         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9202         problem with the last commit.
9203
9204 2006-05-25  Chris Toshok  <toshok@ximian.com>
9205
9206         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9207         need the invalidate call here, while scrolling right-to-left via
9208         the left arrow key (i.e. moving the editing cell while scrolling).
9209
9210         * DataGrid.cs (.ctor): remove the initialization of
9211         ctrl_pressed/shift_pressed.  We no longer track them using key
9212         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9213         to using ValueChanged handlers on the scrollbars instead of
9214         Scrolled event handlers.  This simplifies a bunch of the scrolling
9215         code.
9216         (GridHValueChanged): rename from GridHScrolled, and change it to
9217         work with the new event args.
9218         (GridVValueChanged): same.
9219         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9220         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9221         selected cell.
9222         (ProcessGridKey): correct all the keyboard navigation stuff I
9223         could find.  Ctrl up/down/left/right/home/end work now.
9224         (EnsureCellVisibility): correct method name spelling.  Also,
9225         simplify this a touch by not explicitly calling the
9226         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9227         scrollbar value.
9228         (OnKeyUpDG): no need for this method now.
9229         
9230 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9231
9232         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9233         Fixes bug #78392.
9234
9235 2006-05-25  Chris Toshok  <toshok@ximian.com>
9236
9237         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9238         r61019.
9239
9240 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9241
9242         * Application.cs: Moved setting of is_modal and closing to before
9243           we create the control, to allow the event handlers called as a
9244           result of creation affect closing. Also removed Gonzalo's previous
9245           change to setting DialogResult, the behaviour has been moved to 
9246           Form.ShowDialog()
9247         * Form.cs: 
9248           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9249             handle it instead
9250           - ShowDialog(): If no dialog result is set, we need to return Cancel
9251           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9252             the close is cancelled
9253
9254 2006-05-25  Jackson Harper  <jackson@ximian.com>
9255
9256         * StatusBar.cs: We only need to update the sizes of the other
9257         panels when we have auto size contents.  Also we are only updating
9258         the contents of the panel, not the borders, so compensate for the
9259         border width (TODO: get this width from the theme somehow).
9260         * TreeView.cs: Scrollable is true by default
9261         - Use invalidate instead of refresh where needed
9262         - Factor the scrollable value into scrollbar updating
9263         - Update the scrollbars if the Scrollable property is altered
9264         - Update the selected node if its ImageIndex is changed
9265         - Handle null nodes in UpdateNode (mainly so we don't have to
9266         check if selected is null when updating it
9267         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9268         are factored into the visible count
9269         - Use VisibleCount for clarity in the code
9270         - When the font is changed we need to recurse through all the
9271         nodes and invalidate their sizes
9272         
9273 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9274
9275         * Application.cs: set the DialogResult to fixed when the main form is
9276         hidden or destroyed while being modal.
9277
9278 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9279
9280         * Theme.cs: Use Tangoified messagebox icons. 
9281
9282         (GetSizedResourceImage): Also cope with width = 0 and do not
9283         trigger a warning in that case (0 means "give me your icon from
9284         the resouce, no special size needed).
9285
9286 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9287
9288         * Application.cs: Leave runloop if the the main modal form is 
9289           hidden (fixes #78484)
9290
9291 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9292
9293         * BindingContext.cs : reject null datasource in Contains() and
9294           Item[].
9295         * CurrencyManager.cs : check data_member validity when data_source
9296           is dataset. When it is late binding, the initial position is -1.
9297
9298 2006-05-24  Jackson Harper  <jackson@ximian.com>
9299
9300         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9301         inserted nodes that aren't visible.  This changes the
9302         max_visible_order which confuses scrollbar settings.
9303         - Use the enumerator to get the prev node instead of duplicating
9304         code.
9305         * TreeView.cs: Use new method for setting scrollbar values
9306         - Don't set the bounds every time the scrollbar is updated
9307         - When updating below the root node use an invalidate instead of a
9308         refresh to prevent the child controls (scrollbars) from being
9309         refreshed. (UpdateBelow still needs to be reworked anyways).
9310         - Reenable SetBottom now that visible orders are set correctly,
9311         added some debug code incase we ever get bad values there again.
9312         - Set the scrollbar max to 2 less then the max value, this
9313         compensates for the max value being one above the node count, and
9314         for scrollbars adding one extra "notch".
9315         - When drawing image nodes if there is an imagelist we draw the
9316         first image in the list if the supplied image index is out of the
9317         image list's bounds.
9318         
9319 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9320
9321         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9322           we receive a size change from the WM (Fixes #78503)
9323
9324 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9325
9326         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9327           rectangle (Fixes #78501)
9328
9329 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9330
9331         * ButtonBase.cs: 
9332           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9333             as a bitfield.
9334           - Fixed MouseMove to no longer switch pressed state unless the left
9335             mouse button is pressed. Atsushi provided the original patch (#78485)
9336           
9337 2006-05-24  Jackson Harper  <jackson@ximian.com>
9338
9339         * ScrollBar.cs: New internal methods that allow us to change a
9340         couple values on the scrollbar (the most common case is maximum
9341         and large change) without getting multiple invalidates.
9342
9343 2006-05-24  Chris Toshok  <toshok@ximian.com>
9344
9345         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9346         (Edit): save off the original state in oldState, and set
9347         grid.is_editing to true.
9348         (OnKeyDown): abort editing if escape is pressed.  also, call
9349         NextState if space is pressed.
9350         (OnMouseDown): call NextState.
9351         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9352         here.  Also, only invalidate the row header once (on the initial
9353         is_changing switch) to save on redraws.
9354
9355 2006-05-24  Chris Toshok  <toshok@ximian.com>
9356
9357         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9358         if the value in the cell is different than it was before.  This
9359         keeps us from triggering a layout when we move around a datarid
9360         with a highlighted cell.
9361         (Edit): suspend layout when creating/positining the text box, and
9362         resume passing false so we don't ever actually re-layout.
9363         (ReleaseHostedControl): same.
9364         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9365
9366         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9367         control-key sequences should go to the datagrid - remove that
9368         lock.  Also, modify the conditions under which we move between
9369         cells when moving the cursor within a cell, and remove the "this"
9370         and "base" from field accesses.  We weren't even consistent, given
9371         they all were in the base class.
9372
9373 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9374
9375         * Binding.cs : (.ctor)
9376           An obvious NRE fix for BindingTest.CtorNullTest().
9377
9378 2006-05-23  Chris Toshok  <toshok@ximian.com>
9379
9380         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9381         them between lines.  This fixes some quirks editing cells in the
9382         datagrid.
9383
9384 2006-05-23  Jackson Harper  <jackson@ximian.com>
9385
9386         * TreeView.cs: Use begin/end update when doing expand/collapse all
9387         so that we don't get flicker on the scrollbar.
9388
9389 2006-05-23  Jackson Harper  <jackson@ximian.com>
9390
9391         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9392         treenode calculations to be independant of the painting code. To
9393         do this nodes track a visible order which is calculated by the
9394         treeview.
9395         - Call new methods for expanding/collapsing nodes.  These methods
9396         use scrollwindow so we don't have to update everything below the
9397         node.
9398         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9399         need to update nodes when drawing anymore or calculate scrollbar
9400         stuff.
9401         - Added new methods for expanding/collapsing nodes. These methods
9402         use ScrollWindow so as to not have to redraw all the nodes below.
9403         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9404         we add/remove nodes or sort.
9405         - Handle removing the selected and the top node properly.
9406
9407 2006-05-23  Chris Toshok  <toshok@ximian.com>
9408
9409         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9410         maybe this should actually happen in the datagrid code?
9411         (EndEdit): no need to invalidate anything, given that
9412         ReleaseHostedControl causes the datagrid to relayout, which
9413         invalidates everything anyway.
9414
9415         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9416         in SetCurrentCell).
9417         (set_SelectionBackColor): call InvalidateSelection instead of
9418         Refresh.
9419         (set_SelectionForeColor): same.
9420         (BeginEdit): Flesh this out a bit.
9421         (CancelEditing): only do any of this if we're editing/adding.
9422         (EndEdit): same.
9423         (OnMouseDown): there's no need to cancel editing here, it's done
9424         in SetCurrentCell.
9425         (SetCurrentCell): only invalidate the current row header if it's a
9426         different row than the new one.
9427         (ShiftSelection): fix this to work like MS does.
9428         (ResetSelection): factor out the invalidation of selected_rows to
9429         InvalidateSelection.
9430         (SetDataSource): cancel any editing that's going on.
9431
9432         * DataGridColumnStyle.cs
9433         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9434         call the non-interface version.
9435
9436         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9437         header rectangle with the clip rectangle so we don't redraw the
9438         entire header for just a small area.  Gets rid of the last flicker
9439         when horizontally scrolling.
9440         (DataGridPaintRow): same.
9441
9442 2006-05-23  Mike Kestner  <mkestner@novell.com>
9443
9444         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9445         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9446         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9447         Critical bug report.
9448
9449 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9450
9451         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9452           and this fixes #78493
9453
9454 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9455
9456         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9457         size is not found.  
9458         
9459         * FileDialog.cs: Do not change the background for the side bar as
9460         it wont work nicely with the theme, and also reduces the artifacts
9461         in rendering the icons (which I want to fix too).
9462
9463         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9464         resources, not resgen resources. 
9465
9466         (PlatformDefaultHandler): Pull images using the new API.
9467
9468 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9469
9470         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9471           a reference to the hwnd and will not remove it unless there are
9472           no pending exposures (fixes #78341)
9473         * XplatUI.cs: Improved debug
9474
9475 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9476
9477         * MenuAPI.cs : don't handle OnClick event when it was not the left
9478           button. Fixed bug #78487.
9479
9480 2006-05-23  Mike Kestner  <mkestner@novell.com>
9481
9482         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9483         prefer submenus to the top menu for item lookup, to avoid popping down
9484         top-row items.
9485
9486 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9487
9488         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9489           Graphics.FillRectangle as the visual results are really bad (even
9490           on win). We now draw perfect arrows (and perfect shadows when the
9491           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9492           Pen.DashPattern to draw the dots of each line.
9493
9494 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9495
9496         * FileDialog.cs: Update the filename combobox when navigating through
9497           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9498
9499 2006-05-22  Mike Kestner  <mkestner@novell.com>
9500
9501         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9502         Fixes #78463.
9503
9504 2006-05-22  Mike Kestner  <mkestner@novell.com>
9505
9506         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9507         requests. Fix a misspelled parameter and a copy paste exception error
9508         in Select.
9509
9510 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9511
9512         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9513           to get the same width/height (5/13) on X11 as the default font has on
9514           win32. This means that our DefaultFont emSize is smaller than the 
9515           the MS SWF equivalent (even thought the width/height stays the same)
9516
9517 2006-05-20  Jackson Harper  <jackson@ximian.com>
9518
9519         * MdiClient.cs:
9520         * MdiWindowManager.cs:
9521         * InternalWindowManager.cs: Make sure to use the border width from
9522         the theme.
9523
9524 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9525
9526         * PrintDialog.cs: Implements printer details
9527
9528 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9529
9530         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9531           Fixes part 1 and 2 of bug #78446
9532
9533 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9534
9535         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9536           instead of sticking to the first ever calculated value
9537
9538 2006-05-19  Mike Kestner  <mkestner@novell.com>
9539
9540         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9541         PointToClient, since Capture is set. Fixes #78344.
9542
9543 2006-05-19  Mike Kestner  <mkestner@novell.com>
9544
9545         * ListView.cs: match MS behavior in Details view where items are not
9546         drawn if Columns.Count == 0. 
9547         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9548         Use a separate pen to draw the check, since changing the width affects
9549         the box as well.  Fixes #78454.
9550
9551 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9552
9553         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9554         exception should throw the name of the invalid argument.
9555
9556         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9557         there are no files listed. 
9558
9559 2006-05-18  Jackson Harper  <jackson@ximian.com>
9560
9561         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9562         up.
9563
9564 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9565
9566         * Control.cs: Brought back our old UpdateZOrder method as a private
9567           function and switched our calls from UpdateZOrder to the new one.
9568           This fixes the Paint.Net canvas disappearing bug.
9569
9570 2006-05-18  Jackson Harper  <jackson@ximian.com>
9571
9572         * Theme.cs:
9573         * ThemeWin32Classic.cs:
9574         * InternalWindowManager.cs: Move the drawing into the theme,
9575         expose everything the theme should need from the window manager.
9576
9577 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9578
9579         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9580           from the call to NativeWindow to avoid walking up the parent chain
9581           further than needed (speeds up setting cursors and avoids setting
9582           the wrong cursor if a parent has another cursor defined)
9583         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9584           the icon as hotspot, not what's contained as hotspot in the icon
9585           file. This fixes the perceived drawing offset seen with Paint.Net
9586         
9587 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9588
9589         * XplatUIX11.cs: 
9590           - Store the calculated rectangle in Hwnd object and use it when 
9591             setting the client size
9592           - Force Toolwindows to always be type Dock, to ensure they're on top
9593
9594 2006-05-18  Mike Kestner  <mkestner@novell.com>
9595
9596         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9597         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9598         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9599         Substantial refactoring to remove confusing nested classes. Coding
9600         standard and Get+Set->property refactorings.  Shift to index based
9601         highlighting in ComboListBox instead of constantly using IndexOf and
9602         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9603         in FileDialog growth.  Draw borders manually since Simple mode needs
9604         to look like two independent controls.  Make listbox border
9605         conditional to DropDownStyle.  Improved OwnerDraw support.
9606
9607 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9608
9609         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9610         Don't set the disposed graphics to null, so we can throw the "right"
9611         exception if the graphics is reused later (added a flag to avoid 
9612         double disposing). Some behaviours are different under 2.0 and are
9613         filled under bug #78448.
9614
9615 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9616
9617         * Control.cs: When double-buffering is enabled, we need to reset
9618           our graphics context between paint calls. Otherwise, any 
9619           transformations and other alterations on the context will 
9620           become cumulative (#77734)
9621
9622 2006-05-18  Mike Kestner  <mkestner@novell.com>
9623
9624         * ListView.cs: do focused item selection like MS on clicks. 
9625         Rework focus handling for ItemControl so LostFocus invalidates as
9626         well.
9627         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9628         the ListView ItemControl has focus.
9629
9630 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9631
9632         * XplatUIX11.cs: If client_window ends up being width or height zero
9633           due to border settings, move it off window inside whole_window (#78433)
9634
9635 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9636
9637         * Mime.cs: Shrink the mime file cache correctly.
9638
9639 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9640
9641         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9642
9643 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9644
9645         * XplatUIX11.cs (AddExpose): More sanity checks
9646
9647 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9648
9649         * XplatUIX11.cs:
9650           - AddExpose: Don't add expose ranges outside the size of our
9651             window
9652           - Cast opacity values to Int32 to avoid crashes with certain
9653             values
9654           - Added disabled code paths that protect against illegal cross-
9655             thread painting (Developers.exe)
9656
9657 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9658
9659         * ProgressBar.cs: Invalidate the control when it's resized
9660           since block size is based on control size. (#78388)
9661
9662 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9663
9664         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9665         of setting the incoming argument to the "reset" value, we set the
9666         this.datamember to string.empty (before we were invalidating the
9667         incoming data).   
9668
9669         Fixes 78420
9670
9671 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9672
9673         * Form.cs: Only apply transparency settings after the form
9674           is created. (Fixes #77800)
9675
9676 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9677
9678         * ApplicationContext.cs: Grab the HandleDestroyed event so
9679           we know when to fire OnMainFormClosed 
9680
9681 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9682
9683         * Application.cs: Introduced sub-class to allow tracking of
9684           threads and centralized triggering of the event mess for
9685           ThreadExit, AppExit, etc..  (#76156)
9686
9687 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9688
9689         * MimeIcon.cs:
9690           - Do not return a null icon index value for a mime subclass.
9691             Instead try the main mime type class too.
9692           - Seems that some newer distributions don't have a link to some
9693             gnome default icons anymore. So check the default gnome dir too.
9694           
9695
9696 2006-05-16  Jackson Harper  <jackson@ximian.com>
9697
9698         * MdiClient.cs: Don't paint the parent background image if we have
9699         our own background image.
9700
9701 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9702
9703         * Control.cs:
9704           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9705             controls, all filled controls are supposed to overlap (#78080)
9706           - UpdateZOrder is supposed to update the control's z-order in the
9707             parent's z-order chain. Fixed to behave like that
9708           - BringToFront: Removed obsolete code
9709           - SendToBack: Simplyfied
9710           - SetChildIndex: Trigger layout calculations when Z-order changes
9711             since layout is done by z-order
9712
9713 2006-05-16  Chris Toshok  <toshok@ximian.com>
9714
9715         [ fixes bug #78410 ]
9716         * DataGrid.cs (set_AlternatingBackColor): use
9717         grid_drawing.InvalidateCells instead of Refresh().
9718         (set_BackColor): call grid_drawing.InvalidateCells.
9719         (set_BackgroundColor): use Invalidate instead of Refresh.
9720
9721         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9722         invalidate the cell area.
9723
9724 2006-05-15  Chris Toshok  <toshok@ximian.com>
9725
9726         [ fixes bug #78011 ]
9727         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9728         on to DataGridPaintRow.
9729         (DataGridPaintRow): take a clip argument, and only draw the cells
9730         which intersect it.  same with the not_usedarea.
9731
9732         * Theme.cs (DataGridPaintRow) add @clip parameter.
9733
9734         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9735         XplatUI.ScrollWindow.
9736         (ScrollToRow): same.
9737
9738         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9739         with last column which was causing a gray swath to appear with the
9740         XplatUI.ScrollWindow code.
9741
9742 2006-05-15  Chris Toshok  <toshok@ximian.com>
9743
9744         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9745         use XplatUI.ScrollWindow.
9746         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9747
9748 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9749
9750         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9751
9752 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9755           file since there are no equivalent X11 cursors
9756
9757 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9758
9759         * MonthCalendar.cs : DateTimePicker should reflect selected date
9760           on mouse*up*, not mouse*down*. Fixed originally reported part of
9761           bug #76474.
9762
9763 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9764
9765         * TabControl.cs : When argument index is equal or more than tab
9766           count, just ignore. Fixed bug #78395.
9767
9768 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9769
9770         * Control.cs: Dispose all child controls when control is diposed (#78394)
9771
9772 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9773
9774         * ColorDialog.cs: Finally it is possible to select the color with
9775           the text boxes
9776
9777 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9778
9779         * PrintDialog.cs: Fix typo
9780
9781 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9782
9783         * PrintDialog.cs: PrintDialog is not resizable
9784         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9785           color. Made some ToolBar drawing methods protected virtual.
9786
9787 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9788
9789         * PrintDialog.cs: Implementation of the PrintDialog
9790
9791 2006-05-12  Chris Toshok  <toshok@ximian.com>
9792
9793         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9794         thumb, instead use MoveThumb.  This has the side effect of making
9795         most of the other thumb moving machinery use MoveThumb as well.
9796         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9797         need to actually invalidate the rectangle where the new thumb will
9798         go.
9799         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9800         We force an Update() after, so it's not as fast as it could be,
9801         but at least there's zero flicker and no droppings.
9802         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9803         (UpdateThumbPos): add another argument (dirty), which says whether
9804         or not to calculate/add dirty regions which we later invalidate.
9805         For cases where we know we're going to use MoveThumb, we pass
9806         false for this.  Otherwise, pass true.
9807
9808 2006-05-12  Jackson Harper  <jackson@ximian.com>
9809
9810         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9811         the status bar.
9812         
9813 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9814
9815         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9816           and GetClipRegion methods and UserClipWontExposeParent property.
9817         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9818           overriding UserClipWontExposeParent property, setting to false, since
9819           Win32 handles the required expose messages to draw our clipped parent
9820           areas internally
9821         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9822           PaintEventStart to set the user clip region if set.
9823         * Control.cs: 
9824           - Now internally tracking the Region for the control since we need to
9825             store it if the handle is not yet created and only set it when it
9826             becomes created. Before setting the region forced handle creation
9827           - Added code to draw the parents underneath a user-clipped region
9828         * Hwnd.cs: Added UserClip property
9829
9830 2006-05-12  Chris Toshok  <toshok@ximian.com>
9831
9832         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9833         (set_Maximum): same.
9834         (set_Minimum): same.
9835         (set_SmallChange): same.
9836         (OnMouseUpSB): remove the call to refresh when releasing the
9837         thumb.  We shouldn't need it.
9838         
9839 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9840
9841         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9842         AutoSize set to None, we do not need to relayout everything, we
9843         just need to invalidate the current region.
9844
9845         (Draw): Do not draw the entire ClientArea, just redraw the
9846         clip area being passed.
9847
9848         * MdiClient.cs: Make MdiClient constructor with the Form argument
9849         internal. 
9850
9851 2006-05-12  Jackson Harper  <jackson@ximian.com>
9852
9853         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9854         parents background image,  but strangely not their own.
9855         - (DrawStatusBarPanel): Take into account horizontal alignment
9856         when drawing the strings and icons.
9857
9858 2006-05-12  Mike Kestner  <mkestner@novell.com>
9859
9860         * ListBox.cs: avoid invalidations for focus when the collection is
9861         empty. 
9862
9863 2006-05-12  Chris Toshok  <toshok@ximian.com>
9864
9865         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9866         invalidate the entire thumb area.  Call InvalidateDirty which
9867         limits the redraw to the thumb itself and surrounding pixels.
9868
9869         * XplatUIX11.cs (ScrollWindow): optimize copying.
9870         
9871 2006-05-12  Chris Toshok  <toshok@ximian.com>
9872
9873         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9874         Figure out the positioning/layout in a single pass instead of
9875         multiple recursive invocations.  Speeds up the initial display of
9876         the data grid.  Also, make many things private that were
9877         originally public but unused outside this class.
9878
9879 2006-05-11  Jackson Harper  <jackson@ximian.com>
9880
9881         * MdiClient.cs: Improved layout code.
9882
9883 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9884
9885         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9886           not SelectedObject.
9887
9888 2006-05-11  Chris Toshok  <toshok@ximian.com>
9889
9890         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9891         union of that will always be {0,0,width,height}.
9892
9893 2006-05-11  Jackson Harper  <jackson@ximian.com>
9894
9895         * Form.cs: Match MS's DefaultSize for forms (they must have
9896         changed the size in sp2).
9897
9898 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9899
9900         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9901
9902 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9903
9904         * TextControl.cs : Fixed bug #78109. This incorrect position
9905           comparison caused crash on automatic line split.
9906         * TextBoxBase.cs : reduce duplicate code.
9907
9908 2006-05-10  Jackson Harper  <jackson@ximian.com>
9909
9910         * MdiClient.cs: Active form is only sent to the back when using
9911         the Next form functionality, when a form is clicked the current
9912         active shouldn't be sent to the back.
9913         - Layout the mdi windows when the container is first made visible.
9914         * Form.cs: Give the MdiClient a ref to the containing form when we
9915         create it.
9916         
9917 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9918
9919         * LinkLabel.cs : link_font could be uninitialized, so populate one
9920           before actual use. Fixed bug #78340.
9921
9922 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9923
9924         * XplatUIX11.cs : clipboard format native value is IntPtr.
9925           Fixed bug #78283.
9926
9927 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9928
9929         * Control.cs: 
9930           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
9931             which is passed up the parent chain by DefWndProc
9932           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
9933             to DefWndProc (#77956)
9934         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
9935
9936 2006-05-10  Jackson Harper  <jackson@ximian.com>
9937
9938         * MdiClient.cs: We need to remove the controls from the mdi
9939         collection, when we close the window.
9940         * MdiWindowManager.cs: Special handling of closing mdi windows.
9941         * InternalWindowManager.cs: Make the close method virtual so the
9942         mdi window manager can handle it specially.
9943
9944 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
9945
9946         * DataGrid.cs:
9947           - Recalculate grid when the data source has changed
9948           - Matches styles provided by user from all data sources types
9949         * DataGridTableStyle.cs: For columns that provided by the user set the
9950         with the preferred value is there was unassigned.
9951         * CurrencyManager.cs: throw OnItemChanged event
9952
9953 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
9954
9955         * PictureBox.cs: Don't animate until handle is created. Start animation
9956           when handle is created.
9957
9958 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9959
9960         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
9961           current codebase.
9962         * XEventQueue.cs: We don't need to provide the extra info
9963
9964 2006-05-10  Jackson Harper  <jackson@ximian.com>
9965
9966         * MdiClient.cs: If the mdi clients parent form has a background
9967         image set, we draw that background image for the mdi area's
9968         background.
9969
9970 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9971
9972         * TextBoxBase.cs: Set IBeam cursor (#78347)
9973
9974 2006-05-10  Mike Kestner  <mkestner@novell.com>
9975
9976         * ToolBar.cs: fix some text padding issues with ButtonSize
9977         calculation. Update the default size to match MS documentation.
9978         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
9979         button size. Fixes #78296.
9980
9981 2006-05-10  Mike Kestner  <mkestner@novell.com>
9982
9983         * ListBox.cs: use is_visible for scrollbar positioning in case the
9984         control isn't on screen yet.  Fix off by one with Right vs Width
9985         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
9986         
9987 2006-05-10  Jackson Harper  <jackson@ximian.com>
9988
9989         * X11Dnd.cs: Drop to a control with another control on top of it.
9990         * ToolBar.cs: Work on a copy of the buttons list, so that it can
9991         be modified in click handlers. TODO: Look for similar problems in
9992         other controls.
9993
9994 2006-05-09  Jackson Harper  <jackson@ximian.com>
9995
9996         * Form.cs: Window managers need the old window state when setting
9997         window state now.
9998         * InternalWindowManager.cs: Allow the base mdi window manager to
9999         handle more of the MDI only stuff (like maximize buttons).
10000         * MdiWindowManager.cs: Fix some snafus in changing the window
10001         state.  Add all the menu functionality, for both popup and
10002         maximized menus.
10003         * MdiClient.cs: When a new form is selected the currently
10004         activated form is sent to the back, this matches MS.
10005         - Implement a new method to activate the next mdi child window.
10006
10007 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10008
10009         * Control.cs: 
10010           - Added new InternalCapture method to allow controls to prevent
10011             the capture behaviour on the click handlers
10012           - Switched to use InternalCapture
10013         * ComboBox.cs:
10014           - Using InternalCapture to prevent mouse captures from being released
10015             on mouse button release (Fixes #78100)
10016         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10017           returns Form borders if a caption is present. (Fixes #78310)
10018
10019 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10020
10021         * TreeNode.cs: Changed serialization .ctor to not require every field
10022           to be present. (#78265)
10023         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10024
10025 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10026
10027         * MimeIcon.cs: for is faster than foreach for strings.
10028
10029 2006-05-05  Mike Kestner  <mkestner@novell.com>
10030
10031         * CheckedListBox.cs: update check handling code to not use selected.
10032         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10033         behavior for visual feedback, motion response, shift/ctrl handling,
10034         and properly deal with all 4 selection modes. Updates to bounds
10035         handling logic.  Add scroll wheel support. [Fixes #77842]
10036
10037 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10038
10039         * ListView.cs:
10040           - Moved adding of Implicit controls into .ctor. That way, subsequent
10041             creation of the controls will not cause them to think they are 
10042             toplevel windows (fixes #78200 header problem)
10043           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10044           - Switched visibility setting of header control to use internal field
10045             to avoid triggering handle creation
10046           - Now checking if handle is created before causing a refresh when items
10047             are added (This makes us now match handle creation time with MS)
10048         * Splitter.cs: Removed loading of private splitter cursor, switched to
10049           Cursors version now that that is loading the right ones
10050         * Cursors.cs: Load proper splitter cursors from resources
10051         * Cursor.cs: Added second method of loading resource cursors for the 
10052           VS.Net users amongst us
10053
10054 2006-05-05  Mike Kestner  <mkestner@novell.com>
10055
10056         * ListView.cs: give header_control a minimum size based on the
10057         ListView size.
10058
10059 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10060
10061         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10062           window seems to do that with metacity, so set that type. (#78120)
10063
10064 2006-05-05  Mike Kestner  <mkestner@novell.com>
10065
10066         * ListViewItem.cs: fix Details mode checkbox layout bug.
10067         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10068         at the end of the header, if it exists. [Fixes for #78200]
10069
10070 2006-05-04  Jackson Harper  <jackson@ximian.com>
10071
10072         * MdiClient.cs: Add a helper property to get the container form.
10073         * MdiWindowManager.cs: We have to make sure to use the menu origin
10074         when drawing the icons and buttons, this fixes maximized window
10075         icons/buttons on win32.
10076         * InternalWindowManager.cs: Reset the restore captions when a
10077         window goes from Maximized to Minimized and vice versa. Move the
10078         DrawMaximizedButtons into the MdiWindowManager source, tool
10079         windows can't be maximized. NOTE: This could use a little
10080         refactoring if time ever permits.
10081         
10082 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10083
10084         * TextBox.cs: Add MWFCategoryAttributes
10085         * TextBoxBase.cs: Add MWFCategoryAttributes
10086         * Form.cs: Add MWFCategoryAttributes
10087
10088 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10089
10090         * Control.cs: Add MWFCategoryAttributes
10091         * ScrollableControl.cs: Add MWFCategoryAttributes
10092
10093 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10094
10095         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10096           Divider is true. Fix a little glitch in PropertyToolBar
10097           drawing code
10098
10099 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10100
10101         * Control.cs:
10102           - Dispose: Call base.Dispose, this causes the disposed event
10103             to be fired (and probably other, more important stuff)
10104           - SetVisibleCore: Set is_visible to true after creating the
10105             window so that the window still gets created invisible (if
10106             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10107             to generate a WM_ACTIVE message
10108         * Form.cs: Call Dispose when we want to destroy the window, instead of
10109           just destroying the handle (Dispose will do that for us)
10110         * XplatUIX11.cs:
10111           - RootWindow also needs a queue, so we can properly process the
10112             property change events from RootWindow (like Activate)
10113           - Generatic synthetic WM_ACTIVE message when the active window is
10114             being destroyed
10115
10116 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10117
10118         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10119           bounds are changed
10120
10121 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10122
10123         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10124           for determining width and height (image might not be assigned if
10125           we're drawing an imagelist)
10126
10127 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10128
10129         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10130         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10131           height from system
10132         * Theme.cs: No longer returns hardcoded menu height, instead calls
10133           new driver method
10134         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10135           on MS (# 78257)
10136
10137 2006-05-01  Mike Kestner  <mkestner@novell.com>
10138
10139         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10140
10141 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10142
10143         * TextBoxBase.cs: Removed Fixme
10144         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10145
10146 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10147
10148         * XplatUIX11.cs:
10149           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10150             the rectangle relative to the parent, considering borders. We
10151             don't really want that.
10152           - ScrollWindow: Fixed warning to be more understandable
10153         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10154           scrollbars and scroll only the visible area
10155         * RichTextBox.cs: Removed debug output
10156
10157 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10158
10159         * NumericUpDown.cs (Text): Just use base
10160         * UpDownBase.cs: Ensure txtView is created before using it
10161
10162 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10163
10164         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10165           casting to IntPtr to avoid 64bit overflow errors
10166
10167 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10168
10169         * Control.cs:
10170           - AllowDrop: Don't force handle creation.
10171           - CreateHandle: Added call to tell driver if we're allowed to drop
10172
10173 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10174
10175         * FileDialog.cs: Remember the last directory not only for the
10176           current instance but also for new FileDialog instances.
10177
10178 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10179         
10180         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10181           broke sending async messages
10182
10183 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10184
10185         * XplatUIX11.cs:
10186           - ScrollWindow: Fixed method. We finally generate expose events again
10187             for scrolled areas. This was causing 'garbage' when scrolling
10188             textbox and other controls that used ScrollWindow
10189           - Switched from using the regular queue for paint events to the MS 
10190             model of 'generating' paint events when the queue is empty.
10191             We use the new XQueueEvent.Paint subclass to store which windows
10192             need painting.
10193           - AddExpose now takes the x/y/width/height of the exposed area
10194             and inserts the window into the paint queue if not already there
10195           - InvalidateWholeWindow: Switched to use new AddExpose method
10196           - UpdateMessageQueue: Added which queue to monitor for paint events
10197           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10198             the unlikely case nothing above handles it. We reset the expose
10199             pending states to get them off the queue.
10200           - GetMessage: Now pulls a paint event if no other events are in the
10201             queue
10202           - Invalidate: Switched to new AddExpose method
10203           - PeekMessage: Updated to understand pending paint events
10204           - UpdateWindow: Fixed logic bug. We were only updating if the window
10205             didn't need updating. Also switched to sending WM_PAINT directly,
10206             like MS does.
10207         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10208           and random access Remove(). The random access is needed to handle
10209           UpdateWindow() where a WM_PAINT is sent directly without accessing
10210           the queue.
10211         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10212           allow for better feedback when scrolling. Scrollbars are small and
10213           the immediate update should make it 'feel' more responsive without
10214           slowing things down. ScrollBar still needs it's invaliate logic
10215           updated to not always invalidate the whole bar on certain changes.
10216
10217 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10218
10219         * Control.cs:
10220         (BackColor): if the control does not support a transparent background,
10221         return the default backcolor when the parent backcolor is transparent.
10222
10223 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10224
10225         * Application.cs: Updated to new StartLoop/GetMessage API
10226         * RichTextBox.cs: Provide some output on RTF parsing errors
10227         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10228           new queue_id argument to GetMessage and PeekMessage to allow faster
10229           handling of per-thread queues in drivers.
10230         * Hwnd.cs: Added Queue tracking and property
10231         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10232         * XEventQueue.cs: Added thread trackingA
10233         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10234         * XplatUIX11.cs:
10235           - Implemented new per-thread queue
10236           - GetMessage: Fixed return/break behaviour on several cases. We were
10237             returning stale messages in some cases, instead of just processing
10238             the next message
10239
10240 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10241
10242         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10243
10244 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10245
10246         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10247           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10248
10249 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10250
10251         * PropertyGridView.cs: Fix drop down width.
10252
10253 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10254
10255         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10256           a mess in DrawToolBar, so I removed one of them.
10257
10258 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10259
10260         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10261           needed (clip). Otherwise we get artifacts.
10262
10263 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10264
10265         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10266           dimension is fixed
10267         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10268           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10269         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10270           if it matches the scale base font (avoids unneeded scaling)
10271
10272 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10273
10274         * X11DesktopColors.cs: One gtk_init_check should be enough
10275
10276 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10277
10278         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10279           match MS behaviour
10280
10281 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10282
10283         * TextBoxBase.cs: 
10284           - Generate OnTextChanged for Backspace even if we're only deleting
10285             the current selection
10286           - When setting the Text property, only select all text if the
10287             control does not have focus when it is being set. Otherwise
10288             just place the cursor at the beginning of the control
10289
10290 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10291
10292         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10293           Added a little helper to draw PropertyGrid ToolBar with a different
10294           border and a different BackColor.
10295         * PropertyGrid.cs: Some background parts didn't get painted with the
10296           correct background color. Added a class that helps us to draw the
10297           correct border for PropertyGridView and a class that helps us to
10298           draw ToolBars with a different backcolor
10299         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10300
10301 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10302
10303         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10304         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10305
10306 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10307
10308         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10309           into the palette entries. Also, since we're working on a copy
10310           we needed to copy the palette back onto the bitmap.
10311         * Cursor.cs: Same fix as XplatUIWin32.cs.
10312
10313 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10314
10315         * ImageListStreamer.cs: Need to read the var (or we're off)
10316
10317 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10318
10319         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10320           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10321           TextBoxBase.cs: Unused var fixes
10322         * AxHost.cs: Small 2.0 fix
10323         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10324           as it seems that is what at least Metacity expects. This will make
10325           icons show up on 64bit platforms. We still have some 64bit size
10326           issues, though, since the startup app window size still won't match.
10327
10328 2006-04-25  Mike Kestner  <mkestner@novell.com>
10329
10330         * *.cs: cleanup newly reported exception var unused warnings.
10331
10332 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10333
10334         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10335           ms
10336
10337 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10338
10339         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10340           image. The image position is always the same, no matter if the
10341           button is pressed or not.
10342
10343 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10344
10345         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10346           selection and set the correct filename for SaveFileDialog.
10347           Patch by Emery Conrad.
10348
10349 2006-04-24  Mike Kestner  <mkestner@novell.com>
10350
10351         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10352         check for item.X outside the ClientRect instead of item.Y. Fixes
10353         #78151.
10354
10355 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10356
10357         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10358         trust that value blindly and do some sanity check. Fixes bug #77814.
10359
10360 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10361
10362         * ImageListStreamer.cs: save the mask as a 1bpp image.
10363
10364 2006-04-21  Mike Kestner  <mkestner@novell.com>
10365
10366         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10367         pass Checked and Indeterminate to the Theme Engine. Improve
10368         encapsulation with ListBox.
10369         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10370         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10371         nested types.  Move all CheckState functionality to CheckedListBox.
10372         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10373         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10374         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10375         single base list. Fix scrollbar sizing and placement to mirror MS.
10376         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10377         used.
10378         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10379         for CheckedListBox by using new DrawItemState info.  Center the
10380         checkboxes on the items. Use new StringFormat property.
10381
10382 2006-04-18  Jackson Harper  <jackson@ximian.com>
10383
10384         * Form.cs: MdiChildren don't do default locations the same way as
10385         regular forms.  This prevents a crash when trying to position the
10386         mdi windows.
10387
10388 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10389
10390         * PropertyGridTextBox.cs: Formatting, copyright
10391         * PropertiesTab.cs: Formatting
10392         * PropertyGrid.cs: Formatting
10393         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10394           click toggling of values
10395           
10396 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10397
10398         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10399         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10400           every time a control is created
10401         * Application.cs: Removed obsolete EnableRTLMirroring method
10402
10403 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10404
10405         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10406         SelectedIndex to -1. Fixes bug #78121.
10407
10408 2006-04-17  Jackson Harper  <jackson@ximian.com>
10409
10410         * Binding.cs: Handle null values for Current and BindingContext.
10411         This occurs when binding is a little delayed.
10412         * CurrencyManager.cs: return null for Current when there are no
10413         items in the list.
10414         - Hookup to the listchanged event on the DataView and update
10415         bindings when the list is changed.  This fixes late binding of
10416         controls.
10417
10418 2006-04-17  Jackson Harper  <jackson@ximian.com>
10419
10420         * X11Dnd.cs:
10421         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10422         Ringenbach.
10423
10424 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10425
10426         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10427           place
10428         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10429           with the correct ButtonState
10430
10431 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10432
10433         * XplatUIX11.cs: Improved distinguishing between window types to
10434           tell the WM a type closer to what the app wants (Fixes #78107)
10435
10436 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10437
10438         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10439           GrabHandle
10440
10441 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10442
10443         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10444           drawing code to reflect the size grip changes
10445
10446 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10447
10448         * ImageListStreamer.cs: fix handling of the mask that follows the main
10449         bitmap when deserializing and serialize it properly. The generated mask
10450         should better be a 1bpp image, but I'll do that later.
10451
10452 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10453
10454         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10455           path doesn't fit into some of our Current.Places
10456
10457 2006-04-13  Jackson Harper  <jackson@ximian.com>
10458
10459         * ComboBox.cs: Use borders instead of drawing our own decorations,
10460         try to obey correct rules for heights.
10461         * Theme.cs:
10462         * ThemeNice.cs:
10463         * ThemeClearLooks.cs:
10464         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10465         this is now handled by borders.
10466         - Remove unused DrawListBoxDecorationSize method.
10467         
10468 2006-04-13  Mike Kestner  <mkestner@novell.com>
10469
10470         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10471         reported by Alex.
10472
10473 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10474
10475         * ThemeWin32Classic.cs: 
10476           - Fixed CPDrawStringDisabled
10477           - Corrected drawing of disabled menu items
10478           - Fixed drawing of disabled radio buttons (bug #78095)
10479           - Draw check in a disabled CheckBox with color ControlDark 
10480
10481 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10482
10483         * Form.cs: Use the provided width when calculating the menu size;
10484           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10485           and ClientSize.Width won't be updated yet
10486         * Application.cs: Use Visible instead of Show() to make form visible,
10487           this way we create the handle later and menusize is considered
10488
10489 2006-04-12  Mike Kestner  <mkestner@novell.com>
10490
10491         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10492         reporting.
10493
10494 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10495
10496         * TextBox.cs: Implemented context menu
10497
10498 2006-04-12  Mike Kestner  <mkestner@novell.com>
10499
10500         * ListView.cs: implement box selection. fixes #77838.
10501         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10502
10503 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10504
10505         * XplatUIX11.cs: Added setting of window type when transient window
10506           is created (metacity would move it otherwise)
10507         * X11Structs.cs: Added WINDOW_TYPE atoms
10508         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10509           background (the control is Opaque but still wants transparent
10510           backgrounds)
10511
10512 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10513
10514         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10515           that set Opaque but don't mean it (like all ButtonBase-derived
10516           controls) to still draw their background
10517         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10518           the background
10519
10520 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10521
10522         * Control.cs (PaintControlBackground): Set the graphics object
10523           on our PaintEvent to null to prevent it from being disposed
10524           when the PaintEvent gets disposed
10525
10526 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10527
10528         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10529         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10530
10531 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10532
10533         * Control.cs: 
10534           - Added transparency check to BackColor property. Transparent
10535             backgrounds are only allowed if the control styles permit it
10536           - Added recursive painting of parent control background and
10537             foreground if a control with a transparent backcolor is drawn
10538             (Thanks to Tim Ringenback for providing his 'hack' as a base
10539              for this patch) Fixes #77985 and #78026.
10540           - Added Opaque style check before calling OnPaintBackground, no
10541             need to draw the background if the control is opaque
10542           - Removed ControlAccessibleObject owner variable (inherited from
10543             base, no need to define again)
10544           - Added some documentation links explaining the drawing events
10545             and styles
10546
10547 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10548
10549         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10550           that the affected control is the located at the left border of our
10551           parent (Fixes #77936)
10552
10553 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10554
10555         * TextBoxBase.cs: When rendering disabled or readonly controls,
10556           draw the background with 'Control' instead of 'Window' color as
10557           long as the user hasn't specifically set a color
10558
10559 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10560
10561         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10562           since that won't be updated if the user types text (only if it's
10563           programatically set)
10564
10565 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10566
10567         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10568           layout changes do to app-triggered resizes will have the proper
10569           display rectangle for layout
10570
10571 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10572
10573         * ThemeWin32Classic.cs:
10574           - Make use of the SystemBrushes and SystemPens wherever possible
10575           - Corrected some highlight colors
10576           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10577             drawing
10578         * Theme.cs: Added Empty field to CPColor struct
10579
10580 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10581
10582         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10583           is displayed when calculating the display rectangle. Thanks to Mike
10584           for teaching me the err of my ways.
10585
10586 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10587
10588         * ScrollableControl.cs:
10589           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10590             (instead of 0,0) and we now return the real width/height instead of
10591             just the clientrectangle, adjusted for padding. The rectangle is
10592             now cached and created by the new CalculateDisplayRectangle method.
10593           - Created new CalculateDisplayRectange method, which basically does
10594             what get_DisplayRectangle() did originally, but now using the 
10595             right edge instead of DisplayRectangle to determine the size of
10596             our scrollbars
10597           - get_Canvas(): Fixed it to properly calculate canvas for 
10598             right/bottom controls which seem to be placed to the right/bottom
10599             of any controls that have a fixed location
10600           - Removed TODO that's taken care of
10601           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10602             and SetDisplayRectLocation according to new MSDN2 docs
10603           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10604             event when that is called, this is added for compatibility
10605           - ScrollControlIntoView(): Implemented.
10606           - Switched scrollbars to be implicit, they shouldn't be selectable
10607         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10608           call it when the active control is set/changed
10609         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10610         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10611           implicit_control variable (used for native Win32 message generation)
10612         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10613           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10614         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10615         * XplatUIStructs.cs: Added ScrollBarCommands enum
10616
10617 2006-04-10  Jackson Harper  <jackson@ximian.com>
10618
10619         * ButtonBase.cs:
10620         * CheckedListBox.cs:
10621         * ComboBox.cs:
10622         * DataGrid.cs:
10623         * DataGridView.cs:
10624         * Form.cs:
10625         * GroupBox.cs:
10626         * ListBox.cs:
10627         * PrintPreviewControl.cs:
10628         * ProgressBar.cs:
10629         * PropertyGrid.cs:
10630         * Splitter.cs:
10631         * StatusBar.cs:
10632         * TrackBar.cs:
10633         * UpDownBase.cs: Fixup base event overrides.
10634         
10635 2006-04-06  Mike Kestner  <mkestner@novell.com>
10636
10637         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10638         all user-initiated value changes to min <= value <= max-thumbsz+1.
10639         (set_Value): check for vert/horiz when calculating new thumb position.
10640         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10641         like MS does.
10642         (OnMouseMoveSB): refactor the thumb dragging code and refine
10643         invalidation logic to reduce flicker.
10644         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10645         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10646         (UpdateThumbPosition): small code readability cleanup
10647
10648 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10649
10650         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10651           different
10652
10653 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10654
10655         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10656
10657 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10658
10659         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10660         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10661           This dramatically reduces the number of Pen.Dispose calls. 
10662           Where possible call ResPool methods only once instead of calling it
10663           over and over again (for example for the same color).
10664
10665 2006-04-06  Mike Kestner  <mkestner@novell.com>
10666
10667         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10668         Also remove an unused private field on the collection. Fixes #77972.
10669
10670 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10671
10672         * ThemeNice.cs: Added ToolBar drawing code
10673
10674 2006-04-06  Mike Kestner  <mkestner@novell.com>
10675
10676         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10677         I'm assuming that means we need to look up the toplevel for the
10678         provided control. Fixes the crash trace in #77911 but exposes another
10679         crash in some strange reflection usage in NDocGui.
10680
10681 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10682
10683         * ThemeNice.cs: Gave it a little silver touch and added Images
10684           method
10685         * FontDialog.cs: FontDialog is not resizable
10686         * FileDialg.cs: Added SizeGripStyle.Show
10687
10688 2006-04-05  Jackson Harper  <jackson@ximian.com>
10689
10690         * KeyboardLayouts.cs: Remove warning.
10691
10692 2006-04-05  Jackson Harper  <jackson@ximian.com>
10693
10694         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10695         all of our controls instead of Paint +=.
10696         * ListBox.cs:
10697         * ListView.cs:
10698         * MenuAPI.cs:
10699         * MessageBox.cs:
10700         * NotifyIcon.cs:
10701         * ProgressBar.cs:
10702         * ScrollBar.cs:
10703         * Splitter.cs:
10704         * StatusBar.cs:
10705         * TabControl.cs:
10706         * TextBoxBase.cs:
10707         * ToolBar.cs:
10708         * TrackBar.cs:
10709         * UpDownBase.cs:
10710         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10711         use OnPaintInternal. Remove Width/Height and Visible checks in
10712         paint handler, this is done at a higher level now.
10713         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10714         * PaintEventArgs.cs: Add a handled flag so controls that don't
10715         want anymore painting after OnPaintInternal can make sure OnPaint
10716         isn't called.
10717
10718 2006-04-05  Mike Kestner  <mkestner@novell.com>
10719
10720         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10721         state of the form, so that we don't process events when Modal dialogs
10722         are up. Fixes #77922.
10723
10724 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10725
10726         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10727           checking is done.
10728
10729 2006-04-05  Mike Kestner  <mkestner@novell.com>
10730
10731         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10732
10733 2006-04-05  Mike Kestner  <mkestner@novell.com>
10734
10735         * ListView.cs (HeaderMouseMove): null guarding for the over column
10736         when setting up the drag_to_index.  Fixes #78015.
10737
10738 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10739
10740         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10741           in the taskbar. Transient windows seem to accomplish that.
10742
10743 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10744
10745         * Form.cs:
10746           - Re-enabled CreateParams.X/Y code for FormStartPosition
10747           - Added code for manual placement when creating the Control
10748           - Incomplete patch to treat MDI forms differently when
10749             setting the ClientSizeCore. (Still need to figure out handling
10750             x/y coords there)
10751         * XplatUIX11.cs:
10752           - When we're explicitly setting the X/Y position of a non-Child
10753             window, let the WM know. Metacity really wants this.
10754
10755 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10756
10757         * ThemeNice.cs: Added CPDrawButton
10758
10759 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10760
10761         * ThemeNice.cs: Changed the color for focused buttons and activated
10762           the arrows for small scroll buttons.
10763
10764 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10765
10766         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10767           anymore. Changed some method modifiers to protected (virtual)
10768         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10769           changes
10770         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10771           Updated drawing of menus, buttons and progressbars; added
10772           CPDrawBorder3D 
10773
10774 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10775
10776         * ImageListStreamer.cs: implemented serialization/deserialization
10777         of the images.
10778
10779 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10780
10781         * ThemeWin32Classic.cs:
10782           - Removed all the DrawFrameControl stuff; CPDrawButton,
10783             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10784             inside the methods
10785           - Updated and corrected the drawing code of CPDrawButton,
10786             CPDrawCheckBox and CPDrawRadioButton to better match ms
10787           - Updated theme checkbox and radiobutton code to use the CP*
10788             methods
10789
10790 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10791
10792         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10793           bug is fixed
10794
10795 2006-03-31  Jackson Harper  <jackson@ximian.com>
10796
10797         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10798         sometimes.
10799         * UpDownBase.cs: Don't CreateGraphics manually, use a
10800         Refresh. Ideally we would invalidate the correct areas here.
10801
10802 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10803
10804         * XplatUIX11.cs: 
10805           - We now track the mapping state of windows. If a window (or 
10806             one of it's parents) is not mapped we no longer permit
10807             WM_PAINT messages to be generated since we'd otherwise get 
10808             lots of BadMatch X errors. Jackson did all the work figuring
10809             out the problem.
10810           - Destroying the caret if the window it's contained in is 
10811             destroyed. Can't use regular DestroyCaret method since it
10812             might fall into a drawing function (trying to remove the
10813             caret) and with that generate new BadMatch errors. Again,
10814             Jackson tracked this down.
10815           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10816             make sure we send the messages to all windows. (The old code
10817             would send the WM_DESTROY to the window, and then all child
10818             windows would be 'gone' because the WM_DESTROY handle lookup
10819             would no longer find the destroyed window)
10820         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10821         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10822
10823 2006-03-31  Jackson Harper  <jackson@ximian.com>
10824
10825         * ScrollableControl.cs: Dont recalc if we are not visible.
10826
10827 2006-03-31  Mike Kestner  <mkestner@novell.com>
10828
10829         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10830         the visibility branch.
10831
10832 2006-03-31  Jackson Harper  <jackson@ximian.com>
10833
10834         * ScrollBar.cs: Cap values when incrementing/decrementing.
10835
10836 2006-03-31  Mike Kestner  <mkestner@novell.com>
10837
10838         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10839         * ToolTip.cs: guard against timer expirations with no active control.
10840         Not sure why it happened.
10841
10842 2006-03-31  Mike Kestner  <mkestner@novell.com>
10843
10844         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10845         text.
10846         * ToolTip.cs: Position the tooltip based on where the cursor is at
10847         popup time, not at MouseEnter time.  Add a Down state so that we don't
10848         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10849         positioning offset. Lookup DisplaySize at positioning time, since it
10850         can theoretically change during invocation.
10851         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10852         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10853
10854 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10855
10856         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10857           Fixes behaviour when the Text property of the box is String.Empty
10858
10859 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10860
10861         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10862           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10863           a window)
10864
10865 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10866
10867         * FileDialog.cs: Visual enhancement for the popup buttons in 
10868           PopupButtonPanel
10869
10870 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10871
10872         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10873           code
10874
10875 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10876
10877         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10878           highlighted menu items to match ms
10879
10880 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10881
10882         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10883
10884 2006-03-30  Mike Kestner  <mkestner@novell.com>
10885
10886         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10887         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10888         go active to account for HotLight to Selected transition.
10889         * MenuItem.cs: add internal Selected prop. Fill out the Status
10890         property by calculating it from item info. Add HotLight,
10891         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10892
10893 2006-03-30  Mike Kestner  <mkestner@novell.com>
10894
10895         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10896
10897 2006-03-29  Jackson Harper  <jackson@ximian.com>
10898
10899         * Form.cs: Implement TODO.
10900
10901 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10902
10903         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10904           missing proper dialog setup in the constructor
10905
10906 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10907
10908         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10909         * Control.cs:
10910           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
10911           - Fixed ResetBindings and removed TODO
10912           - Added check for cross-thread calls to get_Handle()
10913           - Added Marshaller attribute for set_Font to satisfy class status
10914         * FontDialog.cs: Removed TODOs that seemed implemented
10915         * UpDownBase.cs: Removed unneeded TODO and Fixme
10916         * MessageBox.cs: Implemented support for Default button and removed TODO
10917         * FileDialog.cs: Removed obsolete TODO
10918         * DomainUpDown.cs: Removed obsolete TODO
10919         * ButtonBase.cs: Removed obsolete TODO
10920         * XplatUIWin32.cs: Removed obsolete TODO
10921         * Form.cs:
10922           - Removed obsolete TODO
10923           - Calling CheckAcceptButton when the acceptbutton is changed to allow
10924             internal status updates
10925           - Making sure the active control is selected when the control is created
10926         * CurrencyManager.cs: Removed obsolete TODO
10927
10928 2006-03-29  Mike Kestner  <mkestner@novell.com>
10929
10930         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
10931         of PrintPreviewDialog and RichTextBox.
10932
10933 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10934
10935         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
10936           DarkDark, Light and LightLight colors for a specific color
10937         * ThemeWin32Classic.cs:
10938           - Use Button drawing code to draw RadioButtons and CheckBoxes with
10939             Appearance = Button 
10940           - Make use of the new ResPool helper CPColor
10941           - Draw ProgressBar and StatusBar with correct 3D borders
10942
10943 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10944
10945         * ColorDialog.cs: Return selected color. Fixes bug #77940.
10946
10947 2006-03-28  Mike Kestner  <mkestner@novell.com>
10948
10949         * ListView.cs: fix Icon layout to plan for scrollbar widths when
10950         calculating col/row counts.
10951
10952 2006-03-28  Mike Kestner  <mkestner@novell.com>
10953
10954         * ColumnHeader.cs:
10955         * ListView.cs:
10956         * ListViewItem.cs:
10957         * Menu.cs: 
10958         switch to explicit interface method implementation for some methods
10959         corcompare identifies as inconsistent with MS.
10960
10961 2006-03-28  Mike Kestner  <mkestner@novell.com>
10962
10963         * MainMenu.cs: 
10964         * Menu.cs:
10965         add a few missing methods from the class status output.
10966
10967 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
10968
10969         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
10970           correct.
10971
10972 2006-03-28  Mike Kestner  <mkestner@novell.com>
10973
10974         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
10975
10976 2006-03-27  Mike Kestner  <mkestner@novell.com>
10977
10978         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
10979         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
10980
10981 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
10982
10983         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
10984
10985 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10986
10987         * ThemeWin32Classic.cs:
10988           - GroupBox: Inserted a little gap between the text and the lines
10989             on the right side
10990           - Made the code in CPDrawBorder3D more readable
10991           - Corrected the drawing location of the up and down arrows in 
10992             CPDrawScrollButton
10993
10994 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10995
10996         * ControlPaint.cs: Corrected line widths in DrawBorder for
10997           ButtonBorderStyle Inset and Outset
10998
10999 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11000
11001         * ThemeWin32Classic.cs:
11002           - Rewrote the totally broken CPDrawBorder3D method. That was
11003             one of the main problems for the terrific ThemeWin32Classic
11004             look
11005           - Updated and corrected Button drawing
11006           - Correct the dimensions of the SizeGrip to match ms ones
11007           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11008         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11009           Border3DStyle.Sunken to match ms.
11010
11011 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11012
11013         * ThemeWin32Classic.cs: First small part of the "de-uglify
11014           ThemeWin32Classic" effort, SizeGrip
11015
11016 2006-03-24  Jackson Harper  <jackson@ximian.com>
11017
11018         * XplatUIX11.cs: Give a max idle time of one second, this matches
11019         MS and forces an Idle event every second when there are no other
11020         events in the queue.
11021
11022 2006-03-24  Mike Kestner  <mkestner@novell.com>
11023
11024         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11025         * ListView.Item.cs: fix layout issues with null image lists and images
11026         smaller than checkbox size.
11027         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11028         mode like MS does.  It's weird, but consistent.  ;-)
11029         Fixes #77890.
11030
11031 2006-03-24  Mike Kestner  <mkestner@novell.com>
11032
11033         * ListView.cs: Scroll wheel support for the item control.  Fixes
11034         #77839.
11035
11036 2006-03-23  Jackson Harper  <jackson@ximian.com>
11037
11038         * ScrollableControl.cs: Special case negative sized areas, not
11039         zero.
11040         * MonthCalendar.cs: Save the rect of the clicked date so we can
11041         use it for invalidation.
11042         - Try to cut down on the number of invalidates
11043         - Invalidate the rect the mouse is over and was over when moving
11044         the mouse, so we get the focus box following the cursor.
11045
11046 2006-03-23  Mike Kestner  <mkestner@novell.com>
11047
11048         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11049         focus rectangle drawing. Fixes #77835.
11050
11051 2006-03-23  Mike Kestner  <mkestner@novell.com>
11052
11053         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11054         the if and else if and reverting back to the original == check on the
11055         None conditional.
11056
11057 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11058
11059         * FontDialog.cs: Update the example panel if the selected index of
11060           the fontListBox changes.
11061
11062 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11063
11064         * FileDialog.cs: Make FileDialog remember which directory it was in
11065           last in the same execution.
11066
11067 2006-03-22  Mike Kestner  <mkestner@novell.com>
11068
11069         * FileDialog.cs: make the DropDownMenu on the toolbar display
11070         RadioChecks since they are mutually exclusive and that's what MS does.
11071
11072 2006-03-22  Mike Kestner  <mkestner@novell.com>
11073
11074         * Theme.cs: add Color param to CPDrawMenuGlyph.
11075         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11076         checks and radio marks and arrows are visible on highlighted items.
11077         * ControlPaint.cs: update to use new Theme signature.
11078
11079 2006-03-22  Mike Kestner  <mkestner@novell.com>
11080
11081         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11082         is active. Fixes #77870.
11083
11084 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11085
11086         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11087           to be focused/selected after startup
11088
11089 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11090
11091         * ColorDialog.cs: 
11092           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11093             CustomColors and ShowHelp properties
11094           - Some internal rewrites to get better results when using the
11095             ColorMatrix
11096
11097 2006-03-22  Mike Kestner  <mkestner@novell.com>
11098
11099         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11100         HoverSelection.  Fixes #77836.
11101
11102 2006-03-22  Mike Kestner  <mkestner@novell.com>
11103
11104         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11105         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11106         1, not 0.  Update ButtonSize based on a pixel count of the win32
11107         control.  Adjust the toolbar size/location for new button size.
11108
11109 2006-03-22  Jackson Harper  <jackson@ximian.com>
11110
11111         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11112         true.
11113         * ScrollBar.cs: When doing increments and decrements we need to
11114         set the Value property so that ValueChanged gets raised. A
11115         possible optimization here would be to make an internal SetValue
11116         that doesn't invalidate immediately.
11117         * ToolTip.cs: Tooltips get added to their container (when
11118         supplied) so they get disposed when the container is disposed.
11119         - Don't create tooltips for String.Empty. This prevents all these
11120         little 2-3 pixel windows from showing up when running nunit-gui
11121         and driving me mad.
11122         * Form.cs: Don't set topmost when setting the owner if the handles
11123         haven't been created yet.  The topmost set will happen when the
11124         handles are created.
11125
11126 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11127
11128         * XplatUIX11.cs:
11129           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11130           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11131             visible (to allow them to recalculate their sizes)
11132
11133 2006-03-21  Mike Kestner  <mkestner@novell.com>
11134
11135         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11136         methods. Removed a ton of redundant code.  Still not really happy with
11137         the border rendering, but I think that's mainly because of the
11138         ControlDarkDark being black instead of a dark grey. Depending on how 
11139         close we want to be, we might want to revisit those color choices.
11140         Among the new features added during the refactor were DropDownArrow
11141         pressed rendering, Disabled image rendering.  Proper flat appearance
11142         boundary rendering.  Removed the Divider and Wrapping dividers since I
11143         can't figure out any combination of themes and conditions to make the
11144         MS control draw a horizontal line on a toolbar despite what the
11145         Divider property docs indicate.
11146         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11147         conditions and incorrect layout.  Updated to coding standard.
11148         * ToolBarButton.cs: refactored layout and positioning code from
11149         ToolBar to here.  Invalidate wherever possible instead of forcing
11150         redraws of the whole toolbar. 
11151         (Known remaining issues: explicit ButtonSize smaller than provided
11152         images.)
11153
11154 2006-03-21  Mike Kestner  <mkestner@novell.com>
11155
11156         * ContextMenu.cs (Show): use the position parameter instead of just
11157         showing at the MousePosition.
11158
11159 2006-03-21  Jackson Harper  <jackson@ximian.com>
11160
11161         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11162         control handle this.
11163         * TreeNodeCollection.cs: If we are clearing the root node we need
11164         to reset top_node so calcs can still happen.
11165         * ThemeWin32Classic.cs: This is a Flags so we need to check
11166         properly.
11167         
11168 2006-03-21  Jackson Harper  <jackson@ximian.com>
11169
11170         * DataGrid.cs: Create columns when the binding context has been
11171         changed.
11172         * X11Structs.cs: Keysyms are uints.
11173         - Add size to fix build.
11174
11175 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11176
11177         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11178           XplatUIOSX.cs: 
11179           - Added ResetMouseHover method to allow controls to retrigger
11180             hovering if they need it more than once
11181           - Implemented MouseHoverTime and MouseHoverSize properties
11182         * Timer.cs: Start() must reset the interval
11183         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11184           properties
11185
11186 2006-03-21  Jackson Harper  <jackson@ximian.com>
11187
11188         * X11Keyboard.cs: improved layout detection. Move the nonchar
11189         tables into this file.
11190         * KeyboardLayouts.cs: Move the tables into resource files.
11191
11192 2006-03-21  Mike Kestner  <mkestner@novell.com>
11193
11194         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11195
11196 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11197
11198         * Mime.cs: Various speed optimizations. Looking up mime types
11199           is now 2 times faster than before
11200
11201 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11202
11203         * CreateParams.cs: Added internal menu field
11204         * Control.cs: 
11205           - Switched call order for UpdateBounds; now we always call
11206             the one that also takes ClientSize, and we're calculating the 
11207             client size via driver method in the others. The previous
11208             method of tracking client size by difference wasn't working
11209             for forms where even the starting client size wouldn't match
11210             the overall form size (due to borders) (Part of fix for #77729)
11211           - CreateParams(): Do not use parent.Handle unless the handle is
11212             already created. Causes havoc with Nexxia and throws off our
11213             creation of controls
11214         * XplatUIX11.cs:
11215           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11216           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11217             method (consolidates code)
11218           - Changed RequestNCRecalc to use new PerformNCCalc method
11219           - Added calls to RequestNCRecalc when menus and borders are changed
11220             to allow app to set NC size. (Part of fix for #77729) This matches
11221             when MS send a WM_NCRECALC on Win32 windows.
11222           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11223             (Part of fix for #77729). This matches what MS does, they also
11224             send that message when the form is made visible.
11225           - XException.GetMessage: Improved usability of X errors by including
11226             a translation of the window into Hwnd and Control class
11227           - Improved debug info for window creation, reparenting and destruction
11228           - Created helper method WindowIsMapped() [Currently not used]
11229         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11230         * Form.cs:
11231           - CreateParams: Now setting our menu on the new internal menu field
11232           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11233             avoid calculating the same property twice
11234         * Hwnd.cs:
11235           - Improved usability of ToString() for debugging purposes
11236           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11237             determine the height of the menu, instead of just the font. This
11238             required to also create a graphics context and to keep a bmp 
11239             around (for performance reasons)
11240
11241 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11242
11243         * MenuAPI.cs: Added OnMouseUp method
11244         * Form.cs:
11245           - Now remembering the requested client size, avoids size errors
11246           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11247             instead of base if the menu is active. This is required due to
11248             control now capturing and releasing on down/up and it would
11249             prematurely release our menu capture
11250
11251 2006-03-17  Jackson Harper  <jackson@ximian.com>
11252
11253         * KeyboardLayouts.cs: Add the czech layouts.
11254
11255 2006-03-16  Jackson Harper  <jackson@ximian.com>
11256
11257         * Control.cs: Use the viewport space when sizing not the controls
11258         client size, so things like ScrollableControl that effect the
11259         viewport size (when scrollbars are added) are computed correctly.
11260         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11261         of ManagerEntrys.
11262         - Handle creating BindingManagers for null data sources.
11263         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11264         source, otherwise when rows are added they are added to the 'fake'
11265         datasource and we will crash when trying to set the position in
11266         those rows.
11267         - Use Implicit scrollbars on the datagrid so they arent
11268         selectable.
11269         
11270 2006-03-16  Jackson Harper  <jackson@ximian.com>
11271
11272         * Binding.cs:
11273         * InternalWindowManager.cs:
11274         * MdiWindowManager.cs:
11275         * X11Keyboard.cs: I really want Mike to love me again (fix
11276         compiler warnings).
11277
11278 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11279
11280         * DataGrid.cs:
11281           - OnMouseDown: Switch to editing mode when clicking on the cell
11282                          even if we're clicking on the cell that's currently 
11283                          selected
11284           - ProcessGridKey: Left/Right now wrap like MS.Net does
11285           - ProcessGridKey: Tab now knows to add a new row when tab is
11286                             pressed in the cell of the last column of the 
11287                             last row
11288           - ProcessGridKey: Enter now adds another row  if pressed in the last
11289                             row and selectes the new row, same column cell
11290           - ProcessGridKey: Home/End navigate columns, not rows, like 
11291                             originally implemented
11292           - Broke ProcessKeyPreview code out into an extra Internal method
11293             so it can be called from the edit code
11294         * DataGridTextBox.cs (ProcessKeyMessage):
11295           - Switched to accept Tab keypresses
11296           - Added F2 handling to allow jumping to the end of the edited cell
11297           - Added logic to allow moving caret left/right inside edited cell
11298             and making the edited cell jump when the caret hits cell borders
11299           - Tab and Enter are now passed to the datagrid after being handled
11300         * TextBoxBase.cs:
11301           - Removed capture code now that Control handles it
11302           - set_SelectionStart now ensures caret is visible
11303
11304 2006-03-16  Jackson Harper  <jackson@ximian.com>
11305
11306         * TrackBar.cs: Debackwards the increment/decrement for handling
11307         mouse clicks on the bar with vertical trackbars.
11308         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11309         bottom to match MS.
11310
11311 2006-03-16  Mike Kestner  <mkestner@novell.com>
11312
11313         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11314         consistent with the MS control. Fix a bug in
11315         SelectedListViewItemCollection.Clear that was pissing me off for the
11316         better part of a day because the collection was being altered
11317         underneath us as we walked the list.
11318
11319 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11320
11321         * Control.cs: Not sure how we could miss this so long, but it seems
11322           that MS.Net has Capture set all the way from before calling 
11323           OnMouseDown through sending the mouse events until after
11324           OnMouseUp. This will fix DataGrid's selection being set to end
11325           at the location of the MouseUp.
11326
11327 2006-03-15  Jackson Harper  <jackson@ximian.com>
11328
11329         * BindingContext.cs: Check the binding after its added so that it
11330           can initialize the binding managers and hookup to events.
11331         * Binding.cs: Data members seem to sometimes include rows/cols in
11332           the format Row.Column we now take this into account.
11333           - Hookup to the position changed event so we can update the
11334           control when the position has changed in the data set.
11335         * CurrencyManager.cs: Take into account the row/col naming
11336           convention when creating dataset tables.
11337         * BindingContext.cs: Using a newer better way of storing
11338           datasource/datamember pairs.  Hopefully this better matches MS for
11339           looking up binding managers.
11340
11341
11342 2006-03-15  Jackson Harper  <jackson@ximian.com>
11343
11344         * BindingContext.cs: The currency manager needs the data member
11345         name, if the member is a data set we use the name to find the
11346         correct table.
11347         * CurrencyManager.cs: When creating the list prefer an IList over
11348         an IListSource.
11349         - Attempt to create a DataTable from a DataSet (TODO: might need
11350         some better error checking here, although MS doesn't seem to have much)
11351         - If we have a DataTable create a view and use it as our list.
11352
11353 2006-03-15  Mike Kestner  <mkestner@novell.com>
11354
11355         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11356         keyboard navigation. Support Up/Down/Left/Right selection correctly
11357         for all 4 View modes.
11358         * ListViewItem.cs: add internal row/col fields for icon layouts.
11359
11360 2006-03-15  Jackson Harper  <jackson@ximian.com>
11361
11362         * TabControl.cs: Redraw the tabs when we resize so their newly
11363         calculated sizes are drawn on screen.
11364         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11365         composite characters.
11366         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11367         - filter events so that composite characters can be created
11368         patches by peter
11369         * X11Structs.cs: Add XIMProperties enum.
11370
11371 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11372
11373         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11374           unless it's created
11375
11376 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11377
11378         * Control.cs (PerformLayout): We don't need to consider visiblity
11379           for anchoring, only for docking. This fixes 'whacky' alignment
11380           in listbox and other controls that use implicit scrollbars after
11381           the previous PerformLayout patch
11382         * ListBox.cs: Switched to use implicit scrollbars
11383           
11384 2006-03-14  Mike Kestner  <mkestner@novell.com>
11385
11386         * ToolBar.cs: 
11387         * VScrollBar.cs:
11388         - chain up the "new event" overrides to base and use
11389         OnEvent to raise them.  Part of fix for bug #76509.
11390
11391 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11392
11393         * FileDialog.cs: Do not select an item in the parent directory
11394           on backspace
11395
11396 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11397
11398         * Control.cs (PerformLayout): It would seem that we considered
11399           invisible windows for our layout. Not quite the right thing
11400           to do. Now we don't any longer, thereby fixing bug #76889.
11401
11402 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11403
11404         * Control.cs (CanFocus): I goofed. A control can have focus 
11405           even though it's not selectable. Made it match MS docs.
11406
11407 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11408
11409         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11410           center by default (fixes #76895)
11411         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11412           all uses of Border3DSides.All with the explicit ORd together
11413           Left|Right|Top|Bottom because I assume that nobody was aware 
11414           that All also implies a center fill. Most places I checked had
11415           a fill right above.
11416         * ProgressBarStyle.cs: Added
11417
11418 2006-03-13  Mike Kestner  <mkestner@novell.com>
11419
11420         * ListView.cs: fix breakage in drag shadow header positioning 
11421         from Peter's csc compilation fix.
11422
11423 2006-03-13  Mike Kestner  <mkestner@novell.com>
11424
11425         * ListView.cs: fix NRE produced by backspacing twice in a focused
11426         FileDialog.
11427
11428 2006-03-13  Mike Kestner  <mkestner@novell.com>
11429
11430         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11431
11432 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11433
11434         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11435           be changed
11436         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11437           the allowed size before making programmatic size changes
11438
11439 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11440
11441         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11442           set, metacity is broken and will still use the emty sizes in 
11443           the struct. (Fix for #77089)
11444
11445 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11446
11447         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11448           WindowExStyles and marked both enums as Flags
11449         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11450           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11451           to match WindowStyles split
11452         * XplatUIX11.cs:
11453           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11454           - Updated to match WindowStyles split
11455         * XplatUIWin32.cs:
11456           - Fixed FosterParent creation, was using ExStyle on the Style field
11457             (This should help with Popup focus issues)
11458           - Updated to match WindowStyles split
11459
11460 2006-03-13  Jackson Harper  <jackson@ximian.com>
11461
11462         * MdiWindowManager.cs: Use the system menu height. Fixes some
11463         strange sizing issues.
11464
11465 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11466
11467         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11468         * TextBoxBase.cs:
11469           - Scroll to caret after inserting text (#77672)
11470           - Make scroll range one pixel higher, fixes off-by-one error (and
11471             makes underlines visible on the last line)
11472
11473 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11474
11475         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11476           the keyboard state from being stuck with keys in 'pressed' state when
11477           focus is switched away via keyboard
11478         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11479           reset the keyboard if no X11 KeyUp events are expected to come
11480         * X11Structs.cs: Switched type of Visible to bool to match driver
11481
11482 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11483
11484         * TextControl.cs:
11485           - Switched caret to be just 1 pixel wide, matches MS and looks less
11486             clunky
11487           - Moved caret display 1 pixel down from the top of the control
11488             to improve view
11489           - InsertCharAtCharet: Update the selection start if moving the caret
11490             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11491           - No longer always creating the caret when the caret methods are
11492             called. Only the actual ShowCaret/HideCaret will do that now
11493           - Only setting caret visible if the owner control has focus
11494           - UpdateView: Added invalidation-shortcut logic for center and right 
11495             aligned text. Previously we'd update all according to the left
11496             logic which caused drawing errors. Also fixed height of invalidated
11497             areas, now properly invalidating the whole area (was off-by-one)
11498           - owner_HandleCreated: Always generate the document when the
11499             handle is created; this ensures that 
11500         * TextBoxBase.cs:
11501           - Fixed situation where caret would disappear under the right
11502             window border, also improved scrolling behaviour on left-
11503             aligned textboxes
11504           - Fixed right-aligned textboxes to have a border to the
11505             right instead of the caret being under the right border
11506         * XplatUIX11.cs:
11507           - Switched from 'nested' to simple visible/not visible tracking 
11508             for caret (part of fix for #77671)
11509           - No longer passing through translated FocusIn/FocusOut messages
11510             since we were notifying too often and the wrong windows. Instead
11511             we just notify our focussed window of receiving or loosing focus
11512         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11513           counting for caret to simple visible yes/no behaviour (part of 
11514           fix for #77671)
11515
11516 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11517
11518         * Mime.cs: Remove debug code...
11519
11520 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11521
11522         * MimeGenerated.cs: Removed
11523         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11524           and subclasses) from /usr/(local/)share/mime and
11525           $HOME/.local/share/mime.
11526
11527 2006-03-10  Jackson Harper  <jackson@ximian.com>
11528
11529         * MdiWindowManager.cs: Recalc the NC area when a window is
11530         maximized/restored so that the menu area is drawn on forms that
11531         don't have a menu.
11532
11533 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11534
11535         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11536           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11537           us to force a WM_NCCALCRESIZE message being sent. This is needed
11538           for MDI maximizing.
11539
11540 2006-03-10  Jackson Harper  <jackson@ximian.com>
11541
11542         * Form.cs: We need to use the ActiveMenu when calculating menu
11543         height.
11544         - Fix nullref when the window manager hasn't been created yet.
11545         * Control.cs: Fix nullref when we try to bring a control to the
11546         front that has no parent.
11547         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11548         height.
11549         - Add a dummy item to the maximized menu so it always has the
11550         correct height. Otherwise when there are no menus we don't get our
11551         icon and buttons.
11552         
11553
11554 2006-03-10  Jackson Harper  <jackson@ximian.com>
11555
11556         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11557         stuff.
11558         * Form.cs: Make the window_state internal so the window managers
11559         can track it.
11560         - When an MDI child is maximized let its window manager create the
11561         main menu (so it can add its icon).
11562         - Notify the window managers of state changes
11563         - Let the window manager paint its buttons and handle button
11564         clicks on the menu when it is maximized.
11565         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11566         window manager, since tool windows don't use it, only mdi windows.
11567         - Tell the main form that we don't want it to handle NCPAINT
11568         itself to avoid extra painting.
11569         - Handle clicks on a maximized windows menu.
11570         - Handle window state changes
11571         - Handle minimize/maximize clicks correctly by setting the window state.
11572         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11573         when clicking on the forms icon).
11574         - New method to create a forms maximized menu. This is its normal
11575         menu + an icon.
11576         - Handle window state changes.
11577         - Handle sizing of maximized windows.  Maximized windows are just
11578         drawn bigger then the parent visible area. All controls are still
11579         there, they are just outside the visible area (this matches windows).
11580         * MdiClient.cs: No scrollbars when a child window is maximized.
11581         - Let the children windows figure out how big they should be when
11582         sizing maximized windows.
11583         - Implement a version of ArrangeIconicWindows somewhat similar to
11584         Windows version.  There are some little differences, but I don't
11585         think any app will rely on the layout of minimized mdi windows.
11586
11587 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11588
11589         * Padding.cs: Several fixes to allow compiling with csc 2.0
11590
11591 2006-03-09  Jackson Harper  <jackson@ximian.com>
11592
11593         * Menu.cs:
11594         * MenuItem.cs: Cheap hack so we can add items to the list without
11595         the events being raised.  This allows adding mdi items during
11596         drawing. TODO: Should probably find a better time to add the items.
11597
11598 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11599
11600         * ThemeWin32Classic.cs:
11601           - CheckBox_DrawText: Added logic to not wrap if not enough space
11602             is available (Fix for bug #77727)
11603           - RadioButton_DrawText: Added logic not to wrap if not enough
11604             space is available (Fix for bug #77727). Also removed some
11605             duplicate code, DrawString always drawing the regular text
11606             before hitting the if statement.
11607
11608 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11609
11610         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11611
11612 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11613
11614         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11615         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11616           methods. Moved the new 2.0 properties into alphabetical order with
11617           other properties and added MonoTODO tags
11618
11619 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11620
11621         * AutoScaleMode.cs: Added. Fix build.
11622
11623 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11624
11625         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11626           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11627           and was requiring premature handle creation for calls from above
11628         * Form.cs, Control.cs: Removed handle arguments from calls to
11629           CalculateClientRect()
11630
11631 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11632
11633         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11634           drag_column.column_rect is MarshalByRef and can't be used that way
11635
11636 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11637
11638         * AxHost.cs: Added deserialization constructor for 
11639           AxHost+State (fixes 77743)
11640
11641 2006-03-09  Mike Kestner  <mkestner@novell.com>
11642
11643         * ListView.cs: 
11644         - Added column drag reordering for details view.
11645         - fixed behavior when mouse is dragged off column and
11646         AllowColumnReorder is false.
11647         * ColumnHeader.cs: clone the format too in Clone.
11648         * Theme.cs: add DrawListViewHeaderDragDetails method.
11649         * ThemeWin32Classic.cs:
11650         - impl new method for drawing drag column shadows and targets.
11651         - support column offset for details mode in DrawListViewItem.
11652
11653 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11654
11655         * TextControl.cs: Reset the char_count when the document is cleared
11656           (Fixes bug reported on mono-winforms mailing list)
11657
11658 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11659
11660         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11661           of calling base we simply process the key ourselves, since both
11662           DefWindowProc and the handled method would set m.Result. 
11663           (Fixes #77732)
11664
11665 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11666
11667         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11668           method also moves the window; instead implemented a copy of
11669           Control.ScaleCore (Part of fix for #77456)
11670         * TextBoxBase.cs: 
11671           - Created new CreateGraphicsInternal method to allow providing
11672             a graphics context when no handle is created without triggering
11673             handle creation. (Part of fix for #77456)
11674           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11675         * TextControl.cs: 
11676           - Switched Constructor to require TextBoxBase instead of Control (to
11677             allow uncast access to CreateGraphicsInternal)
11678           - Safeguarded use of owner.Handle property. No longer accessing it
11679             unless the handle is already created.
11680           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11681           - Now triggering a recalc when owning control becomes visible
11682         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11683           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11684           premature handle creation (Part of fix for #77456)
11685         * Control.cs:
11686           - We now only destroy our double-buffering buffers when the
11687             control is resized or disposed, but not when visibility
11688             changes. (The code even re-created them twice every time)
11689           - Now requiring a redraw of the buffer on visibility changes
11690             (fixes bug 77654 part 2)
11691           - Not passing OnParentVisibleChanged up unless the control
11692             is visible
11693           - CanFocus: Fixed to match MS documentation
11694           - Focus: Fixed to return actual focus state and to check if
11695             setting focus is legal before setting it
11696
11697 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11698
11699         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11700           when to draw focus rectangle by looking at parent focus and
11701           selected state instead. This fixes TabPages on Linux sometimes
11702           having none or multiple focus rectangles.
11703         * XplatUIX11.cs (SetFocus): 
11704           - Don't set the focus if the same window already has focus
11705           - Use SendMessage instead of PostMessage (like it's Win32
11706             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11707             to match MS behaviour
11708         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11709           are not selectable.
11710
11711 2006-03-07  Jackson Harper  <jackson@ximian.com>
11712
11713         * PictureBox.cs: Revert line I accidently committed last week.
11714
11715 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11716
11717         * Control.cs: 
11718           - Added new IsRecreating and ParentIsRecreating properties to
11719             allow testing if RecreateHandle has been called on ourselves
11720             or one of our parents
11721           - WndProc(WM_DESTROY): If our control handle is being recreated
11722             we immediately need to create the handle when receiving the
11723             destroy, that way our child windows find a valid parent handle
11724             when they themselves are being recreated upon WM_DESTROY receipt
11725             (fix for bug #77654 part 1)
11726         * XplatUIX11.cs:
11727           - DestroyWindow: WM_DESTROY must be sent to our own window before
11728             notifying any child windows. MS documents that child windows
11729             are still valid when WM_DESTROY is received. (Control now relies on
11730             this behaviour)
11731           - Added some fine-grain debug options
11732
11733 2006-03-06  Jackson Harper  <jackson@ximian.com>
11734
11735         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11736         box and base calculations off this.
11737         * MdiChildContext.cs:
11738         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11739         anymore.
11740         
11741 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11742
11743         * Splitter.cs: In situations where the affected control is added
11744           to the parent's control list after the splitter, we would not
11745           populate affected. Now we try populating it on mousedown, if
11746           it's not already set, and force it to be re-set whenever our
11747           parent changes.
11748
11749 2006-03-03  Matt Hargett  <matt@use.net>
11750
11751         * Control.cs: implement Control.Padding
11752         * Padding.cs: -Padding.All returns -1 when constructing with the
11753         implicit default ctor
11754         -Padding.ToString() matches MS.NET
11755         * ContainerControl.cs: implement
11756         ContainerControl.AutoScaleDimensions
11757         * ListControl.cs: implement ListControl.FormattingEnabled
11758         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11759         * ButtonBase.cs:
11760         * TabPage.cs: Implement UseVisualStyleBackColor.
11761         * PictureBox.cs: Implement PictureBox.InitialImage.
11762
11763 2006-03-03  Mike Kestner  <mkestner@novell.com>
11764
11765         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11766         event declarations to proxy to base event.
11767         * ListViewItem.cs: update to use ItemControl.
11768         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11769         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11770         column header label rendering for 0 width columns.
11771
11772 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11773
11774         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11775           that causes the control to be created. Fixes #77476.
11776
11777 2006-03-02  Jackson Harper  <jackson@ximian.com>
11778
11779         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11780         expose_pending.
11781
11782 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11783
11784         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11785           passed in for the EventArgs (fixes #77690)
11786
11787 2006-03-01  Jackson Harper  <jackson@ximian.com>
11788
11789         * ScrollBar.cs: Refresh afterbeing resized.
11790
11791 2006-02-28  Mike Kestner  <mkestner@novell.com>
11792
11793         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11794         Clean up a tracker compile warning.
11795         * MenuItem.cs: add internal PerformPopup method.
11796         [Fixes #77457]
11797
11798 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11799
11800         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11801           implicit expose) when the text is set to null
11802
11803 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11804
11805         * RichTextBox.cs (FlushText): When newline is true, we always
11806           need to split the line, even if no text is on it and we may
11807           never eat newlines. (Fixes #77669)
11808
11809 2006-02-28  Mike Kestner  <mkestner@novell.com>
11810
11811         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11812         and set Selected instead.
11813         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11814         collections.
11815
11816 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11817
11818         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11819
11820 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11821
11822         * FontDialog.cs:
11823           - Got rid of the panel. All controls are now directly added to
11824             the dialog form
11825           - It is now possible to set a font with the Font property
11826           - MinSize and MaxSize property do now what they should
11827           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11828           - Searching and selecting a font with the font textbox works now,
11829             the same applies to the style and size textbox
11830           - Draw the correct 3D border in the example panel
11831           - Fixed a little mem leak (unused fonts didn't get disposed)
11832           - Many other internal updates/rewrites...
11833           - Fix typo
11834
11835 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11836
11837         * TextControl.cs: 
11838           - InsertRTFFromStream: Added 'number of characters inserted' argument
11839           - set_SelectedRTF: Now using the number of characters to calculate
11840             the new location for the selection and cursor (x/y cannot be used
11841             due to potentially already wrapped text)
11842
11843 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11844
11845         * TextControl.cs: Added property and implemented means to allow 
11846           disabling recalculation of a document (can be used to speed up
11847           multiple inserts and is needed to make RTF inserts predictable, see
11848           bug #77659)
11849         * RichTextBox.cs: Using the new NoRecalc property of Document to
11850           keep x/y insert locations predictable. Also makes it faster inserting
11851           large chunks of RTF
11852
11853 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11854
11855         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11856           it's easier for a child control to handle the other messages without
11857           having to duplicate the special functionality
11858         * TextBoxBase.cs
11859           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11860             code to handle processing the key ourselves, in order to get 
11861             access to the result of KeyEventArgs.Handled. We now only call 
11862             ProcessKey if they key hasn't been handled already. Fixes #77526.
11863           - set_Text: If null or empty string is given, just clear the 
11864             document. Fixes part of #77526
11865
11866 2006-02-27  Jackson Harper  <jackson@ximian.com>
11867
11868         * SizeGrip.cs: Paint the background color before painting the grip
11869         so things look right.
11870         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11871
11872 2006-02-27  Mike Kestner  <mkestner@novell.com>
11873
11874         * ListView.cs:
11875           - Restructure layout and invalidation model to remove a ton of
11876           flicker from the control and speed up performance in general.
11877           - Add manual column resize, flickers like crazy, but I already have
11878           some ideas on how I'll fix that. (#76822)
11879           - Merge the three Icon-based views into a single layout method.
11880           - Move item selection interaction logic from the item since 
11881           interaction with the collections is more appropriate to the view.
11882           - Deselection on non-item clicks.
11883         * ListViewItem.cs:
11884           - Encapsulate most of the layout. Add some internal props to trigger
11885           layout.  Move to a model where Items invalidate themselves instead
11886           of just invalidating the whole control every time something changes.
11887           - Invalidate on Text/Caption changes.
11888           - switch to an offset based layout model to avoid having to absolute
11889           position every element on item moves.
11890           - correct checkbox layout to conform to MS layout.
11891         * ThemeWin32Classic.cs:
11892           - refactor some column header drawing code.
11893           - fix string justification for column headers (#76821)
11894           - make SmallIcon labels top justified for compat with MS impl.
11895         * ThemeClearlooks.cs:
11896           - adjust to new ListViewItem internal checkbox bounds api.
11897
11898 2006-02-27  Jackson Harper  <jackson@ximian.com>
11899
11900         * Control.cs:  Change where implicit controls fall in the zorder.
11901         They are now on top of all children.
11902         - Synced AddImplicit code with Add
11903         - Removed unused enumerator.
11904         * SizeGrip.cs: Remove the TODO as its been TODONE.
11905
11906 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11907
11908         * TextControl.cs(Insert): Combine the last lines unless the insertion
11909           string ends with \n\n, otherwise we leave one line too many (Fixes
11910           something I noticed with the testapp for #77526; the bug itself was
11911           already fixed in the previous checkin)
11912
11913 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
11914
11915         * RichTextBox.cs:
11916           - SelectionColor and SelectionFont methods no longer set absolute
11917             styles. Instead, the keep font or color respectively (This 
11918             resolves a long-standing FIXME in the code)
11919           - When flushing RTF text, the insert code now considers text trailing
11920             behind the insertion point (Fixes the bug where when replacing
11921             the selected text via SelectedRTF the remainder of the line behind 
11922             the selection would stay on the first insertion line)
11923         * TextBoxBase.cs:
11924           - AppendText now updates the selection points after inserting text
11925           - AppendText now ensures that the last tag (sometimes 0-length) of
11926             the document is used for the style information (Fixes part of 
11927             bug #77220)
11928         * TextControl.cs:
11929           - Created new FontDefiniton class to allow describing partial style
11930             changes
11931           - StreamLine() now takes a lines argument, to allow it to decide
11932             whether an encountered zero-length tag is the last in the document
11933             (which must be kept to not loose the font/color contained in it,
11934             for later appends)
11935           - Created Combine() and Split() methods for Marker structs, to 
11936             support marker updates due to reformatted documents (soft line
11937             wraps)
11938           - Implemented Document.CaretTag setter
11939           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
11940             of the last line (Not the cause, but also exposed by bug #77220)
11941           - Added LineTag argument to InsertString method, to allow callers
11942             to force a certain tag to be used (required to force use of the
11943             trailing zero-length tag of a document)
11944           - Now updating markers in Combine(), to avoid stale tag markers
11945           - Added some method descriptions to aid maintenance
11946           - Implemented new FormatText concept, allowing additive/subtractive
11947             formatting by only specifying the components that are to be 
11948             changed. This was needed for resolving the RTB.SelectedColor/
11949             RTB.SelectedFont fixmes
11950           - Added Break() support method to allow breaking up linetags (used
11951             for partial formatting)
11952           - Added GenerateTextFormat() method. It is used for partial 
11953             formatting and allows to generate a full font/color from given
11954             attributes and an existing tag.
11955
11956 2006-02-26  Jackson Harper  <jackson@ximian.com>
11957
11958         * XplatUIX11.cs:  Use the correct caption height.
11959         - Translate hittest coordinates to screen coords to match MS.
11960         * XplatUIWin32.cs: When we create MDI windows we need to reset
11961         some of the style flags, so we get a nice blank window, and can
11962         draw all the decorations ourselves.
11963         - Set a clipping rectangle on the non client paint event, the
11964         window manager drawing code needs one.
11965         * Form.cs: The window manager needs to know when the window state
11966         has been updated.
11967         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
11968         don't need to factor in border and title sizes in these
11969         methods. TODO: Remove the args and fix the call points.
11970         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
11971         properly.
11972         - Let the driver set the cursors.
11973         - Improve active window handling
11974         - Correct sizes for title bars and buttons.
11975         - Match MS drawing better
11976         * MdiWindowManager.cs: We don't need to handle border style
11977         updates specially anymore.
11978         - Check for scrollbars when windows are done moving
11979         - Handle Active properly.
11980         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
11981         correctly. I am spewing the exception though, so we don't hide the
11982         bugs.
11983         
11984 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
11985
11986         * DataGridViewRowPostPaintEventArgs.cs,
11987           DataGridViewCellPaintingEventArgs.cs,
11988           DataGridViewRowCollection.cs,
11989           DataGridViewRowPrePaintEventArgs.cs,
11990           DataGridViewCell.cs: Clear a few warnings and implement a few
11991           exceptions that should be thrown.
11992
11993 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
11994
11995         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
11996           'inheriting' our parent's (non-default) cursor. (Part of
11997            the fix for #77479)
11998
11999 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12000
12001         * XplatUIX11.cs: Fixed cast to make csc happy
12002
12003 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12004
12005         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12006           it's for the client area (part of fix for #77479 and needed
12007           for MDI window cursor handling)
12008         * XplatUIX11.cs
12009           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12010             the appropriate default cursors and also passing the message
12011             up the parent chain 
12012           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12013             for non-client areas
12014
12015 2006-02-15  Jackson Harper  <jackson@ximian.com>
12016
12017         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12018         is a real MDI window
12019
12020 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12021
12022         * X11DesktopColors.cs: Instead of checking the desktop session
12023           string for "KDE" check if it starts with "KDE"
12024
12025 2006-02-10  Jackson Harper  <jackson@ximian.com>
12026
12027         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12028         systems).
12029
12030 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12031
12032         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12033           errors
12034         * ColorDialog.cs:
12035           - Got rid of the panel. All controls are now directly added to
12036             the dialog form
12037           - Changed to mono coding style
12038
12039 2006-02-10  Jackson Harper  <jackson@ximian.com>
12040
12041         * InternalWindowManager.cs: We don't need the set visibility to
12042         false hack anymore now that peter has written beautiful shutdown
12043         code.
12044
12045 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12046
12047         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12048           where already explicitly destroyed
12049
12050 2006-02-10  Jackson Harper  <jackson@ximian.com>
12051
12052         * MdiClient.cs: Handle the case where windows are too high or to
12053         the left and we need scrollbars.
12054
12055 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12056
12057         * MimeIcon.cs: Added some icons
12058         * FileDialog.cs:
12059           - Fixed bug #77477
12060           - Got rid of the panel. All controls are now directly added to
12061             the dialog form
12062           - Changed to mono coding style
12063           - On Linux "My Computer" and "My Network" will now show some
12064             more usefull information. A new class, MasterMount, gathers
12065             this information from /proc/mount. Updated MWFFileView to make
12066             use of this information
12067           - Fixed a bug that caused FileDialog to crash when
12068             ".recently_used" file had a zero size
12069           - FilterIndex does now what it should
12070           - Some Refactoring
12071         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12072             FileDialog changes
12073
12074 2006-02-09  Jackson Harper  <jackson@ximian.com>
12075
12076         * ComboBox.cs: Don't touch if null.
12077
12078 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12079
12080         * Cursor.cs: 64bit safeness fix
12081         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12082
12083 2006-02-09  Jackson Harper  <jackson@ximian.com>
12084
12085         * Form.cs: If a form is made into an MDI form update the styles so
12086         all the props can get set correctly.
12087         - Kill the mdi_container when we dont need it anymore.
12088         * InternalWindowManager.cs: Add missing NOT
12089
12090 2006-02-08  Jackson Harper  <jackson@ximian.com>
12091
12092         * InternalWindowManager.cs: Respek clipping when drawing MDi
12093         decorations.
12094
12095 2006-02-08  Jackson Harper  <jackson@ximian.com>
12096
12097         * Hwnd.cs: Add bits to track non client expose events.
12098         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12099         gives us a proper invalid rect and will allow for some nice
12100         optimizations with NC client drawing
12101         - MDI windows are children windows, so move their style handling
12102         into the child window block.
12103         * InternalWindowManager.cs: Remove a state reset that was
12104         getting invoked at the wrong time. Fixes managed windows getting
12105         into a 'stuck' captured state.
12106
12107 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12108
12109         * TextControl.cs (Document.ctor): Now initializing 
12110           selection_anchor. Fixes #77493
12111
12112 2006-02-07  Jackson Harper  <jackson@ximian.com>
12113
12114         * TrackBar.cs: The increment/decrements were backwards.
12115
12116 2006-02-07  Mike Kestner  <mkestner@novell.com>
12117
12118         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12119         to the instance itself.
12120
12121 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12122
12123         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12124           on ulongs and pointers, the size differs between 32bit and 64bit
12125           systems. 
12126
12127 2006-02-07  Mike Kestner  <mkestner@novell.com>
12128
12129         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12130         for 64 bit platforms to work around a metacity bug. 
12131
12132 2006-02-07  Jackson Harper  <jackson@ximian.com>
12133
12134         * TrackBar.cs: Process the input keys we need, and hookup to
12135         KeyDown instead of using WndProc, so we get key messages.
12136
12137 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12138
12139         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12140           machine we're on. 
12141         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12142           we need to translate the XdndVersion atoms array before sending it
12143
12144 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12145
12146         * XplatUIX11.cs: 
12147           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12148             number of bits for the property, not the number of bytes. The
12149             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12150             but would not crash since it specified 8 bits instead of 4 bits)
12151           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12152             defined as XID -> long in the C headers)
12153           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12154             references since those are now IntPtr to begin with
12155           - Switched all Atom.XXX 'int' casts to IntPtr casts
12156           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12157           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12158           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12159         * X11Structs.cs:
12160           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12161           - Changed atom in HoverStruct to be IntPtr
12162         * X11DnD.cs:
12163           - Removed local DllImports, switched code to use those from XplatUIX11
12164           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12165
12166 2006-02-06  Mike Kestner  <mkestner@novell.com>
12167
12168         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12169         method signatures in the import region.  There may still be some
12170         lingering struct marshaling issues, as I didn't drill down into those.
12171         Yet.
12172
12173 2006-02-06  Jackson Harper  <jackson@ximian.com>
12174
12175         * ComboBox.cs: Dont manually set the top_item, this is computed
12176         when the scrollbar position is set.
12177
12178 2006-02-06  Mike Kestner  <mkestner@novell.com>
12179
12180         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12181         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12182         usage of Atom needs to be mapped to IntPtr for example.  And there are
12183         likely other int/long issues to be addressed.
12184
12185 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12186
12187         * FileDialog.cs: One more...
12188
12189 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12190
12191         * FileDialog.cs: Next try
12192
12193 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12194
12195         * FileDialog.cs: First part of fix for #77464
12196
12197 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12198
12199         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12200           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12201           AcceptButton border drawing.
12202
12203 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12204
12205         * Form.cs: Moved positioning of form after auto scaling is applied,
12206           otherwise it would possibly use wrong form size.
12207
12208 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12209
12210         * Control.cs (RecreateHandle): No need to re-create any child
12211           controls, the child windows will get destroyed automatically by
12212           the windowing system or driver, and re-created when the handle
12213           is being accessed the first time. Fixes #77456
12214         * Form.cs: No longer setting the form to closing if the handle is 
12215           being recreated. This seems like the right thing to do, don't
12216           have a bug or testcase for this, though.
12217
12218 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12219
12220         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12221           controls to avoid unwanted side effects
12222
12223 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12224
12225         * Control.cs: 
12226           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12227             control. Fixes #77416.
12228           - DefaultSize is 0,0 for control
12229         * TextBoxBase.cs: 
12230           - DefaultSize is 100, 20
12231           - SetBoundsCore: Now enforcing the height, no matter if the provided
12232             height is more or less than the preferred one, as long as AutoSize
12233             is on
12234         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12235
12236 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12237
12238         * Control.cs:
12239           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12240             call unless both performLayout is true *and* we have a pending
12241             layout change
12242           - ResumeLayout: MS does not completely nest Suspend and Resume,
12243             they bottom out at 0, fixed our code to match that.
12244           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12245             SetBoundsCore, we were updating even when we shouldn't. This fixes
12246             swf-anchors mis-anchoring when resizing the app fast and lots.
12247           - UpdateDistances: Now only setting the left and top distance if 
12248             we have a parent and are not suspended, this is based on
12249             a suggestion by Don Edvaldson in bug #77355.
12250           - OnVisibleChanged: Fixed logic when to create the control. We may
12251             not create the control if we have no parent or if it's not visible;
12252             switched to using Visible property instead of is_visible field 
12253             since the property also considers parent states. This fixes a bug
12254             when starting Paint.Net
12255
12256 2006-02-02  Jackson Harper  <jackson@ximian.com>
12257
12258         * Form.cs: If the forms handle hasn't been created yet don't call
12259         into xplatui to make it top most, just set the topmost flag on the
12260         form in CreateParams
12261         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12262
12263 2006-02-01  Jackson Harper  <jackson@ximian.com>
12264
12265         * ScrollableControl.cs: Refactored the Recalculate method a
12266         little, this wasn't handling all the variants of bottom and right
12267         bars needed to be added and added/removed based on their
12268         counterparts being added/removed (which changes the drawable
12269         size). Also we special case client widths and heights of 0 and
12270         don't add the scrollbar for those.
12271
12272 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12273
12274         * XplatUIX11.cs: 
12275           - Added method to get AbsoluteGeometry(); currently unused, but might
12276             be used in the future, if we try again to figure out toplevel
12277             coordinates with some more crappy window managers
12278           - Added FrameExtents() method to retrieve the WM set decoration size
12279           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12280             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12281         * Hwnd.cs: 
12282           - Added whacky_wm tracking var for metacity
12283           - Added logic to have default menu height if the actual menu height
12284             has not yet been calculated (part of fix for #77426)
12285         * Form.cs: Keep track whether client size has been set and re-set 
12286           it if a menu is added/removed afterwards (Fixes #77426)
12287
12288 2006-01-31  Jackson Harper  <jackson@ximian.com>
12289
12290         * Control.cs: When a new Site is set on the component attempt to
12291         pull the AmbientProperties from it.
12292
12293 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12294
12295         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12296           in the background of the owning form. Fixes #77332
12297
12298 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12299
12300         * MimeIcon.cs: Fix for #77409
12301
12302 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12303
12304         * XplatUIX11GTK.cs: Initial import
12305
12306 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12307
12308         * FixedSizeTextBox: fixes class signature
12309
12310 2006-01-30  Jackson Harper  <jackson@ximian.com>
12311
12312         * FixedSizeTextBox.cs: New internal class that represents a
12313         textBox that will not be scaled.
12314         * TreeView.cs:
12315         * ComboBox.cs:
12316         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12317         standard TextBox.
12318                 
12319 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12320
12321         * XplatUIX11.cs: Retrieve default screen number instead of
12322           assuming 0. Attempted fix for #77318
12323
12324 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12325
12326         * XplatUIWin32.cs: 
12327           - GetWindowPos: When a window is parented by FosterParent, use 
12328             the desktop instead of FosterParent as the base to get coordinates
12329           - CreateWindow: Don't make FosterParent the parent window for Popups
12330             if we don't want a taskbar entry, Popups automatically don't get one
12331         * Hwnd.cs: Need to call remove to actually remove the key from the
12332           hash table
12333
12334 2006-01-30  Mike Kestner  <mkestner@novell.com>
12335
12336         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12337
12338 2006-01-30  Jackson Harper  <jackson@ximian.com>
12339
12340         * TreeView.cs:
12341         * TreeNode.cs: Raise events no matter how the treenode is
12342         checked. Patch by Don Edvalson.
12343
12344 2006-01-30  Jackson Harper  <jackson@ximian.com>
12345
12346         * TreeNode.cs: Signature fix.
12347
12348 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12349
12350         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12351
12352 2006-01-20  Mike Kestner  <mkestner@novell.com>
12353
12354         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12355         event forwarding when menus are active.
12356         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12357         Most of the patch is pdb's with a little rework.
12358
12359 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12360
12361         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12362           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12363           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12364         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12365         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12366           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12367           the PaintWindowDecorations method
12368         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12369         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12370         * MenuAPI.cs: Made tracker window invisible
12371         * XplatUIWin32.cs:
12372           - Removed GetMenuDC and ReleaseMenuDC methods
12373           - Implemented the client=false path for PaintEventStart and
12374             PaintEventEnd
12375
12376 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12377
12378         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12379         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12380           styles
12381         * Form.cs: 
12382           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12383             the style
12384           - CreateParams: Reworked the styles to match MS look'n'feel,
12385             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12386             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12387
12388 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12389
12390         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12391           window is not mapped, since otherwise every form that's being 
12392           created is considered minimized, which is wrong.
12393         * Form.cs: Catching the exception and returning our internal value
12394           instead
12395
12396 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12397
12398         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12399           SetWindowMinMax() to have means to tell the driver about the minimum,
12400           maximum and maximized state window sizes. (Part of the fix for #76485)
12401         * Form.cs:
12402           - Implemented tracking of minimum and maximum window size, now calling
12403             new SetWindowMinMax() driver method to tell the driver (Part of the
12404             fix for #76485)
12405           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12406             (Completes fix for #76485)
12407           - Calling new SetWindowMinMax driver method when the handle for a 
12408             form is created, to make sure the driver knows about it even if
12409             the values have been set before the window was created
12410           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12411             to avoid messing up our anchoring calculations (partial fix
12412             for #77355)
12413         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12414         * XplatUIX11.cs:
12415           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12416           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12417             (and presumably other freedesktop.org compliant WMs). Left the
12418             assumption unmapped=minimized, needed for SetVisible to work.
12419           - Now setting the window state when creating windows
12420           - Fixed SetVisible to consider/set the window state when mapping
12421             a Form. We cannot set the state before it's mapped, and we cannot
12422             use Form.WindowState once it's mapped (since it would ask the
12423             driver and get 'normal'. Therefore, we grab the state before
12424             mapping, map, and then set state.
12425           - Implmemented SetWindowMinMax method; Metacity does not seem to
12426             honor the ZoomHints, though.
12427         * XplatUIWin32.cs:
12428           - Removed MINMAXINFO (moved to XplatUIStructs)
12429           - Added SetWindowMinMax stub (on Win32 the only way to set that
12430             information is in response to the WM_GETMINMAXINFO message, which
12431             is handled in Form.cs)
12432           - Added logic to SetVisible to set the proper window state when a 
12433             form is made visible (fixes #75720)
12434
12435 2006-01-26  Jackson Harper  <jackson@ximian.com>
12436
12437         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12438         same way we handle them with Invoke.
12439
12440 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12441
12442         * Form.cs:
12443           - Added tracking of window state so CreateParams can return
12444             the appropriate style
12445           - Moved setting of WS_CAPTION style in CreateParams to allow
12446             styles without caption
12447         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12448           control if the TextBox property is accessed. Fixes #77345
12449         * Control.cs:
12450           - get_Created: now uses is_disposed and is_created to determine
12451             return value (suggested by Jackson)
12452           - CreateHandle: No longer exits if the handle is being recreated
12453           - RecreateHandle: If the handle is not yet created call the 
12454             appropriate method to create either control or handle. If the
12455             control is already created CreateHandle will simply exit instead
12456             of just creating the handle
12457         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12458           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12459           is called.
12460         * XplatUIX11.cs: 
12461           - When DestroyWindow is called, instead of waiting for the 
12462             DestroyNotification from X11, we directly post it to the WndProc
12463             and immediately dispose the hwnd object.
12464             Same applies to DestroyChildWindows, and this obsoletes the
12465             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12466             child windows before our own, to avoid X11 errors.
12467           - Removed the direct sending of WM_PAINT on UpdateWindow
12468         * XplatUIWin32.cs:
12469           - Reworked DoEvents and GetMessage to allow access to internal queue
12470             even when trying non-blocking access to the queue.  Fixes #77335. 
12471             Based on a patch suggestion by Don Edvalson. The new private
12472             GetMessage can now also be used as a backend for a PeekMessage
12473             frontend version.
12474         * XplatUI.cs: Improved debug output for CreateWindow
12475
12476 2006-01-25  Jackson Harper  <jackson@ximian.com>
12477
12478         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12479
12480 2006-01-24  Jackson Harper  <jackson@ximian.com>
12481
12482         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12483         when we have a MaxDropItems lower then the selected index.
12484
12485 2006-01-24  Jackson Harper  <jackson@ximian.com>
12486
12487         * Control.cs: Don't allow selection of non visible controls, allow
12488         selection of controls without parents.
12489
12490 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12491
12492         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12493         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12494
12495 2006-01-23  Jackson Harper  <jackson@ximian.com>
12496
12497         * UpDownBase.cs: Make the textbox handle all the selection and
12498         tabbing. This fixes tabing to updown controls.
12499
12500 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12501
12502         * TextBoxBase.cs: fixes exception thown the object was null
12503
12504 2006-01-23  Jackson Harper  <jackson@ximian.com>
12505
12506         * ButtonBase.cs: Just use the base CreateParams. They set
12507         visibility and enabled correctly.
12508         * ComboBox.cs:
12509         * TrackBar.cs:
12510         * MonthCalendar.cs: Lets let the base set as much of the
12511         createparams as possible so we don't have duplicate code all over
12512         the place.
12513
12514 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12515
12516         * ThemeGtk.cs: Added TrackBar and some experimental code to
12517           get double buffering back
12518
12519 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12520
12521         * DataGrid.cs: Allows row number set internally higher than the last
12522         when creating a new row. Restores the editing functionality.
12523
12524 2006-01-20  Mike Kestner  <mkestner@novell.com>
12525
12526         * MimeIcon.cs: delay Image creation until the icons are accessed
12527         instead of creating 190 scaled images on GnomeHandler startup.
12528
12529 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12530
12531         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12532           first call base before processing the event. Fixes #77279
12533
12534 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12535
12536         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12537           that the stride for the GDI bitmap would match the stride of
12538           a DIB or a Cursor.
12539
12540 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12541
12542         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12543
12544 2006-01-19  Jackson Harper  <jackson@ximian.com>
12545
12546         * ComboBox.cs: Hookup the text controls keydown event so we get
12547         those when the text control has the focus.
12548
12549 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12550
12551         * Label.cs: Now using the base events instead of defining new ones;
12552           this allows us to just call the base properties without having to
12553           duplicate all base property logic 
12554
12555 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12556
12557         * Label.cs: A label by default is not a tabstop (Fixes one of our
12558           failing nunit tests)
12559
12560 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12561
12562         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12563         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12564
12565 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12566
12567         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12568           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12569           This fixes #77218
12570         * XplatUIWin32.cs: 
12571           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12572             constructor creates images that can't be saved. Part of the fix
12573             for #76103
12574           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12575           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12576             bug fix for handling window state in forms properly)
12577
12578 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12579
12580         * ThemeGtk.cs: Simplify ScrollBar drawing
12581
12582 2006-01-18  Jackson Harper  <jackson@ximian.com>
12583
12584         * Splitter.cs: Set the default dock style for the splitter control
12585         in the constructor.
12586
12587 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12588
12589         * ThemeGtk.cs: Corrected StateType and ShadowType for
12590           gtk_paint_box
12591
12592 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12593
12594         * Control.cs: Make use of Theme.DoubleBufferingSupported
12595         * ThemeGtk.cs:
12596           - Added drawing for flat style buttons
12597           - Added ScrollBar drawing
12598
12599 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12600
12601         * ThemeClearlooks.cs: Removed some unneeded code.
12602         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12603
12604 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12605
12606         * LinkLabel.cs: We need to update the hover drawing when
12607           leaving the control as well.
12608
12609 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12610
12611         * DataGrid.cs: Clicking on non empty areas in the columns
12612            area was giving an exception
12613
12614 2006-01-17  Jackson Harper  <jackson@ximian.com>
12615
12616         * ThemeWin32Classic.cs:
12617         * ListView.cs: Do not draw/clip the headers when the header style
12618         is None.
12619
12620 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12621
12622         * DataGrid.cs: Fixes 77260
12623         
12624 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12625
12626         * DataGrid.cs: Clicking on a column on a empty grid was giving
12627           an exception
12628
12629 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12630
12631         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12632           or any keypress will crash the grid.
12633
12634 2006-01-17  Mike Kestner  <mkestner@novell.com>
12635
12636         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12637         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12638         invisible/previously-visible items.
12639         [Fixes #76909]
12640
12641 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12642
12643         * ThemeClearlooks.cs:
12644         - Added CL_Draw_Button method; now other theme controls that are 
12645           not derived from button or do not have a button can draw buttons
12646           too
12647         - Updated ComboBox drawing
12648         - Beautified RadioButton drawing
12649         - Corrected drawing of bottom and left tabs
12650         - Beautified DateTimePicker and MonthCalendar
12651         - Added CPDrawButton and CPDrawRadioButton
12652
12653 2006-01-16  Jackson Harper  <jackson@ximian.com>
12654
12655         * ComboBox.cs: Set the initial value of the scrollbar to the
12656         current index. Reduce the numbers of refreshs and IndexOfs called.
12657
12658 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12659
12660         * FileDialog.cs: When the file listview is focused hitting the
12661           backspace key moves the fileview to the parent directory
12662
12663 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12664
12665         * Form.cs: 
12666           - Added RecreateHandle call when changing taskbar visibility to 
12667             trigger reparenting in Win32 driver (Fixes #75719)
12668           - If a window has minimize or maximize buttons, it cannot have
12669             a help button
12670         * XplatUIWin32.cs:
12671           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12672             the toplevel form with FosterParent (A toolwindow not on the
12673             taskbar) (Fixes #75719)
12674           - Made FosterParent a toolwindow
12675
12676 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12677
12678         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12679
12680 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12681
12682         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12683           is currently over that control, make sure that tooltip_window.Text
12684           gets updated
12685
12686 2006-01-13  Mike Kestner  <mkestner@novell.com>
12687
12688         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12689
12690 2006-01-13  Jackson Harper  <jackson@ximian.com>
12691
12692         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12693         value passed.  Also redraw the selected node when we recieve
12694         focus, so tabbing between trees works correctly.
12695
12696 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12697
12698         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12699           ~/.gconf/%gconf-tree.xml, so use
12700           .gconf/desktop/gnome/interface/%gconf.xml
12701
12702 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12703
12704         * TextControl.cs: Draw text in gray if control is disabled
12705
12706 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12707
12708         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12709           make sure it's always visible. Fixes #76680.
12710
12711 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12712
12713         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12714
12715 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12716
12717         * PageSetupDialog.cs: Added.
12718         * PrintDialog.cs: Attributes.
12719         * PrintPreviewControl.cs: Updates.
12720         * PrintPreviewDialog.cs: Updates.
12721         
12722 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12723
12724         * Control.cs: Undid my selection check fix, since it's not needed
12725         * TextBoxBase.cs:
12726           - Now considering the presence of hscroll/vscroll when sizing
12727             vscroll/hscroll respectively. Fixed bug #77077
12728           - Added Left/Up/Down/Right to IsInputKey list to prevent
12729             ContainerControl from stealing them. This fixes what I broke
12730             with my last checkin.
12731
12732 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12733
12734         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12735           I finally understand how the property can be set without a setter :-)
12736
12737 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12738
12739         * Application.cs:
12740           - Switched RunLoop to use static Message.Create to create a 
12741             Message object
12742           - Added PreProcessMessage call in runloop for keyboard events; this
12743             is part of the fix for #77219, I overlooked this originally in the
12744             MSDN doc for PreProcessMessage
12745         * Control.cs:
12746           - Removed call to PreProcessMessage from handling of keyboard 
12747             messages; it's supposed to be done in the message pump
12748           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12749             per MSDN documentation.
12750           - IsInputChar: All chars are input chars by default; removed the 
12751             parent calling chain, MS does not document that
12752           - PreProcessMessage: If IsInputChar is true, we want to return false
12753             to allow dispatching of the message
12754           - When selecting the next control, now also check that we're not
12755             selecting ourselves again and therefore return a false positive.
12756         * TextBoxBase.cs:
12757           - Tried to match return values for IsInputKey and ProcessDialogKey
12758             to what MS returns; moved processing of our special keys outside
12759             ProcessDialogKey since MS does not seem to return true on those.
12760           - Moved code that previously was in ProcessDialogKey into new private
12761             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12762           - Reworked handling of WM_CHAR to not have to duplicate code from
12763             Control.cs anymore, instead we simply call down to base.
12764            
12765 2006-01-12  Jackson Harper  <jackson@ximian.com>
12766
12767         * ComboBox.cs: We always need to refresh the text area when
12768         EndUpdate is called. Fixes the combobox in the file dialog.
12769         * Control.cs: Don't create the creator_thread until the controls
12770         handle is created.  Also in InvokeRequired we check if the
12771         creator_thread is null. This gives the effect of InvokeRequired
12772         returning true if the controls handle is not created yet, and
12773         matches MS.
12774
12775 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12776
12777         * XplatUI.cs:
12778           - Added StartLoop() driver method. This is used to allow drivers to
12779             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12780             loop for a particular thread
12781           - Added EndLoop() driver method. This is called once the message
12782             pump for the thread is shut down
12783           - Added SupportsTransparency method to allow the driver to indicate
12784             opacity support for windows
12785         * Form.cs:
12786           - Removed TODO attribute, completed AllowTransparency property
12787           - Added documented logic to Opacity
12788         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12789           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12790           versions of CompatibleTextRendering
12791         * X11Structs.cs: Added opacity atom to our atom enumeration
12792         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12793           of a form might be set before it's reparented by the WM, and we need
12794           the opacity value without calling up to Form)
12795         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12796           SupportsTransparency() driver methods
12797         * Application.cs: Now calling StartLoop and EndLoop driver methods
12798         * XplatUIX11.cs:
12799           - Added opacity atom registration
12800           - Added StartLoop()/EndLoop() methods. They're empty right now but
12801             will need to get implemented when we switch to a per-thread queue
12802           - Implemented SupportsTransparency() method
12803           - Implemented SetWindowTransparency() method
12804           - Added support for setting the opacity value when a window is
12805             reparented (since the opacity needs to be set on the WM frame)
12806         * XplatUIOSX.cs, XplatUIWin32.cs:
12807           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12808
12809 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12810
12811         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12812
12813 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12814
12815         * FileDialog.cs: Added ToolTip for MWFFileView
12816         * MimeIcon.cs: Rewrote GnomeHandler.
12817           - Get currently used gnome icon theme from
12818             ($HOME)/.gconf/%gconf-tree.xml
12819           - Make use of inherited icon themes
12820           - Support SVG icon themes like Tango via librsvg
12821
12822 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12823
12824         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12825         builds. 
12826         
12827         * Application.cs: Move the use_compatible_text_rendering outside
12828         the NET_2_0 define.  If we ever need to use the
12829         use_compatible_text_rendering on the individual controls they will
12830         access the variable from the common shared code paths.
12831
12832 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12833
12834         * XplatUI.cs:
12835           - Added more granular debug options
12836           - Added method to print both window text and id
12837           - Switched debug output to use new Window() debug method
12838           - Added IsEnabled() driver method
12839           - Added EnableWindow() driver method
12840         * Form.cs:
12841           - Removed end_modal; no longer needed, new loop handles termination
12842             via 'closing' variable
12843           - If form is modal, setting DialogResult will now initiate loop
12844             termination via 'closing' variable
12845           - Added support for is_enabled/WS_DISABLED to CreateParams
12846           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12847             does all the work
12848           - Removed code that's now in RunLoop from ShowDialog()
12849           - Added various documented sanity checks to ShowDialog()
12850           - Added handling of WM_DESTROY message; we set 'closing' on getting
12851             the message to indicate the message pump to terminate
12852           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12853             send by the Application.ExitThread method. (We send the message
12854             to destroy the window after all other events have been
12855             processed through the queue, instead of destroying the handle 
12856             directly)
12857           - Moved code from Close() method to WM_CLOSE handler; added logic
12858             to only send close-related events if the form is not displayed
12859             modal
12860         * Splitter.cs (..ctor): Fixed typo in resource name
12861         * Control.cs:
12862           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12863             brush now
12864           - set_Cursor: Now only setting calling into XplatUI if the handle for
12865             the control is already created; this avoids implict handle creation
12866             or crashes if it's not created
12867           - set_Enabled: Now setting the enabled state via the new driver method
12868             instead of just tracking it
12869           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12870           - CreateControl: Reordered event firing and method calls to more
12871             closely fire events in the order MS does. Now setting the
12872             enabled state in the driver when creating the control.
12873           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12874             match MS order
12875         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12876           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12877         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12878         * Hwnd.cs:
12879           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12880           - Added EnabledHwnd property to easily allow a driver to find the
12881             handle of the first enabled window in the parent chain (this is
12882             used by drivers to pass up input events of disabled windows)
12883         * XplatUIDriver.cs: Added IsEnabled() method
12884         * Application.cs:
12885           - Removed crude and obsolete exiting tracking variable
12886           - Removed internal ModalRun(); replaced by RunLoop()
12887           - Implemented private CloseForms() method to allow closing all 
12888             windows owned by a particular (or all) threads
12889           - Exit() now properly closes all windows without forcing the message
12890             pump to quit
12891           - Removed obsolete InternalExit() method
12892           - Changed Run() methods to use new RunLoop() message pump
12893           - Implemented new RunLoop() method for both modal and non-modal forms
12894         * CommonDialog.cs:
12895           - get_CreateParams: Added setting of WS_DISABLED
12896           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12897             invoked via Form.ShowDialog()
12898         * NativeWindow.cs: We don't remove the window from the collection when
12899           the handle is destroyed; there might still be messages for it in the
12900           queue (mainly the resulting WM_DESTROY); instead it will be removed
12901           when Control calls InvalidateHandle in the WM_DESTROY handler
12902         * XplatUIX11.cs:
12903           - CreateWindow: Added logic to handle the WS_DISABLED window style
12904           - EnableWindow: Implemented based on Hwnd.Enabled
12905           - GetMessage: Reset PostQuitState so the method can be called again
12906           - Implemented support for disabled windows (passing messages to the
12907             first enabled parent) in handling all input messages
12908           - Added optimizations for handling Expose events
12909           - Implemeted new driver method IsEnabled()
12910           - Now always resetting paint pending tracking vars when we start paint
12911           - Re-implemented UpdateWindow via just sending a WM_PAINT message
12912         * XplatUIOSX.cs: Added IsEnabled method stub
12913         * XplatUIWin32.cs: Implemented new IsEnabled() method
12914
12915 2006-01-11  Jackson Harper  <jackson@ximian.com>
12916
12917         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12918         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
12919         variables a little.
12920         * ColorDialog.cs: Clear out the old form before adding the new
12921         panel.  
12922
12923 2006-01-11  Jackson Harper  <jackson@ximian.com>
12924
12925         * X11Dnd.cs: Make sure to add all the text formats when adding
12926         strings to the data object.
12927         * TreeNodeCollection.cs: When adding to a sorted tree we need to
12928         do some redrawing too.  Also change the UpdateNode to an
12929         UpdateBelow so the newly added node gets painted.
12930         
12931 2006-01-11  Miguel de Icaza  <miguel@novell.com>
12932
12933         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12934         LinkLabel.cs, PropertyGrid.cs: Implement the
12935         UseCompatibleTextRendering property for 2.x
12936
12937         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
12938
12939 2006-01-11  Jackson Harper  <jackson@ximian.com>
12940
12941         * TreeView.cs: Use the property for setting the selected node so
12942         the correct events get raised.
12943         * TreeNode.cs: Update the tree when the fore/back colours of a
12944         node are set.
12945
12946 2006-01-10  Jackson Harper  <jackson@ximian.com>
12947
12948         * TreeView.cs: Allow setting SelectedNode to null.
12949
12950 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12951
12952         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
12953
12954 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12955
12956         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
12957
12958 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12959
12960         * PrintDialog.cs: Added attributes and set default property values.
12961
12962 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12963
12964         * PrintControllerWithStatusDialog.cs: 
12965         Added PrintControllerWithStatusDialog.
12966
12967 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12968
12969         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12970         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
12971
12972 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12973
12974         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
12975
12976 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
12977
12978         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
12979         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
12980
12981 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12982
12983         * MimeIcon.cs: Added internal class SVGUtil.
12984
12985 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12986
12987         * FileDialog.cs: Don't crash if there are two files with the
12988           same name but different locations.
12989
12990 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
12991
12992         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
12993         dates across multiple month grids. Used to not highlight entire 
12994         month, but does now.
12995         
12996 2006-01-06  Jackson Harper  <jackson@ximian.com>
12997
12998         * MonthCalendar.cs: Removed DoEvents call to prevent a running
12999         message loop. Change timer intervals to numbers that seem more
13000         natural.
13001
13002 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13003
13004         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13005           object for location info since screen object is now implemented.
13006
13007 2006-01-05  Jackson Harper  <jackson@ximian.com>
13008
13009         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13010         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13011         AsyncMethodResult, this is because we ALWAYS want the
13012         ManualResetEvent to get set.
13013         * Control.cs: When disposing use an async invoke to call shutdown
13014         code, so that thigns don't block on the finalizer thread.  Also
13015         check if we even have a message loop before trying to send
13016         messages, if we don't then don't bother sending messages.
13017         - No more weak references for async methods
13018         * XplatUIDriver.cs: No more weak references for async methods.
13019
13020 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13021
13022         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13023           returns two FontFamily with the same name
13024
13025 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13026
13027         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13028           drawing disabled text. Instead using the ColorGrayText color
13029
13030 2006-01-04  Jackson Harper  <jackson@ximian.com>
13031
13032         * TreeNode.cs: redraw the node when its image index is changed.
13033
13034 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13035
13036         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13037           time I checked there are no others like it.
13038
13039 2006-01-04  Jackson Harper  <jackson@ximian.com>
13040
13041         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13042         this gives the behavoir I was looking for.
13043         * Control.cs: Special case Invoking EventHandlers, this matches MS
13044         and fixes part of bug #76326.
13045
13046 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13047
13048         * ThemeClearlooks.cs, FileDialog.cs:
13049           - Reflect the latest Theme class changes
13050           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13051             with DateTime
13052             
13053 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13054
13055         * Theme.cs: Cache UI resource images and resize them if needed
13056
13057 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13058
13059         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13060           is called. This fixes the crash in Nexxia when setting the font
13061           attributes in the chat. [However, RTF needs a look-over to make sure
13062           that all SelectionXXX methods handle the special case that selection
13063           is empty and therefore the change must be applied to all text starting
13064           at the cursor/selection start]
13065
13066 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13067
13068         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13069           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13070         * X11Keyboard.cs: Switched to new way of calling PostMessage
13071
13072 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13073
13074         * Theme.cs: Added theme interface for images to allow the theme to
13075           control what images are used for things like FileDialog, MessageBox
13076           icons, etc.
13077         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13078
13079 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13080
13081         * FileDialog.cs:
13082           - Removed some dead code
13083           - Opening a recently used file does work now
13084           - Small UI enhancements
13085           - Refactoring
13086
13087 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13088
13089         * FileDialog.cs: Forgot too add __MonoCS__
13090
13091 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13092
13093         * FileDialog.cs: We are able to read recently used files now let's
13094           go on and write them.
13095
13096 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13097
13098         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13099           button
13100         * MimeIcon.cs: Do a check for the top level media type also
13101
13102 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13103
13104         * ThemeClearlooks.cs:
13105           - Added CPDrawStringDisabled
13106           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13107             some chars if the text doesn't fit into text_rect
13108           - DrawListViewItem: If View = View.LargeIcon center the image;
13109             rewrote the drawing of ListViewItem.Text if View = 
13110             View.LargeIcon
13111
13112 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13113
13114         * MimeIcon.cs: Use default KDE icon theme if there is no
13115           "48x48" directory for the current icon theme, fixes #77114
13116         * Mime.cs: Disable not working and actually not used code. 
13117         * ThemeWin32Classic.cs:
13118           - Replace "new SolidBrush" in GetControlBackBrush and
13119             GetControlForeBrush with ResPool.GetSolidBrush
13120           - Changed DrawListViewItem from private to protected virtual
13121         * FileDialog.cs:
13122           - Added form.MaximizeBox = true
13123           - Don't throw an exception if there is a broken symbolic link
13124
13125 2005-12-23  Jackson Harper  <jackson@ximian.com>
13126
13127         * TabControl.cs: Give the panels focus, keyboard navigation is
13128         fixed so this works correctly now.
13129         - We need these key events also.
13130         * ToolBar.cs: Remove some of the poor mans double buffering.
13131         
13132 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13133
13134         * ComboBox.cs: The internal TextBox now returns the focus.
13135
13136 2005-12-23  Jackson Harper  <jackson@ximian.com>
13137
13138         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13139
13140 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13141
13142         * Control.cs: Removed debug code
13143         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13144           implicit children
13145
13146 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13147
13148         * Control.cs: When creating the control, update the Z-order after
13149           all it's children are created, too. (Fixes nexxia not showing
13150           picturebox bug)
13151
13152 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13153
13154         * Control.cs: Do not update the anchoring distances if layout is
13155           suspended, instead do it once layout is resumed
13156
13157 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13158
13159         * Control.cs: 
13160           - After many hours of debugging, for both Jackson and
13161             myself, it turns out that it helps to set the parent of a control
13162             if you want to actually see it onscreen. In the spirit of that
13163             discovery, we're now setting the parent of the control and
13164             it's children when the control's handle is created. This fix
13165             will make Lutz Roeder's Reflector run happily. 
13166           - now just creating the handle instead of the whole control when
13167             getting a graphics context for the control.
13168
13169 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13170
13171         * ScrollableControl.cs: When calculating the canvas, don't consider
13172           the scrollbar widths. Instead, predict if horizontal scrollbar
13173           will affect canvas when deciding on vertical display and vice versa.
13174
13175 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13176
13177         * RichTextBox.cs: Set default RTF font for documents that don't
13178           have a font table (Fixes #77076)
13179
13180 2005-12-22  Jackson Harper  <jackson@ximian.com>
13181
13182         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13183         clipboard. This prevents a NullRef in that case.
13184         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13185         clipboard. PRIMARY is for the currently selected text only. (We
13186         should implement PRIMARY at some point.
13187
13188 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13189
13190         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13191           a Unicode function with a structure that was defined in Ansi way.
13192           This fixes #76942.
13193
13194 2005-12-21  Jackson Harper  <jackson@ximian.com>
13195
13196         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13197         on. Because thats how it rolls. (and this avoids it using ambient
13198         colours).
13199         * ThemeWin32Classic.cs: Use the proper back color for filling.
13200         * Menu.cs: Use the system menu bar color for drawing menu
13201         bars. Using the window back color will bring ambient colours into
13202         the picture.
13203
13204 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13205
13206         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13207           Bitmaps were created and not disposed.
13208
13209 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13210
13211         * Control.cs (CreateControl): Don't do anything if the control is
13212           already created, otherwise we'd fire the OnCreated event more than
13213           once
13214
13215 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13216
13217         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13218           will always match. Instead return -1. Fixes #76464.
13219
13220 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13221
13222         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13223           neither the beginning nor the end of the line (Fixes bug #76479)
13224
13225 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13226
13227         * Control.cs:
13228           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13229             where handle is invalid
13230           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13231             instead of slower linear search
13232         * NativeWindow.cs: Don't remove the window from the hashtable until
13233           after the driver has destroyed it (since the driver might use
13234           Control.FromHandle to lookup the control object
13235         * Hwnd.cs: Added DestroyPending property to track if a window is 
13236           already destroyed as far as the driver is concerned and only hasn't
13237           yet notified the control
13238         * XplatUIX11.cs:
13239           - Activate(): Check if the window is still valid before using the 
13240             handle
13241           - Implemented DestroyChildWindow() method to mark child windows as
13242             destroyed when a window is destroyed. This prevents situations 
13243             where we might call an X method based on queued events for a
13244             window that already has been destroyed but we haven't yet pulled
13245             the destroy method from the queue.
13246           - Added a call to the new DestroyChildWindow() method to the drivers
13247             DestroyWindow code. Also now marking the destroyed window itself
13248             as pending
13249
13250 2005-12-20  Jackson Harper  <jackson@ximian.com>
13251
13252         * StatusBar.cs:
13253         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13254         anymore. Just do them when needed, also track the rects of panels
13255         so that we can optimize refreshing more in the future.
13256
13257 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13258
13259         * ColorDialog.cs: Fixed focus drawing in small color controls
13260
13261 2005-12-19  Jackson Harper  <jackson@ximian.com>
13262
13263         * InternalWindowManager.cs:
13264         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13265         moving windows works properly.
13266
13267 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13268
13269         * Control.cs: 
13270           - Removed call to InitLayout() from SetBoundsCore(); doc says
13271             it's only called when a control is added to a container
13272           - Split InitLayout logic, moved to separate UpdateDistances() method
13273             since we need to perform those calculations more often than just
13274             when adding the control to a container. (Needed to fix #77022)
13275           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13276           - Reduced the OnBindingContextChanged events count, don't send them
13277             unless the control is created, we still aren't totally matching
13278             MS, but I can't quite figure out some of their rules
13279
13280 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13281
13282         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13283           stripes
13284
13285 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13286
13287         * ThemeClearlooks.cs:
13288           - Updated ProgressBar drawing
13289           - Corrected drawing of ScrollBars and scroll buttons
13290           - Some temporary fixes for minor pixel artefacts
13291
13292 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13293
13294         * Control.cs:
13295           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13296             cause events to be sent in the same order as MS does.
13297           - Added ChangeParent() method to trigger various OnXXXChanged events
13298             that need to be fired when a parent changes (This is a reworking
13299             of the patch from r54254, with the X11 errors fixed)
13300           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13301             since on MS we get OnLayoutChanged events when calling Clear()
13302           - Changed Enabled property to consider parent state as well, if a
13303             parent is not enabled, the control will not be either
13304           - Changed Parent property to simply call Controls.Add() since that
13305             now does all the work required, this way we avoid code duplication
13306           - Threw in a few OnBindingsContextChanged calls to try and match
13307             when MS sends them. We seem to send a few too many, though.
13308           - Added call to CreateControl when adding the control to a parent.
13309             We were never calling CreateControl. Still needs some work, in
13310             some places we treat HandleCreated and ControlCreated as equal, 
13311             which is wrong
13312           - Removed obsolete commented out code from UpdateZOrder()
13313
13314 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13315
13316         * ThemeClearlooks.cs: Updated TrackBar drawing.
13317
13318 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13319
13320         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13321
13322 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13323
13324         * FileDialog.cs: Add the Help button and the open readonly
13325           checkbox only if needed
13326
13327 2005-12-16  Jackson Harper  <jackson@ximian.com>
13328
13329         * Control.cs: Make sure we have an active menu before trying to
13330         process commands on it. Prevents menu-less forms from crashing
13331         when Alt is pressed.
13332         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13333         Dieter Bremes.
13334         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13335         2.0 build.
13336
13337 2005-12-16  Jackson Harper  <jackson@ximian.com>
13338
13339         * InternalWindowManager.cs: Don't translate tool windows screen
13340         coordinates. This fixes windows 'bouncing' around when being moved.
13341
13342 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13343
13344         * TextBoxBase.cs:
13345           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13346             not quite MS compatible, MS uses that number only for single line
13347             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13348             the limit at 2GB)
13349           - Now enforcing the MaxLength limit when entering characters
13350           - Added argument to internal Paste() method to track if it's called
13351             from programatically or via keyboard, since keyboard driven pastes
13352             need to enforce max-length
13353           - Added logic to Paste to only paste as many chars as MaxLength 
13354             allows
13355         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13356         * TextControl.cs:
13357           - Added Length property to return number of characters in document
13358           - Added private CharCount property which only tracks actual chars
13359             in the document (no linefeeds) and fires event when CharCount
13360             changes
13361           - Added tracking of character count to all methods that alter it
13362           - Added LengthChanged event to allow applications to subscribe
13363             to any changes to the document
13364
13365 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13366
13367         * TextBox.cs: 
13368           - Removed local password_char field (moved to TextBoxBase)
13369           - Now setting the document's password var when password is
13370             set
13371         * TextBoxBase.cs:
13372           - Added password_char field (needed here so MultiLine can
13373             access it)
13374           - Added logic to MultiLine property setter to set the document's
13375             variable when password display is allowed
13376           - Removed debug code and made some debug code conditional
13377         * TextControl.cs:
13378           - Added RecalculatePasswordLine() method to handle special password
13379             char only lines
13380           - Added PasswordChar property, also added related tracking vars
13381           - Draw() method now uses local text var for grabbing text to draw,
13382             this var is set to line.text unless we're doing password display,
13383             then it is set to the pre-generated all-password-chars line
13384           - Added calling RecalculatePasswordLine() method for password lines
13385
13386 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13387
13388         * Hwnd.cs: 
13389           - Added Reparented property to allow tracking of Window Manager
13390             reparenting actions (which affect X/Y calculations of toplevel 
13391             windows)
13392           - Made ToString() print window handles in hex
13393         * XplatUIX11.cs:
13394           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13395             determine if X/Y needs offsetting
13396           - AddConfigureNotify(): Fixed offset calculations
13397           - Now adds ReparentNotify messages into the queue
13398           - Now processes ReparentNotify messages and causes a 
13399             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13400             is reparented (as most likely it's X/Y coordinates are changed
13401             due to that)
13402
13403 2005-12-14  Jackson Harper  <jackson@ximian.com>
13404
13405         * XplatUIX11.cs: Tool windows still need to respek focus.
13406
13407 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13408
13409         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13410           have a working release
13411
13412 2005-12-13  Jackson Harper  <jackson@ximian.com>
13413
13414         * Form.cs: Update styles after setting the border style regardless
13415         of whether or not the window is using a window manager.
13416
13417 2005-12-13  Jackson Harper  <jackson@ximian.com>
13418
13419         * Form.cs: We now hook into an internal window manager instead of just an
13420         MDI subsystem, this is so we can have properly behaving tool windows.
13421         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13422         * InternalWindowManager.cs: New internal class that acts as a
13423         window manager for tool windows and as a base for mdi windows.
13424         * MdiWindowManager.cs: New class that acts as a window manager for
13425         mdi windows.
13426
13427 2005-12-12  Jackson Harper  <jackson@ximian.com>
13428
13429         * Control.cs: Updates so we match behavoir for for implicit
13430         controls. Fixes explosions in MDI.
13431
13432 2005-12-12  Jackson Harper  <jackson@ximian.com>
13433
13434         * Control.cs: Implement Invalidate (Region).
13435
13436 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13437
13438         * Control.cs: 
13439           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13440             the same events as MS does. MS fires events for each property 
13441             except, for unknown reasons, Cursor, when the control is reparented. 
13442             I can't seem to totally match add/remove since MS also fires some 
13443             VisibleChanged events, which makes no sense. Consolidated the
13444             parenting code into a separate method so it can be called from
13445             both Add and Remove. set_Parent no longer needs any special logic
13446             as it calls the parent's add method which implicitly fires
13447             all events
13448           - Removed some obsolete code and debug output
13449           - Enabled state is inherited from parents, if this is enabled
13450
13451 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13452
13453         * Form.cs: Removed commented out code
13454
13455 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13456
13457         * Control.cs:
13458           - Added internal version of Invoke, with additional argument 
13459             indicating if we're calling it from a Dispose() handler. That
13460             way we can avoid BeginInvoke throwing an exception if we're
13461             calling for an already destroyed window.
13462           - Added a dispose argument to BeginInvokeInternal, and made the
13463             check if a valid window handle chain exists conditional on
13464             it not being a dispose call
13465           - Removed code in DestroyHandle to destroy our children. Since we
13466             now handle the WM_DESTROY message we will catch all our children
13467             being destroyed.
13468           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13469         * Form.cs:
13470           - Added a field to track the application context of the form.
13471           - No need to set closing variable as response to WM_CLOSE, instead
13472             we destroy the window. We also call PostQuitMessage if the form
13473             has an application context (which makes it the main app form,
13474             which, when closed terminates the app)
13475         * XplatUI.cs:
13476           - Dropped Exit() method, it's naming was confusing
13477           - Added PostQuitMessage() which causes GetMessage to return false
13478             once the message queue is empty
13479         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13480           PostQuitMessage()
13481         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13482           no longer a valid XplatUI method, but left it in since it's used
13483           internally. Added empty PostQuitMessage() method.
13484         * MenuAPI.cs: Replaced call to Exit() with call to
13485           PostQuitMessage, even though this is probably no longer needed.
13486         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13487         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13488         * Application.cs:
13489           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13490           - Removed old debug code that would call XplatUI for exception
13491             display, enabled standard exception handling (Still not enabled
13492             though, until NativeWindow's ExternalExceptionHandler define
13493             is removed
13494         * NativeWindow.cs:
13495           - Added internal method to allow control to update NativeWindow
13496             after a window has been destroyed
13497           - Added handling of already destroyed windows when calling i
13498             DestroyWindow
13499           - Added removal of handle from list on ReleaseHandle
13500         * XplatUIX11.cs:
13501           - Dropped GetMessageResult var and related code
13502           - Added PostQuitState to field to track if PostQuitMessage has been
13503             called
13504           - Dropped Exit() method
13505           - Added PostQuitMessage() method
13506           - GetMessage now will return false if PostQuitState is set and no
13507             more messages are in the queue.
13508           - Expose handler will no longer generate WM_PAINT messages if we are
13509             in PostQuitState since it's very likely any windows have already
13510             been destroyed, and since Hwnd won't get updated until we have
13511             processed the DestroyNotify we'd be causing X errors.
13512         
13513 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13514
13515         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13516           Thanks to Mike for pointing out the err of my ways.
13517
13518 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13519
13520         * Control.cs(PreProcessMessage): Moved menu handling back, but
13521           after all other key handling, to match MS (who handles Menu in
13522           DefWndProc)
13523         * Menu.cs (WndProc): Removed my brainfart
13524
13525 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13526
13527         * Control.cs(PreProcessMessage): Removed special menu handling 
13528         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13529
13530 2005-12-07  Mike Kestner  <mkestner@novell.com>
13531
13532         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13533         state according in tracker.
13534         * Menu.cs : promote tracker field to base class and provide a tracker
13535         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13536         has a tracker. Unparent items that are removed from the collection.
13537         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13538         * Theme*.cs: add always_show_hotkeys field to support configurability
13539         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13540         pressed.
13541
13542 2005-12-07  Jackson Harper  <jackson@ximian.com>
13543
13544         * MdiChildContext.cs: Use Control.ResetCursor.
13545         * Control.cs: ResetCursor needs to set the property so that the
13546         correct XplatUI call gets made.
13547
13548 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13549
13550         * Control.cs: More fixes to make our key events match MS. We
13551           were not setting the modifier state on KeyData, and we were
13552           not generating any events when Alt was pressed with a key
13553           since handling of WM_SYSxxx was missing for the OnKey methods.
13554
13555 2005-12-07  Jackson Harper  <jackson@ximian.com>
13556
13557         * MdiChildContext.cs: reenable the sizing code.
13558         - When the mouse leaves a window reset its cursor.
13559
13560 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13561
13562         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13563
13564 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13565
13566         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13567           widths of Fixed3D borders
13568
13569 2005-12-07  Jackson Harper  <jackson@ximian.com>
13570
13571         * MdiClient.cs: Fix warnings. Earn Mike's love.
13572
13573 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13574
13575         * ThemeClearlooks.cs:
13576           - Adjusted mouse over button color
13577           - Added first parts of CheckBox drawing
13578           - Added correct color for selected text background
13579           - Fixed ComboBox drawing
13580           - Added CPDrawBorder3D and CPDrawBorder
13581
13582 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13583
13584         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13585
13586 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13587
13588         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13589           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13590           alert users via sound. We could add an enum arg with different
13591           types of alerts in the future
13592
13593 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13594
13595         * Control.cs: Fix behaviour problems pointed out by Mike
13596
13597 2005-12-05  Mike Kestner  <mkestner@novell.com>
13598
13599         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13600         prop setters.  Calls parent.Refresh for now, but could be maybe be
13601         optimized with an internal method on StatusBar at some point.
13602         [Fixes #76513]
13603
13604 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13605
13606         * RichTextBox.cs: Implemented get_SelectionColor
13607
13608 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13609
13610         * ThemeClearlooks.cs:
13611           - Removed dead code
13612           - Draw black button border only if button is Form.AcceptButton
13613           - Draw correct button color for pressed RadioButton if the mouse 
13614             has entered the button
13615           - Updated ProgressBar drawing!
13616           - Updated CPDrawSizeGrip drawing
13617           - Updated StatusBarPanel drawing
13618
13619 2005-12-05  Mike Kestner  <mkestner@novell.com>
13620
13621         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13622         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13623
13624 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13625
13626         * ThemeClearlooks.cs: Initial check-in, activate with
13627           export MONO_THEME=clearlooks
13628         * ThemeEngine.cs: Added ThemeClearlooks
13629
13630 2005-12-03  Mike Kestner  <mkestner@novell.com>
13631
13632         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13633         [Fixes #76897]
13634
13635 2005-12-02  Jackson Harper  <jackson@ximian.com>
13636
13637         * Form.cs: If the child form has no menu the default main menu is
13638         used as the active menu.
13639
13640 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13641
13642         * ListBox.cs: Check if any items exist before trying to resolve 
13643           coordinates into items
13644
13645 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13646
13647         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13648           as the second color for the background hatch
13649
13650 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13651
13652         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13653         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13654           sure that what we pass to FormatText is always 1-based. Fixes #76885
13655
13656 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13657
13658         * NumericUpDown.cs (EndInit): When we are done initializing,
13659         reflect any updates on the UI.
13660
13661 2005-12-02  Jackson Harper  <jackson@ximian.com>
13662
13663         * ImplicitHScrollBar.cs:
13664         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13665         their container controls.
13666         * TreeView.cs: Use the new implicit scrollbars.
13667
13668 2005-12-02  Jackson Harper  <jackson@ximian.com>
13669
13670         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13671         can play with it.
13672         * TreeNodeCollection.cs: If we remove the topnode we need to
13673         update topnode to the next node in line.
13674         - When clearing nodes go through the same process as removing
13675         them, so they get depareneted and checked if they are top node.
13676
13677 2005-12-01  Jackson Harper  <jackson@ximian.com>
13678
13679         * TreeView.cs: When imagelists are used the image area is
13680         selectable as well as the text.
13681         - If there are no selected nodes select the first one.
13682         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13683         so don't do it more then we need to.
13684
13685 2005-12-01  Jackson Harper  <jackson@ximian.com>
13686
13687         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13688         that arrows can be scaled.
13689
13690 2005-12-01  Jackson Harper  <jackson@ximian.com>
13691
13692         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13693         fail. Patch by Dieter Bremes
13694
13695 2005-11-30  Jackson Harper  <jackson@ximian.com>
13696
13697         * Form.cs: Property is 2.0 only
13698         * PrintDialog.cs: Signature fix.
13699
13700 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13701
13702         * TextControl.cs: 
13703           - No longer artificially moves text 2 pixels down (now that we have
13704             borders this is no longer needed)
13705           - Added calcs for left, hanging and right indent
13706
13707 2005-11-23  Mike Kestner  <mkestner@novell.com>
13708
13709         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13710
13711 2005-11-30  Jackson Harper  <jackson@ximian.com>
13712
13713         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13714         get cloned as part of CloneMenu ().
13715         * Menu.cs: Make sure the parent of the items get set correctly
13716         when they are added.  And the owners are notified of the changes.
13717         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13718         we can change the menu being displayed/handled by the form without
13719         changing the menu assosciated with the form.
13720         - Don't let Mdi children draw/handle menus.
13721         
13722 2005-11-30  Jackson Harper  <jackson@ximian.com>
13723
13724         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13725         a MenuChanged event. Just to make the API a little more
13726         consistent.
13727         * MainMenu.cs:
13728         * MenuItem.cs: Use the new OnMenuChanged
13729         * MdiChildContext.cs: Handle menu merging.
13730         * Form.cs: Implement MergedMenu.
13731         
13732 2005-11-30  Jackson Harper  <jackson@ximian.com>
13733
13734         * Menu.cs: We were misusing Add. Add goes behind the specified
13735         index according to the docs, and does not replace the specified
13736         index. So I added an Insert method.
13737
13738 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13739
13740         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13741           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13742           is for Jackson
13743         * RichTextBox.cs: Added calls to base for DnD events
13744
13745 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13746
13747         * TextControl.cs:
13748           - Fixed drag-selection related crash; style fixes
13749           - Implemented undo class
13750             o Implemented method to capture document state for specified
13751               range in document tree
13752             o Implemented method to restore captured document state
13753             o Implemented cursor tracking
13754             o Implemented basic undo stack
13755           - Added undo cursor tracking to methods altering cursor location
13756           - Added undo tracking to selection deletion (still missing
13757             other text-altering hookups)
13758         * RichTextBox.cs:
13759           - Added SelectionLength property
13760           - Implemented CanPaste()
13761           - Implemented Paste()
13762           - Added missing protected methods
13763           - Fixed RTF->Document conversion; now uses font index 0 and color 
13764             index 0 as the default font for the parsed text
13765           - Fixed RTF<->Document font size translation
13766           - Fixed RTF generation, now properly handles cross-tag boundaries
13767             for single line selection
13768           - No longer always appends blank line to generated RTF
13769           - Removed TODOs
13770           - Added missing attributes
13771           - Hooked up undo-related methods
13772         * TextBoxBase.cs:
13773           - Implemented Copy()
13774           - Implemented Paste()
13775           - Implemented Cut()
13776           - Fixed caret mis-behaviour on backspace across line-boundaries
13777
13778 2005-11-29  Jackson Harper  <jackson@ximian.com>
13779
13780         * MdiClient.cs: Add a method for activating mdi children. Very
13781         basic right now. I imagine someday it might need more girth.
13782         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13783         children windows names are added to the menu item.
13784         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13785         mdilist. This happens regardless of whether or not there are any
13786         mdi windows to see in the list, and according to my tests happens
13787         before the items are even added. Also happens if there isn't even
13788         an mdi client to get windows from.
13789
13790 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13791
13792         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13793         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13794
13795 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13796
13797         * DataGridTableStyle.cs:
13798           - Create always the styles for the missing columns even if they are
13799             provided by the user (not default table style)
13800         * DataGrid.cs:
13801           - Fixes bug 76770
13802           - Fixes SetDataBinding (always re-attach source)
13803           - Fixes SetNewDataSource (only clear styles if they are not for 
13804             this source)
13805          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13806             and remove properly
13807
13808 2005-11-29  Jackson Harper  <jackson@ximian.com>
13809
13810         * FileDialog.cs: Implement missing bits, remove some dead
13811         code.
13812         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13813         creation of the panel so that the options set on the dialog are
13814         seen when the panel is created.
13815         * TreeView.cs: raise a click when items are clicked.
13816         
13817 2005-11-29  Jackson Harper  <jackson@ximian.com>
13818
13819         * MdiClient.cs: Pass some signature methods through to base.
13820
13821 2005-11-28  Jackson Harper  <jackson@ximian.com>
13822
13823         * ListView.cs: Raise the click event when items are clicked.
13824
13825 2005-11-28  Jackson Harper  <jackson@ximian.com>
13826
13827         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13828         a nullref.
13829
13830 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13831
13832         * ThemeNice.cs: - Removed 1 pixel bitmaps
13833           - Use SmoothingMode.AntiAlias where it makes sense
13834             (ScrollButton arrow for example)
13835           - Enhanced Button focus drawing
13836           - Fixed ComboBox drawing (no artefacts anymore, focus
13837             rectangle is back again, reduced size of ComboButton, etc.)
13838           - Fixed RadioButton focus drawing for Appearence.Button
13839           - Slight ScrollButton redesign
13840           - Some LinearGradientBrush size fixes
13841           - GroupBoxes have now rounded edges
13842           - Fixed StatusBar drawing
13843
13844 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13845
13846         * ThemeNice.cs: - Remove dead code
13847           - use correct background colors for menus, etc.
13848           - Fake pixel drawing with 1 pixel bitmaps
13849
13850 2005-11-24  Jackson Harper  <jackson@ximian.com>
13851
13852         * MdiClient.cs: Size the scrollbars when resizing the window.
13853         - Resize the maximized windows when the client is resized
13854         * Form.cs: Make the child context available
13855         
13856 2005-11-23  Jackson Harper  <jackson@ximian.com>
13857
13858         * MdiChildContext.cs: Don't size windows if they are maximized.
13859
13860 2005-11-23  Mike Kestner  <mkestner@novell.com>
13861
13862         * ContextMenu.cs: use MenuTracker.
13863         * Control.cs: remove menu handle usage.
13864         * Form.cs: remove menu handle usage.
13865         * Hwnd.cs: remove menu handle usage.
13866         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13867         motion and clicks to the new Tracker handlers.
13868         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13869         and handle usage.
13870         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13871         Killed the MENU and MENUITEM data types and associated collections
13872         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13873         MenuTracker class that exposes the leftovers from the old MenuAPI
13874         static methods. Restructured Capture handling so that only one grab is
13875         done for the entire menu hierarchy instead of handing off grabs to
13876         submenus. Tracker now has an invisible control to Capture when active.
13877         * MenuItem.cs: add sizing accessors, kill Create
13878         and handle usage.
13879         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13880         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13881         MENU(ITEM). remove menu handle usage, use Menu directly.
13882         * XplatUIDriver.cs: remove menu handle usage.
13883         * XplatUIOSX.cs: remove menu handle usage.
13884         * XplatUIWin32.cs: remove menu handle usage.
13885         * XplatUIX11.cs: remove menu handle usage.
13886
13887 2005-11-22  Jackson Harper  <jackson@ximian.com>
13888
13889         * Hwnd.cs: Don't compute the menu size for
13890         DefaultClientRectangle.
13891         - Reenable menu sizes being computed for GetClienRectangle.
13892         * Form.cs: Remove comment of trechery
13893         
13894 2005-11-22  Jackson Harper  <jackson@ximian.com>
13895
13896         * Hwnd.cs: The adjustments for the menu bar are made when it is
13897         attached to the form.
13898
13899 2005-11-19  Jackson Harper  <jackson@ximian.com>
13900
13901         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13902         (just like on windows).
13903
13904 2005-11-19  Jackson Harper  <jackson@ximian.com>
13905
13906         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13907         use real buttons anymore because they are in non client area. The
13908         one TODO here is that I need to somehow invalidate a section of
13909         the non client area.
13910
13911 2005-11-18  Jackson Harper  <jackson@ximian.com>
13912
13913         * Control.cs: Put the enum check back in now that MDI doesnt have
13914         to use this to set border styles.
13915         * Form.cs: Only set mdi child windows borders if the handle has
13916         been created.
13917         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
13918         this directly on to the driver.
13919         - Get the move start position before adjusting for the titlebar
13920         height, this fixes the windows "skipping" when they are first
13921         moved.
13922
13923 2005-11-18  Jackson Harper  <jackson@ximian.com>
13924
13925         * XplatUIX11.cs: Just compute the mdi borders separately as they
13926         don't totally match up with normal form borders.
13927
13928 2005-11-18  Jackson Harper  <jackson@ximian.com>
13929
13930         * Control.cs: Set WS_ styles for borders, so that the driver does
13931         not have to retrieve the control instance to figure out what kind
13932         of borders it should have.
13933         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
13934         driver can know its an mdi child easily.
13935         * XplatUIX11.cs: Get the border styles and whether the window is
13936         MDI from the Styles and ExStyles params instead of having to get a
13937         control. This prevents a chicken and egg problem.       
13938
13939 2005-11-18  Jackson Harper  <jackson@ximian.com>
13940
13941         * MdiClient.cs: Fix typo so scrollbars show up correctly.
13942
13943 2005-11-18  Jackson Harper  <jackson@ximian.com>
13944
13945         * MdiClient.cs: Calculate when to add and remove scrollbars
13946         correctly.
13947         * MdiChildContext.cs: Adjust the y position to take the titlebar
13948         into account.
13949         - No height for FormBorderStyle.None
13950
13951 2005-11-18  Jackson Harper  <jackson@ximian.com>
13952
13953         * Control.cs: Allow non enum values to be used for
13954         InternalBorderStyle.  MDI does this to set a special border style.
13955         - New utility methods for converting points to/from client coords
13956         - Add the newly created control to the Controls collection before
13957         updating its style. This way UpdateStyle can walk the control
13958         heirarchy to find the control if needed.
13959         so I don't need to create a new Point object all the time.
13960         * Form.cs: Let MDI windows handle their border styles.
13961         - Set styles on MDI windows so the correct title style is derived.
13962         * MdiChildContext.cs: Move all the painting and window handling
13963         into the non client area.
13964         - Use correct sizing and put correct buttons on frames based on
13965         the FormBorderStyle.
13966         - Notify the mdi client about scrolling
13967         - Need to handle the buttons ourselves now, because they are all
13968         in non client areas and we can't add controls there.
13969         * MdiClient.cs: Halfway to scrolling, this implementation is
13970         somewhat broken though, we need to check to make sure other
13971         windows aren't causing scrolling before removing the bars. Also
13972         the bars need to be drawn on top, maybe I can switch implicit
13973         controls to be on top.
13974         * Hwnd.cs: caption_height and tool_caption_height are now
13975         properties of an hwnd, this way they can be set by the driver
13976         based on the type of window they are.  In X11 the window manager
13977         handles the decorations so caption_height is zero unless its an
13978         MDI window.
13979         - Add 3 pixel borders for MDI windows (0xFFFF).
13980         - Get rid of some code duplication, have DefaultClientRectanle
13981         just call GetClientRectangle.
13982         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
13983         Hwnd now.
13984         - Set border styles differently for mdi windows.
13985         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
13986         Hwnd now.
13987         
13988 2005-11-15  Mike Kestner  <mkestner@novell.com>
13989
13990         * Menu.cs: when adding an item to the collection, if item is already 
13991         parented, remove it from the parent.
13992
13993 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
13994
13995         * X11DesktopColors.cs: Added KDE support
13996
13997 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
13998
13999         * XplatUIWin32.cs: 
14000           - Clipboard methods now can translate Rtf format
14001           - No longer removes clipboard contents whenever a new format is added
14002             to allow placing multiple formats on the clipboard
14003         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14004           will place all formats contained in it onto the clipboard. Also
14005           now cleans the clipboard before placing a new object onto it
14006         * RichTextBox.cs:
14007           - Implemented set_Rtf
14008           - Implemented set_SelectedRtf
14009           - Created InsertRTFFromStream() method to allow single code base
14010             for all properties and methods that insert RTF into document
14011           - Removed debug output
14012         * TextControl.cs:
14013           - Fixed Delete(int) to fix up line numbers
14014           - Fixed ReplaceSelection to combine start and end line
14015           - Fixed serious DeleteChars bug that would leave the document tree
14016             broken
14017           - Improved DumpTree with several logic checks to detect broken
14018             document trees
14019           - Removed debug lines
14020           - Fixed Caret.WordForward/WordBack moving code, now always also 
14021             updates caret.tag (fixes crash when word-selecting across tag
14022             boundaries via keyboard)
14023           - Added Insert() method for inserting multiline text into documents
14024           - Fixed DeleteChars() calculation errors that would cause a broken
14025             tag chain with multiple tag lines
14026           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14027           - Split() no longer moves caret if split is at caret location
14028           - ReplaceSelection() now updates the cursor and re-displays it
14029           - ReplaceSelection() now uses new Insert() method to avoid code
14030             duplication
14031           - FormatText() can now handle formatting partial lines
14032         * TextBoxBase.cs:
14033           - Append now uses new TextControl.Insert() method (this avoids 
14034             duplicate code)
14035           - Implemented Ctrl-X (Cut) (
14036           - Implemented Ctrl-C (Copy)
14037           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14038             regeneration when pasting text; roundtripping Copy&Paste within
14039             edit control still fails due to some calculation bugs in GenerateRTF)
14040           - The Delete key will now remove the current selection if it is visible
14041         * TextBox.cs: Removed debug lines
14042         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14043           driver to be initialized and can't therefore be done via a static ctor)
14044
14045 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14046
14047         * TextControl.cs: Added backend code for finding char arrays and strings
14048         * TextBoxBase.cs:
14049           - Added mouse wheel scroll support
14050           - Added support for VScroll and HScroll events
14051         * RichTextBox.cs:
14052           - Implemented all seven Find() variants
14053           - Implemented GetCharFromPosition()
14054           - Implemented GetCharIndexFromPosition()
14055           - Implemented GetLineFromIndex()
14056           - Implemented GetPositionFromCharIndex();
14057           - Implemented SaveFile for PlainText and UnicodeText
14058           - Fixed set_Font, now setting a new font applies that font to
14059             the whole document
14060           - Implemented generic Document to RTF converter
14061           - Implemented SaveFile for RichText format (still missing unicode
14062             conversion for non-ansi chars)
14063           - Implemented get_Rtf
14064           - Implemented get_SelectedRtf
14065
14066 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14067
14068         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14069           to allow any captures to be released before triggering OnClick. This
14070           way a click handler may capture the mouse without interference.
14071         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14072           This way we send them even though X may not allow a grab (if the window
14073           isn't visible, for example)
14074
14075 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14076
14077         * DataGridViewRowEventArgs.cs: DataGridView implementation
14078         * DataGridViewElement.cs: DataGridView implementation
14079         * DataGridViewComboBoxCell.cs: DataGridView implementation
14080         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14081         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14082         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14083         * ImageLayout.cs: DataGridView implementation
14084         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14085         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14086         * DataGridViewSelectionMode.cs: DataGridView implementation
14087         * IDataGridViewEditingControl.cs: DataGridView implementation
14088         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14089         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14090         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14091         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14092         * DataGridViewColumnSortMode.cs: DataGridView implementation
14093         * DataGridView.cs: DataGridView implementation
14094         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14095         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14096         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14097         * Padding.cs: DataGridView implementation
14098         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14099         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14100         * DataGridViewRowEventHandler.cs: DataGridView implementation
14101         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14102         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14103         * DataGridViewButtonCell.cs: DataGridView implementation
14104         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14105         * DataGridViewEditMode.cs: DataGridView implementation
14106         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14107         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14108         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14109         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14110         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14111         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14112         * DataGridViewCellEventHandler.cs: DataGridView implementation
14113         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14114         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14115         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14116         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14117         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14118         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14119         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14120         * QuestionEventArgs.cs: DataGridView implementation
14121         * IDataGridViewEditingCell.cs: DataGridView implementation
14122         * DataGridViewTriState.cs: DataGridView implementation
14123         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14124         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14125         * DataGridViewColumnCollection.cs: DataGridView implementation
14126         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14127         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14128         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14129         * DataGridViewColumn.cs: DataGridView implementation
14130         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14131         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14132         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14133         * DataGridViewRow.cs: DataGridView implementation
14134         * DataGridViewImageCellLayout.cs: DataGridView implementation
14135         * DataGridViewImageCell.cs: DataGridView implementation
14136         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14137         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14138         * DataGridViewHeaderCell.cs: DataGridView implementation
14139         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14140         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14141         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14142         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14143         * QuestionEventHandler.cs: DataGridView implementation
14144         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14145         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14146         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14147         * DataGridViewCell.cs: DataGridView implementation
14148         * DataGridViewCellEventArgs.cs: DataGridView implementation
14149         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14150         * DataGridViewCellStyle.cs: DataGridView implementation
14151         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14152         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14153         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14154         * TextFormatFlags.cs: DataGridView implementation
14155         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14156         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14157         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14158         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14159         * DataGridViewButtonColumn.cs: DataGridView implementation
14160         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14161         * HandledMouseEventArgs.cs: DataGridView implementation
14162         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14163         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14164         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14165         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14166         * DataGridViewRowCollection.cs: DataGridView implementation
14167         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14168         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14169         * DataGridViewHitTestType.cs: DataGridView implementation
14170         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14171         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14172         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14173         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14174         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14175         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14176         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14177         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14178         * DataGridViewContentAlignment.cs: DataGridView implementation
14179         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14180         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14181         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14182         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14183         * DataGridViewPaintParts.cs: DataGridView implementation
14184         * DataGridViewCellCollection.cs: DataGridView implementation
14185         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14186         * DataGridViewImageColumn.cs: DataGridView implementation
14187         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14188         * DataGridViewElementStates.cs: DataGridView implementation
14189         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14190         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14191         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14192         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14193         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14194         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14195         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14196         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14197         * DataGridViewTextBoxCell.cs: DataGridView implementation
14198         * DataGridViewBand.cs: DataGridView implementation
14199         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14200         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14201         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14202         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14203         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14204         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14205         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14206         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14207         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14208         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14209         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14210
14211 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14212
14213         * ThemeWin32Classic.cs: 
14214           - Draw the outside focus rectangle around buttons
14215           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14216             doesn't use end caps for every dash of a line anymore. This
14217             workaround ignores the forecolor.
14218
14219 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14220
14221         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14222           endian safe.
14223
14224 2005-11-07  Jackson Harper  <jackson@ximian.com>
14225
14226         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14227
14228 2005-11-07  Jackson Harper  <jackson@ximian.com>
14229
14230         * ScrollableControl.cs: Calculate the maximum and change vars
14231         (more) correctly so that scrollbars appear as a sensible size.
14232
14233 2005-11-04  Jackson Harper  <jackson@ximian.com>
14234
14235         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14236         collection.
14237         * TreeView.cs: When the tree is sorted null out the top_node so
14238         that it is recalculated.
14239         - Use dotted lines instead of dashed lines to match MS better.
14240
14241 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14242
14243         * ListView.cs: 
14244           - Implements key search for items. Useful when browsing files with FileDialog
14245           - When changing view mode or when clear the items reset scrollbar positions
14246
14247 2005-11-04  Jackson Harper  <jackson@ximian.com>
14248
14249         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14250         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14251         as to what the method may do as there is no real way of creating a
14252         derived CurrencyManager and calling the method. 
14253
14254 2005-11-03  Jackson Harper  <jackson@ximian.com>
14255
14256         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14257         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14258         method which seems to just be used internally to refresh the tabs.
14259
14260 2005-11-03  Jackson Harper  <jackson@ximian.com>
14261
14262         * TabControl.cs: Implement the remove method. Fix some broken
14263         comments.
14264
14265 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14266
14267         * DateTimePicker.cs:
14268           - Added missing DateTimePickerAccessibleObject class
14269           - Added missing events
14270           - Added OnFontChanged method
14271         * Form.cs: Added missing attributes
14272         * TreeView.cs: Added missing attributes
14273
14274 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14275
14276         * GridItemCollection.cs: Fix signatures
14277
14278 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14279
14280         * XplatUI.cs: Updated build rev/date
14281         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14282           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14283         * Application.cs: Trigger context-specific ExitThread events
14284
14285 2005-11-03  Jackson Harper  <jackson@ximian.com>
14286
14287         * Menu.cs:
14288         * MainMenu.cs:
14289         * GridTableStylesCollection.cs:
14290         * Timer.cs:
14291         * TabPage.cs:
14292         * HelpProvider.cs:
14293         * StatusBar.cs:
14294         * MonthCalendar.cs: Signature fixes
14295
14296 2005-11-03  Jackson Harper  <jackson@ximian.com>
14297
14298         * TreeNodeCollection.cs: Remove should not be virtual.
14299         * TreeView.cs: Implement the last of the missing methods.
14300
14301 2005-11-03  Jackson Harper  <jackson@ximian.com>
14302
14303         * TreeNodeConverter.cs: Implement to get off my class-status back.
14304
14305 2005-11-03  Jackson Harper  <jackson@ximian.com>
14306
14307         * TreeView.cs: Hookup the bits for drag and drop.
14308         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14309         that nodes can be moved from tree to tree easily this just causes
14310         all sorts of problems.
14311         * TreeNodeCollection: Don't need to give treenodes an index and
14312         treeview anymore when they are added, these are computed on the
14313         fly. Also make sure to remove a node before its added.
14314
14315 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14316
14317         * TextControl.cs:
14318           - Added CaretSelection enum
14319           - Added comparison methods to Marker struct, makes selection code
14320             more readable
14321           - Added SelectionStart and SelectionEnd as 'moveable' location for
14322             the CaretDirection enum and handler
14323           - Added selection_prev variable to track optimized invalidation for
14324             word and line selection
14325           - Added SelectionVisible property (returns true if there is a valid 
14326             selection)
14327           - Switched CaretHasFocus to only display the caret if there is no
14328             visible selection
14329           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14330             using the direct character index; should be much faster
14331           - Added various conditional debug statements
14332           - Fixed invalidation calculation for selection ranges
14333           - Added ExpandSelection() method to support word and line selection
14334           - Switched SetSelectionToCaret to use new Marker compare overloads
14335           - Added central IsWordSeparator() method to determine word 
14336             separators/whitespace and FindWordSeparator() to streamline common
14337             usage of IsWordSeparator()
14338         * TextBoxBase.cs:
14339           - Removed unneeded grabbed variable, it was just mirroring
14340             Control.Capture
14341           - No longer firing OnTextChanged event when Text setter is called,
14342             since the base will fire the event for us
14343           - Added handling of Ctrl-Up/Down selection
14344           - Added handling of Shift-Cursorkey selection
14345           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14346             words
14347           - Added handling of Shift and Ctrl-Shift-Home/End selection
14348           - Removed some debug output
14349           - Added handling for single/double/tripple-click to place caret/
14350             select word/select line respectively (Fixes bug #76031)
14351           - Added support for drag expansion of word/line selection
14352         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14353           current selection
14354
14355 2005-11-02  Jackson Harper  <jackson@ximian.com>
14356
14357         * X11Dnd.cs: If the drag is going to and from a MWF window just
14358         copy the data instead of sending it out through the X Selection
14359         mechanism.
14360
14361 2005-11-02  Jackson Harper  <jackson@ximian.com>
14362
14363         * X11Dnd.cs:
14364         * XplatUIX11.cs: When in a drag we don't want motion notify
14365         messages to get passed on to the other controls. This prevents
14366         mouse move messages from showing up in the drag source.
14367
14368 2005-11-02  Jackson Harper  <jackson@ximian.com>
14369
14370         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14371         the correct button is release to end a drag.
14372         * XplatUIX11.cs: Make the button state internal so the drag system
14373         can access it.  Dragging needs to know about all button releases,
14374         not just left button.
14375
14376 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14377
14378         * Form.cs (Icon): If the icon is null, reset the icon to the
14379         default value. 
14380
14381         * Cursor.cs: When writing the AND-mask bitmap do not include the
14382         number of colors, but hardcode those to two (black and white),
14383         fixes the loading of color cursors (Paint Dot Net).
14384
14385         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14386         turn off autoscaling.
14387
14388         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14389
14390 2005-11-02  Jackson Harper  <jackson@ximian.com>
14391
14392         * X11Dnd.cs: Make sure to send a status message if the pointer
14393         enters a control that can not accept a drop, otherwise the cursor
14394         isn't updated correctly. Also tried to compress the lines of code
14395         a bit.
14396
14397 2005-11-02  Jackson Harper  <jackson@ximian.com>
14398
14399         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14400         set actions correctly.  This isn't perfect as XDND and win32 have
14401         some differences on how you allow actions. I'll clear this up by
14402         adding a path for drag from MWF to MWF windows.
14403         * XplatUIX11.cs: Hook into the dnd system.
14404
14405 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14406
14407         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14408         previously shown but they are no longer need it. Very obvious when 
14409         browsing files with FileDialog.
14410
14411 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14412
14413         * Control.cs: We always need to call OnPaintBackground. We pretty much
14414           ignore AllPaintingInWmPaint and always do the painting there, whether 
14415           it's set or not, since we always ignore the WM_ERASEBKGND message 
14416           (which we don't generate on X11). This fixes #76616.
14417         * Panel.cs: Removed unneeded background painting. This happens properly
14418           in Control.cs already
14419
14420 2005-10-31  Mike Kestner  <mkestner@novell.com>
14421
14422         * Menu.cs: Add items to collection before setting their index.
14423         * MenuItem.cs : add range checking with ArgumentException like MS.
14424         [Fixes #76510]
14425
14426 2005-10-31  Jackson Harper  <jackson@ximian.com>
14427
14428         * ListBox.cs: Invalidate if the area is visible at all not just
14429         contained in the visible rect. Fixes unselection of semi visible
14430         items.
14431
14432 2005-10-31  Jackson Harper  <jackson@ximian.com>
14433
14434         * Control.cs: Consistently name the dnd methods. Make them
14435         internal so we can override them to match some MS behavoir
14436         internally.
14437         * Win32DnD.cs: Use the new consistent names.
14438
14439 2005-10-31  Jackson Harper  <jackson@ximian.com>
14440
14441         * TreeView.cs: Don't draw the selected node when we lose focus.
14442
14443 2005-10-31  Jackson Harper  <jackson@ximian.com>
14444
14445         * X11Dnd.cs: We still need to reset the state even though a full
14446         reset isn't being done, otherwise status's still get sent all over
14447         the place.
14448
14449 2005-10-31  Jackson Harper  <jackson@ximian.com>
14450
14451         * Control.cs: Make the dnd_aware flag internal so the dnd
14452         subsystem can check it. Catch exceptions thrown in dnd handlers to
14453         match MS behavoir.
14454         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14455         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14456         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14457         flags to reduce the number of dnd enters/status's sent.
14458
14459 2005-10-31  Jackson Harper  <jackson@ximian.com>
14460
14461         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14462
14463 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14464
14465         * PictureBox.cs: Fixes 76512
14466
14467 2005-10-28  Jackson Harper  <jackson@ximian.com>
14468
14469         * X11Dnd.cs: Early implementation to support winforms being a drag
14470         source for data on X11. Also restructured the converters so they
14471         can go both ways now.
14472         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14473         
14474 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14475
14476         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14477           clipboard requests
14478
14479 2005-10-27  Jackson Harper  <jackson@ximian.com>
14480
14481         * TreeNode.cs: Implement serialization so my DnD examples will work.
14482
14483 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14484
14485         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14486           TreeView.cs: Don't dispose objects that are not owned.
14487           
14488 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14489
14490         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14491           should retrieve the current cursor and report that, but XplatUI
14492           doesn't (yet) have an interface for that (and I'm not sure I even
14493           can, on X11)
14494         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14495           until any message loop processing is done (and the WM_SETCURSOR
14496           replaces the cursor to the proper one)
14497         * XplatUIX11.cs: 
14498           - Fixed override behaviour, we can't set the cursor globally on X11, 
14499             just for our windows.
14500           - Invalidating the System.Drawing X11 display handle when we are
14501             shutting down
14502         * Control.cs: Fix to make csc happy
14503
14504 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14505
14506         * TextBoxBase.cs: 
14507           - get_Text: Add last line (without trailing newline) to returned
14508             value (Fixes 76212)
14509           - get_TextLength: Count last line in returned length
14510           - ToString: Call Text property instead of duplicating code
14511
14512 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14513
14514         * ImageList.cs: Dispose ImageAttributes objects.
14515
14516 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14517
14518         * ImageList.cs: Use attribute constructors with less arguments where
14519           possible.
14520
14521 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14522
14523         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14524           Use typeof instead of strings when assembly is referenced. Added
14525           some more comments.
14526
14527 2005-10-21  Jackson Harper  <jackson@ximian.com>
14528
14529         * ListView.cs: Raise a double click event. Also tried to somewhat
14530         fix when the selectedindexchanged event is raised. Its still
14531         broken though.
14532
14533 2005-10-21  Jackson Harper  <jackson@ximian.com>
14534
14535         * TreeView.cs: New method to invalidate the plus minus area of a
14536         node without invalidating the whole node (maybe this can be used
14537         in some more places).
14538         * TreeNodeCollection.cs: When adding to an empty node we need to
14539         invalidate its plus minus area so the little block shows up.
14540         
14541 2005-10-21  Jackson Harper  <jackson@ximian.com>
14542
14543         * TreeView.cs: Make sure that when we invalidate a node the bounds
14544         are big enough to cover the selected box and the focus
14545         rectangle. Use a different colour for the lines connecting nodes
14546         so they show up with all themes.
14547
14548 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14549
14550         * NativeWindow.cs: Don't call anything that could call into the driver,
14551           we might be on a different thread.
14552
14553 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14554
14555         * Control.cs(Dispose): Since Dispose might run on a different thread,
14556           make sure that we call methods that could call into the driver via
14557           invoke, to avoid thread issues
14558
14559 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14560
14561         * XplatUI.cs: Removed finalizer
14562         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14563           not allowing to be called on the finalizer thread.
14564
14565 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14566
14567         * ImageList.cs:
14568           - Reverted r51889 and r51891.
14569           - Added ImageListItem class that stores unmodified image items and image
14570             properties required to create list images until handle is created.
14571           - Added AddItem and moved image creation logic to AddItemInternal.
14572           - Added CreateHandle method that creates images based on unmodified items.
14573           - Added DestroyHandle that changes state to store unmodified items.
14574           - Add and AddStrip methods no more create handle.
14575           - ReduceColorDepth has no return value.
14576           - Dispose destroys handle.
14577           - Modified other methods to reflect the above changes.
14578           - Implemented key support.
14579           - Added profile 2.0 members and attributes.
14580           - Added private Reset and ShouldSerialize methods that provide the same
14581             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14582             them as they are private.
14583           - Added some more comments about implementation details.
14584
14585 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14586
14587         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14588
14589 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14590
14591         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14592
14593 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14594
14595         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14596         * DataGridColumnStyle.cs: Remove debug message
14597
14598 2005-10-20  Jackson Harper  <jackson@ximian.com>
14599
14600         * TreeView.cs: We can always get input keys regardless of whether
14601         or not editing is enabled. They are used for navigation.
14602
14603 2005-10-20  Jackson Harper  <jackson@ximian.com>
14604
14605         * TreeNode.cs: Use the viewport rect for determining if a node
14606         needs to be moved for visibility. Don't use Begin/End edit. This
14607         calls a full refresh when its done.
14608         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14609         rect property internal so the treenodes can see it. When clicking
14610         on a node we need to ensure that its visible because it might just
14611         be partly visible when clicked.
14612
14613 2005-10-20  Jackson Harper  <jackson@ximian.com>
14614
14615         * TreeNodeCollection.cs: Remove debug code.
14616
14617 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14618
14619         * Datagrid.cs: Implements column sorting in Datagrid
14620         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14621
14622 2005-10-20  Jackson Harper  <jackson@ximian.com>
14623
14624         * TreeNodeCollection.cs: Remove items properly. Update the correct
14625         area after removing them.
14626
14627 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14628
14629         * Datagrid.cs: Should not call base.OnPaintBackground
14630
14631 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14632
14633         * XplatUIX11.cs (GetMessage):
14634           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14635             window instead of client window
14636           - Now properly calculates NC_xBUTTONUP message coordinates
14637           - ScreenToMenu now properly calculates it's coordinates of whole 
14638             window, since menus are in the whole window, not in the client
14639             window
14640           - Added WholeToScreen coordinate translation method
14641
14642 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14643
14644         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14645           want to return a message, loop back to the beginning of the function
14646           and grab the next real message to process instead.
14647
14648 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14649
14650         * Splitter.cs: Properly set limits if no filler control is used
14651
14652 2005-10-19  Jackson Harper  <jackson@ximian.com>
14653
14654         * ColorDialog.cs: Don't show the help button if it is not enabled
14655         instead of disabling it (this is what MS does). Don't create the
14656         panel until the dialog is run, otherwise the vars (such as
14657         ShowHelp) are not set yet.
14658
14659 2005-10-19  Jackson Harper  <jackson@ximian.com>
14660
14661         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14662         are reduced when adding nodes.
14663         * TreeNode.cs:
14664         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14665         tree.
14666         
14667 2005-10-19  Jackson Harper  <jackson@ximian.com>
14668
14669         * FolderBrowserDialog.cs: End editing our treeview so the window
14670         actually gets refreshed.
14671
14672 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14673
14674         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14675           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14676           inside of WM_PAINT
14677
14678 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14679
14680         * MenuAPI.cs: Returns after Hidding window
14681         * XplatUIX11.cs: Added TODO found while debugging menu issues
14682
14683 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14684
14685         * XplatUIX11.cs: Do not re-map the whole window when it's size
14686           becomes non-zero unless it's supposed to be actually visible
14687
14688 2005-10-18  Jackson Harper  <jackson@ximian.com>
14689
14690         * TreeView.cs: We don't need to keep a count anymore.
14691         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14692         use the Grow method.
14693
14694 2005-10-18  Jackson Harper  <jackson@ximian.com>
14695
14696         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14697         implement it manually here.
14698
14699 2005-10-18  Jackson Harper  <jackson@ximian.com>
14700
14701         * ImageList.cs: Dont kill the list when the colour depth is
14702         changed, just change the colour depth of all the images.
14703         - Same goes for setting the image size. Just resize them all
14704         instead of killing the list softly.
14705
14706 2005-10-18  Jackson Harper  <jackson@ximian.com>
14707
14708         * Control.cs: Don't invalidate empty rectangles.
14709
14710 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14711
14712         * ListViewItem.cs:
14713           - Adds checked item to the Checked/Item lists (where empty before)
14714           - Do not add items to the Selected lists if they are already present
14715         * ListView.cs:
14716           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14717           - When deleting items make sure that we delete them for the Selected
14718           and Checked list also.
14719
14720 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14721
14722         * Label.cs: Dispose objects no longer used
14723         * ThemeWin32Classic.cs: Dispose objects no longer used
14724
14725 2005-10-18  Jackson Harper  <jackson@ximian.com>
14726
14727         * TabControl.cs: Don't refresh the whole control when the tabs are
14728         scrolled, we just need to refresh the tab area.
14729
14730 2005-10-17  Jackson Harper  <jackson@ximian.com>
14731
14732         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14733         after handle when we need it.
14734
14735 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14736
14737         * Control.cs: When the parent size changes, recalculate anchor 
14738           positions. Partial fix for #76462
14739
14740 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14741
14742         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14743           drawn. Fixes #76462
14744
14745 2005-10-17  Jackson Harper  <jackson@ximian.com>
14746
14747         * MonthCalendar.cs: Don't create the numeric up down until our
14748         handle is created. Otherwise our handle is created in the
14749         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14750         yet.
14751
14752 2005-10-17  Jackson Harper  <jackson@ximian.com>
14753
14754         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14755         correctly.
14756
14757 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14758         * TreeNode.cs : small logical fix (was using local var instead of field)
14759         
14760 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14761
14762         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14763
14764 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14765
14766         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14767
14768 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14769
14770         * Control.cs: 
14771           - Re-implemented anchoring code. My first version was really broken.
14772             This fixes bug #76033. Unlike the previous implementation we will
14773             no longer have round errors since all numbers are calculated from
14774             scratch every time. Removed various anchor-related obsolete vars.
14775           - InitLayout no longer causes layout event firing and layout to be 
14776             performed
14777
14778 2005-10-16  Jackson Harper  <jackson@ximian.com>
14779
14780         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14781         which was broken).
14782
14783 2005-10-16  Jackson Harper  <jackson@ximian.com>
14784
14785         * TabControl.cs: Remove debug code.
14786
14787 2005-10-16  Jackson Harper  <jackson@ximian.com>
14788
14789         * XEventQueue.cs: Increase the default queue size (very simple
14790         apps needed to grow the queue).
14791         * Hwnd.cs: No finalizer so we don't need to suppress
14792         finalization. Compute the invalid area manually so a new rectangle
14793         does not newto be created.
14794         * ScrollableControl.cs: Don't set any params (otherwise visibility
14795         isn't set correctly).
14796         * MdiChildContext.cs: New constructor takes the mdi parent so it
14797         doesn't have to be computed and avoids a crash on windows. Draw
14798         the window icon properly, and allow the text to be seen.
14799         * Form.cs: Use new MdiChildContext constructor. Make sure the
14800         child context isn't null in wndproc.
14801         * TabControl.cs: Don't set focus, this is muddling keyboard
14802         behavoir. Expand the tab rows when a window size increase will
14803         allow extra tabs to be seen. Don't allow tabs smaller than the
14804         width of a window to be scrolled out of view.
14805         * TreeNode.cs:
14806         * TreeView.cs: Use measure string to calculate a nodes width, the
14807         width is cached and only updated when the text or the font is
14808         changed. Don't check for expand/collapse clicks on the first level
14809         nodes if root lines are disabled.
14810         
14811 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14812
14813         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14814
14815 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14816
14817         * DataGridBoolColumn.cs: fixes warning
14818
14819 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14820
14821         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14822         to match more to match more precisely the MS Net behavior
14823
14824 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14825
14826         * Hwnd.cs: Added field to track if window is mapped
14827         * XplatUIX11.cs: 
14828           - Unmap windows if they become 0-size, re-map when 
14829             they are >0 again; fixes #76035
14830           - Re-set our error handler after initializing X11Desktop
14831             to override any error handlers Gtk or whatever was called
14832             may have set.
14833
14834 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14835
14836         * CheckedListBox.cs: Removed unused vars
14837         * ListView.cs: Fixed signatures
14838         * RichTextBox.cs: Removed unused vars
14839         * TextBoxBase.cs: Removed unused vars
14840         * XplatUIWin32.cs: Removed unused vars
14841         * XplatUIX11.cs: Removed unused vars
14842         * XplatUI.cs: Updated version and date to latest published
14843
14844 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14845
14846         * Cursor.cs: Added private .ctor to work around a bug in
14847           resourceset (Thanks to Geoff Norton for the help on this)
14848         * SplitterEventArgs.cs: Made fields accessible so we don't
14849           waste boatloads of objects and can reuse the same one
14850           in Splitter
14851         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14852           any captions and borders when generating screen coordinates
14853         * Splitter.cs: Reimplemented control, now fully complete, uses
14854           rubberband drawing, supports and obeys all properties, has
14855           proper cursors
14856
14857 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14858
14859         * Form.cs (Form): Setup default values for autoscale and
14860         autoscale_base_size;  Make these instance variables, not static
14861         variables. 
14862
14863         (OnLoad): on the first load, adjust the size of the form.
14864
14865 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14866
14867         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14868           width argument to DrawReversibleRectangle()
14869         * XplatUIWin32.cs, XplatUIX11.cs: 
14870           - Implemented width for DrawReversibleRectangle()
14871           - Added logic to DrawReversibleRectangle that recognizes a zero
14872             width or height and only draws a line in that situation
14873         
14874 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14875
14876         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14877         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14878         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14879           method (it uses our FosterParent window to get a graphics context)
14880
14881 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14882
14883         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14884           and SetWindowBackground methods
14885         * Control.cs:
14886           - Setting proper ControlStyles
14887           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14888             EraseWindowBackground, instead we draw the window background
14889             ourselves in PaintControlBackground. This behaviour is
14890             required to match MS, where, when OnPaintBackground is not
14891             called, the background is not drawn.
14892           - Removed unneeded Refresh() in set_Text
14893         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14894         * XplatUIX11.cs:
14895           - Created DeriveStyles method to translate from CreateParams to
14896             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14897             matches FormBorderStyle enum values)
14898           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14899             style calculations into single DeriveStyles method
14900           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14901             from redrawing the whole window on any resize or expose.
14902           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14903             all styles were applied to our whole/client window appropriately
14904           - Removed EraseWindowBackground() and SetWindowBackground() methods
14905           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14906             no longer clear/redraw the background through X
14907           - Removed handling of erase_pending bit, we have no use for it (or
14908             so it seems)
14909         * XplatUIOSX.cs:
14910           - Removed generation and handling of WM_ERASEBKGND message
14911           - Removed EraseWindowBackground() and SetWindowBackground() methods
14912           - Removed handling of hwnd.ErasePending flag
14913         * XplatUIWin32.cs:
14914           - Removed EraseWindowBackground() and SetWindowBackground() methods
14915           - We no longer call EraseWindowBackground on PaintEventStart, we 
14916             ignore the fErase flag, erasing is handled in Control in the
14917             background handler
14918         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
14919           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
14920           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
14921           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
14922           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
14923           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
14924           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
14925
14926 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
14927
14928         * PropertyGrids.cs: Get sub properties
14929         * PropertyGridView.cs: Fix drawing code
14930
14931 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14932
14933         * ListBox.cs: Fixes 76383
14934
14935 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14936
14937         * DataGridTextBoxColumn.cs: Sets location and size before attachment
14938         * ThemeWin32Classic.cs: Fixes border drawing and calculations
14939         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
14940
14941
14942 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14943
14944         * ComboBox.cs: Fixes border drawing
14945
14946 2005-10-10  Miguel de Icaza  <miguel@novell.com>
14947
14948         * MimeIcon.cs: Ignore errors if the file can not be read.
14949
14950 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14951
14952         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
14953          - Fixed border calculations
14954          - Fixed horizontal scrolling in single column listboxes
14955          - Fixed drawing issues
14956
14957 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
14958
14959         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
14960           FormBorderStyle enum
14961         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
14962           code to determine FormBorderStyles from CreateParams
14963         * Form.cs:
14964           - Fixed bug where we'd set the wrong window styles if we were
14965             not creating an MDI window
14966           - Added call to XplatUI.SetBorderStyle when form borders are set
14967         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
14968         * Hwnd.cs:
14969           - Removed obsolete edge style
14970           - Switched from BorderStyle to FormBorderStyle
14971         
14972 2005-10-10  Jackson Harper  <jackson@ximian.com>
14973
14974         * Form.cs: Use the property to get the window handle instead of
14975         accessing it directly. Prevents a null reference exception.
14976
14977 2005-10-10  Jackson Harper  <jackson@ximian.com>
14978
14979         * TreeView.cs: Don't adjust the rect given to DrawString now that
14980         our libgdiplus draws correctly.
14981
14982 2005-10-08  Jackson Harper  <jackson@ximian.com>
14983
14984         * TreeView.cs: Don't try to find the clicked on node if there are
14985         no nodes in the tree.
14986
14987 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14988
14989         * RichTextBox.cs:
14990
14991           restore
14992
14993 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
14994
14995         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
14996           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
14997           ErrorProvider.cs:
14998           Use ResPool for brushes and dispose System.Drawing objects that
14999           are not used anymore.
15000
15001 2005-10-07  Jackson Harper  <jackson@ximian.com>
15002
15003         * MdiChildContext.cs: Use the new borders instead of drawing them
15004         ourselves.
15005
15006 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15007
15008         * Calling UpdateBounds after changing the window's BorderStyle 
15009         since the style can change the ClientSize
15010
15011 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15012
15013         * Control.cs: Made PaintControlBackground virtual
15014         * Panel.cs: Overriding PaintControlBackground instead of using paint
15015           event; paint event method was interfering with 'real' users of the
15016           event.
15017
15018 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15019
15020         * ThemeWin32Classic.cs: remove border drawing since it is handled
15021         by the base control class now and was causing double border drawing.
15022
15023 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15024
15025         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15026           but it does seem to match MS behaviour. This fixes bug #75324
15027
15028 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15029
15030         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15031           somewhat hackish looking
15032
15033 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15034
15035         * TextBoxBase.cs:
15036           - We now accept Enter even if AcceptEnter is false, if the containing
15037             form does not have an AcceptButton configured (fixes bug #76355)
15038           - Calculations are now fixed to no longer use Width/Height, but
15039             ClientSize.Width/Height, since we now support borders (this was
15040             a result of fixing borders and therefore bug #76166)
15041           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15042             true (fixes bug #76354)
15043         
15044 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15045
15046         * Control.cs: 
15047           - Defaulting BorderStyle and setting it in XplatUI when our window 
15048             is created
15049           - Added enum check to InternalBorderStyle setter
15050         * XplatUIX11.cs: 
15051           - Added drawing of window borders
15052           - Now properly calculates WM decorations offset for toplevel 
15053             windows (fixes bug #74763)
15054         * XplatUIWin32.cs: 
15055           - Implemented BorderStyles for windows (we're letting win32 draw 
15056             the border for us)
15057           - Fixed the signature for SetWindowLong
15058         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15059           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15060           setting borders
15061         * UpDownBase.cs: Remove drawing of borders, this is handled by
15062           the driver, outside the client area
15063         * ListView.cs: Removed bogus border calculations. The control should
15064           be oblivious to borders, since those are not part of the client
15065           area. 
15066         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15067         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15068           drawing code
15069
15070 2005-10-06  Jackson Harper  <jackson@ximian.com>
15071
15072         * MdiChildContext.cs: Clear out the old virtual position remove
15073         all the unneeded calls to CreateGraphics.
15074
15075 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15076
15077         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15078
15079 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15080
15081         * Form.cs: 
15082           - Added loading and setting of our new default icon
15083           - Only set icon if window is already created
15084
15085 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15086
15087         * Label.cs:
15088           - Do not explicitly set the foreground and background colors, to
15089             allow inheriting from parents (fixes #76302)
15090           - Use Control's InternalBorderStyle property to deal with borders
15091
15092 2005-10-06  Jackson Harper  <jackson@ximian.com>
15093
15094         * MdiChildContext.cs: Use the new xplatui function to draw a
15095         reversible rect.
15096
15097 2005-10-06  Jackson Harper  <jackson@ximian.com>
15098
15099         * Form.cs: Add the parent before creating the child context cause
15100         we need the parent when setting up the child.
15101
15102 2005-10-06  Jackson Harper  <jackson@ximian.com>
15103
15104         * FolderBrowserDialog.cs: redo the tree population code so a
15105         second thread isn't used. Should be a lot faster and more stable
15106         now.
15107
15108 2005-10-05  Jackson Harper  <jackson@ximian.com>
15109
15110         * TreeView.cs: There are no expand/collapse boxes if the node has
15111         no children.
15112
15113 2005-10-05  Jackson Harper  <jackson@ximian.com>
15114
15115         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15116
15117 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15118
15119         * FileDialog.cs: Fix InitialDirectory
15120
15121 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15122
15123         * ComboBox.cs:
15124                 - Fixes changing between styles
15125                 - Fixes simple mode
15126                 - Fixes last item crashing when navigating with keyboard
15127
15128 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15129
15130         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15131
15132 2005-10-05  Jackson Harper  <jackson@ximian.com>
15133
15134         * TreeView.cs: If updating the root node do a full refresh.
15135         * TreeNode.cs: The root node should be expanded by default. Also
15136         added a utility prop to tell if we are the root node.
15137         * TreeNodeCollection.cs: Only refresh if the node we are being
15138         added to is expanded. Also added a comment on a potential
15139         optimization.
15140         
15141 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15142
15143         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15144           in dispose method. Fixes #76330
15145
15146 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15147
15148         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15149
15150                 - Implements vertical and horizontal scrolling using XplatUI
15151                 - Fixes keyboard navagation
15152                 - Fixes EnsureVisible
15153                 - Drawing fixes
15154                 - Handles and draws focus properly
15155
15156
15157 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15158
15159         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15160           Create handle. NET_2_0: Destroy handle when value is null.
15161
15162 2005-10-03  Jackson Harper  <jackson@ximian.com>
15163
15164         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15165         revert and a new patch to prevent the thumb from refreshing so
15166         much.
15167
15168 2005-10-02  Jackson Harper  <jackson@ximian.com>
15169
15170         * ScrollBar.cs: Don't update position if it hasn't actually
15171         changed. This occurs when you hold down the increment/decrement
15172         buttons and the thumb gets to the max/min.
15173
15174 2005-10-01  Jackson Harper  <jackson@ximian.com>
15175
15176         * Form.cs:
15177         * MdiChildContext.cs:
15178         * MdiClient.cs: Implement ActiveMdiChild in Form.
15179
15180 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15181
15182         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15183
15184 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15185
15186         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15187           be found
15188
15189 2005-09-30  Jackson Harper  <jackson@ximian.com>
15190
15191         * ListBox.cs: Don't do a full refresh unless some data has
15192         actually changed.
15193
15194 2005-09-30  Jackson Harper  <jackson@ximian.com>
15195
15196         * TreeView.cs: Make sure that the checkboxes size is factored in
15197         even when not visible.
15198
15199 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15200
15201         * FileDialog.cs: Fix Jordi's build break
15202
15203 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15204
15205         * FileDialog.cs: 
15206                 - Use standard the Windows colours for the combobox as espected
15207                 - Dispose objects that use resouces when no longer need them
15208
15209 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15210
15211         * X11DesktopColors.cs: Initial incomplete implementation
15212         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15213
15214 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15215
15216         * Theme.cs: 
15217           - Switched Theme color names to match the names defined in 
15218             System.Drawing.KnownColors. Life's hard enough, no need to make 
15219             it harder.
15220           - Added setters to all theme color properties so themes can set
15221             their color schemes. The setters also propagate the color changes
15222             to System.Drawing.KnownColors via reflection
15223         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15224           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15225           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15226           use the new, more logical theme color names
15227         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15228           post-NT colors
15229         * ThemeWin32Classic.cs:
15230           - Removed code to set the old classic Windows colors. Instead it
15231             now relies on the colors returned by System.Drawing.KnownColors
15232             which will be either modern static colors (Unix) or colors
15233             read from the user's configuration (Win32)
15234           - Updated to use the new, more logical theme color names
15235           - Switched DataGrid drawing code to use only Theme colors instead of
15236             a mix of System.Drawing.KnownColors and Theme colors
15237           - DrawFrameControl(): Removed code that fills the button area, the
15238             fill would overwrite any previous fill done by a control. This
15239             fixes bug #75338 
15240           - Added DrawReversibleRectangle() stub
15241         * ScrollableControl.cs: Set visible state to false when scrollbars
15242           are removed (pdn fix)
15243         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15244           DrawReversibleRectangle() method to allow drawing primitive 
15245           'rubber bands'
15246         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15247
15248 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15249
15250         * ImageList.cs: Add(Icon): Create handle.
15251
15252 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15253
15254         * ListView.cs:
15255         * ThemeWin32Classic.cs:
15256                 - Fixes detail mode
15257                 - Sets clippings
15258                 - Issues with drawing
15259
15260 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15261
15262         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15263           source has to be the ImageList.
15264
15265 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15266
15267         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15268
15269 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15270
15271         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15272
15273 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15274
15275         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15276
15277 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15278         * GridItem.cs: Fixed TODOs
15279         * GridItemCollection.cs: Added ICollection interface
15280
15281 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15282
15283         * ImageList.cs: Resize icons when needed.
15284
15285 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15286
15287         * ListViewItem.cs
15288                 - Fixes GetBounds and returns on screen rects
15289         * ListView.cs:
15290                 - Fixes vertical and horzintal scrolling of items
15291         * ThemeWin32Classic.cs:
15292                 - Fixes drawing
15293                 
15294 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15295
15296         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15297
15298 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15299
15300         * ImageList.cs: Added comments about handle creation. Moved Handle,
15301           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15302           Handle is created in Add methods.
15303
15304 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15305          
15306         * DataGridDrawingLogic.cs: 
15307                 - Takes rows into account on Colum calculations
15308                 - Returns the column when clickig
15309         * DataGrid.cs:
15310                 - Fixes default HitTestInfo values
15311                 - Fixes HitTestInfo.ToString
15312                 - Fixes ResetBackColor          
15313         
15314 2005-09-28  Jackson Harper  <jackson@ximian.com>
15315
15316         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15317         sizing or cursor changes). Also added some temp code to draw the
15318         titlebars text (Makes dev a little easier).
15319
15320 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15321
15322         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15323
15324 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15325          
15326         * ListBox.cs: Fixes bug 76253
15327
15328 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15329
15330         * ImageList.cs: Added comments about the current implementation. Added
15331           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15332           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15333           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15334           with Bitmap.LockBits for better performance. Revised the whole file to
15335           match MS.NET behaviour and provide better performance. Non-public
15336           interface members are calling public members even when they throw
15337           NotSupportedException for better maintainability. Moved ColorDepth,
15338           ImageSize, ImageStream and TransparentColor implementations to
15339           ImageCollection for better performance as these properties are not used
15340           by ImageList.
15341         * ImageListStreamer.cs: Added a new internal constructor that takes an
15342           ImageList.ImageCollection and serializes Images based on
15343           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15344           match ImageList property name.
15345
15346 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15347
15348         * ListBox.cs: Fixes IndexFromPoint for last item
15349
15350 2005-09-27  Jackson Harper  <jackson@ximian.com>
15351
15352         * Form.cs: Set the position of new mdi children correctly.
15353
15354 2005-09-27  Jackson Harper  <jackson@ximian.com>
15355
15356         * MdiClient.cs: New mdi children need to be added to the back of
15357         the controls collection so the zorder is set correctly. Also add a
15358         count of all the child windows that have been created.
15359
15360 2005-09-27  Jackson Harper  <jackson@ximian.com>
15361
15362         * Form.cs (CreateParams): Setup MDI forms correctly.
15363
15364 2005-09-27  Jackson Harper  <jackson@ximian.com>
15365
15366         * MdiChildContext.cs:
15367         * MonthCalendar.cs:
15368         * UpDownBase.cs:
15369         * ListBox.cs:
15370         * ListView.cs:
15371         * TextBoxBase.cs:
15372         * TreeView.cs:
15373         * ScrollableControl.cs:
15374         * ComboBox.cs: Add implicit controls using the new implict control
15375         functionality in ControlCollection. Also try to block multiple
15376         control add in a suspend/resume layout to save some cycles.
15377         
15378 2005-09-27  Jackson Harper  <jackson@ximian.com>
15379
15380         * Control.cs: Add functionality to the controls collection to add
15381         'implicit controls' these are controls that are created by the
15382         containing control but should not be exposed to the user. Such as
15383         scrollbars in the treeview.
15384         * Form.cs: The list var of the ControlsCollection is no longer
15385         available because of the potential of implicit controls getting
15386         ignored by someone accessing the list directly.
15387
15388 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15389
15390         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15391           loose it's parent. (Fixed bug introduced in r49103 when we added
15392           setting the child parent to null on Remove)
15393
15394 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15395
15396         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15397         * Splitter.cs: Added missing attributes for BorderStyle property.
15398         * TextBoxBase.cs: Marked Calculate* methods internal.
15399         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15400         MS.NET.
15401
15402 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15403          
15404         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15405
15406 2005-09-25  Jackson Harper  <jackson@ximian.com>
15407
15408         * TreeView.cs: Update the node bounds correctly regardless of
15409         whether the node is visible.
15410
15411 2005-09-25  Jackson Harper  <jackson@ximian.com>
15412
15413         * ImageList.cs: Don't dispose the image after it is added to the
15414         image list. Only reformat images that need to be resized.
15415
15416 2005-09-25  Jackson Harper  <jackson@ximian.com>
15417
15418         * ImageList.cs: Don't set the format when changing the image.
15419
15420 2005-09-25  Jackson Harper  <jackson@ximian.com>
15421
15422         * TreeView.cs: We can't just assume the node has a font. Use the
15423         treeviews font if no node font is available.
15424
15425 2005-09-25  Jackson Harper  <jackson@ximian.com>
15426
15427         * TreeView.cs: Allow the scrollbars to be reset with negative
15428         values.
15429         - Don't add scrollbars to negative sized windows.
15430
15431 2005-09-23  Jackson Harper  <jackson@ximian.com>
15432
15433         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15434         old Mono.Posix. Also remove some stray code that shouldn't have
15435         been committed.
15436
15437 2005-09-23  Jackson Harper  <jackson@ximian.com>
15438
15439         * TreeView.cs: Attempt at proper sizing of the horizontal
15440         scrollbar. Also don't resize the scrollbars unless they are
15441         visible.
15442
15443 2005-09-23  Jackson Harper  <jackson@ximian.com>
15444
15445         * TreeView.cs: We don't need to expand the invalid area when the
15446         selection changes, as this is all drawn in the node's bounding
15447         box. The area needs to be expanded (previous typo was contracting
15448         it) when the focus rect moves.
15449
15450 2005-09-23  Jackson Harper  <jackson@ximian.com>
15451
15452         * TreeView.cs: Display the selection box under the correct
15453         circumstances. We were rendering white text with no selection box
15454         before.
15455
15456 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15457
15458         * TextControl.cs(Split): Now updates selection start/end if it points 
15459           into a line that's being split. Fixes a FIXME and bug #75258
15460
15461 2005-09-23  Jackson Harper  <jackson@ximian.com>
15462
15463         * Binding.cs:
15464         * ListControl.cs: Don't use the path when retrieving binding
15465         managers from the binding context. My bat sense tells me that the
15466         path is only used on insertion.
15467
15468 2005-09-22  Jackson Harper  <jackson@ximian.com>
15469
15470         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15471
15472 2005-09-22  Jackson Harper  <jackson@ximian.com>
15473
15474         * Splitter.cs: There are special cursors used for splitting.
15475         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15476
15477 2005-09-22  Jackson Harper  <jackson@ximian.com>
15478
15479         * Splitter.cs: Change the cursor appropriately when the splitter
15480         is moused over, so the user actually knows there is a splitter
15481         there.
15482
15483 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15484
15485        * Label.cs : Fix ToString method to give same output as MS.NET
15486
15487 2005-09-22  Jackson Harper  <jackson@ximian.com>
15488
15489         * TreeView.cs: Create the scrollbars when the handle is created
15490         and add them right away, just make them invisble. Also account for
15491         the window being shrunk vertically to the point that the vert
15492         scrollbar needs to be added.
15493         - Remove some 0.5 adjustments to get around anti aliasing issues.
15494         
15495 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15496          
15497         * MainMenu.cs: Fixes default value
15498         * MenuItem.cs: Fixes default value
15499
15500 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15501
15502         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15503
15504 2005-09-21  Jackson Harper  <jackson@ximian.com>
15505
15506         * Control.cs: Don't try to set the border style on the window if
15507         it hasn't been created. When the window is created the border
15508         style will be used.
15509
15510 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15511
15512         * Control.cs (Update): Don't call XplatUI if we don't have a
15513           window handle yet
15514
15515 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15516
15517         * ContainerControl.cs: Instead of throwing an exception, print
15518           a one-time warning about Validate not being implemented
15519         * XplatUIWin32.cs: Removed debug output
15520
15521 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15522
15523         * Control.cs: Only set XplatUI background if we expect the windowing
15524           system to handle the background. This stops controls that draw their
15525           own background from flickering
15526
15527         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15528           creation. This allows, amongst other things, using MWF X11 windows 
15529           with OpenGL.
15530
15531 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15532
15533         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15534           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15535           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15536           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15537           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15538           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15539           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15540           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15541           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15542           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15543           GridColumnStylesCollection.cs, 
15544           IDataGridColumnStyleEditingNotificationService.cs,
15545           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15546           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15547           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15548           TreeNodeCollection.cs, AmbientProperties.cs, 
15549           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15550           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15551           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15552           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15553           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15554           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15555           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15556           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15557           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15558           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15559           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15560           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15561           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15562           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15563           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15564           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15565           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15566           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15567           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15568           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15569           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15570           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15571           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15572           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15573           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15574           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15575           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15576           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15577           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15578           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15579           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15580           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15581           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15582           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15583           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15584           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15585           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15586
15587 2005-09-21  Jackson Harper  <jackson@ximian.com>
15588
15589         * TreeNode.cs: Call Before/After Expand not Collapse when
15590         expanding.
15591
15592 2005-09-20  Jackson Harper  <jackson@ximian.com>
15593         
15594         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15595
15596 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15597          
15598         * ListViewItem.cs:
15599                 - Fixes bug 76120
15600                 - Fixes proper storing of subitems
15601                 - Fixes not updated items
15602
15603 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15604
15605         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15606           things if our window handle isn't created yet. Also disabled 
15607           debug for TextBoxBase
15608
15609 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15610
15611         * MenuAPI.cs: Remove filtering of events to allow menu usage
15612
15613 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15614
15615         * Cursor.cs: Allow null to be passed to Cursor.Current.
15616
15617 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15618
15619         * ThemeWin32Classic.cs:
15620           - Change some private methods/fields to protected virtual so that 
15621             they can be accessed and overriden in derived classes
15622           - First refactoring of some methods. Derived themes now don't 
15623             need to duplicate the complete code from ThemeWin32Classic
15624         * ThemeNice.cs:
15625           - Added nice StatusBar
15626           - Derive from ThemeWin32Classic and not Theme
15627           - Removed duplicate ThemeWin32Classic code
15628
15629 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15630
15631         * Control.cs (ControlCollection.Add): If the value null is passed
15632         the control is ignored. 
15633
15634         Optimize this loop.
15635
15636 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15637
15638         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15639           PostQuitMessage state.
15640         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15641
15642 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15643
15644         * Application.cs: Our constructor will never get called, move 
15645           initialization to fields; fixes bug #75933
15646
15647 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15648
15649         * FileDialog.cs :
15650                 - Allow files to be selected properly using file name
15651                 combo box.
15652                 - Add ability to change diretory (absolute / relative)
15653                 using file name combo box.
15654
15655 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15656          
15657         * ListBox.cs: 
15658                 - Fixes Multicolumn listboxes item wrong calculations
15659                 - Allows to click when only one item is in the listbox
15660                 - Fixes crash when no items using keyboard navigation
15661
15662 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15663
15664         * ComboBox.cs: Reverted almost everything from the latest patch which
15665           broke ComboBox
15666
15667 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15668         
15669         * ToolTip.cs:
15670                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15671         * ComboBox.cs:
15672                 - When DropDownStyle is Simple, it does not show scrollbar 
15673                 to the last item of the list.
15674                 - When DropDownStyle is Simple, it crashed when the list was 
15675                 scrolled down with the down cursor key.
15676                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15677                 selected item was not shown.
15678                 - The position of the selected item was not preserved when 
15679                 the next dropdown happened.
15680         * ThemeWin32Classic.cs:
15681                 - Items were wrapped at the right end.
15682         * CheckedListBox.cs:
15683                 - Fixed Add method
15684         * ListBox.cs:
15685                 - Items should be fully shown.
15686                 - When resizing and vertical scrollbar disappeared, the item 
15687                 of index 0 should be on the top of the list.
15688                 - GetItemRectangle should consider the size of ver. scrollbar
15689         * StatusBar.cs:
15690                 - SizingGrip area should not be allocated when it is not 
15691                 displayed.
15692                 - Now it reflects MinWidth of the containing panel and 
15693                 fixed a crash that happens when its width becomes so small.
15694
15695 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15696
15697         * CheckedListBox.cs: Fixes bug 76028
15698         * ListBox.cs: Fixes bug 76028
15699
15700 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15701
15702         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15703         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15704
15705 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15706
15707         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15708
15709 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15710
15711         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15712
15713 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15714
15715         * IRootGridEntry.cs: Added
15716         * PropertyGridCommands.cs: Added
15717         * PropertiesTab.cs: Added missing methods and property
15718         * PropertyGridView.cs: Made class internal
15719         * PropertyGridTextBox.cs: Made class internal
15720
15721 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15722
15723         * MimeIcon.cs: Try to check some other environment variables
15724           if "DESKTOP_SESSION" returns "default"
15725
15726 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15727
15728         * ThemeNice.cs: Corrected background colors (e.g. menus)
15729         * ColorDialog.cs: Use correct background colors for controls
15730
15731 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15732
15733         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15734
15735 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15736
15737         * RichTextBox.cs: Added initial implementation
15738         * lang.cs: Removed. Was accidentally checked in long time ago
15739         * TODO: Removed. Contents were obsolete
15740
15741 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15742                                                                                 
15743         * PropertiesTab.cs : Added
15744
15745 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15746                                                                                 
15747         * PropertyGrid.cs : Update
15748         * PropertyGridView.cs : Update
15749         * System.Windows.Forms.resx : Added images and strings
15750
15751 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15752
15753         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15754  
15755 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15756
15757         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15758           a busy loop right after the Ungrab the X11 display is otherwise 
15759           blocked
15760
15761 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15762
15763         * ThemeWin32Classic.cs: Optimise the use of clipping
15764
15765 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15766
15767         * DataGrid.cs: fixes recursion bug
15768
15769 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15770
15771         * ThemeNice.cs: 
15772           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15773           - Cleanup
15774
15775 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15776
15777         * ThemeNice.cs: Draw nice ProgressBars
15778
15779 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15780
15781         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15782
15783         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15784         bug finder.
15785
15786 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15787
15788         * ThemeNice.cs:
15789           - Added nicer menu drawing
15790           - Updated DrawTab
15791           - some refactoring
15792
15793 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15794
15795         * CreateParams.cs (ToString): Made output match MS
15796         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15797             handle is already created (to avoid forcing window creation)
15798         * XplatUIX11.cs: Set window text to caption after creating window,
15799           in case Text was set before window was created
15800         * Form.cs: Use this.Text instead of a static string as caption
15801
15802 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15803
15804         * NotifyIcon.cs: Don't set the window to visible; this screws
15805           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15806           OnPaint without a bitmap)
15807         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15808           happen very often anyway; we could add the check to the WM_PAINT 
15809           event generation code
15810
15811 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15812
15813         * NotifyIcon.cs: Fill the icon area with a background color, to 
15814           avoid 'residue' when transparent icons are drawn
15815         * XplatUIX11.cs:
15816           - Handle whole_window == client_window when destroying windows
15817           - SystrayAdd(): Set client_window to whole_window value to
15818             get mouse and other events passed to NotifyIcon
15819
15820 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15821
15822         * Form.cs: Set proper default for Opacity property
15823         * NotifyIcon.cs:
15824           - ShowSystray(): Don't bother creating telling the OS
15825             about the systray item if no icon is provided
15826           - Now handles WM_NCPAINT message to deal with whole/client window
15827             split
15828           - Create window as visible to not get caught by Expose optimization
15829         * Hwnd.cs: Removed debug message
15830         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15831           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15832             PaintEventStart/End to use new client argument
15833         * TextBoxBase.cs:
15834           - Commented out debug messages
15835           - Switched PaintEventStart/End to use new client argument
15836         * XplatUI.cs: Added client window bool to PaintEventStart()/
15837           PaintEventEnd() calls, to support drawing in non-client areas
15838         * XplatUIDriver.cs: 
15839           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15840             calls, to support drawing in non-client areas
15841           - Added conditional compile to allow using MWF BeginInvoke 
15842             on MS runtime
15843         * XplatUIX11.cs:
15844           - Added some conditional debug output
15845           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15846             whole/client window split
15847           - Implemented handling of client argument to PaintEventStart()/End()
15848         * Control.cs:
15849           - Throw exception if BeginInvoke() is called and the window handle
15850             or one of the window's parent handles is not created
15851           - Added conditional compile to allow using MWF BeginInvoke on
15852             MS runtime
15853           - get_Parent(): Only sets parent if handle is created. This avoids
15854             forcing window handle creation when parent is set.
15855           - Now fires Layout and Parent changed events in proper order
15856           - Switched to use Handle instead of window.Handle for Z-Order setting,
15857             the get_Parent() patch above causes us to possibly get null for 'window'
15858           - Implemented handling of client argument to PaintEventStart()/End()
15859           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15860             default handling)
15861           - Now sends a Refresh() to all child windows when Refresh() is called
15862
15863 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15864
15865         * Form.cs: Added (non-functional) Opacity property
15866         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15867
15868 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15869         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15870           use export MONO_THEME=nice to activate it.
15871           Currently supported controls:
15872           - Button
15873           - ComboBox
15874           - ScrollBar
15875           - TabControl (TabAlignment.Top only, other will follow)
15876         * ThemeEngine.cs: Add theme nice
15877         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15878           if enabled
15879
15880 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15881
15882         * Splitter.cs: Resize docked control and its neighbor.
15883
15884 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15885         -- Making Windows with Menus layout correctly --
15886         * Form.cs : The first leg of the fix
15887                 Menu setter - adjust Client Size as needed to make space for the menu
15888                 SetClientSizeCore - doesn't call base version to be able to pass the 
15889                         menu handle to XplatUI.CalculateWindowRect
15890         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15891         * XplatUIX11.cs: The critical second leg of the fix
15892                 GetWindowPos needs to use a recalculated client_rect
15893                 so that resizing the window doesn't break layout of child controls. 
15894                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15895                 Lots of \t\n killed
15896
15897 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15898
15899         * Label.cs: Now properly recalculates width and height on Font and Text
15900           changes if AutoSize is set
15901
15902 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15903         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15904
15905 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15906
15907         * ImageList.cs: Makes ToString method compatible with MS
15908
15909 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
15910
15911         * MenuAPI.cs: fixes bug 75716
15912
15913 2005-08-11 Umadevi S <sumadevi@novell.com>
15914         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
15915
15916 2005-08-11 Umadevi S <sumadevi@novell.com>
15917         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
15918
15919 2005-08-10  Umadevi S <sumadevi@novell.com>
15920         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
15921
15922 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
15923
15924         * Menu.cs: fixes bug 75700
15925         * MenuAPI.cs: fixes navigation issues
15926
15927 2005-08-09  Umadevi S <sumadevi@novell.com>
15928         * CheckedListBox.cs - simple fix for GetItemChecked.
15929
15930 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
15931
15932         * ComboBox.cs: Serveral fixes
15933         * ListBox.cs: Serveral fixes
15934
15935 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15936
15937         * ComboBox.cs: Fixes FindString methods and GetItemHeight
15938         * ListBox.cs: Fixes FindString methods
15939
15940 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15941
15942         * DataGrid.cs: fixes bugs exposed by new tests
15943
15944 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
15945
15946         * Mime.cs: Compile Mono assembly references only if compiling
15947           with Mono (Allows to build with VS.Net again)
15948
15949 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
15950
15951         * Control.cs (PaintControlBackground): Draw background image
15952         corrrectly.
15953         (CheckForIllegalCrossThreadCalls): Stubbed.
15954         
15955         * Form.cs (OnCreateControl): Center when should be centered.
15956         
15957         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
15958
15959 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
15960
15961         * Binding.cs: Binding to properties should be case unsensitive
15962
15963 2005-07-18 vlindos@nucleusys.com
15964
15965         * DataGrid.cs: fixes setmember order
15966
15967 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
15968
15969         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
15970         * FileDialog.cs: FileDialog is now resizable and uses the new
15971           MimeIconEngine
15972
15973 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
15974
15975         * DataGridTextBoxColumn.cs: default value
15976         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
15977         * GridTableStylesCollection.cs: fixes checking MappingName
15978         * DataGridDrawingLogic.cs: fixes drawing logic issues
15979         * DataSourceHelper.cs: rewritten to make compatible with more data sources
15980         * DataGrid.cs: fixes    
15981
15982 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
15983
15984         * MimeGenerated.cs: Use case sensitive comparer for
15985           NameValueCollections
15986
15987 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
15988
15989         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
15990         * ThemeWin32Classic.cs: bug fixes, code refactoring
15991         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
15992         * DataGrid.cs: bug fixes, code refactoring
15993         * DataGridTextBox.cs: bug fixes, code refactoring
15994         * DataGridColumnStyle.cs:  bug fixes, code refactoring
15995         * Theme.cs:  bug fixes, code refactoring
15996
15997 2005-07-01  Peter Bartok  <pbartok@novell.com> 
15998
15999         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16000           and other text box usage
16001
16002 2005-07-01  Jackson Harper  <jackson@ximian.com>
16003
16004         * TabControl.cs: Make sure the bottom of the tab covers the pages
16005         border.
16006
16007 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16008
16009         * Form.cs (ShowDialog): Assign owner of the dialog
16010         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16011           might have been moved to a tag with different height
16012
16013 2005-06-30  Jackson Harper  <jackson@ximian.com>
16014
16015         * Form.cs: Don't create an infinite loop when setting focus
16016         * MenuItem.cs: Don't dirty the parents if we don't have any
16017
16018 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16019
16020         * LibSupport.cs: Rename
16021
16022 2005-06-29  Peter Bartok  <pbartok@novell.com>
16023
16024         * TextBoxBase.cs: Re-align caret after deleting a character
16025         * TextControl.cs:
16026           - DeleteChars(): Ensure that tag covers the provided position
16027           - StreamLine(): Drop reference for dropped tag
16028
16029 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16030
16031         * TextControl.cs: 
16032           - Selections now work properly, anchoring at the initial location
16033             and properly extending in either direction (SetSelectionToCaret(),
16034             SetSelectionStart() and SetSelectionEnd())
16035           - No longer redraws the whole control on selection change, now
16036             calculates delta between previous and new selection and only
16037             invalidates/redraws that area
16038           - Fixed FindPos() math off-by-one errors
16039           - Changed DeleteChars() to verify the provided tag covers the
16040             provided position, selections may have a tag that doesn't cover
16041             the position if the selection is at a tag border
16042           - Fixed off-by-one errors in DeleteChars()
16043           - Added missing streamlining check in DeleteChars() to remove
16044             zero-length tags
16045           - Implemented Invalidate() method, now properly calculates exposures
16046             between two given lines/positions
16047           - Implemented SetSelection()
16048           - Obsoleted and removed FixupSelection()
16049           - Improved RecalculateDocument() logic, removing code duplication
16050
16051 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16052
16053         * LibSupport.cs: changes to match different input/output arguments.
16054
16055 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16056
16057         * LibSupport.cs: added libsupport.so init routine.
16058
16059 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16060         
16061         * ControlBindingsCollection.cs
16062                 - Throws an exception on null datasource when adding
16063                 - Checks for duplicated bindings when adding
16064
16065 2005-06-28  Jackson Harper  <jackson@ximian.com>
16066
16067         * TreeView.cs (OnKeyDown): Support left and right properly
16068         (navigates as well as expanding and collapsing.
16069         - Add support for Multiply, this expands all the selected nodes
16070         children.
16071         - Fix some tabbing.
16072
16073 2005-06-28  Jackson Harper  <jackson@ximian.com>
16074
16075         * TreeView.cs: Implement keyboard navigation, currently supports,
16076         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16077         support for toggling checkboxes with the space bar.
16078
16079 2005-06-28  Jackson Harper  <jackson@ximian.com>
16080
16081         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16082         tree.
16083
16084 2005-06-28  Jackson Harper  <jackson@ximian.com>
16085
16086         * TreeView.cs: Add missing event.
16087
16088 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16089
16090         * TextControl.cs:
16091           - Made line ending size configurable (now allows for counting 
16092             lineendings as \n or \r\n)
16093           - Added margin to viewport to keep caret visible on right side
16094           - Fixed translation routines for line/pos to documentpos to consider
16095             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16096           - Fixed some line-endings to be unix style
16097           - Fixed Document.FormatText to perform it's calculations 1-based
16098           - Added descriptions for a few methods that might otherwise get 
16099             used wrong
16100           - Added NOTE section with some basic conventions to remember at 
16101             the top of the file
16102           - Major fixup for RichTextBox selection drawing:
16103             * Fixed crashes when multiple tags on a single line were selected
16104             * fixed selection box drawing not overlaying text
16105             * fixed bogus offset calculation for tags not starting at index 1
16106             * Switched behaviour from using multiple Substrings of a 
16107               StringBuilder.ToString() to using multiple 
16108               StringBuilder.ToString(start, length) statements, hoping this is
16109               faster (kept original version commented out in the code, in case
16110               original version was faster)
16111         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16112           alignment != Left
16113         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16114           call it as well
16115
16116 2005-06-27  Jackson Harper  <jackson@ximian.com>
16117
16118         * TabControl.cs: Move to the left and right with the arrow
16119         keys. These keys don't cycle beyond first and last like
16120         tab. Refresh all the tabs when scrolling them to the left or
16121         right.
16122
16123 2005-06-27  Jackson Harper  <jackson@ximian.com>
16124
16125         * TabControl.cs:
16126           - ToString: Added method
16127           - CreateParams: Remove TODO and comment
16128           - OnKeyDown: Cycle through bounds properly.
16129           - SelectedIndex: Scroll to the right or left if we need to
16130           display the newly selected tab.
16131
16132 2005-06-23  Jackson Harper  <jackson@ximian.com>
16133
16134         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16135         set.
16136
16137 2005-06-23  Jackson Harper  <jackson@ximian.com>
16138
16139         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16140         CTRL-SHIFT-TAB, and HOME, END are there any others?
16141
16142 2005-06-23  Jackson Harper  <jackson@ximian.com>
16143
16144         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16145
16146 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16147         
16148         * DataGridTextBoxColumn.cs: fixes and enhancements
16149         * ThemeWin32Classic.cs: fixes and enhancements
16150         * DataGridBoolColumn.cs:  fixes and enhancements
16151         * DataGridDrawingLogic.cs:  fixes and enhancements
16152         * CurrencyManager.cs: fixes and enhancements
16153         * DataGrid.cs: fixes and enhancements
16154         * DataGridColumnStyle.cs:  fixes and enhancements
16155
16156 2005-06-22  Jackson Harper  <jackson@ximian.com>
16157
16158         * TabControl.cs: Add some missing methods that just call into the
16159         base. Make the TabPageCollection's IList interface behave in the
16160         same manner as the MS implementation.
16161
16162 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16163
16164         * TextControl.cs: Added sanity check
16165         * TextBoxBase.cs: 
16166           - Fixed wrapping behaviour, don't set wrap on single line controls
16167             (this fixes the breakage of colordialog introduced in an earlier
16168              checkin)
16169           - Added rudimentary support for autoscrolling right-aligned controls
16170             (still needs fixing, also, center alignment scroll is missing)
16171
16172 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16173         
16174         * ScrollBar.cs: Fixes thumbpos on Maximum values
16175
16176 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16177         
16178         * PropertyGridView.cs: Pass context information to UITypeEditors 
16179
16180 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16181
16182         * TextBoxBase.cs:
16183           - Now calling PositionCaret with absolute space coordinates
16184           - Enabled vertical scrolling
16185           - Better tracking of scrollbar changes, tied into WidthChange
16186             event
16187           - Improved cursor tracking
16188           - Removed debug output
16189         * TextControl.cs:
16190           - PositionCaret coordinates are now works in absolute space, not 
16191             the canvas
16192           - Improved tracking of document size
16193           - Added events for width and height changes
16194
16195 2005-06-21  Peter Bartok  <pbartok@novell.com>
16196
16197         * Form.cs: Set focus to active control when form is activated
16198         * TextControl.cs: 
16199           - Added word-wrap functionality to RecalculateLine() 
16200           - Added some short function descriptions for VS.Net to aid in
16201             writing dependent controls
16202           - Added Caret property, returning the current coords of the caret
16203           - Added ViewPortWidth and ViewPortHeight properties
16204           - Added Wrap property
16205           - Added CaretMoved event
16206           - Removed some old debug code
16207           - Split() can now create soft splits
16208           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16209           - Added method to format existing text
16210           - Fixed size/alignment calculations to use viewport
16211           - RecalculateDocument now can handle changing line-numbers while
16212             calculating lines
16213
16214         * TextBox.cs:
16215           - Added some wrap logic, we don't wrap if alignment is not left
16216           - Added casts for scrollbar var, base class switched types to
16217             also support RichTextBoxA
16218           - Implemented handling of scrollbar visibility flags
16219
16220         * TextBoxBase.cs:
16221           - Switched scrollbars type to RichTextBoxScrollBars to support
16222             RichTextBox
16223           - Added tracking of canvas width/height
16224           - Switched scrollbars to be not selectable (to keep focus on text)
16225           - Added central CalculateDocument() method to handle all redraw
16226             requirements
16227           - Added ReadOnly support
16228           - Added WordWrap support
16229           - Fixed handling of Enter key (we now treat it as a DialogKey)
16230           - Fixed caret positioning when h or v scroll is not zero
16231           - Fixed placing/generation of vertical scrollbar
16232           - Added CalculateScrollBars() method to allow updating scrollbar
16233             limits and visibility
16234           - Fixed handling of horizontal scroll
16235           - Added handling of vertical scroll
16236           - Implemented auto-'jump' when caret moves to close to a left or
16237             right border and there is text to be scrolled into view (currently
16238             there's the potential for a stack overflow, until a bug in
16239             scrollbar is fixed)
16240
16241 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16242         
16243         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16244
16245 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16246
16247         * Mime.cs:
16248         - added inodes.
16249         - return application/x-zerosize for files with size zero
16250           (if no extension pattern matches).
16251         - check matches collection for strings too.
16252         - return only the first mime type if the name value
16253           collection has more than one mime type.
16254
16255 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16256         
16257         * PropertyGrid.cs: Cleaned up some TODOs
16258         * PropertyGridView.cs: Added support for UITypeEditors
16259
16260 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16261         
16262         * DataGrid.cs: clears cached value
16263
16264 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16265
16266         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16267         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16268         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16269         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16270         
16271 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16272
16273         * ThemeWin32Classic.cs: fixes colour
16274
16275 2005-06-15  Peter Bartok  <pbartok@novell.com>
16276
16277         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16278         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16279         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16280         * Control.cs: Added some MWFCategory and MWFDescription attributes
16281         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16282
16283 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16284
16285         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16286         usage
16287
16288 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16289
16290         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16291         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16292         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16293         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16294         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16295         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16296
16297 2005-06-13  Jackson Harper  <jackson@ximian.com>
16298
16299         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16300         isn't printed when the user enables dropping. (X11 does accept
16301         drops).
16302         
16303 2005-06-13  Jackson Harper  <jackson@ximian.com>
16304
16305         * TreeView.cs: Remove some TODOS.
16306
16307 2005-06-13  Jackson Harper  <jackson@ximian.com>
16308
16309         * Form.cs: Hook into the mdi framework.
16310         * MdiClient.cs: Use the base control collections add method so
16311         parents get setup correctly. Set the default back colour and dock
16312         style.
16313         * MdiChildContext.cs: New class, this bad actor handles an
16314         instance of an MDI window. Right now there is only basic
16315         support. You can drag, close, and resize windows. Minimize and
16316         Maximize are partially implemented.
16317
16318 2005-06-13  Jackson Harper  <jackson@ximian.com>
16319
16320         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16321         freaky when both vals are negative. NOTE: There are probably other
16322         places in XplatUIX11 that this needs to be done.
16323
16324 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16325
16326         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16327         * DataGridColumnStyle.cs: fixes signature
16328
16329 2005-06-12  Jackson Harper  <jackson@ximian.com>
16330
16331         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16332         windows.
16333
16334 2005-06-11  Jackson Harper  <jackson@ximian.com>
16335
16336         * StatusBarPanel.cs: Signature cleanups. Implement
16337         BeginInit/EndInit.
16338
16339 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16340
16341         * DataGridTextBoxColumn.cs: Honors aligment
16342         * GridColumnStylesCollection.cs: Contains is case unsensitive
16343         * GridTableStylesCollection.cs: several fixes
16344         * DataGridTableStyle.cs: default column creation
16345         * DataGridDrawingLogic.cs: fixes
16346         * CurrencyManager.cs: ListName property
16347         * DataGrid.cs: multiple styles support
16348         * DataGridColumnStyle.cs: fixes
16349         
16350
16351 2005-06-10  Peter Bartok  <pbartok@novell.com>
16352
16353         * Control.cs(Select): Moved SetFocus call to avoid potential
16354           loops if controls change the active control when getting focus
16355         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16356           the up/down buttons
16357
16358 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16359
16360         * ImageListConverter.cs: Implemented
16361
16362 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16363
16364         * MonthCalendar.cs: Wired in NumericUpDown control for year
16365
16366 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16367
16368         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16369           DoubleClick events, since they are not meant to be fired.
16370
16371 2005-06-09  Peter Bartok  <pbartok@novell.com>
16372
16373         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16374           Jonathan's standalone controls into MWF, implemented missing
16375           events, attributes and methods; added xxxAccessible classes
16376         * AccessibleObject.cs: Made fields internal so other classes
16377           can change them if needed
16378
16379 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16380
16381         * UpDownBase.cs: Complete implementation
16382         * NumericUpDown.cs: Complete implementation
16383         * DomainUpDown.cs: Complete implementation
16384
16385 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16386
16387         * DataGridTextBoxColumn.cs: drawing fixes
16388         * DataGridCell.cs: fixes ToString method to match MSNet
16389         * DataGridTableStyle.cs: fixes
16390         * DataGridBoolColumn.cs: fixes, drawing
16391         * DataGridDrawingLogic.cs: fixes, new methods
16392         * DataGridTextBox.cs: Keyboard and fixes
16393         * DataGrid.cs:
16394                 - Keyboard navigation
16395                 - Scrolling fixes
16396                 - Row selection (single, multiple, deletion, etc)
16397                 - Lots of fixes
16398         
16399 2005-06-07  Jackson Harper  <jackson@ximian.com>
16400
16401         * ThemeWin32Classic.cs: Clear the background area when drawing
16402         buttons.
16403
16404 2005-06-06  Peter Bartok  <pbartok@novell.com>
16405
16406         * ImageListStreamer.cs: Fixed signature for GetData
16407         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16408         * ComboBox.cs:
16409           - Added missing ChildAccessibleObject class
16410           - Added missing OnXXXFocus overrides, switched to using those
16411             instead of the event handler
16412         * Control.cs:
16413           - Added Parent property for ControlAccessibleObject
16414           - Fixed signatures
16415           - Fixed attributes
16416           - Added ResetBindings()
16417         * ListBindingConverter.cs: Implemented some methods
16418         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16419         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16420         * ContainerControl.cs: Fixed signature, now subscribing to the
16421           ControlRemoved event instead of overriding the handler, LAMESPEC
16422         * CurrencyManager.cs: Added missing attribute
16423         * MonthCalendar.cs: Added missing properties
16424
16425 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16426
16427         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16428         
16429 2005-06-06  Gaurav Vaish and Ankit Jain
16430
16431         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16432         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16433         
16434 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16435
16436         * Control.cs: fixes CreateParams Width / Height.
16437
16438 2005-06-05  Peter Bartok  <pbartok@novell.com>
16439
16440         * Win32DnD.cs: Removed compilation warnings
16441
16442 2005-06-05  Peter Bartok  <pbartok@novell.com>
16443
16444         * Control.cs (CreateParams): Since we don't know if one of the
16445           properties we use is overridden, lets make sure if we fail accessing
16446           we continue with a backup plan
16447
16448 2005-06-05  Peter Bartok  <pbartok@novell.com>
16449
16450         * Win32DnD.cs:
16451           - Removed debug output
16452           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16453             struct
16454           - Plugged resource leak
16455         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16456           MS size
16457
16458 2005-06-05  Peter Bartok  <pbartok@novell.com>
16459
16460         * XplatUIWin32.cs: Removed DnD code
16461         * Win32DnD.cs: Implemented drop source and drop target functionality
16462
16463 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16464
16465         * UpDownBase.cs: remove duplicate addition of event, enable some code
16466         that was commented out.
16467         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16468         Validate input when a key is pressed. It works fine now for every
16469         combination of Hexadecimal. Only missing some drawing love when sharing
16470         space with other controls.
16471
16472 2005-06-04  Peter Bartok  <pbartok@novell.com>
16473
16474         * Control.cs:
16475           - We need to pass a window for DragDrop, so enable callback events
16476           - Added DnD callback events when being a DragSource
16477         * XplatUI.cs (StartDrag): Added window handle argument
16478         * XplatUIDriver.cs (StartDrag): Added window handle argument
16479         * QueryContinueDragEventArgs: Made fields internally accessible so
16480           drivers can set them
16481         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16482           can set them
16483
16484 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16485
16486         * DataGridTextBoxColumn.cs: column text editing
16487         * DataGridTableStyle.cs: Respect columns styles created by the user
16488         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16489         * DataGridBoolColumn.cs: bool column editing
16490         * DataGrid.cs: fixes to scrolling, properties, etc
16491         * DataGridTextBox.cs: handle keyboard
16492         * DataGridColumnStyle.cs: fixes
16493
16494 2005-06-02  Jackson Harper  <jackson@ximian.com>
16495
16496         * ImageListStreamer.cs: Somewhat broken implementation of
16497         GetObjectData. The RLE needs some work to match MS properly.
16498
16499 2005-06-02  Jackson Harper  <jackson@ximian.com>
16500
16501         * X11Dnd.cs: Attempting to keep at least one file in MWF
16502         monostyled.
16503
16504 2005-06-02  Peter Bartok  <pbartok@novell.com>
16505
16506         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16507           that way
16508
16509 2005-06-02  Peter Bartok  <pbartok@novell.com>
16510
16511         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16512         * XplatUI.cs: Added DoDragDrop() method
16513         * XplatUIDriver.cs: Added DoDragDrop() method
16514
16515 2005-06-02  Jackson Harper  <jackson@ximian.com>
16516
16517         * Splitter.cs: Implement BorderStyle.
16518
16519 2005-06-02  Jackson Harper  <jackson@ximian.com>
16520
16521         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16522         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16523         X11 using XDND.
16524
16525 2005-06-02  Peter Bartok  <pbartok@novell.com>
16526
16527         * DataObject.cs:
16528           - Added Data setter
16529           - Fixed broken insertion code for SetData, now also
16530             overwrites any existing entry of the same format name
16531         * Hwnd.cs: Added list of pointers that automatically gets
16532           freed when the window is disposed
16533         * XplatUI.cs: Call driver initialization method when loading
16534           a driver
16535         * Control.cs:
16536           - OnDragLeave takes EventArgs, not DragEventArgs
16537           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16538             supported
16539           - Forces style update when drop state changes
16540         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16541           not perfect since we cannot (yet) call the IDataObject.GetData()
16542           method, we keep getting 0x80004005 error, dunno why)
16543
16544 2005-06-02  Peter Bartok  <pbartok@novell.com>
16545
16546         * DragEventArgs.cs: Make fields internal so we can cache the
16547           object and re-set the fields from XplatUI
16548
16549 2005-06-02  Jackson Harper  <jackson@ximian.com>
16550
16551         * Control.cs: Add some internal methods so the DnD subsystem can
16552         raise DnD events. Also call into the driver when AllowDrop is set.
16553         * XplatUI.cs:
16554         * XplatUIDriver.cs: New method for setting whether or not a window
16555         is allowed to accept drag and drop messages.
16556                 
16557 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16558         
16559         * ScrollBar.cs: Make sure that values sent in Scroll events
16560         are always between Maximum and Minimum.
16561
16562 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16563
16564         * Menu.cs: Call MenuChanged when menuitem visibility has been
16565         changed.
16566         * MenuItem.cs: Rebuild menu when item is (not) visible.
16567         * MainMenu.cs: MainMenu has special MenuChanged.
16568         * Theme.cs: Caption and FrameBorderSize are not fixed.
16569         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16570         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16571         * XplatUIX11.cs,
16572         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16573         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16574
16575 2005-05-30  Jackson Harper  <jackson@ximian.com>
16576
16577         * DataFormat.cs: We can't statically initialize this stuff because
16578         it calls into the xplatui and could create a loop. So we lazy init
16579         it.
16580
16581 2005-05-28  Jackson Harper  <jackson@ximian.com>
16582
16583         * Control.cs: Proper implementation of Product(Name/Version).
16584
16585 2005-05-27  Jackson Harper  <jackson@ximian.com>
16586
16587         * DataObject.cs: Dont crash if no data is found.
16588
16589 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16590         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16591                 as per status page, guessing it should be set to true
16592
16593 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16594
16595         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16596         * DataGridTableStyle.cs: set proper formatting text, def header text
16597         * ThemeWin32Classic.cs: new themable paramaters
16598         * DataGridBoolColumn.cs: paint check box, get data, fixes
16599         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16600         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16601         * DataGridColumnStyle.cs: fixes
16602         * Theme.cs: new themable paramaters
16603                 
16604 2005-05-26  Peter Bartok  <pbartok@novell.com>
16605
16606         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16607
16608 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16609         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16610
16611 2005-05-24  Peter Bartok  <pbartok@novell.com>
16612
16613         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16614           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16615           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16616           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16617           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16618           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16619           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16620           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16621           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16622           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16623           missing attributes, etc
16624         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16625
16626 2005-05-24  Peter Bartok  <pbartok@novell.com>
16627
16628         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16629           when user tries to get help
16630         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16631           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16632           to suppress warnings
16633         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16634           avoid unreachable code warning
16635
16636 2005-05-20  Peter Bartok  <pbartok@novell.com>
16637
16638         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16639
16640 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16641
16642         * DataGridTextBoxColumn.cs: Basic painting methods
16643         * DataGridTableStyle.cs: Set table style in the column
16644         * ThemeWin32Classic.cs: Use Theme for colors
16645         * DataGridDrawingLogic.cs: Implement more drawing
16646         * DataGrid.cs: drawing, theming, enhacements, fixes
16647         * DataGridColumnStyle.cs: fixes, drawing
16648         * Theme.cs: theming for Datagrid
16649
16650 2005-05-20  Peter Bartok  <pbartok@novell.com>
16651
16652         * Cursor.cs: Implemented GetObjectData() method
16653
16654 2005-05-20  Peter Bartok  <pbartok@novell.com>
16655
16656         * Cursors.cs: Added setting of cursor name
16657         * Cursor.cs:
16658           - Implemented constructors
16659           - Implemented Draw and DrawStretched
16660           - Implemented Current property
16661           - Implemented == and != operators
16662           - Implemented Dispose()
16663           - Implemented ToString
16664           - Added missing attributes
16665         * XplatUIX11.cs:
16666           - Added missing reset for OverrideCursor when DoEvents is called
16667           - Fixed creation of cursor, logic was wrong
16668         * XplatUIWin32.cs:
16669           - Added missing reset for OverrideCursor when DoEvents is called
16670           - Fixed creation of cursor, bit arrays were swapped
16671         * Clipboard.cs: Removed obsolete MonoTODO attribute
16672
16673 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16674
16675         * ComboBox.cs: fixes OnSelectedItemChanged
16676         * ControlBindingsCollection.cs: fixes item range check
16677
16678 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16679
16680         * UpDownBase.cs:
16681                 - Calc preferred height properly
16682                 - Implement missing properties
16683                 
16684         * NumericUpDown.cs: Implement missing events
16685
16686 2005-05-19  Jackson Harper  <jackson@ximian.com>
16687
16688         * TabControl.cs: New method that resizes the tab pages before
16689         redrawing them. This as needed as the control is double buffered
16690         and sizing will not be recalculated unless ResizeTabPages is
16691         called.
16692         * TabPage.cs: Set base.Text instead of Text in the constructor so
16693         that UpdateOwner does not get called. Use the new Redraw method of
16694         TabControl instead of Refresh so the sizing is recalculated.
16695         * ThemeWin32Classic.cs: Draw the text for button tabs.
16696
16697 2005-05-19  Jackson Harper  <jackson@ximian.com>
16698
16699         * Control.cs: Paint control background images. Fix typo where
16700         PaintControlBackground was not getting called correctly.
16701
16702 2005-05-19  Peter Bartok  <pbartok@novell.com>
16703
16704         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16705           I can investigate, apparently I broke FileDialog
16706
16707 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16708
16709         * AxHost.cs: Some simple properties.
16710         * Control.cs: window must be accessible after ctor.
16711         * Form.cs: Added TransparencyKey property.
16712         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16713         * XplatUIWin32.cs: SetBorderStyle implemented.
16714
16715 2005-05-18  Peter Bartok  <pbartok@novell.com>
16716
16717         * DataObject.cs: Entries are not global but particular to the
16718           DataObject, now it behaves that way
16719         * XplatUIWin32.cs: Implemented Clipboard methods
16720         * Clipboard.cs: Implemented
16721         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16722         * XplatUIOSX.cs: Updated to final clipboard prototypes
16723         * XplatUIX11.cs: Implemented Clipboard methods
16724         * XplatUIDriver.cs: Updated to final clipboard prototypes
16725         * XplatUIStructs.cs:
16726           - Added BITMAPINFOHEADER struct
16727           - Added ClipboardFormats enum
16728         * X11Structs.cs:
16729           - Added ClipboardStruct
16730           - Added Atom enum items for clipboard types
16731           - Fixed atom types for Selection event structures
16732         * DataFormats.cs:
16733           - Added internal properties and methods for drivers to enumerate
16734             all known formats
16735           - Switched initialization method to allow drivers to assign their
16736             own IDs even for the MS predefined clipboard IDs
16737         * XplatUI.cs: Updated to final clipboard interface
16738
16739 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16740         * PropertyGridView.cs: Fixed compiler warnings.
16741
16742 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16743         * PropertyGrid.cs: Added some event calls
16744         * PropertyGridView.cs: Change drawing code to use double buffering
16745         * PropertyGridTextBox.cs: Changed Text property name
16746         * GridItem.cs: Added Bounds property.
16747         * GridEntry.cs: Added Bounds property.
16748
16749 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16750
16751         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16752         since GetType() may not return the correct type if the object is
16753         a remoting proxy.
16754
16755 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16756
16757         * TreeNodeCollection.cs: fixes get/set item ranges
16758         
16759 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16760
16761         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16762                 
16763 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16764
16765         * ComboBox.cs: Fix item range comparation
16766         * ListView.cs: Fix item range comparation
16767
16768 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16769
16770         * FontDialog.cs:
16771           - Clear example panel when OnPaint is called
16772           - Better solution for displaying the example panel text
16773           - Select default indexes in the ListBoxes
16774
16775 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16776
16777         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16778
16779 2005-05-11  Peter Bartok  <pbartok@novell.com>
16780
16781         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16782         * SelectionRangeConverter.cs: Implemented
16783         * PropertyGrid.cs: Fixed attribute value
16784         * Control.cs:
16785           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16786           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16787         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16788           that's common to all drivers. First methods to go there are
16789           Sebastien Pouliot's CAS Stack Propagation helper methods
16790         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16791           Sebastien Pouliot for CAS Stack Propagation
16792
16793 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16794
16795         * OSXStructs.cs:
16796           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16797
16798 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16799
16800         * DataGridTextBoxColumn.cs: fixed some members
16801         * GridColumnStylesCollection.cs: indexed column is case insensitive
16802         * DataGridTableStyle.cs: fixes
16803         * ThemeWin32Classic.cs: add new theme parameter
16804         * Theme.cs: add new theme parameter
16805         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16806         * DataGrid.cs: fixes, new internal properties, etc.
16807         * DataGridColumnStyle.cs: allows to set grid value
16808         *
16809
16810 2005-05-10  Peter Bartok  <pbartok@novell.com>
16811
16812         * AccessibleObject.cs:
16813           - Removed MonoTODO attribute on help, method is correct
16814           - Fixed Bounds property
16815         * AxHost.cs: Moved MonoTODO
16816         * ButtonBase.cs: Now setting AccessibleObject properties
16817         * RadioButton.cs: Setting proper AccessibleObject role
16818         * CheckBox.cs: Setting proper AccessibleObject role
16819         * ControlBindingsCollection.cs: Added properties, methods and attributes
16820         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16821           userdefined DataFormats.Format items as well
16822         * ListControl.cs: Removed data_member from the public eye
16823         * OpenFileDialog.cs:
16824           - Made class sealed
16825           - Added missing attributes
16826         * SaveFileDialog.cs: Added missing attributes
16827         * ImageListStreamer.cs: Fixed code that caused warnings
16828         * LinkLabel.cs: Removed unreachable code
16829         * TreeView.cs: Fixed code that caused warnings
16830         * PropertyGridView.cs: Fixed code that caused warnings
16831         * GridColumnStylesCollection.cs: Added missing attributes
16832         * GridTableStylesCollection: Added missing attribute
16833         * PropertyManager: Added .ctor
16834         * SecurityIDType: Added
16835         * DataObject.cs: Implemented class
16836         * LinkArea.cs: Added missing attribute
16837
16838 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16839
16840         * RadioButton.cs: call base method to allow to fire OnClick event
16841         * UpDownBase.cs: OnMouseUp call base method
16842         * CheckedListBox.cs: call base method before returning
16843         * TrackBar.cs: call base method before returning
16844         
16845
16846 2005-05-10  Peter Bartok  <pbartok@novell.com>
16847
16848         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16849           for messages
16850
16851 2005-05-10  Peter Bartok  <pbartok@novell.com>
16852
16853         * DataFormats.cs: Implemented
16854         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16855           XplatUIX11.cs: Added Clipboard APIs
16856         * XplatUIWin32.cs: Implemented Clipboard APIs
16857         * FolderBrowserDialog.cs: Added missing event, attributes
16858
16859 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16860
16861         * CheckBox.cs: call base method to allow to fire OnClick event
16862
16863 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16864
16865         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16866
16867 2005-05-06  Peter Bartok  <pbartok@novell.com>
16868
16869         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16870         * Screen.cs: Implemented
16871         * HelpNavigator.cs: Added
16872         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16873           property
16874         * HelpProvider.cs: Implemented all we can do until we have a CHM
16875           help library (which means that "What's This" does work now)
16876
16877 2005-05-06  Jackson Harper  <jackson@ximian.com>
16878
16879         * XplatUIX11.cs: Fix waking up the main loop.
16880                 
16881 2005-05-05  Peter Bartok  <pbartok@novell.com>
16882
16883         * XplatUI.cs: Updated revision
16884         * Form.cs: Removed enless loop
16885         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16886         * Label.cs (OnPaint): Added call to base.OnPaint()
16887         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16888         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16889         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16890         * AxHost.cs: Added
16891         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16892         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16893           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16894           reuse of ToolTipWindow by other controls
16895         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16896         * XplatUIX11.cs: Now clipping drawing area (experimental)
16897         * PictureBox.cs: Moved base.OnPaint() call to end of method
16898         * Theme.cs: Fixed ToolTip abstracts to match new format
16899         * ErrorProvider.cs: Implemented
16900
16901 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16902
16903         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16904         * LinkLabel.cs:
16905                 - Adds cursors
16906                 - Handles focus
16907                 - Implements LinkBehavior
16908                 - Fixes many issues
16909
16910 2005-05-03  Jackson Harper  <jackson@ximian.com>
16911
16912         * ListView.cs: Calculate the scrollbar positioning on resize and
16913         paint, so they get put in the correct place.
16914
16915 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16916
16917         * ColorDialogs.cs: The small color panels are now handled by
16918           SmallColorControl. This fixes drawing of the focus rectangle
16919           and adds a 3D border.
16920
16921 2005-05-03  Peter Bartok  <pbartok@novell.com>
16922
16923         * Control.cs: Modified version of Jonathan Chamber's fix for
16924           double-buffering
16925
16926 2005-05-03  Jackson Harper  <jackson@ximian.com>
16927
16928         * ListView.cs: Remove redraw variable. Control now handles whether
16929         or not a redraw needs to be done, and will only raise the paint
16930         event if redrawing is needed.
16931
16932 2005-05-03  Jackson Harper  <jackson@ximian.com>
16933
16934         * Splitter.cs: No decorations for the splitter form. Cache the
16935         hatch brush.
16936
16937 2005-05-03  Jackson Harper  <jackson@ximian.com>
16938
16939         * TreeView.cs: Use dashed lines to connect nodes. Use the
16940         ControlPaint method for drawing the focus rect instead of doing
16941         that in treeview.
16942
16943 2005-05-02  Peter Bartok  <pbartok@novell.com>
16944
16945         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
16946
16947 2005-04-29  Jackson Harper  <jackson@ximian.com>
16948
16949         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
16950         entire image buffer. Just clear the clipping rectangle.
16951
16952 2005-04-29  Jackson Harper  <jackson@ximian.com>
16953
16954         * ThemeWin32Classic.cs: Don't draw list view items that are
16955         outside the clipping rectangle.
16956
16957 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
16958
16959         * ListBox.cs: added horizontal item scroll
16960
16961 2005-04-29  Jackson Harper  <jackson@ximian.com>
16962
16963         * ThemeWin32Classic.cs: Remove some old debug code that was
16964         causing flicker with the new double buffering code.
16965
16966 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
16967
16968         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
16969         behave like combobox and comboboxlist (still not sure if this is
16970         correct though).
16971
16972 2005-04-28  Jackson Harper  <jackson@ximian.com>
16973
16974         * ThemeWin32Classic.cs: Don't fill the middle of progress
16975         bars. This fills areas outside of the clip bounds that don't need
16976         to be filled.
16977
16978 2005-04-28  Jackson Harper  <jackson@ximian.com>
16979
16980         * Control.cs: Don't expose functionality to touch the image buffers.
16981         * ProgressBar.cs:
16982         * ListView.cs: We do not need to (and no longer can) manipulate
16983         the image buffers directly. All of this is handled by Control.
16984
16985 2005-04-28  Peter Bartok  <pbartok@novell.com>
16986
16987         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
16988           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
16989           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
16990
16991 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
16992
16993         * Combobox:
16994                 - Adjust control's height for non-simple comboboxes (bug fix)
16995                 - Remove dead code
16996         * MenuAPI.cs: remove unused var
16997         * ScrollBar.cs: remove unsed var
16998                  
16999         * ListBox.cs: unselect items when clearing
17000
17001 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17002
17003         * ListControl.cs: honors OnPositionChanged and default Selected Item
17004         * ListBox.cs: unselect items when clearing
17005
17006 2005-04-27  Jackson Harper  <jackson@ximian.com>
17007
17008         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17009         if a "correct" keyboard is not found. This will make us not crash,
17010         but might give some users bad keyboard layouts...seems to be the
17011         same thing rewind does.
17012
17013 2005-04-27  Jackson Harper  <jackson@ximian.com>
17014
17015         * BindingManagerBase.cs: Attach the current/position changed
17016         handlers to their respective events.
17017
17018 2005-04-27  Jackson Harper  <jackson@ximian.com>
17019
17020         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17021         not just a blit.
17022         * ThemeWin32Classic.cs: Don't fill the background for picture
17023         boxes. This could overright user drawing.
17024         * ComboBox.cs: Just fill the clipping rect not the entire client
17025         rect when drawing the background. This prevents pieces of the
17026         image buffer from getting overwritten and is theoretically faster.
17027
17028 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17029
17030         * ComboBox.cs: Databinding support fixes, fire missing events
17031         * ListControl.cs: implement missing methods and properties, fixes
17032         * ThemeWin32Classic.cs: Databiding support on Drawing
17033         * CheckedListBox.cs: Databinding support fixes, fire missing events
17034         * ListBox.cs: Databinding support fixes, fire missing events
17035         
17036 2005-04-25  Peter Bartok  <pbartok@novell.com>
17037
17038         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17039
17040 2005-04-25  Jackson Harper  <jackson@ximian.com>
17041
17042         * TreeView.cs: Use the horizontal scrollbars height not width when
17043         determining how much of the client area is available.
17044
17045 2005-04-25  Jackson Harper  <jackson@ximian.com>
17046
17047         * Control.cs: Double buffering is handled differently now. As per
17048         the spec, the extra buffer is created in the WM_PAINT message and
17049         passed down to the control's drawing code.
17050         * GroupBox.cs:
17051         * Label.cs:
17052         * CheckBox.cs:
17053         * ProgressBar.cs:
17054         * RadioButton.cs:
17055         * ColorDialog.cs:
17056         * ComboBox.cs:
17057         * PropertyGridView.cs:
17058         * UpDownBase.cs:
17059         * MessageBox.cs:
17060         * MenuAPI.cs:
17061         * ListView.cs:
17062         * ButtonBase.cs:
17063         * SizeGrip.cs:
17064         * ScrollBar.cs:
17065         * ListBox.cs:
17066         * TrackBar.cs:
17067         * ToolBar.cs:
17068         * PictureBox.cs:
17069         * DateTimePicker.cs:
17070         * StatusBar.cs:
17071         * TreeView.cs: Update to new double buffering system.
17072         * MonthCalendar.cs: Uncomment block, as Capture is now
17073         working. Update to new double buffering
17074         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17075         * PaintEventArgs.cs: New internal method allows us to set the
17076         graphics object. This is used for double buffering.
17077         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17078         rectangle. The internal paint_area var has been removed from
17079         StatusBar. The clipping rect should be used instead.
17080         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17081         * TabPage.cs: The RefreshTabs method was removed, so just call the
17082         tab controls Refresh method now.
17083         * TabControl.cs: Update to new double buffering. Make sure the
17084         handle is created before sizing the tab pages, otherwise we will
17085         get stuck in a loop.
17086
17087 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17088
17089         * LinkLabel.cs: Fix typo, bug #74719; patch
17090           from Borja Sanchez Zamorano
17091
17092 2005-04-22  Jackson Harper  <jackson@ximian.com>
17093
17094         * TreeNode.cs: Implement Handle stuff.
17095         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17096
17097 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17098
17099         * DataGridTextBoxColumn.cs: call base constructors, fixes
17100         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17101         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17102         * DataGridTableStyle.cs: implements create default column styles
17103         * DataGridBoolColumn.cs: which types can handle
17104         * DataGrid.cs: missing methods, fixes, new functionality
17105         * DataGridColumnStyle.cs: fixes
17106
17107 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17108         * FolderBrowserDialog.cs:
17109         - Use a thread to fill the TreeView
17110         - Adjusted some sizes
17111
17112 2005-04-19  Peter Bartok  <pbartok@novell.com>
17113
17114         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17115           property. Fixes #74360.
17116
17117 2005-04-19  Jackson Harper  <jackson@ximian.com>
17118
17119         * XEventQueue.cs: Lock when getting the lockqueue size.
17120         * PictureBox.cs: Call base OnPaint
17121         
17122 2005-04-19  Peter Bartok  <pbartok@novell.com>
17123
17124         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17125           messages were no longer being processed (this broke BeginInvoke)
17126
17127           
17128 2005-04-18  Jackson Harper  <jackson@ximian.com>
17129
17130         * TreeView.cs: buglet that caused node images to get drawn
17131         regardless of whether or not they were in the clipping rectangle.
17132
17133 2005-04-18  Jackson Harper  <jackson@ximian.com>
17134
17135         * CurrencyManager.cs: There are four rules for GetItemProperties:
17136         - If the type is an array use the element type of the array
17137         - If the type is a typed list, use the type
17138         - If the list contains an Item property that is not an object, use
17139         that property
17140         - use the first element of the list if there are any elements in
17141         the list.
17142         
17143 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17144
17145         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17146         click. This handles offsets for scrolling properly and reduces
17147         memory. Also fixed GetNode to not offset now that TopNode works
17148         properly.
17149         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17150         
17151 2005-04-17  Jackson Harper  <jackson@ximian.com>
17152
17153         * CursorConverter.cs: Initial implementation.
17154
17155 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17156
17157         * ListControl.cs: work towards complex data binding support on ListControl
17158         * CurrencyManager.cs: work towards complex data binding support on ListControl
17159         * ListBox.cs: work towards complex data binding support on ListControl
17160
17161
17162 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17163
17164         * GridTableStylesCollection.cs: fixes name and constructor
17165         * DataGridTableStyle.cs: fixes
17166         * DataGridBoolColumn.cs: fixes names and constructors
17167         * DataGrid.cs: define methods and properties. Some init implementations
17168         * DataGridCell.cs: define methods and properties. Some init implementations
17169         * GridTablesFactory.cs: Define methods and properties
17170
17171 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17172
17173         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17174         graphics port changes.  We still want the coordinates in global screen
17175         coordinates.
17176
17177 2005-04-14  Jackson Harper  <jackson@ximian.com>
17178
17179         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17180         check plus minus or checkbox clicks unless those features are enabled.
17181
17182 2005-04-14  Jackson Harper  <jackson@ximian.com>
17183
17184         * TreeView.cs: Add methods for setting the top and bottom visible
17185         nodes. TreeNode::EnsureVisible uses these methods.
17186         * TreeNode.cs: Implement EnsureVisible
17187
17188 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17189
17190         * Form.cs: Pospone menu assignation if the window has not been created yet
17191         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17192         size and position
17193
17194 2005-04-12  Jackson Harper  <jackson@ximian.com>
17195
17196         * TreeView.cs: Set the TopNode properly when scrolling
17197         occurs. This has the added benifit of reducing the amount of
17198         walking that needs to be done when drawing. Also removed an old
17199         misleading TODO.
17200         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17201         
17202 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17203
17204         * Timer.cs: fixes interval setting when the timer is already enabled
17205         
17206 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17207
17208         * FolderBrowserDialog.cs: First approach
17209
17210 2005-04-09  Peter Bartok  <pbartok@novell.com>
17211
17212         * FolderBrowserDialog: Added
17213
17214 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17215
17216         * LinkLabel.cs: move drawing code into the theme
17217         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17218         * Theme.cs: define DrawLinkLabel method
17219
17220 2005-04-05  Jackson Harper  <jackson@ximian.com>
17221
17222         * BindingContext.cs: Use weak references so these bad actors don't
17223         stay alive longer then they need to.
17224
17225 2005-04-05  Jackson Harper  <jackson@ximian.com>
17226
17227         * ListControl.cs: Basic implementation of complex databinding.
17228         * ComboBox.cs:
17229         * ListBox.cs: Add calls to ListControl databinding methods.
17230
17231 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17232
17233         * FileDialog.cs:
17234           - Don't change PopupButtonState to Normal when the
17235             PopupButton gets pressed several times.
17236           - Renamed ButtonPanel to PopupButtonPanel
17237
17238 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17239
17240         * ColorDialog.cs: Use cached objects instead of creating them
17241         * LinkLabel.cs: Use cached objects instead of creating them
17242         * Splitter.cs: Use cached objects instead of creating them
17243         * FontDialog.cs: Use cached objects instead of creating them
17244         * PropertyGridView.cs: Use cached objects instead of creating them
17245         * MessageBox.cs: Use cached objects instead of creating them
17246         * FileDialog.cs: Use cached objects instead of creating them
17247         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17248         * TreeView.cs: Use cached objects instead of creating them
17249         
17250 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17251
17252         * Control.cs: use Equals to compare the font since no == op
17253         * ScrollBar.cs: use Equals to compare the font since no == op
17254
17255 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17256
17257         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17258
17259 2005-04-01  Jackson Harper  <jackson@ximian.com>
17260
17261         * Binding.cs: Implement IsBinding.
17262         * BindingManagerBase.cs:
17263         * PropertyManager.cs:
17264         * CurrencyManager.cs: Add IsSuspended property.
17265
17266 2005-04-01  Jackson Harper  <jackson@ximian.com>
17267
17268         * Binding.cs: Had some IsAssignableFrom calls backwards.
17269
17270 2005-04-01  Jackson Harper  <jackson@ximian.com>
17271
17272         * Binding.cs: Handle null data members when pulling data.
17273         * PropertyManager.cs: Handle the data member being a property that
17274         does not exist.
17275
17276 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17277
17278         * DataGridTextBoxColumn.cs: fixes signature
17279         * DataGrid.cs: calls right constructor
17280
17281 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17282
17283         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17284         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17285         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17286         * DataGridTableStyle.cs: implements DataGridTableStyle
17287         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17288         * DataGridTextBox.cs: implements DataGridTextBox
17289         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17290
17291 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17292
17293         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17294
17295 2005-03-29  Peter Bartok  <pbartok@novell.com>
17296
17297         * Application.cs:
17298           - Properly implemented CompanyName property
17299           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17300             returns a path that includes CompanyName, ProductName and
17301             Version (fixes bug #70330)
17302
17303 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17304
17305         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17306           fixes bug #72588.
17307
17308 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17309
17310         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17311         
17312           - Added ReadOnly CheckBox
17313           - Further refactoring: moved some code from Open-/SaveFileDialog
17314             to FileDialog
17315
17316 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17317
17318         * OpenFileDialog.cs: Fixed CheckFileExists
17319         * FileDialog.cs:
17320           Moved FileView and DirComboBox outside FileDialog class.
17321           They can now be used outside FileDialog
17322
17323 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17324
17325         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17326         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17327
17328 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17329
17330         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17331           - Added missing CreatePrompt property in SaveDialog
17332           - Overall SaveDialog handling should be better now
17333           - Added non standard ShowHiddenFiles property
17334           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17335           - Added InitialDirectory and RestoreDirectory support
17336
17337 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17338
17339         * FileDialog.cs: Made dirComboBox usable
17340
17341 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17342
17343         * FileDialog.cs: Added Filter support (case sensitiv)
17344
17345 2005-03-24  Jackson Harper  <jackson@ximian.com>
17346
17347         * TabControl.cs: Need a couple more pixels for the lines.
17348
17349 2005-03-23  Jackson Harper  <jackson@ximian.com>
17350
17351         * TabControl.cs: Give the tab page focus when it is selected.
17352
17353 2005-03-23  Jackson Harper  <jackson@ximian.com>
17354
17355         * TabControl.cs: Account for the drawing of tabs borders when
17356         invalidating. If the slider was clicked dont do click detection on
17357         the tabs.
17358
17359 2005-03-23  Jackson Harper  <jackson@ximian.com>
17360
17361         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17362
17363 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17364
17365         * CategoryGridEntry.cs: Added
17366         * GridItem.cs: Added helper properties
17367         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17368         * GridEntry.cs: Updated code for collection
17369         * PropertyGrid.cs: Cleaned up some formatting
17370         * PropertyGridView.cs: Added drop down functionality for enums.
17371         * GridItemCollection.cs: Added enumerator logic
17372         * PropertyGridEntry.cs: Added
17373
17374 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17375
17376         * FileDialog.cs:
17377           - Removed unnecessary commented code
17378           - Fixed handling for entering the filename manually in the combobox
17379
17380 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17381
17382         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17383
17384 2005-03-18  Peter Bartok  <pbartok@novell.com>
17385
17386         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17387           them being touching the border
17388
17389 2005-03-18  Peter Bartok  <pbartok@novell.com>
17390
17391         * TextControl.cs: Quick hack to center text better
17392
17393 2005-03-18  Peter Bartok  <pbartok@novell.com>
17394
17395         * ControlPaint.cs:
17396           - Don't throw NotImplemented exceptions, just print a notice once
17397             instead (requested by Miguel). This makes running existing SWF
17398             apps a bit easier
17399         * Control.cs:
17400           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17401           - Added context menu trigger on right click
17402         * Panel.cs: Trigger invalidate on resize
17403         * StatusBar.cs:
17404           - Removed old double-buffer drawing
17405           - Added ResizeRedraw style to force proper update of statusbar
17406         * ListView.cs:
17407           - Removed debug output
17408         * ThemeWin32Classic.cs:
17409           - Fixed drawing of status bar, now draws Text property if there
17410             are no defined panels
17411
17412 2005-03-18  Jackson Harper  <jackson@ximian.com>
17413
17414         * ImageList.cs: When the image stream is set pull all the images
17415         from it.
17416         * ImageListStreamer.cs: Implement reading image list streams.
17417
17418 2005-03-18  Peter Bartok  <pbartok@novell.com>
17419
17420         * ThemeWin32Classic.cs (DrawPictureBox):
17421           - Fixed calculations for centered drawing
17422           - Fixed drawing for normal mode, not scaling the image on normal
17423
17424 2005-03-18  Peter Bartok  <pbartok@novell.com>
17425
17426         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17427           textbox
17428         * FileDialog.cs:
17429           - Made Open/Save button the accept button for FileDialog
17430           - Tied the cancel button to the IButtonControl cancel button
17431           - Save/Open now properly builds the pathname
17432           - Now handles user-entered text
17433           - Preventing crash on right-click if no item is selected
17434           - Fixed Text property, now uses contents of textbox
17435           - Fixed SelectedText property, now just returns the text part that
17436             is selected in the text box
17437
17438 2005-03-18  Jackson Harper  <jackson@ximian.com>
17439
17440         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17441         rect, make sure to de-adjust the interior rect after drawing the
17442         tab text.
17443
17444 2005-03-18  Peter Bartok  <pbartok@novell.com>
17445
17446         * MenuAPI.cs: Remove menu *before* executing selected action to
17447           prevent the menu from 'hanging around'
17448           
17449 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17450
17451         * XplatUIOSX.cs: Implemented WorkingArea property
17452
17453 2005-03-17  Peter Bartok  <pbartok@novell.com>
17454
17455         * XplatUIX11.cs: Fixed menu coord calculations
17456         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17457           for calculating offsets
17458
17459 2005-03-17  Peter Bartok  <pbartok@novell.com>
17460
17461         * Hwnd.cs: Do not consider menu presence for default client
17462           rectangle location/size
17463         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17464           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17465           translation functions
17466         * FileDialog.cs: Fixed (what I presume is a) typo
17467
17468 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17469
17470         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17471           X access (avoids X-Async errors)
17472
17473 2005-03-16  Jackson Harper  <jackson@ximian.com>
17474
17475         * TabControl.cs: Raise the SelectedIndexChanged event.
17476
17477 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17478
17479         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17480           - Removed vertical ToolBar and replaced it with a custom panel
17481             (desktop and home button already work)
17482           - Added Help button (some controls get resized or relocated then)
17483           - Draw correct text depending on Open or Save.
17484           - Fixed some typos...
17485
17486 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17487
17488         * ScrollBar.cs:
17489           - Only change Maximum and Minimum when need it (bug fix)
17490
17491 2005-03-15  Peter Bartok  <pbartok@novell.com>
17492
17493         * Form.cs: Use Handle for icon, to trigger creation if
17494           the window does not yet exist
17495         * Control.cs:
17496           - CanSelect: Slight performance improvement
17497           - Focus(): Preventing possible recursion
17498           - Invalidate(): Removed ControlStyle based clear flag setting
17499           - WM_PAINT: fixed logic for calling OnPaintBackground
17500           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17501             EraseWindowBackground if the control doesn't paint background
17502         * XplatUIWin32.cs:
17503           - Moved EraseWindowBackground() method to internal methods
17504           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17505             is sent via SendMessage on BeginPaint call on Win32
17506         * XplatUIX11.cs:
17507           - Added EraseWindowBackground() method
17508           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17509             PaintEventStart, which more closely matches Win32 behaviour
17510           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17511           - Fixed SetFocus() to properly deal with client and whole windows
17512         * Hwnd.cs: Added ErasePending property
17513         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17514         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17515
17516 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17517
17518         * XplatUIOSX.cs:
17519           - Fix hard loop when timers exist.
17520           - Fix bugs with middle and right click for 3 button mice.
17521
17522 2005-03-11  Peter Bartok  <pbartok@novell.com>
17523
17524         * XplatUIX11.cs:
17525           - get_WorkingArea: Need to call X directly, GetWindowPos only
17526             returns cached data now
17527           - Added sanity check to GetWindowPos hwnd usage
17528
17529 2005-03-11  Jackson Harper  <jackson@ximian.com>
17530
17531         * BindingManagerBase.cs: This method isn't used anymore as
17532         PullData now updates the data in the control.
17533
17534 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17535
17536         * Form.cs: fixes menu drawing on X11
17537         * MenuAPI.cs:  fixes menu drawing on X11
17538
17539 2005-03-11  Peter Bartok  <pbartok@novell.com>
17540
17541         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17542           from Jonathan Gilbert; should fix bug #73606
17543         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17544           in Screen coordinates. Thanks, Jordi.
17545         * Form.cs: Added missing attribute
17546
17547 2005-03-11  Peter Bartok  <pbartok@novell.com>
17548
17549         * Form.cs:
17550           - Rudimentary Mdi support
17551           - Removed outdated FormParent code
17552           - Implemented lots of missing properties and methods, still missing
17553             transparency support
17554           - Added missing attributes
17555           - Implemented support for MaximumBounds
17556           - Added firing of various events
17557         * XplatUI.cs: Added SetIcon() method
17558         * XplatUIDriver.cs: Added SetIcon() abstract
17559         * XplatUIOSX.cs: Stubbed out SetIcon() method
17560         * XplatUIX11.cs:
17561           - Implemented SetIcon() support
17562           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17563           - Switched to unix line endings
17564         * XplatUIWin32.cs:
17565           - Made POINT internal so for can access it as part of MINMAX
17566           - Implemented SetIcon() support
17567           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17568             native Mdi support again, might have to go managed)
17569         * Control.cs: Now fires the StyleChanged event
17570         * MdiClient.cs: Added; still mostly empty
17571
17572 2005-03-10  Peter Bartok  <pbartok@novell.com>
17573
17574         * SaveFileDialog.cs: Added emtpy file
17575
17576 2005-03-08  Peter Bartok  <pbartok@novell.com>
17577
17578         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17579           in turn triggers OnCreateContro) when creating a handle for the
17580           first time.
17581         * TextControl.cs: Fixed endless loop in certain cases when
17582           replacing the current selection
17583
17584 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17585
17586         * ScrollBar.cs:
17587           - Honors NewValue changes in Scroll events allowing apps to change it
17588           - Adds First and Last Scroll events
17589           - Fixes Thumb events
17590
17591 2005-03-07  Peter Bartok  <pbartok@novell.com>
17592
17593         * Hwnd.cs: Added DefaultClientRectangle property
17594         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17595           more detailed debug information
17596         * XplatUIX11.cs:
17597           - Fixed size-change feedback loop, where we would pull an old size
17598             off the queue and mistakenly change our window's size to an
17599             earlier value
17600           - Now compressing ConfigureNotify events, to reduce looping and
17601             redraw issues
17602         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17603           is called
17604
17605 2005-03-07  Jackson Harper  <jackson@ximian.com>
17606
17607         * Binding.cs: Push data pushes from data -> property. Check if the
17608         property is readonly when attempting to set it.
17609
17610 2005-03-07  Jackson Harper  <jackson@ximian.com>
17611
17612         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17613         instead of IsSubclassOf. Pulling data now sets the value on the
17614         control.
17615         * PropertyManager.cs:
17616         * CurrencyManager.cs: Just need to pull data when updating now,
17617         because PullData will set the value on the control.
17618
17619 2005-03-04  Jackson Harper  <jackson@ximian.com>
17620
17621         * Binding.cs: Implement data type parsing and converting on pulled
17622         data. TODO: Are there more ways the data can be converted?
17623
17624 2005-03-04  Jackson Harper  <jackson@ximian.com>
17625
17626         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17627         controls Validating method so we can repull the data when the
17628         control loses focus.
17629
17630 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17631
17632         * ColumnHeader.cs:
17633           - Fixes null string format
17634           
17635         * ListView.cs:
17636           - Adds enum type checks
17637           - Fixes redrawing and recalc need after changing some properties
17638           - Fixes on focus_item set after the event
17639           - Fixes adding columns after the control has been created
17640           
17641         * ThemeWin32Classic.cs:
17642           - Fixes CheckBox focus rectangle
17643           - Fixes ColumnHeader drawing
17644
17645
17646 2005-03-03  Jackson Harper  <jackson@ximian.com>
17647
17648         * Binding.cs: Bind to <Property>Changed events so we can detect
17649         when properties are changed and update the data.
17650
17651 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17652
17653         * ImageList.cs:
17654           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17655           - Fixes ImageList constructor with ImageList container
17656           - Fixes image scaling (wrong parameters at DrawImage)
17657
17658 2005-02-02  Jackson Harper  <jackson@ximian.com>
17659
17660         * Binding.cs: Make property searches case-insensitive. Eliminate
17661         some duplicated code.
17662
17663 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17664
17665         * ComboBox.cs:
17666                 - Handle focus event
17667                 - Fix scrollbar events
17668                 - Discard highlighted item if remove it
17669                 - Fixes SelectedItem with strings
17670
17671 2005-03-01  Peter Bartok  <pbartok@novell.com>
17672
17673         * Control.cs:
17674           - Fixed Visible property, now follows (once again) parent chain
17675             to return false if any control in the chain is visible=false
17676           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17677           - Fixed several places where is_visible instead of Visible was used
17678           - Implemented FIXME related to focus selection when setting focused
17679             control to be invisible
17680
17681         * XplatUIWin32.cs: Now using proper method to find out if window is
17682           visible. Thanks to Jordi for pointing it out
17683
17684 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17685
17686         * ComboBox.cs: show/hide scrollbar instead of creating it
17687
17688 2005-02-27  Jackson Harper  <jackson@ximian.com>
17689
17690         * CurrencyManager.cs: Add PositionChanged stuff.
17691
17692 2005-02-27  Peter Bartok  <pbartok@novell.com>
17693
17694         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17695         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17696         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17697         * XplatUIX11.cs:
17698           - Implemented GetMenuDC()
17699           - Implemented GetMenuOrigin()
17700           - Implemented ReleaseMenuDC()
17701           - Implemented generation of WM_NCPAINT message
17702           - Implemented generation and handling of WM_NCCALCSIZE message
17703         * Form.cs: Added debug helper message for Jordi's menu work
17704         * Hwnd.cs:
17705           - Modified ClientRect property; added setter, fixed getter to handle
17706             setting of ClientRect
17707           - Added MenuOrigin property
17708
17709 2005-02-26  Peter Bartok  <pbartok@novell.com>
17710
17711         * XplatUIX11.cs:
17712           - Destroys the caret if a window that's being destroyed contains it
17713           - Ignores expose events coming from the X11 queue for windows that
17714             already are destroyed
17715           - Now uses the proper variable for handling DestroyNotify, before we
17716             marked the wrong window as destroyed
17717           - Improved/added some debug output
17718
17719 2005-02-26  Peter Bartok  <pbartok@novell.com>
17720
17721         * X11Keyboard.cs: Fixes to work on 64bit systems
17722
17723 2005-02-26  Peter Bartok  <pbartok@novell.com>
17724
17725         * Control.cs:
17726           - Now calling OnHandleDestroyed from DestroyHandle()
17727             instead of Dispose()
17728           - Removed bogus call to controls.Remove() from DestroyHandle()
17729
17730 2005-02-26  Peter Bartok  <pbartok@novell.com>
17731
17732         * Control.cs: Properly destroy child windows when our handle is
17733           destroyed
17734
17735 2005-02-25  Peter Bartok  <pbartok@novell.com>
17736
17737         * XplatUI.cs:
17738           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17739           - Alphabetized Static Methods and Subclasses
17740
17741         * XplatUIX11.cs:
17742           - Added XException class to allow custom handling of X11 exceptions
17743           - Created custom X11 error handler, tied into XException class
17744           - Added support for MONO_XEXCEPTIONS env var to allow the user
17745             to either throw an exception on X errors or continue running
17746             after displaying the error
17747           - Added handling of DestroyNotify message
17748           - Added handler for CreateNotify message (still disabled)
17749           - Improved (tried to at least) Where method to provide file and lineno
17750         * X11Structs.cs:
17751           - Added XErrorHandler delegate
17752           - Added XRequest enumeration (to suppor translation of errors)
17753
17754 2005-02-25  Jackson Harper  <jackson@ximian.com>
17755
17756         * PropertyManager.cs: Implement editing features
17757         * CurrencyManager.cs:
17758         * Binding.cs: First attempt at UpdateIsBinding
17759         * BindingManagerBase.cs: Call UpdateIsBinding before
17760         pushing/pulling data.
17761
17762 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17763
17764         * MenuAPI.cs: Respect disabled items
17765         * ThemeWin32Classic.cs
17766                 - Caches ImageAttributes creation for DrawImageDisabled
17767                 - Fixes vertical menu line drawing
17768                 - Draws disabled arrows in disable menu items
17769
17770 2005-02-24  Peter Bartok  <pbartok@novell.com>
17771
17772         * Hwnd.cs:
17773           - Added UserData property to allow associating arbitrary objects
17774             with the handle
17775           - Fixed leak; now removing Hwnd references from static windows array
17776         * XplatUIWin32.cs:
17777           - Fixed Graphics leak in PaintEventEnd
17778           - Removed usage of HandleData, switched over to Hwnd class
17779         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17780
17781 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17782
17783         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17784         * ScrollBar.cs: Fixes bug
17785         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17786          keyboard navigation enhancements
17787
17788 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17789
17790         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17791         * GroupBox.cs: Add control styles
17792         * Label.cs: Add control styles
17793         * UpDownBase.cs: Add control styles
17794         * ListBox.cs: Add control styles
17795         * XplatUIWin32.cs: Fixes wrong parameter order
17796
17797
17798 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17799
17800         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17801
17802 2005-02-23  Jackson Harper  <jackson@ximian.com>
17803
17804         * PropertyManager.cs: Implement property binding. This doesn't
17805         seem to work yet though as (I think) there are some bugs in
17806         System.ComponentModel.PropertyDescriptor.
17807         * BindingContext.cs: Use new PropertyManager constructor.
17808
17809 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17810
17811         * ProgressBar.cs: use clip region in ProgressBar
17812         * ThemeWin32Classic.cs: use clip region in ProgressBar
17813
17814 2004-02-22  Jackson Harper  <jackson@ximian.com>
17815
17816         * BindingsCollection.cs: Remove some debug code.
17817
17818 2005-02-22  Jackson Harper  <jackson@ximian.com>
17819
17820         * BindingContext.cs:
17821         * ControlBindingsCollection.cs:
17822         * CurrencyManager.cs:
17823         * Binding.cs:
17824         * BindingManagerBase.cs: Initial implementation
17825         * BindingsCollection.cs: Add an internal contains method that the
17826         BindingManagerBase uses to ensure bindings aren't added twice to
17827         the collection.
17828         * PropertyManager.cs: Stubbed out.
17829         * Control.cs:
17830         * ContainerControl.cs: Hook up databinding
17831         
17832 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17833
17834         * XplatUIOSX.cs:
17835           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17836           Fixed Invalidate/Update chain.
17837           Fixed tons of other minor bugs (this is almost a complete rewrite).
17838
17839 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17840
17841         * ComboBox.cs: do subcontrol creation when the control is created
17842
17843 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17844
17845         * Label.cs: fixes image drawing (image and imagelist)
17846         * ThemeWin32Classic.cs: cache brushes
17847         
17848 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17849
17850         * Form.cs: Move menu drawing code to Theme class
17851         * ComboBox.cs: Move ComboBox drawing code to Theme class
17852         * MenuItem.cs: Move menu drawing code to Theme class
17853         * MenuAPI.cs: Move menu drawing code to Theme class
17854         * ThemeWin32Classic.cs: New methods
17855         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17856         * ListBox.cs: Move Listbox drawing code to Theme class
17857         * Theme.cs: New methods
17858
17859 2005-02-20  Peter Bartok  <pbartok@novell.com>
17860
17861         * Control.cs:
17862           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17863             only process mnemonics on those)
17864           - Fixed event sequence for key handling; first calling
17865             ProcessKeyEventArgs now
17866         * TextBoxBase.cs:
17867           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17868             for processing non-character keys
17869           - Fixed WM_CHAR to generate proper event sequence before processing
17870         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17871           generation
17872
17873 2005-02-19  Peter Bartok  <pbartok@novell.com>
17874
17875         * UserControl.cs: Added TextChanged event; added attributes
17876         * SizeGrip.cs: Implemented resizing and optional display of grip
17877         * Form.cs: Fixed attribute
17878         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17879           Changed meaning of ScrollWindow bool argument; instead of the
17880           clear attribute (which will be true usually anyway), it gives the
17881           option of moving child controls as well.
17882         * XplatUIX11.cs:
17883           - Changed to match new ScrollWindow argument
17884           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17885             now handles the implicit parent window a WM puts around us
17886         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17887           to work)
17888         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17889         * TreeView.cs: Adjusted to new ScrollWindow arguments
17890
17891 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17892
17893         * Form.cs: Menu integration with non-client area
17894         * MenuItem.cs: Menu integration with non-client area
17895         * MenuAPI.cs: Menu integration with non-client area
17896
17897 2005-02-18  Peter Bartok  <pbartok@novell.com>
17898
17899         * MethodInvoker.cs: Added
17900         * MdiLayout.cs: Added
17901         * SendKeys.cs: Started implementation
17902         * ErrorIconAlignment.cs: Added
17903
17904 2005-02-18  Peter Bartok  <pbartok@novell.com>
17905
17906         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17907         * Form.cs: Added handling for Menu-related Non-client messages
17908
17909 2005-02-17  Peter Bartok  <pbartok@novell.com>
17910
17911         * UpDownBase.cs: Fixed typo, compilation errors
17912         * DomainUpDown.cs: Fixed attribute value
17913
17914 2005-02-16  Miguel de Icaza  <miguel@novell.com>
17915
17916         * UpDownBase.cs: Attach entry events.
17917         Propagate events.
17918         Add ForeColor property, Focused, InterceptArrowKeys (interception
17919         does not work yet).
17920
17921 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
17922
17923         * Form.cs:
17924                 - Redraw non client are on Setmenu
17925                 - Calc proper menu starting point
17926
17927 2005-02-17  Peter Bartok  <pbartok@novell.com>
17928
17929         * Application.cs: Fixed message_filter check
17930
17931 2005-02-17  Peter Bartok  <pbartok@novell.com>
17932
17933         * Application.cs: Now calls registered message filters
17934         * DockStyle.cs: Fixed attribute
17935         * Form.cs: Fixed attribute
17936         * Menu.cs: Fixed attribute
17937         * ToolTip.cs: Fixed attribute
17938         * TreeNode.cs: Added missing attributes and arranged in regions
17939         * PropertyGrid.cs: Fixed signatures
17940         * TreeNodeCollection.cs: Added attributes
17941         * Splitter.cs: Added missing attributes; arranged into regions
17942         * TabPage.cs: Added missing attributes; arranged into regions
17943         * TextBoxBase.cs: Added missing attributes
17944         * TextBox.cs: Added missing attributes
17945         * ArrangeDirection.cs: Added missing attributes
17946         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
17947         * ToolBarButton.cs: Fixed attributes
17948         * AnchorStyles.cs: Fixed attribute
17949         * TrackBar.cs: Fixed attributes
17950         * TabControl.cs: Added missing attributes and arranged into regions
17951         * ToolBar.cs: Fixed attribute
17952         * StatusBar.cs: Fixed signature, organized into regions and added
17953           attributes
17954         * StatusBarPanel.cs: Fixed attributes
17955         * ContentsResizedEventArgs.cs: Implemented
17956         * ContentsResizedEventHandler.cs: Implemented
17957         * DateBoldEventArgs.cs: Implemented
17958         * DateBoldEventHandler.cs: Implemented
17959         * UpDownEventArgs.cs: Implemented
17960         * UpDownEventHandler.cs: Implemented
17961         
17962 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
17963
17964         * Form.cs: first Menu NC refactoring
17965         * MenuAPI.cs: first Menu NC refactoring
17966         
17967 2005-02-16  Peter Bartok  <pbartok@novell.com>
17968
17969         * ImeMode.cs: Added missing attributes
17970         * Menu.cs: Fixed attribute
17971         * GroupBox.cs: Fixed attribute
17972         * Label.cs: Fixed attribute
17973         * ColorDialog.cs (RunDialog): Removed TODO attribute
17974         * ComboBox.cs: Fixed attributes
17975         * ListControl.cs: Added missing attributes
17976         * PropertyGrid.cs: Fixed attributes
17977         * Control.cs: Fixed attributes
17978         * ListViewItem.cs: Added TypeConverter attribute
17979         * NotifyIcon.cs: Fixed attributes
17980         * ListView.cs: Fixed attributes
17981         * ButtonBase.cs: Fixed attribute
17982         * ImageList.cs: Added missing attributes
17983         * ContainerControl.cs: Fixed signature
17984         * CheckedListBox.cs: Fixed attribute; added missing attributes
17985         * Panel.cs: Fixed attributes
17986         * PropertyTabChangedEventArgs.cs: Added missing attribute
17987         * PropertyValueChangedEventArgs.cs: Added missing attribute
17988         * Binding.cs: Fixed attribute
17989         * ListViewItemConverter: Implemented ListViewSubItemConverter class
17990         * ListBox.cs: Fixed attribute; added missing attributes;
17991         * ScrollableControl.cs: Added missing attributes
17992         * PictureBox.cs: Added missing attributes; implemented missing property
17993         * DateTimePicker.cs: Added missing attributes
17994         * Theme.cs (ToolWindowCaptionHeight): Fixed type
17995         * MonthCalendar.cs: Fixed attributes
17996         * StatusBarPanel.cs: Added missing attributes
17997         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
17998
17999 2005-02-16  Peter Bartok  <pbartok@novell.com>
18000
18001         * TextBoxBase.cs: The previous method to enforce height yet remember
18002           the requested high was less than ideal, this is an attempt to do
18003           it better.
18004         * Control.cs: Added comment about possible problem
18005         * Copyright: Updated format
18006         * GridItemType.cs: Fixed swapped values
18007
18008 2005-02-15  Jackson Harper  <jackson@ximian.com>
18009
18010         * BaseCollection.cs: Use property so we never access an
18011         uninitialized list. Also initialize the list in the property.
18012
18013 2005-02-15  Peter Bartok  <pbartok@novell.com>
18014
18015         * GroupBox.cs (ProcessMnemonic): Implemented
18016         * Label.cs (ProcessMnemonic): Implemented
18017         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18018           hotkeys
18019
18020 2005-02-15  Peter Bartok  <pbartok@novell.com>
18021
18022         * RadioButton.cs (ProcessMnemonic): Implemented
18023         * CheckBox.cs (ProcessMnemonic): Implemented
18024         * Control.cs:
18025           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18026             handling
18027           - Added internal method to allow calling ProcessMnemonic from other
18028             controls
18029         * ContainerControl.cs:
18030           - Started support for handling validation chain handling
18031           - Implemented ProcessMnemonic support
18032           - Added Select() call to Active, to make sure the active control
18033             receives focus
18034         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18035           FormParent rewrite)
18036         * ThemeWin32Classic.cs:
18037           - DrawCheckBox(): Fixed stringformat to show hotkeys
18038           - DrawRadioButton(): Fixed stringformat to show hotkeys
18039         * CommonDialog.cs: Removed WndProc override, not needed
18040
18041 2005-02-14  Peter Bartok  <pbartok@novell.com>
18042
18043         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18044           missed those in the rewrite
18045
18046 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18047
18048         * NumericUpDown.cs (Increment, ToString): Add.
18049         (DecimalPlaces): implement.
18050         
18051         Add attributes.
18052         
18053         * UpDownBase.cs: Add the designer attributes.
18054
18055 2005-02-13  Peter Bartok  <pbartok@novell.com>
18056
18057         * Panel.cs: Removed border_style, now in Control
18058         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18059           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18060
18061 2005-02-13  Peter Bartok  <pbartok@novell.com>
18062
18063         * MouseButtons.cs: Added missing attributes
18064         * XplatUIStructs.cs: Added enumeration for title styles
18065         * LeftRightAlignment.cs: Added missing attributes
18066         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18067           it compatible with Graphics.FromHwnd()
18068         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18069         * Keys.cs: Added missing attributes
18070         * SelectionRange.cs: Added missing attributes
18071         * SelectionRangeConverter.cs: Added
18072         * XplatUI.cs:
18073           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18074             ReleaseMenuDC methods
18075           - Renamed ReleaseWindow to UngrabWindow
18076           - Added proper startup notice to allow version identification
18077         * Form.cs:
18078           - Added missing attributes
18079           - Removed FormParent concept
18080         * Label.cs: Removed border_style field, now in Control
18081         * RadioButton.cs: Now properly selects RadioButton when focus is
18082           received
18083         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18084         * Control.cs:
18085           - Added missing attributes
18086           - Added borderstyle handling
18087           - Removed FormParent concept support
18088           - Fixed calls to XplatUI to match changed APIs
18089           - Fixed bug that would case us to use disposed Graphics objects
18090           - Removed unneeded internal methods
18091           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18092           - SelectNextControl(): Fixed to properly check common parents
18093         * TextBoxBase.cs: Removed border_style field (now in Control)
18094         * MessageBox.cs:
18095           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18096             fixed calculations for form size
18097           - Added support for localized strings and icons
18098           - Improved form size calculations, added border
18099         * ListView.cs: Removed border_style field (now in Control)
18100         * X11Structs.cs: Moved several structs from X11 driver here
18101         * X11Keyboard.cs: Changed debug message
18102         * Application.cs: Removed FormParent concept support
18103         * CommonDialog.cs:
18104           - Resetting end_modal flag
18105           - Removed FormParent concept support
18106         * NativeWindow.cs: Removed FormParent concept support
18107         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18108           Client area and Non-Client whole window to allow support for WM_NC
18109           messages
18110         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18111           prevent using it until it supports Hwnd as per Geoff Norton's request
18112         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18113         * PictureBox.cs: Removed border_style field, now in Control
18114         * XplatUIWin32.cs: Added new driver methods
18115
18116 2005-02-12  Peter Bartok  <pbartok@novell.com>
18117
18118         * OpacityConverter.cs: Implemented
18119         * Hwnd.cs: Internal class to support drivers that need to emulate
18120           client area/non-client area window behaviour
18121
18122 2005-02-11  Peter Bartok  <pbartok@novell.com>
18123
18124         * KeysConverter.cs: Implemented
18125
18126 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18127
18128         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18129         * LinkLabel: Added missing attributes
18130         * MainMenu.cs: fixes ToString
18131         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18132         * ListBox.cs: fixes event position
18133         * TrackBar.cs: adds missing attributes and events
18134         
18135 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18136
18137         * MenuItem.cs: Use SystemInformation and bug fixes
18138         * MenuAPI.cs: Use SystemInformation and bug fixes
18139
18140 2005-02-09  Jackson Harper  <jackson@ximian.com>
18141
18142         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18143         their keystate otherwise things like VK_MENU get stuck "on".
18144
18145 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18146
18147         * ListBox.cs: Fixes AddRange bug
18148         
18149 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18150
18151         * ProgressBar.cs
18152                 - Add missing attributes
18153                 - Add missing method
18154                 
18155         * CheckedListBox.cs: Added missing attributes
18156                 - Add missing attributes
18157                 - Remove extra method
18158         
18159         * ComboBox.cs: Added missing attributes
18160         * VScrollBar.cs: Added missing attributes
18161         * ScrollBar.cs:  Added missing attributes
18162         * ListBox.cs: Fixes signature, add missing consts
18163         * LinkArea.cs:   Added missing attributes
18164         
18165
18166 2005-02-08  Peter Bartok  <pbartok@novell.com>
18167
18168         * Menu.cs: Added missing attributes
18169         * MainMenu.cs: Added missing attributes
18170         * GroupBox.cs: Added missing attributes
18171         * Label.cs: Added missing attributes
18172         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18173         * ColorDialog.cs:
18174           - Added Instance and Options properties
18175           - Added missing attributes
18176         * Cursor.cs: Made Serializable
18177         * NotifyIcon: Added missing attributes
18178         * MenuItem.cs: Added missing attributes
18179         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18180         * Panel.cs: Added Missing attributes
18181         * MonthCalendar.cs: Fixed CreateParams
18182
18183 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18184         
18185         * LinkLabel.cs:
18186                 - Fixes signature
18187                 - Fixes issues with links
18188                 - Adds the class attributes
18189
18190 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18191         
18192         * ComboBox.cs:
18193                 - Fixes button when no items available in dropdown
18194                 - Fixes repainting problems
18195                 - Adds the class attributes
18196                 
18197 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18198
18199         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18200         the current theme.  Cache these on startup.
18201
18202 2005-02-07  Jackson Harper  <jackson@ximian.com>
18203
18204         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18205         the scrollbar buttons when they are depressed.
18206
18207 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18208
18209         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18210         Get the display size from the main displayid.  We currently dont
18211         support multiple display configurations.
18212
18213 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18214
18215         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18216
18217 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18218
18219         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18220
18221 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18222
18223         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18224
18225 2005-02-04  Jackson Harper  <jackson@ximian.com>
18226
18227         * ThemeWin32Classic.cs: Respect the clipping rect when
18228         drawing. Only fill the intersection of clips and rects so there
18229         isn't a lot of large fills.
18230         * ScrollBar.cs: Pass the correct clipping rect to the theme
18231         engine. Remove some debug code.
18232
18233 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18234         
18235         * DateTimePicker.cs:
18236                 - Fixed crash on DateTime.Parse, use Constructor instead
18237
18238 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18239         
18240         * MenuItem.cs:
18241         * MenuAPI.cs:
18242                 - Owner draw support (MeasureItem and DrawItem)
18243
18244 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18245         
18246         *  Menu.cs:
18247                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18248                 - Fixes MenuItems.Add range
18249         * MenuItem.cs:
18250                 - MergeMenu and Clone and CloneMenu functions
18251
18252 2005-02-03  Jackson Harper  <jackson@ximian.com>
18253
18254         * ScrollBar.cs: Make abstract
18255         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18256         is abstract.
18257
18258 2005-02-03  Jackson Harper  <jackson@ximian.com>
18259
18260         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18261         all the unneeded refreshes and uses invalidates with properly
18262         computed rects.
18263
18264 2005-02-03  Peter Bartok  <pbartok@novell.com>
18265
18266         * ComponentModel.cs: Added
18267         * IDataGridEditingService.cs: Added
18268         * Timer.cs: Added missing attributes
18269         * ToolTip.cs: Added missing attributes
18270
18271 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18272
18273         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18274
18275 2005-02-03  Peter Bartok  <pbartok@novell.com>
18276
18277         * ListBox.cs: Added missing attributes
18278
18279 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18280         
18281         * ListBox.cs:
18282                 - Fixes font height after font change
18283                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18284                 
18285 2005-02-02  Peter Bartok  <pbartok@novell.com>
18286
18287         * HandleData.cs: Introduced static methods to allow class
18288           to be more self-contained and track it's own HandleData objects
18289         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18290           HandleData to use new static methods
18291
18292 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18293
18294         * Combobox.cs:
18295                 - Fixes default size and PreferredHeight
18296                 - Missing events
18297                 - ObjectCollection.Insert implementation
18298                 
18299         * ListControl.cs
18300                 - Fixes signature
18301         * ListBox.cs:
18302                 - Several fixes
18303                 - ObjectCollection.Insert implementation
18304                 - No selection after clean
18305                 - Small fixes
18306
18307 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18308
18309         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18310
18311 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18312
18313         * Combobox.cs:
18314                 - Caches ItemHeight calculation for OwnerDrawVariable
18315                 - Handles dropdown properly
18316                 - Fixes several minor bugs
18317
18318 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18319
18320         * ListBox.cs:
18321                 - Fixes 71946 and 71950
18322                 - Fixes changing Multicolumn on the fly
18323                 - Fixes keyboard navigation on Multicolumn listboxes
18324
18325 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18326         
18327         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18328         crash reporter log.
18329
18330 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18331
18332         * XplatUIOSX.cs: Allow applications to actually exit.
18333
18334 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18335
18336         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18337         their parent at creation time rather than lazily later.  Fixes a major
18338         regression we were experiencing.
18339
18340 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18341
18342         * ThemeWin32Classic.cs: more date time picker painting fixes
18343         * DateTimePicker.cs: more monthcalendar drop down fixes
18344         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18345
18346 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18347
18348         * ScrollBar.cs:
18349                 - When moving the thumb going outside the control should stop the moving
18350                 - Adds the firing of missing events
18351                 - Fixes no button show if Size is not specified
18352                 - End / Home keys for keyboard navigation
18353
18354 2005-01-30  Peter Bartok  <pbartok@novell.com>
18355
18356         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18357           sanity check to prevent theoretical loop
18358         * XplatUIWin32.cs (SetVisible): Removed debug output
18359         * XplatUIX11.cs (SystrayChange): Added sanity check
18360         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18361         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18362           behaviour, valid until the X11 client window rewrite is done
18363         * TextBox.cs (ctor): Setting proper default foreground and background
18364           colors
18365
18366 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18367
18368         * Theme: Added DrawDateTimePicker to interface
18369         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18370         * DateTimePicker.cs: Created (still needs keys and painting code)
18371         * DateTimePickerFormat.cs: added
18372         * MonthCalendar.cs: fixed CreateParams for popup window mode
18373           
18374 2005-01-29  Peter Bartok  <pbartok@novell.com>
18375
18376         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18377           this should also the calculations for ligher/darker
18378         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18379
18380 2005-01-29  Peter Bartok  <pbartok@novell.com>
18381
18382         * ArrangeDirection.cs: Added
18383         * ArrangeStartingPositon.cs: Added
18384         * SystemInformation.cs: Implemented
18385         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18386           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18387           used by SystemInformation class
18388         * X11Strucs.cs: Added XSizeHints structure
18389         * MenuAPI.cs:
18390           - Fixed CreateParams to make sure the menu window is always visible
18391           - TrackPopupMenu: Added check to make sure we don't draw the
18392             menu offscreen
18393
18394 2005-01-29  Peter Bartok  <pbartok@novell.com>
18395
18396         * HandleData.cs: Added method for altering invalid area
18397         * TextBoxBase.cs: Implemented TextLength
18398
18399 2005-01-28  Peter Bartok  <pbartok@novell.com>
18400
18401         * XplatUIX11.cs: Improvement over last patch, not sending
18402           the WM_PAINT directly anymore, instead we scroll any pending
18403           exposed areas and let the system pick out the WM_PAINT later
18404
18405 2005-01-28  Peter Bartok  <pbartok@novell.com>
18406
18407         * SWF.csproj: Deleted, no longer used. Instead,
18408           Managed.Windows.Forms/SWF.csproj should be used
18409         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18410           directly, to avoid a potential race condition with the next
18411           scroll
18412
18413 2005-01-28  Peter Bartok  <pbartok@novell.com>
18414
18415         * XplatUI.cs: Made class internal
18416
18417 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18418
18419         * CheckedListBox.cs:
18420                 - Draw focus
18421                 - Fixed Drawing
18422                 - Missing methods and events
18423
18424 2005-01-27  Peter Bartok  <pbartok@novell.com>
18425
18426         * Application.cs (Run): Don't use form if we don't have one
18427
18428 2005-01-27  Peter Bartok  <pbartok@novell.com>
18429
18430         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18431
18432 2005-01-27  Peter Bartok  <pbartok@novell.com>
18433
18434         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18435         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18436         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18437         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18438         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18439         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18440         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18441         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18442         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18443         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18444         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18445         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18446
18447 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18448
18449         * Combobox.cs:
18450                 - Draw focus on Simple Combobox
18451                 - Fixes drawing issues
18452                 - fixes 71834
18453
18454 2005-01-27  Peter Bartok  <pbartok@novell.com>
18455
18456         * Form.cs:
18457           - Place window in default location, instead of hardcoded 0/0
18458           - Send initial LocationChanged event
18459         * Control.cs:
18460           - UpdateBounds after creation to find out where the WM placed us
18461           - Make sure that if the ParentForm changes location the Form
18462             is notified
18463         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18464             to the root, but to whatever the WM placed around us.
18465             Translate to root coordinates before returning toplevel
18466             coordinates
18467         * XplatUIWin32.cs: Removed debug output
18468         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18469           flag to GetWindowPos, to allow translation of coordinates on X11
18470
18471 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18472
18473         * ListBox.cs: connect LostFocus Event
18474
18475 2005-01-27  Peter Bartok  <pbartok@novell.com>
18476
18477         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18478           XplatUIX11.cs: Extended the Systray API
18479         * Form.cs: Removed debug output
18480         * Application.cs: Fixed focus assignment, always need to call
18481           XplatUI.Activate() since Form.Activate() has rules that may
18482           prevent activation
18483         * NotifyIcon.cs: Should be complete now
18484         * ToolTip.cs: Worked around possible timer bug
18485
18486 2005-01-27  Jackson Harper  <jackson@ximian.com>
18487
18488         * TabControl.cs:
18489         - Only invalidate the effected tabs when the
18490         selected index changes. This reduces drawing and gets rid of some
18491         flicker.
18492         - Only refresh if the tabs need to be shifted, otherwise only
18493         invalidate the slider button.
18494         - On windows the tabs are not filled to right if the slider is
18495         visible.
18496         
18497 2005-01-27  Jackson Harper  <jackson@ximian.com>
18498
18499         * TabControl.cs: Only refresh on mouseup if we are showing the
18500         slider. Also only invalidate the button whose state has changed.
18501
18502 2005-01-26  Peter Bartok  <pbartok@novell.com>
18503
18504         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18505         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18506           and SystrayRemove() methods
18507         * XplatUIOSX.cs: Stubbed Systray methods
18508         * XplatUIX11.cs:
18509           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18510             methods
18511           - Fixed broken XChangeProperty calls (marshalling messed up things)
18512         * X11Structs.cs: Added enums and structs required for Size hinting
18513         * NotifyIcon.cs: Added & implemented
18514
18515 2005-01-26  Jackson Harper  <jackson@ximian.com>
18516
18517         * TabControl.cs: Space vertically layed out tabs properly.
18518
18519 2005-01-26  Peter Bartok  <pbartok@novell.com>
18520
18521         * Form.cs (CreateClientParams): Always set the location to 0,0
18522           since we're a child window.
18523
18524         * Control.cs (SetVisibleCore): Always explicitly setting the location
18525           of a toplevel window, apparently X11 doesn't like to move windows
18526           while they're not mapped.
18527
18528 2005-01-26  Jackson Harper  <jackson@ximian.com>
18529
18530         * TabControl.cs: Implement FillToRight size mode with vertically
18531         rendered tabs.
18532
18533 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18534
18535         * ControlPaint.cs, ThemeWin32Classic.cs
18536                 - Fixes DrawFocusRectangle
18537
18538 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18539
18540         * MenuAPI.cs:
18541                 - MenuBar tracking only starts when item is first clicked
18542                 - Fixes menu hidding for multiple subitems
18543                 - Unselect item in MenuBar when item Executed
18544                 - Fixes bug 71495
18545
18546 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18547
18548         * ListControl.cs:
18549                 - IsInputKey for ListBox
18550         * ListBox.cs:
18551                 - Focus item
18552                 - Shift and Control item selection
18553                 - Implement SelectionMode.MultiExtended
18554                 - Fixes RightToLeft
18555         * ComboBox.cs:
18556                 - IsInputKey implemented
18557                 - Do not generate OnTextChangedEdit on internal txt changes
18558                 
18559 2005-01-23  Peter Bartok  <pbartok@novell.com>
18560
18561         * AccessibleObject.cs: Partially implemented Select()
18562         * MonthCalendar.cs: Added missing attributes and events
18563         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18564           form can properly override CreateParams.
18565         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18566           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18567           Control performs Invalidate & Update
18568         * NativeWindow (CreateHandle): Added special handling for Form
18569           and Form.FormParent classes to allow overriding of From.CreateParams
18570         * Control.cs:
18571           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18572             name 'owner'
18573           - ControlNativeWindow: Added Owner property
18574           - Removed usage of Refresh() on property changes, changed into
18575             Invalidate(), we need to wait until the queue is processed for
18576             updates, direct calls might cause problems if not all vars for
18577             Paint are initialized
18578           - Added call to UpdateStyles() when creating the window, to set any
18579             styles that CreateWindow might have ignored.
18580           - Added support for Form CreateParent overrides to UpdateStyles()
18581         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18582           CreateParams are now properly overridable
18583         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18584           CreateParams are now properly overridable
18585
18586 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18587
18588         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18589         OnTextBoxChanged.
18590
18591         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18592         recursive invocation that I have not figured out yet.
18593
18594         Reset the timer when not using (it was accumulating).
18595
18596
18597         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18598         user has made changes that require validation.
18599
18600         Reset changing to avoid loops.
18601
18602 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18603
18604         * NumericUpDown.cs: Display value at startup.
18605
18606         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18607         ValidateEditText.
18608
18609         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18610         filled in.  Added some basic parsing of text.
18611
18612         Still missing the OnXXX method overrides, and figuring out the
18613         events that must be emitted.
18614
18615         * UpDownBase.cs: Handle UserEdit on the Text property.
18616         
18617 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18618
18619         * ComboBox.cs:
18620           - Fixes IntegralHeight
18621           - ToString method
18622
18623 2005-01-21  Jackson Harper  <jackson@ximian.com>
18624
18625         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18626         is set so that the page visibility is updated and the tabs are
18627         sized correctly.
18628
18629 2005-01-21  Jackson Harper  <jackson@ximian.com>
18630
18631         * TabControl.cs: Use cliping rectangle for blitting. Give the
18632         theme the clipping rect so we can do clipping while
18633         drawing. Remove some debug code.
18634
18635 2005-01-21  Jackson Harper  <jackson@ximian.com>
18636
18637         * TabPage.cs: Add a new method so tab pages can force the tab
18638         control to recalculate the tab page sizes.
18639         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18640         sizes.
18641
18642 2005-01-20  Jackson Harper  <jackson@ximian.com>
18643
18644         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18645
18646 2005-01-20  Jackson Harper  <jackson@ximian.com>
18647
18648         * TreeView.cs: Set the bounds for nodes properly. They were
18649         getting screwed up when checkboxes were not enabled, but images
18650         were.
18651
18652 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18653
18654         * ListBox.cs:
18655                 - Owner draw support
18656                 - Fixes
18657                 
18658 2005-01-20  Jackson Harper  <jackson@ximian.com>
18659
18660         * XplatUIStructs.cs: More misc keys
18661         * X11Keyboard.cs: Ignore some control keys.
18662
18663 2005-01-20  Jackson Harper  <jackson@ximian.com>
18664
18665         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18666         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18667
18668 2005-01-19  Peter Bartok  <pbartok@novell.com>
18669
18670         * Control.cs: Un-selecting the control when it is loosing focus
18671
18672 2005-01-19  Jackson Harper  <jackson@ximian.com>
18673
18674         * TreeView.cs: Hook up to the text controls leave event so we can
18675         end editing when the users clicks outside the text box.
18676         
18677 2005-01-19  Jackson Harper  <jackson@ximian.com>
18678
18679         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18680         get set in the conversion array.
18681
18682 2005-01-19  Peter Bartok  <pbartok@novell.com>
18683
18684         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18685           focus is properly set
18686         * Button.cs:
18687           - Added missing attributes
18688           - removed styles, those are already set in the base class
18689         * ButtonBase.cs:
18690           - Added missing attributes
18691           - Added clip window styles
18692         * CheckBox.cs: Added missing attributes
18693         * CommonDialog.cs:
18694           - FormParentWindow.CreateParams: Added required clip styles
18695         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18696           also filters modifier keys
18697         * MessageBox.cs:
18698           - Added assignment of Accept and Cancel button to enable Enter
18699             and Esc keys in MessageBox dialogs
18700           - FormParentWindow.CreateParams: Added required clip styles
18701         * RadioButton.cs: Added missing attributes
18702         * TextControl.cs: No longer draws selection if control does not
18703           have focus
18704         * TextBoxBase.cs:
18705           - Now draws simple rectangle around test area to make it obvious
18706             there's a control. This is a hack until we properly support borders
18707           - A few simple fixes to support selections better, now erases selected
18708             text when typing, and resets selection when using movement keys
18709
18710 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18711
18712         * UpDownBase.cs: Added some new properties.
18713
18714         * DomainUpDown.cs: Implement a lot to get my test working.
18715
18716 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18717
18718         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18719
18720 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18721
18722         * OSXStructs (WindowAttributes): Fixed csc complaints
18723
18724 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18725
18726         * XplayUIOSX.cs:
18727           OSXStructs.cs: Initial refactor to move enums and consts into
18728           OSXStructs and use them in the driver for greater readability.
18729
18730 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18731
18732         * XplatUIOSX.cs: Initial support for Standard Cursors.
18733         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18734
18735 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18736
18737         * ComboBox.cs: ability to change style when the ctrl is already
18738         created, missing methods and events, bug fixes, signature fixes
18739
18740 2005-01-19  Peter Bartok  <pbartok@novell.com>
18741
18742         * Cursors.cs (ctor): Added ctor to fix signature
18743
18744 2005-01-18  Peter Bartok  <pbartok@novell.com>
18745
18746         * Button.cs: Implemented DoubleClick event
18747         * ButtonBase.cs:
18748           - Fixed keyboard handling to behave like MS, where the press of
18749             Spacebar is equivalent to a mousedown, and the key release is
18750             equivalent to mouseup. Now a spacebar push will give the same
18751             visual feedback like a mouse click.
18752           - Added missing attributes
18753           - Added ImeModeChanged event
18754           - Added support for generating DoubleClick event for derived classes
18755         * CheckBox.cs:
18756           - Implemented DoubleClick event
18757           - Added missing attributes
18758         * CommonDialog.cs: Added missing attribute
18759         * ContextMenu.cs: Added missing attributes
18760         * RadioButton.cs:
18761           - AutoChecked buttons do not allow to be unselected when clicked
18762             (otherwise we might end up with no selected buttons in a group)
18763           - Added missing attributes
18764           - Implemented DoubleClickEvent
18765         * ThreadExceptionDialog.cs: Enabled TextBox code
18766
18767 2005-01-18  Peter Bartok  <pbartok@novell.com>
18768
18769         * Form.cs: Removed debug output
18770         * Button.cs: Added support for DoubleClick method
18771
18772 2005-01-18  Peter Bartok  <pbartok@novell.com>
18773
18774         * Form.cs:
18775           - Added method to parent window that allows triggering size
18776             calculations when a menu is added/removed
18777           - set_Menu: Cleaned up mess from early days of Form and Control,
18778             now properly triggers a recalc when a menu is added/removed
18779           - Added case to select form itself as focused form if no child
18780             controls exist
18781           - Added PerformLayout call when showing dialog, to ensure properly
18782             placed controls
18783         * Control.cs:
18784           - Select(): Made internal so Form can access it
18785           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18786             status
18787         * Application.cs (Run): Removed hack and calls PerformLayout instead
18788           to trigger calculation when Form becomes visible
18789
18790 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18791
18792         * ComboBox.cs: fixes for ownerdraw
18793
18794 2005-01-18  Peter Bartok  <pbartok@novell.com>
18795
18796         * TextControl.cs:
18797           - Sentinel is no longer static, each Document gets it's own, this
18798             avoids locking or alternatively overwrite problems when more
18799             than one text control is used simultaneously.
18800           - Switched to use Hilight and HilightText brushes for text selection
18801
18802         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18803
18804 2005-01-18  Peter Bartok  <pbartok@novell.com>
18805
18806         * Control.cs:
18807           - Hooked up the following events:
18808                 o ControlAdded
18809                 o ControlRemoved
18810                 o HandleDestroyed
18811                 o ImeModeChanged
18812                 o ParentChanged
18813                 o TabStopChanged
18814                 o Invalidated
18815                 o SystemColorsChanged
18816                 o ParentFontChanged
18817                 o Move
18818           - Removed debug output
18819           - Added a call to the current theme's ResetDefaults when a color change
18820             is detected
18821         * Form.cs: Now setting the proper ImeMode
18822         * Theme.cs: Defined a method to force recreation of cached resources
18823           and rereading of system defaults (ResetDefaults())
18824         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18825
18826 2005-01-17  Peter Bartok  <pbartok@novell.com>
18827
18828         * Control.cs: Added missing attributes
18829
18830 2005-01-17  Jackson Harper  <jackson@ximian.com>
18831
18832         * TreeNode.cs: Implement editing. Add missing properties selected
18833         and visible.
18834         * TreeView.cs: Implement node editing. Also some fixes to use
18835         Invalidate (invalid area) instead of Refresh when selecting.
18836
18837 2005-01-17  Peter Bartok  <pbartok@novell.com>
18838
18839         * Control.cs:
18840           - Implemented InvokeGotFocus() method
18841           - Implemented InvokeLostFocus() method
18842           - Implemented InvokePaint() method
18843           - Implemented InvokePaintBackground() method
18844           - Implemented InvokeClick() method
18845           - Implemented FindForm() method
18846           - Implemented RectangleToClient() method
18847           - Implemented ClientToRectangle() method
18848           - Implemented ResetBackColor() method
18849           - Implemented ResetCursor() method
18850           - Implemented ResetFont() method
18851           - Implemented ResteForeColor() method
18852           - Implemented ResetImeMode() method
18853           - Implemented ResetLeftToRight() method
18854           - Implemented ResetText() method
18855           - Implemented Scale() methods
18856           - Implemented ScaleCore() method
18857           - Implemented Update() method
18858           - Removed unused variables
18859           - Stubbed AccessibilityNotifyClients and
18860             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18861             with those yet)
18862           - Now setting proper default for RightToLeft property
18863           - Fixed bug in SetClientSizeCore that would cause windows to get
18864             really big
18865           - Now sending Click/DoubleClick events
18866           - Now selecting controls when left mouse button is clicked on
18867             selectable control
18868         * AccessibleEvents.cs: Added
18869         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18870         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18871         * XplatUIWin32.cs: Implemented UpdateWindow() method
18872         * XplatUIX11.cs: Implemented UpdateWindow() method
18873         * Form.cs: Removed stray semicolon causing CS0162 warning
18874         * ThemeWin32Classic.cs: Fixed unused variable warnings
18875         * ScrollableControl.cs: Now calls base method for ScaleCore
18876         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18877           style to avoid interference with internal click handler (which is
18878           different than standard Control click handling)
18879         * RadioButton.cs:
18880           - Now unchecks all sibling radio buttons when control is
18881             selected (Fixes #68756)
18882           - Removed internal tabstop variable, using the one inherited from
18883             Control
18884
18885 2005-01-17  Jackson Harper  <jackson@ximian.com>
18886
18887         * NavigateEventArgs.cs: Fix base type.
18888         * LinkLabel.cs: Sig fix
18889         
18890 2005-01-17  Jackson Harper  <jackson@ximian.com>
18891
18892         * TreeView.cs: Only invalidate the effected nodes bounds when
18893         selecting nodes.
18894
18895 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18896
18897         * XplatUIWin32.cs: fixes Win32 marshaling
18898         * XplatUIX11.cs: fixes method signature
18899
18900 2005-01-17  Peter Bartok  <pbartok@novell.com>
18901
18902         * XplatUIX11.cs: Clean up resources when we no longer need them
18903
18904 2005-01-17  Peter Bartok  <pbartok@novell.com>
18905
18906         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18907           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18908           and DestroyCursor() methods.
18909         * Cursor.cs: Partially implemented, now supports standard cursors;
18910           still contains some debug code
18911         * Cursors.cs: Implemented class
18912         * Control.cs:
18913           - WndProc(): Added handling of WM_SETCURSOR message, setting the
18914             appropriate cursor
18915           - Implemented Cursor property
18916           - Replaced break; with return; more straightforwar and possibly
18917             faster
18918           - Now properly setting the result for WM_HELP
18919         * X11Structs.cs: Added CursorFontShape enum
18920         * XplatUIStructs.cs:
18921           - Added StdCursor enum (to support DefineStdCursor() method)
18922           - Added HitTest enum (to support sending WM_SETCURSOR message)
18923         * XplatUIX11.cs:
18924           - Now sends the WM_SETCURSOR message
18925           - Implemented new cursor methods
18926         * XplatUIOSX.cs: Stubbed new cursor methods
18927         * XplatUIWin32.cs:
18928           - Implemented new cursor methods
18929           - Added GetSystemMetrics function and associated enumeration
18930
18931 2005-01-15  Peter Bartok  <pbartok@novell.com>
18932
18933         * Control.cs:
18934           - WndProc(): Now handles EnableNotifyMessage
18935           - SelectNextControl(): Fixed bug where if no child or sibling
18936             controls exist we looped endlessly
18937
18938 2005-01-14  Jackson Harper  <jackson@ximian.com>
18939
18940         * TreeView.cs: Recalculate the tab pages when a new one is added
18941         so that the proper bounding rects are created.
18942
18943 2005-01-14  Jackson Harper  <jackson@ximian.com>
18944
18945         * TreeView.cs: Draw a gray box instead of a grip in the lower
18946         right hand corner when there are both horizontal and vertical
18947         scroll bars.
18948
18949 2005-01-14  Jackson Harper  <jackson@ximian.com>
18950
18951         * Control.cs: When erasing backgrounds use FromHwnd instead of
18952         FromHdc when there is a NULL wparam. This occurs on the X driver.
18953         * XplatUIX11.cs: Set the wparam to NULL.
18954
18955 2005-01-13  Jackson Harper  <jackson@ximian.com>
18956
18957         * PictureBox.cs: Implement missing methods (except ToString, need
18958         to test that on windows) and events. When visibility is changed we
18959         need to redraw the image because the buffers are killed. When size
18960         is changed refresh if the sizemode needs it.
18961
18962 2005-01-13  Peter Bartok  <pbartok@novell.com>
18963
18964         * Control.cs (SelectNextControl): Was using wrong method to select
18965           a control
18966
18967 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18968
18969         * ComboBox.cs: fixes dropstyle
18970
18971 2005-01-13  Peter Bartok  <pbartok@novell.com>
18972
18973         * Form.cs:
18974           - Implemented Select() override
18975           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
18976           - Now sets keyboard focus on startup
18977         * Control.cs (SelectNextControl): Now properly handles directed=true
18978         * TextBoxBase.cs:
18979           - WndProc: Now passes tab key on to base if AcceptTabChar=false
18980           - Added (really bad) focus rectangle (mostly for testing)
18981         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
18982           to enforce redraw on focus changes
18983         * ContainerControl.cs:
18984           - Fixed detection of Shift-Tab key presses
18985           - Fixed traversal with arrow keys
18986         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
18987           gonna keep this or if it's complete yet
18988         
18989 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18990
18991         * ComboBox.cs: missing properties, fixes
18992
18993 2005-01-13  Peter Bartok  <pbartok@novell.com>
18994
18995         * Panel.cs (ctor): Setting Selectable window style to off
18996         * Splitter.cs (ctor): Setting Selectable window style to off
18997         * GroupBox.cs (ctor): Setting Selectable window style to off
18998         * Label.cs (ctor): Setting Selectable window style to off
18999
19000 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19001
19002         * UpDownBase.cs (InitTimer): If the timer has been already
19003         created, enable it.
19004
19005         Use a TextBox instead of a Label.
19006
19007 2005-01-12  Jackson Harper  <jackson@ximian.com>
19008
19009         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19010         draw the connecting node lines (when ShowLines is true).
19011         * TreeNode.cs: The nodes index can now be updated. This is used
19012         when a node collection is sorted.
19013         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19014         insert or an existing unsorted node collection can be sorted.
19015         
19016 2005-01-12  Peter Bartok  <pbartok@novell.com>
19017
19018         * ContainerControl.cs: Implemented ProcessDialogKeys()
19019
19020 2005-01-12  Peter Bartok  <pbartok@novell.com>
19021
19022         * Control.cs:
19023           - Implemented SelectNextControl() method
19024           - Several focus related bug fixes
19025           - Fixed Docking calculations to match MS documentation and
19026             behaviour
19027
19028 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19029
19030         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19031         bug fixes
19032
19033 2005-01-12  Peter Bartok  <pbartok@novell.com>
19034
19035         * Control.cs:
19036           - Fixed broken Contains() method
19037           - Implemented GetNextControl() method. Finally. This is the pre-
19038             requisite for focus handling.
19039
19040 2005-01-12  Peter Bartok  <pbartok@novell.com>
19041
19042         * OSXStrucs.cs: Added
19043
19044 2005-01-12  Peter Bartok  <pbartok@novell.com>
19045
19046         * XplatUIWin32.cs:
19047           - Removed PeekMessageFlags
19048           - Implemented SetWindowStyle() method
19049         * XplatUIStructs.cs: Added PeekMessageFlags
19050         * X11Structs: Added missing border_width field to XWindowChanges struct
19051         * XplatUIX11.cs:
19052           - PeekMessage: Now throws exception if flags which are not yet
19053             supported are passed
19054           - Implemented SetWindowStyle() method
19055           - Fixed SetZOrder to handle AfterHwnd properly
19056         * XplatUI.cs: Added SetWindowStyle() method
19057         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19058         * Control.cs:
19059           - Implemented UpdateStyles() method
19060           - Implemented UpdateZOrder() method
19061         * XplatUIOSX.cs: Added SetWindowStyle() stub
19062
19063 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19064
19065         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19066         button mouse).
19067
19068
19069 2005-01-11  Jackson Harper  <jackson@ximian.com>
19070
19071         * TreeView.cs: Still need to draw lines to siblings even if out of
19072         the current node is out of the clip.
19073
19074 2005-01-11  Jackson Harper  <jackson@ximian.com>
19075
19076         * TreeView.cs: When setting the hbar/vbar/grip position use
19077         SetBounds so that perform layout is only called once. Also suspend
19078         and resume layout so layout is only done once for all controls.
19079         - Removed some debug fluff
19080         * SizeGrip.cs: Call base implmentation in overriding methods.
19081         - When visibility is changed the drawing buffers are killed so we
19082         need to redraw.
19083
19084 2005-01-11  Jackson Harper  <jackson@ximian.com>
19085
19086         * TreeView.cs: Calculate the open node count while drawing. This
19087         saves us an entire tree traversal for every paint operation. Use
19088         a member var for the open node count so less vars are passed around.
19089
19090 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19091
19092         * MonthCalendar.cs:
19093         - fixed selection to use mousemove, not mouse polling on timer
19094         * ThemeWin32Classic.cs
19095         - removed redundant unused variable "no_more_content"
19096         
19097 2005-01-11  Peter Bartok  <pbartok@novell.com>
19098
19099         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19100           are pending, so it now calls PeekMessage instead of GetMessage;
19101           implemented a incomplete version of PeekMessage
19102         
19103 2005-01-11  Peter Bartok  <pbartok@novell.com>
19104
19105         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19106           I18n issues
19107         * TextBoxBase.cs: Added sending of TextChanged event
19108
19109 2005-01-10  Jackson Harper  <jackson@ximian.com>
19110
19111         * TreeView.cs: Try not to draw outside the clipping rectangle on
19112         each node element.
19113
19114 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19115
19116         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19117
19118 2005-01-10  Jackson Harper  <jackson@ximian.com>
19119
19120         * TreeView.cs:
19121         - Implement fast scrolling. Now only the newly
19122         exposed nodes are drawn and the old image is moved using the
19123         XplatUI::ScrollWindow method.
19124         - Factor in height of nodes when calculating whether or not the
19125         node is in the clipping rect.
19126
19127 2005-01-10  Jackson Harper  <jackson@ximian.com>
19128
19129         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19130
19131 2005-01-10  Peter Bartok  <pbartok@novell.com>
19132
19133         * Application.cs: Added temporary hack to resolve all our resize
19134           required issues on startup. This will get fixed properly at
19135           some point in the future
19136
19137 2005-01-10  Jackson Harper  <jackson@ximian.com>
19138
19139         * SizeGrip.cs: New internal class that is used as a sizing
19140         grip control...hence the name.
19141
19142 2005-01-10  Peter Bartok  <pbartok@novell.com>
19143
19144         * Control.cs: Implemented proper TabIndex handling, now assigning
19145           a tabindex when a control is added to a container
19146         * GroupBox.cs (ctor): Now sets the Container style bit, required
19147           for Control.GetNextControl()
19148
19149 2005-01-09  Jackson Harper  <jackson@ximian.com>
19150
19151         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19152
19153 2005-01-09  Peter Bartok <pbartok@novell.com>
19154
19155         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19156           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19157           an overload for ScrollWindow to allow only scrolling a rectangle
19158
19159 2005-01-09  Peter Bartok <pbartok@novell.com>
19160
19161         * Form.cs:
19162           - Implemented SetDesktopBounds method
19163           - Implemented SetDesktopLocation method
19164
19165 2005-01-08  Jackson Harper  <jackson@ximian.com>
19166
19167         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19168         the node count has changed, this removes to VScroll::Refresh calls
19169         when drawing.
19170
19171 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19172
19173         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19174
19175 2005-01-07  Jackson Harper  <jackson@ximian.com>
19176
19177         * TreeNode.cs: Just update the single node when it is
19178         checked. Don't refresh after toggling, the Expand/Collapse already
19179         handles this.
19180         * TreeView.cs: Respect clipping a little more when drawing. Try
19181         not to redraw things that don't need to be redrawn. Just hide the
19182         scrollbars when they are no longer needed instead of removing
19183         them, so they don't have to be created again and again.
19184         
19185 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19186
19187         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19188         coordinates to window space to place the caret properly, FIXED.
19189         Implement GetWindowState & SetWindowState
19190
19191 2005-01-06  Peter Bartok <pbartok@novell.com>
19192
19193         * Form.cs:
19194           - Implemented ClientSize property
19195           - Implemented DesktopBounds property
19196           - Implemented DesktopLocation property
19197           - Implemented IsRestrictedWindow property
19198           - Implemented Size property
19199           - Implemented TopLevel property
19200           - Implemented FormWindowState property
19201         * Control.cs:
19202           - Implemented GetTopLevel() method
19203           - Implemented SetTopLevel() method
19204         * X11Structs.cs (Atom):
19205           - Added AnyPropertyType definition
19206           - Added MapState definiton and updated XWindowAttribute struct
19207         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19208         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19209         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19210         * XplatUIWin32.cs:
19211           - Implemented GetWindowState() and SetWindowState() methods
19212           - Fixed Win32GetWindowLong return type
19213         * XplatUIX11.cs:
19214           - Introduced central function for sending NET_WM messages
19215           - Implemented GetWindowState() and SetWindowState() methods
19216         * TextBoxBase.cs (set_Lines):
19217           - Now uses Foreground color for text added via Text property (Duh!)
19218           - Added code to remember programmatically requested size (fixes
19219             behaviour when Multiline is set after Size)
19220           - Added AutoSize logic
19221
19222 2005-01-06  Jackson Harper  <jackson@ximian.com>
19223
19224         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19225
19226 2005-01-06  Jackson Harper  <jackson@ximian.com>
19227
19228         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19229         set to less then 0.
19230
19231 2005-01-06  Jackson Harper  <jackson@ximian.com>
19232
19233         * ScrollableControl.cs: Lazy init the scrollbars.
19234         
19235 2005-01-06  Jackson Harper  <jackson@ximian.com>
19236
19237         * Theme.cs: Speed up getting pens and solid brushes, by using
19238         their ARGB as a hash instead of tostring and not calling Contains.
19239
19240 2005-01-06  Peter Bartok <pbartok@novell.com>
19241
19242         * Form.cs:
19243           - Implemented OnActivated and OnDeactivate event trigger
19244           - Implemented Activate() method
19245           - Fixed ShowDialog() to activate the form that was active before
19246             the dialog was shown
19247         * XplatUIX11.cs:
19248           - Added global active_window var that tracks the currently active
19249             X11 window
19250           - Now always grabs Property changes from the root window to always
19251             catch changes on the active window property
19252           - Added code to PropertyNotify handler to send Active/Inactive
19253             messages when state changes. This puts X11 and Win32 en par on
19254             WM_ACTIVATE notifications (except for double notifications when
19255             the user clicks away from our modal window to another one of our
19256             windows)
19257
19258 2005-01-05  Jackson Harper  <jackson@ximian.com>
19259
19260         * ImageList.cs: Implment ctor
19261
19262 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19263
19264         * XplatUIOSX.cs: Implement Activate/SetTopmost
19265
19266 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19267
19268         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19269
19270 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19271
19272         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19273
19274 2005-01-05  Peter Bartok <pbartok@novell.com>
19275
19276         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19277           XplatUIOSX.cs: Added GetActive method to return the currently
19278           active window for the application (or null, if none is active)
19279         * Form.cs:
19280           - Implemented ActiveForm
19281           - Commented out owner assignment for modal dialogs (causes problems
19282             on Win32, since the owner will be disabled)
19283           - Reworked some Active/Focus handling (still incomplete)
19284         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19285           (causes problems on Win32, since the owner will be disabled)
19286         * IWin32Window: Added ComVisible attribute
19287
19288 2005-01-05  Peter Bartok <pbartok@novell.com>
19289
19290         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19291           required XplatUI functions.
19292
19293 2005-01-05  Peter Bartok <pbartok@novell.com>
19294
19295         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19296           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19297           to implement focus and activation handling; still incomplete and
19298           with debug output
19299
19300 2005-01-04  Peter Bartok <pbartok@novell.com>
19301
19302         * TextBoxBase.cs: Changed access level for Document property to
19303           match switch to internal for TextControl
19304
19305 2005-01-04  Peter Bartok <pbartok@novell.com>
19306
19307         * AccessibleObject: Added ComVisible attribute
19308
19309 2005-01-04  Jackson Harper  <jackson@ximian.com>
19310
19311         * X11Keyboard.cs: Remove unneeded var.
19312
19313 2005-01-04  Jackson Harper  <jackson@ximian.com>
19314
19315         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19316         but PAINT.
19317         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19318         ClientMessage. This makes apps exit cleanly (more often).
19319         
19320 2005-01-04  Jackson Harper  <jackson@ximian.com>
19321
19322         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19323         handling focus, return correct colors and fonts,
19324         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19325         handle selection, horizontal scrolling, and mouse interaction.
19326
19327 2005-01-04  Peter Bartok <pbartok@novell.com>
19328
19329         * ICommandExecutor.cs: Added
19330         * IDataGridColumnStyleEditingNotificationService.cs: Added
19331         * IFeatureSupport.cs: Added
19332         * IFileReaderService.cs: Added
19333         * IDataObject.cs: Added ComVisible attribute
19334         * AmbientProperties.cs: Added
19335         * BaseCollection.cs: Added missing attributes
19336         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19337         * BaseCollection.cs: Added missing attributes
19338         * Binding.cs: Added TypeConverter attribute
19339         * BindingContext.cs: Added DefaultEvent attribute
19340         * BindingsCollection.cs: Added DefaultEvent attribute
19341         * Button.cs: Added DefaultValue attribute
19342         * DragEventArgs.cs: Added ComVisible attribute
19343         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19344         * KeyEventArgs.cs: Added ComVisible attribute
19345         * KeyPressEventArgs.cs: Added ComVisible attribute
19346         * MouseEventArgs.cs: Added ComVisible attribute
19347         * NavigateEventArgs.cs: Added
19348         * NavigateEventHandler.cs: Added
19349         * FeatureSupport.cs: Added
19350         * OSFeature.cs: Added
19351         * Theme.cs: Added abstract Version property to support OSFeature
19352         * ThemeWin32Classic.cs: Added Version property to
19353           support OSFeature.Themes
19354         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19355           the proper styles to avoid background drawing are set, also doesn't
19356           match MS signature
19357         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19358         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19359         * ScrollEventArgs.cs: Added ComVisible attribute
19360         * SplitterEventArgs.cs: Added ComVisible attribute
19361         * AccessibleSelection.cs: Added Flags attribute
19362         * Appearance.cs: Added ComVisible attribute
19363         * Border3DSide.cs: Added ComVisible attribute
19364         * Border3DStyle.cs: Added ComVisible attribute
19365         * BorderStyle.cs: Added ComVisible attribute
19366         * DragAction.cs: Added ComVisible attribute
19367         * ErrorBlinkStyle.cs: Added
19368         * ScrollEventType.cs: Added ComVisible attribute
19369         * AnchorStyles.cs: Added Editor attribute
19370         * DockStyle.cs: Added Editor attribute
19371         * HorizontalAlignment.cs: Added ComVisible attribute
19372         * HelpEventArgs.cs: Added ComVisible attribute
19373         * PaintEventArgs.cs: Added IDisposable
19374
19375 2005-01-04  Peter Bartok <pbartok@novell.com>
19376
19377         * TextControl.cs: Switched Line, LineTag and Document classes to
19378           internal
19379
19380 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19381
19382         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19383         Simple mode, fixes, IntegralHeight, etc.
19384
19385 2005-01-04  Peter Bartok <pbartok@novell.com>
19386
19387         * TextBoxBase.cs: Using proper font variable now
19388
19389 2005-01-04  Peter Bartok <pbartok@novell.com>
19390
19391         * Form.cs (ShowDialog): Set parent to owner, if provided
19392         * GroupBox.cs: Removed unused vars
19393         * TextControl.cs:
19394           - Added GetHashCode() for Document and LineTag classes
19395           - Removed unused variables
19396           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19397             to allow translation between continuous char position and line/pos
19398         * CheckBox.cs: Removed vars that are provided by base class
19399         * RadioButton.cs: Removed vars that are provided by base class, added
19400           new keyword where required
19401         * LinkLabel.cs: Added new keyword where required
19402         * Control.cs (WndProc): Removed unused variable
19403         * TextBoxBase.cs:
19404           - Finished SelectionLength property
19405           - Implemented SelectionStart property
19406           - Implemented Text property
19407           - Removed unused vars
19408         * MessageBox.cs: Added new keyword where required
19409         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19410           WndProc signature
19411         * MenuAPI.cs: Added new keyword where required
19412         * ButtonBase.cs: Removed vars that are provided by base class, added
19413           new keyword where required
19414         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19415           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19416           into this)
19417         * Application.cs (Run): Now triggers the ThreadExit event
19418         * CommonDialog.cs: Added new keyword where required; now properly sets
19419           parent (owner) for dialog
19420         * XplatUIX11.cs: Commented out unused vars
19421         * StatusBar.cs: Fixed signature for Text property
19422         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19423
19424 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19425
19426         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19427         TrackBar.cs, MonthCalendar.cs: remove unused vars
19428
19429 2005-01-03  Jackson Harper  <jackson@ximian.com>
19430
19431         * ThemeWin32Classic.cs:
19432         * X11Keyboard.cs: Remove unused vars.
19433
19434 2005-01-03  Peter Bartok  <pbartok@novell.com>
19435
19436         * TextBox.cs:
19437           - set_Text: Tied into TextControl
19438           - set_TextAlignment: Tied into TextControl
19439         * TextControl.cs:
19440           - Added alignment properties and implemented alignment handling
19441             and drawing (still has a bug, not generating proper expose events)
19442           - Added new Line() constructor to allow passing the line alignment
19443           - Fixed selection setting, properly handling end<start now
19444           - Added aligment considerations to RecalculateDocument()
19445         * TextBoxBase.cs:
19446           - Now properly enforces control height for single line controls
19447           - Added support for CharacterCasing
19448           - Added IsInputKey override
19449           - Fixed Keys.Enter logic
19450           - Added SetBoundsCore override
19451           - Fixed mouse selection handling
19452
19453 2005-01-03  Jackson Harper  <jackson@ximian.com>
19454
19455         * TreeView.cs:
19456           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19457           - Checkboxes are always aligned to the bottom of the node,
19458           regardless of item height.
19459           - Use the node bounds to draw the text so we can center it when
19460           the item height is greater then the font height.
19461           - Node::Bounds are only the text part of the node.
19462         * TreeNode.cs: New method to combine collapsing and unchecking all
19463           nodes recursively.
19464
19465 2005-01-02  Jackson Harper  <jackson@ximian.com>
19466
19467         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19468         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19469         tree when a check is changed. TODO: Only refresh the checked node.
19470
19471 2004-12-30  Jackson Harper  <jackson@ximian.com>
19472
19473         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19474         * TreeNode.cs: When collapsing make sure to never collapse the
19475         root node.
19476
19477 2004-12-29  Jackson Harper  <jackson@ximian.com>
19478
19479         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19480         
19481 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19482
19483         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19484
19485 2004-12-28  Peter Bartok  <pbartok@novell.com>
19486
19487         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19488           not yet assigned
19489
19490 2004-12-28  Peter Bartok  <pbartok@novell.com>
19491
19492         * Control.cs (WndProc): Added WM_HELP handler, now generates
19493           HelpRequested event
19494         * Form.cs: Added HelpButton property and required support code
19495         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19496
19497 2004-12-28  Peter Bartok  <pbartok@novell.com>
19498
19499         * CommonDialog.cs:
19500           - Made DialogForm.owner variable internal
19501           - Added check to ensure owner form is set before setting
19502             owner properties in CreateParams
19503
19504 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19505
19506         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19507           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19508           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19509           system to support borderless/titleless windows (implements menus).
19510           Fix GetWindowPos.  Implement initial background color support for
19511           views.
19512
19513 2004-12-28  Peter Bartok  <pbartok@novell.com>
19514
19515         * Form.cs (get_CreateParams): Make sure we have an owner before using
19516           the owner variable. Implement proper default if no owner exists
19517
19518 2004-12-28  Peter Bartok  <pbartok@novell.com>
19519
19520         * In preparation for making Managed.Windows.Forms the default build target
19521           for System.Windows.Forms, the following stubbed files were added.
19522           Dialogs are currently being implemented by contributors and are only
19523           short-term place holders.
19524         * ColorDialog.cs: Initial check-in (minmal stub)
19525         * DataGrid.cs: Initial check-in (minimal stub)
19526         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19527         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19528         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19529         * FontDialog.cs: Initial check-in (minimal stub)
19530         * FileDialog.cs: Initial check-in (minimal stub)
19531         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19532         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19533         * OpenFileDialog: Initial check-in (minimal stub)
19534         * IComponentEditorPageSite.cs: Initial check-in
19535         * Splitter.cs: Initial check-in (for Jackson)
19536         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19537         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19538         * TextBox.cs: Initial check-in; still needs some wiring to
19539           TextControl backend
19540         * Form.cs: Implemented ControlBox property
19541         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19542         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19543         * TextControl.cs: Added selection functionality; added todo header
19544         * TextBoxBase.cs:
19545           - Implemented Lines property
19546           - Implemented TextHeight property
19547           - Implemented SelectedText property
19548           - Implemented SelectionLength property
19549           - Implemented SelectAll method
19550           - Implemented ToString method
19551           - Removed and cleaned up some debug code
19552           - Implemented (still buggy) mouse text selection
19553
19554 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19555
19556         * ComboBox.cs: Complete DropDownList implementation, fixes.
19557
19558 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19559
19560         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19561         * ComboBoxStyle.cs: ComboBoxStyle enum
19562         * ComboBox.cs: Initial work on ComboBox control
19563
19564 2004-12-21  Peter Bartok  <pbartok@novell.com>
19565
19566         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19567           forward so that anything that creates a window gets the default,
19568           also no longer uses Visible property in CreateParams to avoid
19569           walking up the parent chain and possibly get the wrong visible
19570           status. Fixed IsVisible to no longer walk up to the parent.
19571
19572 2004-12-21  Peter Bartok  <pbartok@novell.com>
19573
19574         * Form.cs (ShowDialog): Unset modality for the proper window
19575  
19576 2004-12-20  Peter Bartok  <pbartok@novell.com>
19577
19578         * CommonDialog.cs: Initial check-in
19579
19580 2004-12-20  Peter Bartok  <pbartok@novell.com>
19581
19582         * Control.cs (Visible): Now uses the parent window instead of the
19583           client area window for the property
19584
19585         * Form.cs
19586           - ShowDialog(): Now uses the proper window for modality
19587           - The default visibility state for the form parent is now false. This
19588             will prevent the user from seeing all the changes to the form and
19589             its controls before the application hits Application.Run()
19590           - Removed some stale commented out code
19591
19592         * NativeWindow.cs:
19593           - Added FindWindow() method to have a method to check for existence
19594             of a window handle
19595           - Added ability to override default exception handling (for example
19596             when debugging with VS.Net; to do this the ExternalExceptionHandler
19597             define must be set
19598           - Removed some useless debug output
19599
19600         * XplatUIX11.cs:
19601           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19602             not working as expected
19603           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19604             property to allow switching back to the modal window if focus is
19605             given to another one of our windows (Application Modal)
19606           - Now only sets override_redirect if we create a window
19607             without WS_CAPTION
19608           - Moved EventMask selection before mapping of newly created window
19609             so we can catch the map event as well
19610           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19611           - Added various Atom related DllImports
19612           - Implemented Exit() method
19613           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19614             in the CreateParams
19615
19616         * MessageBox.cs: Now properly deals with the FormParent window by
19617           providing an override the FormParent CreateParams property to
19618           set as POPUP instead of OVERLAPPED window.
19619
19620 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19621
19622         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19623         Minor code cleanup.
19624
19625 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19626         
19627         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19628
19629 2004-12-18  Peter Bartok  <pbartok@novell.com>
19630
19631         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19632           implementing SetModal() method
19633
19634 2004-12-18  Peter Bartok  <pbartok@novell.com>
19635
19636         * X11Structs.cs (XGCValues): Fixed type of function element
19637         * XplatUI.cs: Added ScrollWindow() method
19638         * XplatUIDriver.cs: Added ScrollWindow() abstract
19639         * XplatUIWin32.cs: Implemented ScrollWindow() method
19640         * XplatUIX11.cs: Implemented ScrollWindow() method
19641         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19642
19643 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19644
19645         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19646         Some more keyboard support (INCOMPLETE)
19647
19648 2004-12-17  Peter Bartok  <pbartok@novell.com>
19649
19650         * TextControl.cs:
19651         - Added color attribute to line tags.
19652         - Added color argument to all functions dealing with tags
19653         - Added color argument support to various functions
19654         - Fixed miss-calculation of baseline/shift in certain circumstances
19655
19656         * TextBoxBase.cs: Added new color option to test code
19657
19658 2004-12-17  Jackson Harper  <jackson@ximian.com>
19659
19660         * TreeNode.cs:
19661         * MonthCalendar.cs: Signature fixes
19662
19663 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19664
19665         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19666         keyboard event moved it.  Create a new graphics context for each paint resolves this
19667
19668 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19669
19670         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19671         Make caret exist and go blink blink.  Initial keyboard support.
19672         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19673         works.
19674
19675 2004-12-17  Jackson Harper  <jackson@ximian.com>
19676
19677         * XplatUIStructs.cs: Updated set of virtual keycodes.
19678         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19679
19680 2004-12-17  Jackson Harper  <jackson@ximian.com>
19681
19682         * XplatUIX11.cs: Prune old keyboard code.
19683
19684 2004-12-17  Jackson Harper  <jackson@ximian.com>
19685
19686         * XplatUIX11.cs: When generating mouse wparams get the modifier
19687         keys from the ModifierKeys property.
19688
19689 2004-12-17  Jackson Harper  <jackson@ximian.com>
19690
19691         * X11Keyboard.cs: Send up/down input when generating
19692         messages. Remove some unused vars.
19693
19694 2004-12-17  Jackson Harper  <jackson@ximian.com>
19695
19696         * TabControl.cs:
19697         * TreeView.cs: get rid of warnings.
19698
19699 2004-12-17  Jackson Harper  <jackson@ximian.com>
19700
19701         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19702
19703 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19704
19705         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19706           CheckedListBox.cs: Implementation
19707
19708 2004-12-17  Peter Bartok  <pbartok@novell.com>
19709
19710         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19711
19712 2004-12-16  Peter Bartok  <pbartok@novell.com>
19713
19714         * TextControl.cs:
19715           - InsertCharAtCaret(): Fixed start pos fixup
19716           - CaretLine_get: No longer derives the line from the tag, the tag
19717             could be stale if lines in the document have been added or deleted
19718           - RebalanceAfterDelete(): Fixed bug in balancing code
19719           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19720           - Line.Streamline(): Now can also elminate leading empty tags
19721           - DumpTree(): Added a few more tests and prevented exception on
19722             uninitialized data
19723           - Added Debug section for Combining lines
19724           - Delete(): Now copies all remaining properties of a line
19725           
19726         * TextBoxBase.cs:
19727           - Left mousebutton now sets the caret (and middle button still acts
19728             as formatting tester, which must go away soon)
19729           - Added Debug section for Deleting/Combining lines
19730           - Fixed calculations for UpdateView after Combining lines
19731
19732 2004-12-16  Peter Bartok  <pbartok@novell.com>
19733
19734         * TextControl.cs: Now properly aligns text on a baseline, using the
19735           new XplatUI.GetFontMetrics() method. Simplified several calculations
19736         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19737           defined
19738
19739 2004-12-16  Peter Bartok  <pbartok@novell.com>
19740
19741         * XplatUI.cs: Added GetFontMetrics() method
19742         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19743         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19744           into libgdiplus, our private GetFontMetrics function
19745         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19746         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19747
19748 2004-12-16  Jackson Harper  <jackson@ximain.com>
19749
19750         * XplatUIStruct.cs: Add enum for dead keys
19751         * X11Keyboard.cs: Map and unmap dead keys.
19752
19753 2004-12-16  Jackson Harper  <jackson@ximian.com>
19754
19755         * X11Keyboard.cs: Detect and use the num lock mask.
19756
19757 2004-12-16  Peter Bartok  <pbartok@novell.com>
19758
19759         * Control.cs (CreateGraphics): Added check to make sure the
19760           handle of the window exists before calling Graphics.FromHwnd()
19761
19762 2004-12-16  Peter Bartok  <pbartok@novell.com>
19763
19764         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19765           contains a lot of code that's not supposed to be there for the
19766           real thing, but required for developing/testing the textbox
19767           backend.
19768
19769 2004-12-16  Peter Bartok  <pbartok@novell.com>
19770
19771         * TextControl.cs:
19772         - Fixed Streamline method
19773         - Added FindTag method to Line
19774         - Added DumpTree method for debugging
19775         - Added DecrementLines() method for deleting lines
19776         - Fixed UpdateView to update the cursor to end-of-line on single-line
19777           updates
19778         - Added PositionCaret() method
19779         - Fixed MoveCaret(LineDown) to move into the last line, too
19780         - Added InsertChar overload
19781         - Fixed InsertChar tag offset calculations
19782         - Added DeleteChar() method
19783         - Added Combine() method for folding lines
19784         - Fixed Delete() method, no longer allocates wasted Line object and
19785           now copies all properties when swapping nodes
19786         - Delete() method now updates document line counter
19787
19788 2004-12-15  Jackson Harper  <jackson@ximian.com>
19789
19790         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19791         * X11Keyboard.cs: Expose the currently selected modifier keys
19792         through a property.
19793
19794 2004-12-15  Peter Bartok  <pbartok@novell.com>
19795
19796         * TextControl.cs: Initial check-in. Still incomplete
19797
19798 2004-12-15  Jackson Harper  <jackson@ximian.com>
19799
19800         * TreeNode.cs:
19801         * TreeView.cs: Fix build on csc (second time today ;-))
19802
19803 2004-12-15  Jackson Harper  <jackson@ximian.com>
19804
19805         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19806         is calculated and use this for click testing.
19807         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19808
19809 2004-12-15  Jackson Harper  <jackson@ximian.com>
19810
19811         * TreeView.cs: Pass the nodes image index to the image list when
19812         drawing that image.
19813
19814 2004-12-15  Jackson Harper  <jackson@ximian.com>
19815
19816         * X11Keyboard.cs: Set messages hwnd.
19817         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19818         post_message calls.
19819
19820 2004-12-15  Jackson Harper  <jackson@ximian.com>
19821
19822         * X11Keyboard.cs: Fix to compile with csc.
19823         
19824 2004-12-15  Jackson Harper  <jackson@ximian.com>
19825
19826         * X11Structs.cs: Add key mask values
19827         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19828         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19829         down/up foo into WM_CHAR foo
19830         * KeyboardLayouts.cs: Common keyboard layouts
19831         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19832         post messages into the main queue.
19833
19834 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19835
19836         * Button.cs: implement ProcessMnemonic
19837         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19838           brushes everytime
19839         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19840         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19841
19842 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19843         
19844         * MonthCalendar.cs: Implemented click-hold for next/previous month
19845           and date selection
19846           
19847 2004-12-11  Peter Bartok  <pbartok@novell.com>
19848
19849         * X11Structs.cs:
19850           - Added XKeyboardState (moved from XplatUIX11.cs)
19851           - Added XCreateGC related enums and structures
19852           - Added GXFunction for XSetFunction
19853
19854         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19855
19856         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19857           CaretVisible() calls
19858
19859         * ToolTip.cs: Added code to prevent stealing focus from app windows
19860
19861         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19862           DestroyCaret, SetCaretPos and CaretVisible)
19863
19864         * XplatUIX11.cs:
19865           - Added implementation for caret functions
19866           - Moved hover variables into a struct, to make it a bit easier
19867             on the eyes and to debug
19868           - Removed XKeyboardState (moved to XplatUIX11.cs)
19869           - Moved Keyboard properties into the properties region
19870
19871         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19872           call to get a graphics context for our control
19873
19874         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19875
19876         * TreeView.cs: Fixed bug. No matter what color was set it would always
19877           return SystemColors.Window
19878
19879         * XplatUIWin32.cs: Implemented caret overrides
19880
19881 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19882
19883         * ListBox.cs: fire events, implement missing methods and properties,
19884         sorting.
19885
19886 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19887
19888         * MonthCalendar.cs: invalidation bug fixing
19889         * ThemeWin32Classic.cs: paint fixing
19890
19891 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19892
19893         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19894         prepare the CGContextRef there now.
19895
19896 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19897
19898         * MonthCalendar.cs:
19899           - optimisationL only invalidate areas that have changed
19900         * ThemeWin32Classic.cs:
19901           - only paint parts that intersect with clip_area
19902
19903 2004-12-09  Peter Bartok  <pbartok@novell.com>
19904
19905         * Application.cs: Undid changes from r37004 which cause problems
19906         on X11
19907
19908 2004-12-09  Ravindra  <rkumar@novell.com>
19909
19910         * ToolBar.cs: Added support for displaying ContextMenu
19911         attached to a button on ToolBar.
19912         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
19913         property.
19914
19915 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19916
19917         * Label.cs: autosize works in text change and removes unnecessary
19918         invalidate
19919
19920 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19921
19922         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
19923         remove warnings
19924
19925 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
19926
19927         * XplatUIOSX.cs: Added mouse move/click/grab support
19928         Remove some debugging WriteLines not needed anymore.
19929         Add window resizing/positioning.
19930         Fix visibility on reparenting.
19931
19932 2004-12-08  Peter Bartok  <pbartok@novell.com>
19933
19934         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
19935
19936 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
19937
19938         * XplatUIOSX.cs: Initial checkin
19939         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
19940
19941 2004-12-03  Ravindra <rkumar@novell.com>
19942
19943         * ListView.cs: Added some keybindings and fixed scrolling.
19944         ScrollBars listen to ValueChanged event instead of Scroll
19945         Event. This would let us take care of all changes being
19946         done in the scrollbars' values programmatically or manually.
19947         * ListView.cs (CanMultiselect): Added a check for shift key.
19948         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
19949         * ListViewItem.cs (Clone): Fixed. We need to make a copy
19950         of ListViewSubItemCollection as well.
19951
19952 2004-12-06  Peter Bartok <pbartok@novell.com>
19953
19954         * Control.cs (Parent): Added check and exception to prevent
19955         circular parenting
19956
19957 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
19958
19959         * ListBox.cs: implemented clipping, selection single and multiple,
19960         bug fixing
19961
19962 2004-12-03  Ravindra <rkumar@novell.com>
19963
19964         * ListView.cs (ListView_KeyDown):
19965         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
19966         when CTRL key is pressed.
19967         * ListViewItem.cs (Selected): Fixed setting the property.
19968
19969 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19970
19971         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
19972
19973         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
19974         MinimizeBox, ShowInTaskbar, TopMost properties.
19975
19976         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
19977         will be implemented).
19978
19979 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19980
19981         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
19982
19983         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
19984         tests.
19985         
19986         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
19987         
19988         * TreeView.cs: BackColor is Colors.Window.
19989
19990 2004-12-01  Jackson Harper  <jackson@ximian.com>
19991
19992         * TreeView.cs: When resizing the tree if the user is making it
19993         smaller we don't get expose events, so we need to handle adding
19994         the horizontal scrollbar in the size changed handler as well as
19995         the expose handler.
19996
19997 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
19998
19999         * DrawItemState.cs: fixes wrong enum values
20000
20001 2004-12-01  Jackson Harper  <jackson@ximian.com>
20002
20003         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20004
20005 2004-12-01  Jackson Harper  <jackson@ximian.com>
20006
20007         * NodeLabelEditEventArgs.cs:
20008         * NodeLabelEditEventHandler.cs:
20009         * OpenTreeNodeEnumerator.cs:
20010         * TreeNode.cs:
20011         * TreeNodeCollection.cs:
20012         * TreeView.cs:
20013         * TreeViewAction.cs:
20014         * TreeViewCancelEventArgs.cs:
20015         * TreeViewCancelEventHandler.cs:
20016         * TreeViewEventArgs.cs:
20017         * TreeViewEventHandler.cs: Initial implementation.
20018
20019 2004-12-01  Ravindra <rkumar@novell.com>
20020
20021         * ListView.cs (CalculateListView): Fixed scrolling related
20022         calculations. Also, removed some debug statements from other
20023         places.
20024         * ListViewItem.cs: Changed access to 'selected' instance variable
20025         from private to internal.
20026         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20027
20028 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20029
20030         * ThemeWin32Classic.cs: remove cache of brush and pens for
20031         specific controls and use the global system, fixes scrollbutton
20032         bugs (for small sizes, disabled, etc)
20033         
20034         * ScrollBar.cs: does not show the thumb for very small controls
20035         (as MS) and allow smaller buttons that the regular size
20036
20037 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20038
20039         * UpDownBase.cs: Add abstract methods for the interface.
20040         Add new virtual methods (need to be hooked up to TextEntry when it
20041         exists).
20042         Add override methods for most features.
20043         Computes the size, forces the height of the text entry.
20044
20045         * NumericUpDown.cs: Put here the current testing code.
20046
20047         * Set eol-style property on all files that do not have mixed line
20048         endings, to minimize the future problems.  There are still a few
20049         files with mixed endings, and someone should choose whether they
20050         want to move it or not.
20051
20052 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20053
20054         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20055         System.Colors
20056         
20057 2004-11-30  Ravindra <rkumar@novell.com>
20058
20059         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20060         drawing and replaced use of SystemColors by theme colors.
20061         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20062         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20063         same ListViewItem is being added more than once.
20064
20065 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20066
20067         * MonthCalendar.cs:
20068           - ControlStyles love to make the control not flicker
20069           
20070 2004-11-30  Peter Bartok  <pbartok@novell.com>
20071
20072         * CharacterCasing.cs: Added
20073
20074 2004-11-29  Peter Bartok  <pbartok@novell.com>
20075
20076         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20077           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20078           I am removing these files as they conflict with already completed
20079           work. While it is fantastic to get contributions to MWF, I
20080           respectfully ask that everyone please coordinate their contributions
20081           through mono-winforms-list or #mono-winforms at this time. We're
20082           explicitly avoiding stubbing and don't want controls that don't have
20083           their basic functionality implemented in svn. Please also see
20084           http://www.mono-project.com/contributing/winforms.html
20085
20086
20087 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20088
20089         * Application.cs (ModalRun): Don't hang after exit.
20090
20091         * Theme.cs: New TreeViewDefaultSize property.
20092
20093         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20094         with less hardcoded SystemColors constant.
20095         Implemented TreeViewDefaultSize.
20096
20097         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20098         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20099
20100
20101 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20102
20103         * MonthCalendar.cs:
20104           - Fix NextMonthDate and PrevMonthDate click moving calendar
20105
20106 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20107
20108         * MonthCalendar.cs:
20109           - Fix usage of ScrollChange Property when scrolling months
20110
20111 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20112
20113         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20114          - Fixes menu destroying
20115          - Support adding and removing items on already created menus
20116
20117 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20118
20119         * MonthCalendar.cs:
20120           - Re-worked all bolded dates handling to match win32
20121         * ThemeWin32Classic.cs:
20122           - Fixed rendering with bolded dates
20123
20124 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20125
20126         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20127         - Horizontal scroolbar
20128         - Multicolumn
20129         - Fixes
20130
20131
20132 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20133
20134         * MonthCalendar.cs:
20135           - Fix Usage of MaxSelectionCount from SelectionRange
20136           - Fixed Shift + Cursor Selection
20137           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20138           - Fixed normal cursor selection to be compat with win32
20139           - Fixed Shift + Mouse Click selection
20140
20141 2004-11-24  Peter Bartok <pbartok@novell.com>
20142
20143         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20144         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20145         * XplatUIX11.cs:
20146           - CreatedKeyBoardMsg now updates keystate with Alt key
20147           - Added workaround for timer crash to CheckTimers, Jackson will
20148             develop a proper fix and check in later
20149           - Implemented DispatchMessage
20150           - Removed calling the native window proc from GetMessage (call
20151             now moved to DispatchMessage)
20152
20153         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20154           the keydata (Fixes bug #69831)
20155
20156         * XplatUIWin32.cs:
20157           - (DispatchMessage): Switched to return IntPtr
20158           - Added DllImport for SetFocus
20159
20160 2004-11-24  Ravindra <rkumar@novell.com>
20161
20162         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20163         background drawing.
20164         * ListViewItem.cs: Fixed various properties, calculations
20165         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20166         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20167         and some internal properties. Fixed MouseDown handler and Paint
20168         method.
20169
20170 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20171
20172         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20173
20174 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20175
20176         * ContainerControl.cs: correct accidental check in of local changes
20177
20178 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20179
20180         * ThemeWin32Classic.cs:
20181                 - Fixed Drawing Last month in grid (sometimes not showing)
20182         * MonthCalendar.cs:
20183                 - Fixed title width calculation bug (makeing title small)
20184
20185 2004-11-23  Peter Bartok <pbartok@novell.com>
20186
20187         * XplatUIX11.cs:
20188           - Added generation of WM_MOUSEHOVER event
20189           - Added missing assignment of async_method atom
20190           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20191
20192 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20193
20194         * ThemeWin32Classic.cs:
20195                 - Fixed Drawing of today circle when showtodaycircle not set
20196                 - fixed drawing of first and last month in the grid (gay dates)
20197         * MonthCalendar.cs:
20198                 - Fixed Drawing of today circle
20199                 - Fixed drawing of grady dates
20200                 - Fixed HitTest for today link when ShowToday set to false
20201                 - Fixed DefaultSize to obey ShowToday
20202
20203 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20204
20205         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20206         * System.Windows.Forms/Theme.cs
20207         * MonthCalendar.cs: added for MonthCalendar
20208         * SelectionRange.cs: added for MonthCalendar
20209         * Day.cs: added for MonthCalendar: added for MonthCalendar
20210         * DateRangeEventArgs.cs: added for MonthCalendar
20211         * DateRangeEventHandler.cs: added for MonthCalendar
20212
20213 2004-11-22  Ravindra <rkumar@novell.com>
20214
20215         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20216         property.
20217
20218 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20219
20220         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20221         event handler.
20222         
20223         * NumericUpDown.cs: Added new implementation.
20224         * UpDownBase.cs: Added new implementation.
20225
20226         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20227         implementations.
20228         
20229         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20230         implementations.
20231
20232         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20233         methods.
20234
20235 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20236
20237         * Timer.cs  (Dispose): Should call the base dispose when
20238         overriding.
20239
20240 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20241
20242         * ScrollBar.cs: updates thumb position when max, min or increment
20243         is changed
20244
20245 2004-11-21  Ravindra <rkumar@novell.com>
20246
20247         * ListView.cs: Implemented item selection, activation and
20248         column header style. Fixed properties to do a redraw, if
20249         required. Added support for MouseHover, DoubleClick, KeyDown
20250         and KeyUp event handling and some minor fixes.
20251         * ListViewItem.cs: Fixed constructor.
20252         * ThemeWin32Classic.cs: Improved drawing for ListView.
20253
20254 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20255
20256         * ThemeWin32Classic.cs: initial listbox drawing code
20257         * DrawMode.cs: new enumerator
20258         * ListControl.cs: stubbed class
20259         * ListBox.cs: initial implementation
20260         * Theme.cs: new methods definitions
20261         * SelectionMode.cs: new enumerator
20262
20263 2004-11-17  Peter Bartok  <pbartok@novell.com>
20264
20265         * XplatUIWin32.cs: Added double-click events to the class style
20266         * Control.cs (WndProc):
20267           - Added handling of click-count to MouseDown/ MouseUp events.
20268           - Added handling of middle and right mouse buttons
20269           - Removed old debug code
20270
20271 2004-11-17  Jackson Harper  <jackson@ximian.com>
20272
20273         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20274
20275 2004-11-17  Ravindra <rkumar@novell.com>
20276
20277         * ListView.cs: Added event handling for MouseMove/Up/Down.
20278         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20279         * ThemeWin32Classic.cs: We need to clear the graphics context and
20280         draw column header in a proper state.
20281
20282
20283 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20284
20285         *  Menu.cs: fixes signature
20286
20287 2004-11-16  Peter Bartok  <pbartok@novell.com>
20288
20289         * XplatUIX11.cs (GetMessage): Implemented generation of
20290           double click mouse messages
20291
20292 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20293
20294         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20295         not by menu
20296
20297 2004-11-11  Peter Bartok  <pbartok@novell.com>
20298
20299         * HandleData.cs: Added Visible property
20300         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20301           HandleData
20302         * XplatUIX11.cs: Removed old debug leftovers
20303         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20304         * Control.cs (WndProc): Removed old debug leftovers,
20305           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20306           needed WM_SIZE handling
20307
20308 2004-11-11  Jackson Harper  <jackson@ximian.com>
20309
20310         * OwnerDrawPropertyBag.cs:
20311         * TreeViewImageIndexConverter.cs: Initial implementation
20312
20313 2004-11-10  Jackson Harper  <jackson@ximian.com>
20314
20315         * ThemeWin32Classic.cs:
20316         * TabControl.cs: instead of moving tabs by the slider pos just
20317         start drawing at the tab that is offset by the slider. This way
20318         scrolling always moves by exactly one tab.
20319
20320 2004-11-10  Jackson Harper  <jackson@ximian.com>
20321
20322         * TabControl.cs: You can only scroll left when the slider has
20323         already ben moved right.
20324         
20325 2004-11-10  Jackson Harper  <jackson@ximian.com>
20326
20327         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20328         the clip area.
20329         
20330 2004-11-10  Jackson Harper  <jackson@ximian.com>
20331
20332         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20333         clip area.
20334         
20335 2004-11-09  Jackson Harper  <jackson@ximian.com>
20336
20337         * TabControl.cs (CalcXPos): New helper method so we can determine
20338         the proper place to start drawing vertical tabs.
20339         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20340         
20341 2004-11-09  Jackson Harper  <jackson@ximian.com>
20342
20343         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20344         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20345         and Bottom, left and right are illegal values for this and
20346         multiline is enabled when the alignment is set to left or right.
20347         (DrawTab): Each alignment block should draw the text itself now
20348         because Left requires special love. Also add rendering for Left
20349         aligned tabs.
20350         
20351 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20352
20353         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20354         does not destroy the windows, removes debugging messages
20355
20356 2004-11-09  jba  <jba-mono@optusnet.com.au>
20357
20358         * ThemeWin32Classic.cs
20359         (DrawButtonBase): Fix verticle text rect clipping in windows
20360         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20361         rendering and incorrect text rect clipping
20362         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20363         rendering and incorrect text rect clipping
20364         
20365 2004-11-08  Jackson Harper  <jackson@ximian.com>
20366
20367         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20368         bottom when they are bottom aligned so the bottoms of the tabs get
20369         displayed.
20370         * TabControl.cs (DropRow): Move rows up instead of down when the
20371         tab control is bottom aligned.
20372
20373 2004-11-08 13:59  pbartok
20374
20375         * XplatUIX11.cs:
20376           - Added handling for various window styles
20377           - Added handling for popup windows
20378           - Added SetTopmost handling
20379
20380 2004-11-08 13:55  pbartok
20381
20382         * XplatUIWin32.cs:
20383           - Added argument to SetTopmost method
20384           - Fixed broken ClientToScreen function
20385
20386 2004-11-08 13:53  pbartok
20387
20388         * XplatUIStructs.cs:
20389           - Added missing WS_EX styles
20390
20391 2004-11-08 13:53  pbartok
20392
20393         * XplatUI.cs, XplatUIDriver.cs:
20394           - Added argument to SetTopmost
20395
20396 2004-11-08 13:52  pbartok
20397
20398         * X11Structs.cs:
20399           - Added XSetWindowAttributes structure
20400           - Improved XWindowAttributes structure
20401           - Added SetWindowValuemask enum
20402           - Added window creation arguments enum
20403           - Added gravity enum
20404           - Added Motif hints structure
20405           - Added various Motif flags and enums
20406           - Added PropertyMode enum for property functions
20407
20408 2004-11-08 13:50  pbartok
20409
20410         * Form.cs:
20411           - Fixed arguments for updated SetTopmost method
20412
20413 2004-11-08 13:49  pbartok
20414
20415         * ToolTip.cs:
20416           - Fixed arguments for updated SetTopmost function
20417           - Fixed usage of PointToClient
20418
20419 2004-11-08 13:44  pbartok
20420
20421         * MenuAPI.cs:
20422           - Added Clipping of children and siblings
20423
20424 2004-11-08 13:41  pbartok
20425
20426         * MainMenu.cs:
20427           - Removed SetMenuBarWindow call. We do this in Form.cs
20428
20429 2004-11-08 13:40  jackson
20430
20431         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20432           scrolling jimmi in the correct location with bottom aligned tabs
20433
20434 2004-11-08 13:36  pbartok
20435
20436         * ContainerControl.cs:
20437           - Implemented BindingContext
20438           - Implemented ParentForm
20439
20440 2004-11-08 12:46  jackson
20441
20442         * TabControl.cs: Put bottom rendered tabs in the right location
20443
20444 2004-11-08 07:15  jordi
20445
20446         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20447           removes dead code
20448
20449 2004-11-05 17:30  jackson
20450
20451         * TabControl.cs: When selected tabs are expanded make sure they
20452           don't go beyond the edges of the tab control
20453
20454 2004-11-05 14:57  jackson
20455
20456         * TabControl.cs: Reset show_slider so if the control is resized to
20457           a size where it is no longer needed it's not displayed anymore
20458
20459 2004-11-05 13:16  jackson
20460
20461         * TabControl.cs: Make tab pages non visible when added to the
20462           control
20463
20464 2004-11-05 12:42  jackson
20465
20466         * TabControl.cs: Implement SizeMode.FillToRight
20467
20468 2004-11-05 12:16  jackson
20469
20470         * Control.cs: Do not call CreateHandle if the handle is already
20471           created
20472
20473 2004-11-05 11:46  jackson
20474
20475         * TabControl.cs: Remove superflous call to CalcTabRows
20476
20477 2004-11-05 09:07  jackson
20478
20479         * XplatUIX11.cs: Update for Mono.Posix changes
20480
20481 2004-11-05 07:00  ravindra
20482
20483         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20484           scrolling.
20485
20486 2004-11-04 22:47  jba
20487
20488         * ThemeWin32Classic.cs:
20489           - Fix Button rendering for FlatStyle = Flat or Popup
20490           - Fix RadioButton and CheckBox rendering when Appearance = Button
20491             (normal and flatstyle).
20492           - Correct outer rectangle color when drawing focus rectangle
20493           - Adjust button bounds to be 1 px smaller when focused
20494           - Make button not draw sunken 3d border when pushed (windows compat)
20495           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20496           - Offset the text in RadioButton and Checkbox when being rendered as
20497           a button.
20498           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20499           radiobuttons
20500           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20501           - Fixed disabled text rendering for normally rendered radiobuttons
20502
20503 2004-11-04 10:26  jackson
20504
20505         * TabControl.cs: Recalculate tab rows when resizing
20506
20507 2004-11-04 07:47  jordi
20508
20509         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20510           collection completion, drawing issues, missing features
20511
20512 2004-11-04 05:03  ravindra
20513
20514         * ScrollBar.cs:
20515                 - We need to recalculate the Thumb area when
20516                 LargeChange/maximum/minimum values are changed.
20517           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20518                 than minimum. This is required to handle the case if large_change is
20519                 more than max, and use LargeChange property instead of large_change
20520                 variable.
20521           - We return max+1 when large_change is more than max, like MS does.
20522
20523 2004-11-04 04:29  ravindra
20524
20525         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20526                 - Changed default value signatures (prefixed all with ListView).
20527                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20528                 ListView.
20529           - Fixed calculations for ListViewItem and implemented Clone()
20530           method.
20531
20532 2004-11-04 04:26  ravindra
20533
20534         * Theme.cs, ThemeWin32Classic.cs:
20535                 - Changed default ListView values signatures (prefixed all with
20536                 ListView).
20537           - Fixed default size values for VScrollBar and HScrollBar.
20538                 - Fixed DrawListViewItem method.
20539
20540 2004-11-04 04:05  ravindra
20541
20542         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20543
20544 2004-11-04 04:04  ravindra
20545
20546         * ImageList.cs: Implemented the missing overload for Draw method.
20547
20548 2004-11-03 19:29  jackson
20549
20550         * TabControl.cs: Handle dropping rows on selection properly
20551
20552 2004-11-03 11:59  jackson
20553
20554         * TabControl.cs: remove debug code
20555
20556 2004-11-03 11:52  jackson
20557
20558         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20559           the scrolly widgerywoo
20560
20561 2004-11-02 13:52  jackson
20562
20563         * TabControl.cs: Resize the tab pages and tabs when the tab control
20564           is resized
20565
20566 2004-11-02 13:40  jackson
20567
20568         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20569           selected tab to the bottom
20570
20571 2004-11-02 13:39  jackson
20572
20573         * TabPage.cs: Store the tab pages row
20574
20575 2004-11-02 12:33  jordi
20576
20577         * MenuItem.cs: fixes handle creation
20578
20579 2004-11-02 11:42  jackson
20580
20581         * TabControl.cs: signature fix
20582
20583 2004-11-02 08:56  jackson
20584
20585         * TabControl.cs: Calculate whether the tab is on an edge properly.
20586           Remove top secret debugging code
20587
20588 2004-11-01 19:57  jackson
20589
20590         * TabControl.cs: Add click handling, and proper sizing
20591
20592 2004-11-01 19:47  jackson
20593
20594         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20595           tab controls
20596
20597 2004-11-01 19:39  jackson
20598
20599         * TabPage.cs: add internal property to store the bounds of a tab
20600           page
20601
20602 2004-10-30 04:23  ravindra
20603
20604         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20605           values.
20606
20607 2004-10-30 04:21  ravindra
20608
20609         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20610           fixed calculations.
20611
20612 2004-10-30 03:06  pbartok
20613
20614         * XplatUIX11.cs:
20615           - Removed extension of DllImported libs
20616
20617 2004-10-29 09:55  jordi
20618
20619         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20620           navigation, itemcollection completion, menu fixes
20621
20622 2004-10-27 22:58  pbartok
20623
20624         * XplatUIX11.cs:
20625           - Now throws a nice error message when no X display could be opened
20626
20627 2004-10-26 13:51  jordi
20628
20629         * ListView.cs: removes warning
20630
20631 2004-10-26 03:55  ravindra
20632
20633         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20634           ThemeWin32Classic.cs: Some formatting for my last checkins.
20635
20636 2004-10-26 03:36  ravindra
20637
20638         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20639           control and default values.
20640
20641 2004-10-26 03:35  ravindra
20642
20643         * Theme.cs: Added some default values for ListView control.
20644
20645 2004-10-26 03:33  ravindra
20646
20647         * ToolBar.cs: ToolBar should use the user specified button size, if
20648           there is any. Added a size_specified flag for the same.
20649
20650 2004-10-26 03:33  ravindra
20651
20652         * ColumnHeader.cs: Added some internal members and calculations for
20653           ColumnHeader.
20654
20655 2004-10-26 03:32  ravindra
20656
20657         * ListViewItem.cs: Calculations for ListViewItem.
20658
20659 2004-10-26 03:31  ravindra
20660
20661         * ListView.cs: Added some internal members and calculations for
20662           ListView.
20663
20664 2004-10-22 13:31  jordi
20665
20666         * MenuAPI.cs: speedup menus drawing
20667
20668 2004-10-22 13:16  jackson
20669
20670         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20671           expose event
20672
20673 2004-10-22 11:49  jackson
20674
20675         * Control.cs: oops
20676
20677 2004-10-22 11:41  jackson
20678
20679         * Control.cs: Check to see if the window should have its background
20680           repainted by X when drawing.
20681
20682 2004-10-22 11:31  jackson
20683
20684         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20685           clear is true, this way we do not get flicker from X repainting the
20686           background
20687
20688 2004-10-22 11:28  jackson
20689
20690         * XEventQueue.cs: Queue properly
20691
20692 2004-10-21 09:38  jackson
20693
20694         * XEventQueue.cs: Fix access modifier
20695
20696 2004-10-21 09:36  jackson
20697
20698         * XEventQueue.cs: Don't loose messages
20699
20700 2004-10-21 09:22  jackson
20701
20702         * XEventQueue.cs: Don't loose messages
20703
20704 2004-10-20 04:15  jordi
20705
20706         * BootMode.cs: enum need it by SystemInfo
20707
20708 2004-10-19 21:58  pbartok
20709
20710         * XplatUIWin32.cs:
20711           - Small sanity check
20712
20713 2004-10-19 21:56  pbartok
20714
20715         * Form.cs:
20716           - Added private FormParentWindow class which acts as the container
20717             for our form and as the non-client area where menus are drawn
20718           - Added/Moved required tie-ins to Jordi's menus
20719           - Fixed/Implemented the FormStartPosition functionality
20720
20721 2004-10-19 21:52  pbartok
20722
20723         * Control.cs:
20724           - Removed unneeded locals
20725           - Added code to all size and location properties to understand and
20726             deal with the parent container of Form
20727
20728 2004-10-19 21:33  pbartok
20729
20730         * Application.cs:
20731           - Fixed to deal with new Form subclasses for menus
20732
20733 2004-10-19 17:48  jackson
20734
20735         * XEventQueue.cs: commit correct version of file
20736
20737 2004-10-19 16:50  jackson
20738
20739         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20740
20741 2004-10-19 16:15  jordi
20742
20743         * MenuAPI.cs: MenuBarCalcSize returns the height
20744
20745 2004-10-19 08:31  pbartok
20746
20747         * Control.cs:
20748           - Added missing call to PreProcessMessage before calling OnXXXKey
20749           methods
20750
20751 2004-10-19 00:04  ravindra
20752
20753         * ToolTip.cs: Fixed constructor.
20754
20755 2004-10-18 09:31  jordi
20756
20757         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20758
20759 2004-10-18 09:26  jordi
20760
20761         * MenuItem.cs: fixes MenuItem class signature
20762
20763 2004-10-18 08:56  jordi
20764
20765         * MenuAPI.cs: prevents windows from showing in the taskbar
20766
20767 2004-10-18 00:28  ravindra
20768
20769         * ToolTip.cs: Suppressed a warning message.
20770
20771 2004-10-18 00:27  ravindra
20772
20773         * Control.cs: Default value of visible property must be true.
20774
20775 2004-10-17 23:19  pbartok
20776
20777         * ToolTip.cs:
20778           - Complete implementation
20779
20780 2004-10-17 23:19  pbartok
20781
20782         * XplatUIX11.cs:
20783           - Added EnableWindow method
20784           - Added SetModal stub
20785           - Added generation of WM_ACTIVATE message (still needs testing)
20786           - Added SetTopMost stub
20787           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20788
20789 2004-10-17 23:17  pbartok
20790
20791         * XplatUIWin32.cs:
20792           - Removed VirtualKeys to XplatUIStructs
20793           - Implemented SetTopMost method
20794           - Implemented EnableWindow method
20795           - Bugfix in ScreenToClient()
20796           - Bugfixes in ClientToScreen()
20797
20798 2004-10-17 22:51  pbartok
20799
20800         * XplatUIStructs.cs:
20801           - Added WS_EX styles to WindowStyles enumeration
20802
20803 2004-10-17 22:50  pbartok
20804
20805         * XplatUI.cs, XplatUIDriver.cs:
20806           - Added method for enabling/disabling windows
20807           - Added method for setting window modality
20808           - Added method for setting topmost window
20809
20810 2004-10-17 22:49  pbartok
20811
20812         * ThemeWin32Classic.cs:
20813           - Added ToolTip drawing code
20814
20815 2004-10-17 22:49  pbartok
20816
20817         * Theme.cs:
20818           - Added ToolTip abstracts
20819
20820 2004-10-17 22:47  pbartok
20821
20822         * Form.cs:
20823           - Fixed Form.ControlCollection to handle owner relations
20824           - Added Owner/OwnedForms handling
20825           - Implemented Z-Ordering for owned forms
20826           - Removed unneeded private overload of ShowDialog
20827           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20828             so I hope)
20829           - Fixed Close(), had wrong default
20830           - Added firing of OnLoad event
20831           - Added some commented out debug code for Ownership handling
20832
20833 2004-10-17 22:16  pbartok
20834
20835         * Control.cs:
20836           - Fixed/implemented flat list of controls
20837
20838 2004-10-17 22:14  pbartok
20839
20840         * Application.cs:
20841           - Added code to simulate modal dialogs on Win32
20842
20843 2004-10-17 16:11  jordi
20844
20845         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20846           mouse event
20847
20848 2004-10-17 13:39  jordi
20849
20850         * MenuAPI.cs: menu drawing fixes
20851
20852 2004-10-15 09:10  ravindra
20853
20854         * StructFormat.cs: General Enum.
20855
20856 2004-10-15 09:09  ravindra
20857
20858         * SizeGripStyle.cs: Enum for Form.
20859
20860 2004-10-15 09:08  ravindra
20861
20862         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20863           in Theme for ListView.
20864
20865 2004-10-15 09:06  ravindra
20866
20867         * ColumnHeader.cs: Flushing some formatting changes.
20868
20869 2004-10-15 09:05  ravindra
20870
20871         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20872           style.
20873
20874 2004-10-15 09:03  ravindra
20875
20876         * ListView.cs: Implemented Paint method and fixed coding style.
20877
20878 2004-10-15 07:34  jordi
20879
20880         * MenuAPI.cs: fix for X11
20881
20882 2004-10-15 07:32  ravindra
20883
20884         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20885                 - Renamed Paint() method to Draw() for clarity. Also, moved
20886                 DrawImage() to OnPaint().
20887
20888 2004-10-15 07:25  ravindra
20889
20890         * CheckBox.cs, RadioButton.cs:
20891                 - Removed Redraw (), we get it from ButtonBase.
20892                 - Implemented Paint (), to do class specific painting.
20893
20894 2004-10-15 07:16  ravindra
20895
20896         * ButtonBase.cs:
20897                 - Redraw () is not virtual now.
20898                 - Added an internal virtual method Paint (), so that
20899                 derived classes can do their painting on their own.
20900                 - Modified OnPaint () to call Paint ().
20901
20902 2004-10-15 06:43  jordi
20903
20904         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20905           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20906
20907 2004-10-15 00:30  ravindra
20908
20909         * MessageBox.cs:
20910                 - MessageBox on windows does not have min/max buttons.
20911                 This change in CreateParams fixes this on Windows. We
20912                 still need to implement this windowstyle behavior in
20913                 our X11 driver.
20914
20915 2004-10-14 05:14  ravindra
20916
20917         * ToolBar.cs:
20918                 - Changed Redraw () to do a Refresh () always.
20919                 - Fixed the MouseMove event handling when mouse is pressed,
20920                 ie drag event handling.
20921                 - Replaced the usage of ToolBarButton.Pressed property to
20922                 ToolBarButton.pressed internal variable.
20923
20924 2004-10-14 05:10  ravindra
20925
20926         * ToolBarButton.cs:
20927                 - Added an internal member 'inside' to handle mouse move
20928                 with mouse pressed ie mouse drag event.
20929                 - Changed 'Pressed' property to return true only when
20930                 'inside' and 'pressed' are both true.
20931                 - Some coding style love.
20932
20933 2004-10-14 00:17  ravindra
20934
20935         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
20936           public method.
20937
20938 2004-10-14 00:15  ravindra
20939
20940         * ButtonBase.cs: Redraw () related improvements.
20941
20942 2004-10-14 00:14  ravindra
20943
20944         * MessageBox.cs: Moved InitFormSize () out of Paint method and
20945           removed unnecessary calls to Button.Show () method.
20946
20947 2004-10-13 17:50  pbartok
20948
20949         * XplatUIX11.cs:
20950           - Formatting fix
20951           - Removed destroying of window until we solve the problem of X
20952             destroying the window before us on shutdown
20953
20954 2004-10-13 16:32  pbartok
20955
20956         * ButtonBase.cs:
20957           - Now Redraws on MouseUp for FlatStyle Flat and Popup
20958
20959 2004-10-13 14:18  pbartok
20960
20961         * XplatUIX11.cs:
20962           - Added code to destroy the X window
20963
20964 2004-10-13 14:18  pbartok
20965
20966         * XplatUIWin32.cs:
20967           - Added code to destroy a window
20968
20969 2004-10-13 14:12  pbartok
20970
20971         * ButtonBase.cs:
20972           - Added the Redraw on Resize that got dropped in the last rev
20973
20974 2004-10-13 09:06  pbartok
20975
20976         * ThemeWin32Classic.cs:
20977           - Path from John BouAntoun:
20978             * Fix check rendering (centre correctly for normal style, offset
20979               correctly for FlatStyle).
20980             * Fix border color usage (use backcolor) for FlatStyle.Popup
20981             * Use checkbox.Capture instead of checkbox.is_pressed when
20982               rendering flatstyle states.
20983
20984 2004-10-12 21:48  pbartok
20985
20986         * ThemeWin32Classic.cs:
20987           - Removed all occurences of SystemColors and replaced them with the
20988             matching theme color
20989
20990 2004-10-12 21:41  pbartok
20991
20992         * ThemeWin32Classic.cs:
20993           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
20994             him using the function for flatstyle drawing
20995           - Changed functions to use the new version of CPDrawBorder3D
20996
20997 2004-10-12 21:15  pbartok
20998
20999         * ControlPaint.cs:
21000           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21001             match MS documentation. They need to return defined colors if the
21002             passed color matches the configured control color. Thanks to John
21003             BouAntoun for pointing this out.
21004
21005 2004-10-12 20:57  pbartok
21006
21007         * Control.cs:
21008           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21009             color is changed
21010
21011 2004-10-12 20:46  pbartok
21012
21013         * CheckBox.cs:
21014           - Fix from John BouAntoun: Now properly sets the Appearance property
21015
21016 2004-10-12 20:45  pbartok
21017
21018         * ThemeWin32Classic.cs:
21019           - Fixes from John BouAntoun: now handles forecolors and backcolors
21020             for flatstyle rendered controls much better; It also fixes normal
21021             checkbox rendering when pushed or disabled.
21022
21023 2004-10-08 02:50  jordi
21024
21025         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21026           work
21027
21028 2004-10-07 08:56  jordi
21029
21030         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21031
21032 2004-10-06 03:59  jordi
21033
21034         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21035           XplatUIWin32.cs: removes warnings from compilation
21036
21037 2004-10-05 12:23  jackson
21038
21039         * RadioButton.cs: Fix ctor
21040
21041 2004-10-05 11:10  pbartok
21042
21043         * MessageBox.cs:
21044           - Partial implementation by Benjamin Dasnois
21045
21046 2004-10-05 10:15  jackson
21047
21048         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21049           by John BouAntoun
21050
21051 2004-10-05 03:07  ravindra
21052
21053         * ToolBar.cs:
21054                 - Removed a private method, Draw ().
21055                 - Fixed the ButtonDropDown event handling.
21056                 - Fixed MouseMove event handling.
21057
21058 2004-10-05 03:04  ravindra
21059
21060         * ThemeWin32Classic.cs:
21061                 - Added DrawListView method and ListViewDefaultSize property.
21062                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21063                 - Changed DOS style CRLF to Unix format (dos2unix).
21064
21065 2004-10-05 03:03  ravindra
21066
21067         * Theme.cs:
21068                 - Added DrawListView method and ListViewDefaultSize property.
21069
21070 2004-10-05 02:42  ravindra
21071
21072         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21073           clicks on DropDown arrow.
21074
21075 2004-10-04 22:56  jackson
21076
21077         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21078           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21079           Control handle the buffers, derived classes should not have to
21080           CreateBuffers themselves.
21081
21082 2004-10-04 21:20  jackson
21083
21084         * StatusBar.cs: The control handles resizing the buffers now.
21085
21086 2004-10-04 21:18  jackson
21087
21088         * Control.cs: When resizing the buffers should be invalidated. This
21089           should be handled in Control not in derived classes.
21090
21091 2004-10-04 14:45  jackson
21092
21093         * TabPage.cs: oops
21094
21095 2004-10-04 02:14  pbartok
21096
21097         * LeftRightAlignment.cs:
21098           - Initial check-in
21099
21100 2004-10-04 01:09  jordi
21101
21102         * ThemeWin32Classic.cs: fixes right button position causing right
21103           button not showing on horizontal scrollbars
21104
21105 2004-10-02 13:12  pbartok
21106
21107         * XplatUIX11.cs:
21108           - Simplified the Invalidate method by using an X call instead of
21109             generating the expose ourselves
21110           - Added an expose when the window background is changed
21111           - Implemented ClientToScreen method
21112
21113 2004-10-02 13:08  pbartok
21114
21115         * XplatUIWin32.cs:
21116           - Added Win32EnableWindow method (test for implementing modal
21117           dialogs)
21118           - Added ClientToScreen method and imports
21119
21120 2004-10-02 13:07  pbartok
21121
21122         * XplatUI.cs, XplatUIDriver.cs:
21123           - Added ClientToScreen coordinate translation method
21124
21125 2004-10-02 13:06  pbartok
21126
21127         * KeyPressEventArgs.cs:
21128           - Fixed access level for constructor
21129
21130 2004-10-02 13:06  pbartok
21131
21132         * NativeWindow.cs:
21133           - Changed access level for the window_collection hash table
21134
21135 2004-10-02 13:05  pbartok
21136
21137         * Form.cs:
21138           - Added KeyPreview property
21139           - Added Menu property (still incomplete, pending Jordi's menu work)
21140           - Implemented ProcessCmdKey
21141           - Implemented ProcessDialogKey
21142           - Implemented ProcessKeyPreview
21143
21144 2004-10-02 13:02  pbartok
21145
21146         * Control.cs:
21147           - Added private method to get the Control object from the window
21148           handle
21149           - Implemented ContextMenu property
21150           - Implemented PointToScreen
21151           - Implemented PreProcessMessage
21152           - Implemented IsInputChar
21153           - Implemented IsInputKey
21154           - Implemented ProcessCmdKey
21155           - Completed ProcessKeyEventArgs
21156           - Fixed message loop to call the proper chain of functions on key
21157           events
21158           - Implemented ProcessDialogChar
21159           - Implemented ProcessDialogKey
21160           - Implemented ProcessKeyMessage
21161           - Implemented ProcessKeyPreview
21162           - Added RaiseDragEvent stub (MS internal method)
21163           - Added RaiseKeyEvent stub (MS internal method)
21164           - Added RaiseMouseEvent stub (MS Internal method)
21165           - Added RaisePaintEvent stub (MS Internal method)
21166           - Added ResetMouseEventArgs stub (MS Internal method)
21167           - Implemented RtlTranslateAlignment
21168           - Implemented RtlTranslateContent
21169           - Implemented RtlTranslateHorizontal
21170           - Implemented RtlTranslateLeftRight
21171           - Added generation of KeyPress event
21172
21173 2004-10-02 05:57  ravindra
21174
21175         * ListViewItem.cs: Added attributes.
21176
21177 2004-10-02 05:32  ravindra
21178
21179         * ListView.cs: Added attributes.
21180
21181 2004-10-01 11:53  jackson
21182
21183         * Form.cs: Implement the Close method so work on MessageBox can
21184           continue.
21185
21186 2004-09-30 14:06  pbartok
21187
21188         * XplatUIX11.cs:
21189           - Bug fixes
21190
21191 2004-09-30 11:34  jackson
21192
21193         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21194
21195 2004-09-30 07:26  ravindra
21196
21197         * ListViewItemConverter.cs: Converter for ListViewItem.
21198
21199 2004-09-30 07:26  ravindra
21200
21201         * SortOrder.cs: Enum for ListView control.
21202
21203 2004-09-30 07:25  ravindra
21204
21205         * ColumnHeader.cs: Supporting class for ListView control.
21206
21207 2004-09-30 07:24  ravindra
21208
21209         * ListView.cs, ListViewItem.cs: Initial implementation.
21210
21211 2004-09-30 07:20  ravindra
21212
21213         * ItemActivation.cs: Enum for ListView Control.
21214
21215 2004-09-29 20:29  pbartok
21216
21217         * XplatUIX11.cs:
21218           - Added lookup of pixel value for background color; tries to get a
21219             color 'close' to the requested color, it avoids having to create a
21220             colormap.  Depending on the display this could mean the used color
21221             is slightly off the desired color. Might have to change it to a more
21222             resource intensive colormap approach, but it will work as a
21223           workaround to avoid red screens.
21224
21225 2004-09-29 14:27  jackson
21226
21227         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21228
21229 2004-09-28 12:44  pbartok
21230
21231         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21232           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21233           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21234           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21235           TrackBar.cs, VScrollBar.cs:
21236           - Streamlined Theme interfaces:
21237             * Each DrawXXX method for a control now is passed the object for
21238               the control to be drawn in order to allow accessing any state the
21239               theme might require
21240
21241             * ControlPaint methods for the theme now have a CP prefix to avoid
21242               name clashes with the Draw methods for controls
21243
21244             * Every control now retrieves it's DefaultSize from the current
21245             theme
21246
21247 2004-09-28 12:17  jackson
21248
21249         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21250           drawing
21251
21252 2004-09-24 14:57  jackson
21253
21254         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21255           Gives us a nice little performance boost.
21256
21257 2004-09-24 12:02  jackson
21258
21259         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21260           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21261           Control and supporting classes. Initial checkin
21262
21263 2004-09-23 13:08  jackson
21264
21265         * Form.cs: Temp build fixage
21266
21267 2004-09-23 01:39  ravindra
21268
21269         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21270           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21271           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21272           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21273           EventHandlers needed by ListView Control.
21274
21275 2004-09-22 14:12  pbartok
21276
21277         * ScrollableControl.cs:
21278           - Implemented DockPadding property
21279           - Implemented AutoScroll property
21280           - Implemented AutoScrollMargin property
21281           - Implemented AutoScrollMinSize property
21282           - Implemented AutoScrollPosition property
21283           - Implemented DisplayRectangle property (still incomplete)
21284           - Implemented CreateParams property
21285           - Implemented HScroll property
21286           - Implemented VScroll property
21287           - Implemented OnVisibleChanged property
21288
21289 2004-09-22 14:09  pbartok
21290
21291         * Form.cs:
21292           - Added Form.ControllCollection class
21293           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21294             RemoveOwnedForm (still incomplete, missing on-top and common
21295             minimize/maximize behaviour)
21296           - Added StartPosition property (still incomplete, does not use when
21297             creating the form)
21298           - Added ShowDialog() methods (still incomplete, missing forcing the
21299             dialog modal)
21300
21301 2004-09-22 14:05  pbartok
21302
21303         * Application.cs:
21304           - Added message loop for modal dialogs
21305
21306 2004-09-22 14:02  pbartok
21307
21308         * GroupBox.cs:
21309           - Fixed wrong types for events
21310
21311 2004-09-22 14:00  pbartok
21312
21313         * Shortcut.cs, FormWindowState.cs:
21314           - Fixed wrong values
21315
21316 2004-09-22 12:01  jackson
21317
21318         * Control.cs: Text is never null
21319
21320 2004-09-20 22:14  pbartok
21321
21322         * XplatUIWin32.cs:
21323           - Fixed accessibility level for Idle handler
21324
21325 2004-09-20 18:54  jackson
21326
21327         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21328           XplatUIX11.cs: New message loop that uses poll so we don't get a
21329           busy loop
21330
21331 2004-09-17 10:43  pbartok
21332
21333         * ScrollBar.cs:
21334           - Fixed behaviour of arrow buttons. Now properly behaves like
21335             Buttons (and like Microsoft's scrollbar arrow buttons)
21336
21337 2004-09-17 10:14  pbartok
21338
21339         * ScrollBar.cs:
21340           - Added missing release of keyboard/mouse capture
21341
21342 2004-09-17 06:18  jordi
21343
21344         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21345           Theme.cs: Very early menu support
21346
21347 2004-09-16 17:45  pbartok
21348
21349         * XplatUIWin32.cs:
21350           - Fixed sending a window to the front
21351           - Added overload for SetWindowPos to avoid casting
21352
21353 2004-09-16 17:44  pbartok
21354
21355         * Control.cs:
21356           - Added SendToBack and BringToFront methods
21357
21358 2004-09-16 07:00  ravindra
21359
21360         * Copyright: Added Novell URL.
21361
21362 2004-09-16 07:00  ravindra
21363
21364         * ToolBar.cs: Invalidate should be done before redrawing.
21365
21366 2004-09-15 21:19  ravindra
21367
21368         * ColumnHeaderStyle.cs: Enum for ListView Control.
21369
21370 2004-09-15 21:18  ravindra
21371
21372         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21373           ListView Control.
21374
21375 2004-09-13 18:26  jackson
21376
21377         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21378           properly
21379
21380 2004-09-13 18:13  jackson
21381
21382         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21383           a second thread and post messages into the main threads message
21384           queue. This makes timing much more consistent. Both win2K and XP
21385           have a minimum timer value of 15 milliseconds, so we now do this
21386           too.
21387
21388 2004-09-13 15:18  pbartok
21389
21390         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21391           XplatUIX11.cs:
21392           - Added Z-Ordering methods
21393
21394 2004-09-13 10:56  pbartok
21395
21396         * Form.cs:
21397           - Fixed #region names
21398           - Moved properties and methods into their proper #regions
21399
21400 2004-09-13 10:51  pbartok
21401
21402         * Form.cs:
21403           - Added Accept and CancelButton properties
21404           - Added ProcessDialogKey() method
21405
21406 2004-09-13 08:18  pbartok
21407
21408         * IWindowTarget.cs:
21409           - Initial check-in
21410
21411 2004-09-10 21:50  pbartok
21412
21413         * Control.cs:
21414           - Added DoDragDrop() [incomplete]
21415           - Properly implemented 'Visible' handling
21416           - Added SetVisibleCore()
21417           - Implemented FindChildAtPoint()
21418           - Implemented GetContainerControl()
21419           - Implemented Hide()
21420
21421 2004-09-10 19:28  pbartok
21422
21423         * Control.cs:
21424           - Moved methods into their appropriate #regions
21425           - Reordered methods within regions alphabetically
21426
21427 2004-09-10 18:57  pbartok
21428
21429         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21430           - Added method to retrieve text from window
21431
21432 2004-09-10 18:56  pbartok
21433
21434         * Control.cs:
21435           - Moved some internal functions into the internal region
21436           - Implemented FontHeight
21437           - Implemented RenderRightToLeft
21438           - Implemented ResizeRedraw
21439           - Implemented ShowFocusCues
21440           - Implemented ShowKeyboardCues
21441           - Implemented FromChildHandle
21442           - Implemented FromHandle
21443           - Implemented IsMnemonic
21444           - Implemented ReflectMessage
21445           - All public and protected Static Methods are now complete
21446
21447 2004-09-10 16:54  pbartok
21448
21449         * Control.cs:
21450           - Implemented remaining missing public instance properties
21451           - Alphabetized some out of order properties
21452
21453 2004-09-10 05:51  ravindra
21454
21455         * PictureBox.cs: Added a check for null image.
21456
21457 2004-09-10 00:59  jordi
21458
21459         * GroupBox.cs: remove cvs tag
21460
21461 2004-09-09 05:25  ravindra
21462
21463         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21464
21465 2004-09-09 05:23  ravindra
21466
21467         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21468           parent redraw.
21469
21470 2004-09-09 02:28  pbartok
21471
21472         * ThemeWin32Classic.cs:
21473           - Improve disabled string look
21474
21475 2004-09-09 01:15  jordi
21476
21477         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21478           args and handler
21479
21480 2004-09-08 23:56  ravindra
21481
21482         * ItemBoundsPortion.cs: It's enum, not a class!
21483
21484 2004-09-08 23:47  ravindra
21485
21486         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21487           Enums for Form.
21488
21489 2004-09-08 21:13  ravindra
21490
21491         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21492           ListView control.
21493
21494 2004-09-08 21:03  ravindra
21495
21496         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21497           avoid crash.
21498
21499 2004-09-08 21:01  ravindra
21500
21501         * ScrollableControl.cs: Removed unreachable code.
21502
21503 2004-09-08 06:45  jordi
21504
21505         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21506
21507 2004-09-08 01:00  jackson
21508
21509         * XplatUIX11.cs: Only run the timers when updating the message
21510           queue. This effectively gives X messages a higher priority then
21511           timer messages. Timers still need love though
21512
21513 2004-09-07 14:01  jackson
21514
21515         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21516           this for us and the handle is no longer valid.
21517
21518 2004-09-07 13:59  jackson
21519
21520         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21521           loop that manages to not crash. TODO: Add poll and cleanup timers
21522
21523 2004-09-07 11:12  jordi
21524
21525         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21526
21527 2004-09-07 03:40  jordi
21528
21529         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21530           fixes, methods, multiple links
21531
21532 2004-09-06 06:55  jordi
21533
21534         * Control.cs: Caches ClientRectangle rectangle value
21535
21536 2004-09-05 02:03  jordi
21537
21538         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21539           certain situations
21540
21541 2004-09-04 11:10  jordi
21542
21543         * Label.cs: Refresh when font changed
21544
21545 2004-09-02 16:24  pbartok
21546
21547         * Control.cs:
21548           - Added sanity check to creation of double buffer bitmap
21549
21550 2004-09-02 16:24  pbartok
21551
21552         * ButtonBase.cs:
21553           - Fixed selection of text color
21554           - Fixed handling of resize event; now properly recreates double
21555             buffering bitmap
21556           - Added missing assignment of TextAlignment
21557           - Added proper default for TextAlignment
21558
21559 2004-09-02 14:26  pbartok
21560
21561         * RadioButton.cs:
21562           - Added missing RadioButton.RadioButtonAccessibleObject class
21563
21564 2004-09-02 14:26  pbartok
21565
21566         * Control.cs:
21567           - Added missing Control.ControlAccessibleObject class
21568           - Started to implement Select()ion mechanisms, still very incomplete
21569
21570 2004-09-02 14:25  pbartok
21571
21572         * AccessibleObject.cs:
21573           - Added missing methods
21574
21575 2004-09-02 14:23  pbartok
21576
21577         * AccessibleNavigation.cs, AccessibleSelection.cs:
21578           - Initial check-in
21579
21580 2004-09-02 10:32  jordi
21581
21582         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21583           pool for pens, brushes, and hatchbruses
21584
21585 2004-09-01 15:30  jackson
21586
21587         * StatusBar.cs: Fix typo
21588
21589 2004-09-01 14:44  pbartok
21590
21591         * RadioButton.cs:
21592           - Fixed state
21593
21594 2004-09-01 14:39  pbartok
21595
21596         * Button.cs, RadioButton.cs:
21597           - Functional initial check-in
21598
21599 2004-09-01 14:01  pbartok
21600
21601         * CheckBox.cs:
21602           - Added missing default
21603           - Added missing region mark
21604
21605 2004-09-01 09:10  jordi
21606
21607         * Label.cs: fixes method signatures, new methods, events, fixes
21608           autosize
21609
21610 2004-09-01 07:19  jordi
21611
21612         * Control.cs: Init string variables with an empty object
21613
21614 2004-09-01 04:20  jordi
21615
21616         * Control.cs: fires OnFontChanged event
21617
21618 2004-08-31 20:07  pbartok
21619
21620         * ButtonBase.cs:
21621           - Enabled display of strings
21622
21623 2004-08-31 20:05  pbartok
21624
21625         * Form.cs:
21626           - Added (partial) implementation of DialogResult; rest needs to be
21627             implemented when the modal loop code is done
21628
21629 2004-08-31 19:55  pbartok
21630
21631         * CheckBox.cs:
21632           - Fixed to match the removal of the needs_redraw concept
21633
21634 2004-08-31 19:55  pbartok
21635
21636         * ButtonBase.cs:
21637           - Removed the rather odd split between 'needs redraw' and redrawing
21638           - Now handles the events that require regeneration (ambient
21639             properties and size)
21640
21641 2004-08-31 19:41  pbartok
21642
21643         * Control.cs:
21644           - Added firing of BackColorChanged event
21645           - Added TopLevelControl property
21646           - Fixed handling of WM_ERASEBKGRND message
21647
21648 2004-08-31 12:49  pbartok
21649
21650         * ButtonBase.cs:
21651           - Removed debug
21652           - Minor fixes
21653
21654 2004-08-31 12:48  pbartok
21655
21656         * CheckBox.cs:
21657           - Finished (famous last words)
21658
21659 2004-08-31 04:35  jordi
21660
21661         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21662           scrolling bugs, adds new methods
21663
21664 2004-08-30 14:42  pbartok
21665
21666         * CheckBox.cs:
21667           - Implemented CheckBox drawing code
21668
21669 2004-08-30 14:42  pbartok
21670
21671         * ButtonBase.cs:
21672           - Made Redraw() and CheckRedraw() virtual
21673           - Improved mouse up/down/move logic to properly track buttons
21674
21675 2004-08-30 09:44  pbartok
21676
21677         * CheckBox.cs:
21678           - Updated to fix broken build. Not complete yet.
21679
21680 2004-08-30 09:28  pbartok
21681
21682         * CheckState.cs:
21683           - Initial checkin
21684
21685 2004-08-30 09:17  pbartok
21686
21687         * Appearance.cs:
21688           - Initial check-in
21689
21690 2004-08-27 16:12  ravindra
21691
21692         * ToolBarButton.cs: Added TypeConverter attribute.
21693
21694 2004-08-27 16:07  ravindra
21695
21696         * ImageIndexConverter.cs: Implemented.
21697
21698 2004-08-27 14:17  pbartok
21699
21700         * Control.cs:
21701           - Removed unneeded stack vars
21702           - First attempt to fix sizing issues when layout is suspended
21703
21704 2004-08-25 15:35  jordi
21705
21706         * ScrollBar.cs: more fixes to scrollbar
21707
21708 2004-08-25 14:04  ravindra
21709
21710         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21711           Added the missing divider code and grip for ToolBar Control.
21712
21713 2004-08-25 13:20  pbartok
21714
21715         * Control.cs:
21716           - Control now properly passes the ambient background color to child
21717             controls
21718
21719 2004-08-25 13:20  jordi
21720
21721         * ScrollBar.cs: small bug fix regarding bar position
21722
21723 2004-08-25 12:33  pbartok
21724
21725         * Timer.cs:
21726           - Now only calls SetTimer or KillTimer if the enabled state has
21727           changed
21728
21729 2004-08-25 12:33  pbartok
21730
21731         * XplatUIWin32.cs:
21732           - Fixed timer handling, now seems to work
21733           - Improved error message for window creation
21734
21735 2004-08-25 12:32  pbartok
21736
21737         * Control.cs:
21738           - Fixed generation of MouseUp message
21739
21740 2004-08-25 12:29  jordi
21741
21742         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21743           and fixes for progressbar
21744
21745 2004-08-24 18:43  ravindra
21746
21747         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21748           in ToolBar control.
21749
21750 2004-08-24 17:15  pbartok
21751
21752         * Panel.cs:
21753           - Added #region
21754           - Added missing events
21755           - Alphabetized
21756
21757 2004-08-24 17:14  pbartok
21758
21759         * StatusBar.cs, PictureBox.cs:
21760           - Now uses Control's CreateParams
21761
21762 2004-08-24 16:36  pbartok
21763
21764         * XplatUIX11.cs:
21765           - Fixed background color handling
21766           - Fixed sending of enter/leave events on a grab
21767
21768 2004-08-24 16:35  pbartok
21769
21770         * X11Structs.cs:
21771           - Refined definitions for CrossingEvent
21772
21773 2004-08-24 12:37  jordi
21774
21775         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21776           formmating, methods signature, and adds missing events
21777
21778 2004-08-24 12:24  jordi
21779
21780         * Control.cs: fire OnEnabledChanged event
21781
21782 2004-08-24 11:17  pbartok
21783
21784         * XplatUIWin32.cs:
21785           - Implemented SetTimer() and KillTimer()
21786
21787 2004-08-24 11:16  pbartok
21788
21789         * XplatUIX11.cs:
21790           - Now uses Remove instead of Add to kill the timer
21791
21792 2004-08-24 10:16  jackson
21793
21794         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21795           picture boxes in the theme now. Draw picture box borders and obey
21796           sizing modes
21797
21798 2004-08-24 05:49  jackson
21799
21800         * Timer.cs: Remove top secret debugging code
21801
21802 2004-08-24 05:34  jackson
21803
21804         * PictureBox.cs: Temp hack to make picture boxes draw their full
21805           image
21806
21807 2004-08-24 05:29  jackson
21808
21809         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21810           XplatUIX11.cs: Move timers to the driver level. On X they are
21811           queued by the driver and checked on idle.
21812
21813 2004-08-24 01:07  jackson
21814
21815         * XplatUIX11.cs: Use a queue for async messages instead of passing
21816           them as ClientMessages since that was totally broken. Also simply
21817           check for events and return an idle message if none are found. This
21818           gives us an idle handler, and prevents deadlocking when no messages
21819           are in the queue.
21820
21821 2004-08-23 18:19  ravindra
21822
21823         * XplatUIWin32.cs: Removed the unwanted destructor.
21824
21825 2004-08-23 17:27  pbartok
21826
21827         * ButtonBase.cs:
21828           - Finishing touches. Works now, just needs some optimizations.
21829
21830 2004-08-23 16:53  jordi
21831
21832         * ScrollBar.cs: small fix
21833
21834 2004-08-23 16:45  pbartok
21835
21836         * Application.cs:
21837           - Removed debug output
21838           - Simplifications
21839
21840 2004-08-23 16:43  jordi
21841
21842         * ScrollBar.cs: [no log message]
21843
21844 2004-08-23 16:10  pbartok
21845
21846         * Form.cs:
21847           - Fixed handling of WM_CLOSE message
21848           - Removed debug output
21849
21850 2004-08-23 16:09  pbartok
21851
21852         * Application.cs:
21853           - Added handling of Idle event
21854           - Added handling of form closing
21855           - Fixed reporting of MessageLoop property
21856           - Removed some unneeded code, should provide a bit of a speedup
21857
21858 2004-08-23 15:22  pbartok
21859
21860         * Control.cs:
21861           - Added InitLayout() method
21862           - Added code to properly perform layout when Anchor or Dock property
21863             is changed
21864           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21865             LAMESPEC, tried to do it in a way that makes sense
21866
21867 2004-08-23 14:10  jordi
21868
21869         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21870           properties and methods
21871
21872 2004-08-23 13:55  pbartok
21873
21874         * Control.cs:
21875           - Properly fixed Jordi's last fix
21876           - Now uses Cursor's Position property instead of calling XplatUI
21877           directly
21878
21879 2004-08-23 13:44  jordi
21880
21881         * PaintEventHandler.cs: Adding missing attribute
21882
21883 2004-08-23 13:39  pbartok
21884
21885         * Cursor.cs:
21886           - Implemented Position property
21887
21888 2004-08-23 13:39  pbartok
21889
21890         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21891           - Added method to move mouse cursor
21892
21893 2004-08-23 13:39  pbartok
21894
21895         * XplatUIX11.cs:
21896           - Fixed setting of background color
21897           - Added method to move mouse cursor
21898
21899 2004-08-23 13:16  jordi
21900
21901         * Control.cs: avoids null exception
21902
21903 2004-08-22 17:46  jackson
21904
21905         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21906           PictureBox
21907
21908 2004-08-22 17:40  jackson
21909
21910         * XplatUIX11.cs: Add some missing locks
21911
21912 2004-08-22 15:10  pbartok
21913
21914         * Control.cs, Form.cs:
21915           - Removed OverlappedWindow style from Control, instead it's default
21916             now is child
21917           - Made form windows OverlappedWindow by default
21918
21919 2004-08-22 13:34  jackson
21920
21921         * ScrollBar.cs: Update the position through the Value property so
21922           the OnValueChanged event is raised.
21923
21924 2004-08-22 12:04  pbartok
21925
21926         * SWF.csproj:
21927           - Added Cursor.cs and UserControl.cs
21928
21929 2004-08-22 12:03  pbartok
21930
21931         * Cursor.cs:
21932           - Started implementation, not usable yet
21933
21934 2004-08-22 12:00  pbartok
21935
21936         * UserControl.cs:
21937           - Implemented UserControl (complete)
21938
21939 2004-08-21 19:20  ravindra
21940
21941         * ToolBar.cs: Correcting the formatting mess of VS.NET.
21942
21943 2004-08-21 18:49  ravindra
21944
21945         * ToolBar.cs: Probably this completes the missing attributes in
21946           toolbar control.
21947
21948 2004-08-21 18:03  ravindra
21949
21950         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
21951           Fixed toolbar control signatures.
21952
21953 2004-08-21 16:32  pbartok
21954
21955         * LinkLabel.cs:
21956           - Signature Fixes
21957
21958 2004-08-21 16:30  pbartok
21959
21960         * Label.cs:
21961           - Signature fixes
21962
21963 2004-08-21 16:19  pbartok
21964
21965         * Control.cs, Label.cs:
21966           - Signature fixes
21967
21968 2004-08-21 15:57  pbartok
21969
21970         * ButtonBase.cs:
21971           - Added loads of debug output for development
21972           - Fixed typo in method name
21973
21974 2004-08-21 15:52  pbartok
21975
21976         * ToolBarButtonClickEventArgs.cs:
21977           - Added missing base class
21978
21979 2004-08-21 14:53  pbartok
21980
21981         * Control.cs:
21982           - Updated to match new GrabWindow signature
21983
21984 2004-08-21 14:51  pbartok
21985
21986         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21987           - Added method to get default display size
21988
21989 2004-08-21 14:23  pbartok
21990
21991         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
21992           - Added method to query current grab state
21993           - Added argument to allow confining a grab to a window
21994
21995 2004-08-21 14:22  pbartok
21996
21997         * Keys.cs:
21998           - Added [Flags] attribute so that modifiers can be used in bitwise
21999           ops
22000
22001 2004-08-21 14:21  pbartok
22002
22003         * TrackBar.cs, ScrollBar.cs:
22004           - Replaced direct XplatUI calls with their Control counterpart
22005
22006 2004-08-21 13:32  pbartok
22007
22008         * Control.cs:
22009           - Implemented Created property
22010
22011 2004-08-21 13:28  pbartok
22012
22013         * Control.cs:
22014           - Implemented ContainsFocus
22015
22016 2004-08-21 13:26  pbartok
22017
22018         * Control.cs:
22019           - Implemented CausesValidation
22020
22021 2004-08-21 13:21  pbartok
22022
22023         * Control.cs:
22024           - Implemented CanFocus
22025           - Implemented CanSelect
22026           - Implemented Capture
22027
22028 2004-08-21 12:35  pbartok
22029
22030         * XplatUIWin32.cs:
22031           - Fixed bug with Async message handling
22032           - Implemented getting the ModifierKeys
22033
22034 2004-08-21 12:32  jackson
22035
22036         * AsyncMethodResult.cs: Make sure we have the mutex before we
22037           release it. Fixes BeginInvoke on windows
22038
22039 2004-08-21 11:31  pbartok
22040
22041         * XplatUIWin32.cs, XplatUIX11.cs:
22042           - Drivers now return proper mouse state
22043
22044 2004-08-21 10:54  jackson
22045
22046         * Control.cs: Implement EndInvoke
22047
22048 2004-08-21 10:48  jackson
22049
22050         * Timer.cs: Remove unneeded finalizer
22051
22052 2004-08-20 19:52  ravindra
22053
22054         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22055           in mouse event handling in the ToolBar control.
22056
22057 2004-08-20 19:50  ravindra
22058
22059         * ImageList.cs: Changed draw method to use the arguments passed in
22060           to draw the image.
22061
22062 2004-08-20 18:58  pbartok
22063
22064         * XplatUIStructs.cs:
22065           - Added private message for async communication
22066
22067 2004-08-20 17:38  ravindra
22068
22069         * Control.cs: Made RightToLeft property virtual and removed a
22070           Console.WriteLine.
22071
22072 2004-08-20 14:39  jordi
22073
22074         * ThemeGtk.cs: use style_attach
22075
22076 2004-08-20 14:39  pbartok
22077
22078         * XplatUIWin32.cs:
22079           - Added jackson's Async code from X11 to Win32
22080
22081 2004-08-20 14:09  pbartok
22082
22083         * SWF.csproj:
22084           - Added all new files
22085
22086 2004-08-20 14:09  pbartok
22087
22088         * Control.cs:
22089           - Added call to set window background color
22090
22091 2004-08-20 14:03  pbartok
22092
22093         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22094           - Added method for setting the window background
22095
22096 2004-08-20 14:02  pbartok
22097
22098         * XplatUIWin32.cs:
22099           - Added method for setting the background color
22100           - Added handling for erasing the window background
22101
22102 2004-08-20 13:45  jordi
22103
22104         * TrackBar.cs: fixes timer, new properties and methods
22105
22106 2004-08-20 13:34  jackson
22107
22108         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22109           correct thread
22110
22111 2004-08-20 13:22  jackson
22112
22113         * Timer.cs: Timer Tick events are now handed through Controls Async
22114           mechanism so the callbacks are executed in the same thread as X
22115
22116 2004-08-20 13:19  jackson
22117
22118         * XplatUIDriver.cs: Expose functionality to send async messages
22119           through the driver
22120
22121 2004-08-20 13:18  jackson
22122
22123         * Control.cs: Implement Begininvoke
22124
22125 2004-08-20 13:14  jackson
22126
22127         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22128           messages through the driver
22129
22130 2004-08-20 13:12  jackson
22131
22132         * XplatUIX11.cs: Lock before all X operations. Also added Async
22133           method functionality through XSendEvent
22134
22135 2004-08-20 13:11  jackson
22136
22137         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22138           This will screw up on 64 bit systems)
22139
22140 2004-08-20 13:10  jackson
22141
22142         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22143           Async messages through X/Win32
22144
22145 2004-08-19 19:39  pbartok
22146
22147         * XplatUIX11.cs:
22148           - Updated code to match new HandleData.DeviceContext type
22149
22150 2004-08-19 19:38  pbartok
22151
22152         * HandleData.cs:
22153           - Made DeviceContext a generic object to allow usage from various
22154           drivers
22155           - Added support for queueing Windows messages
22156
22157 2004-08-19 19:37  pbartok
22158
22159         * XplatUIWin32.cs:
22160           - Added generation of MouseEnter, MouseLeave and MouseHover events
22161           - Added cleanup on EndPaint
22162
22163 2004-08-19 19:17  pbartok
22164
22165         * Control.cs:
22166           - Added handling of WM_MOUSEHOVER
22167           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22168           code
22169
22170 2004-08-19 18:55  jordi
22171
22172         * ThemeGtk.cs: fixes button order
22173
22174 2004-08-19 18:12  jordi
22175
22176         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22177
22178 2004-08-19 17:09  pbartok
22179
22180         * Control.cs:
22181           - Added Right property
22182           - Added RightToLeft property
22183
22184 2004-08-19 16:27  jordi
22185
22186         * ThemeGtk.cs: experimental GTK theme support
22187
22188 2004-08-19 16:26  jordi
22189
22190         * ITheme.cs, Theme.cs: move themes from an interface to a class
22191
22192 2004-08-19 16:25  jordi
22193
22194         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22195           theme enhancaments
22196
22197 2004-08-19 16:04  pbartok
22198
22199         * XplatUIX11.cs:
22200           - Added colormap basics
22201           - Added a way to re-initialize with a different display handle
22202           - Fixed setting of the window background color
22203           - Added various X11 imports related to colors and colormaps
22204
22205 2004-08-19 15:51  pbartok
22206
22207         * X11Structs.cs:
22208           - Removed packing hints (Paolo suggested this a while back)
22209           - fixed colormap type
22210           - Added default Atom types
22211           - Added Screen and color structs and enums
22212
22213 2004-08-19 15:39  pbartok
22214
22215         * ImageList.cs:
22216           - Added missing Draw() method
22217           - Added missing RecreateHandle event
22218
22219 2004-08-19 15:30  pbartok
22220
22221         * Form.cs:
22222           - Added handling of WM_CLOSE
22223
22224 2004-08-18 13:16  jordi
22225
22226         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22227           a table
22228
22229 2004-08-18 09:56  jordi
22230
22231         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22232
22233 2004-08-17 15:31  ravindra
22234
22235         * SWF.csproj: Updated project.
22236
22237 2004-08-17 15:25  pbartok
22238
22239         * Control.cs:
22240           - Drawing improvement; don't call UpdateBounds if we are not visible
22241             (or have been minimized)
22242
22243 2004-08-17 15:24  pbartok
22244
22245         * XplatUIWin32.cs:
22246           - Finished IsVisible
22247           - Added Win32GetWindowPlacement
22248
22249 2004-08-17 15:08  jackson
22250
22251         * Panel.cs: Initial checkin of the Panel
22252
22253 2004-08-17 14:25  pbartok
22254
22255         * Control.cs:
22256           - Fixed broken handling of default window sizes
22257
22258 2004-08-17 13:29  jackson
22259
22260         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22261           has a large startup time.
22262
22263 2004-08-17 10:25  jackson
22264
22265         * HandleData.cs: union areas properly
22266
22267 2004-08-17 10:12  jackson
22268
22269         * HandleData.cs: union areas properly
22270
22271 2004-08-16 20:00  ravindra
22272
22273         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22274
22275 2004-08-16 18:48  ravindra
22276
22277         * ToolBar.cs: Added attributes.
22278
22279 2004-08-16 17:17  ravindra
22280
22281         * SWF.csproj: Updated project.
22282
22283 2004-08-16 17:16  jackson
22284
22285         * XplatUIX11.cs: Check for more expose events before sending a
22286           WM_PAINT so they can all be grouped together. This makes dragging a
22287           window across another window redraw in a sane way.
22288
22289 2004-08-16 15:47  pbartok
22290
22291         * Control.cs:
22292           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22293             support OnMouseEnter/Leave()
22294           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22295             exposure handling
22296
22297 2004-08-16 15:46  pbartok
22298
22299         * XplatUIStructs.cs, XplatUIX11.cs:
22300           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22301           OnMouseEnter/Leave()
22302
22303 2004-08-16 15:34  jackson
22304
22305         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22306           sure messages get the message field set to WM_NULL if they are not
22307           handled.
22308
22309 2004-08-16 15:24  jackson
22310
22311         * HandleData.cs: HandleData is used for storing message information
22312           for window handles
22313
22314 2004-08-15 17:23  ravindra
22315
22316         * ColorDepth.cs: Added attribute.
22317
22318 2004-08-15 17:23  ravindra
22319
22320         * SWF.csproj: Updated project for ToolBar Control.
22321
22322 2004-08-15 17:20  ravindra
22323
22324         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22325           control and also dos2unix format.
22326
22327 2004-08-15 17:13  ravindra
22328
22329         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22330           ToolBarButtonClickEventArgs.cs,
22331           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22332           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22333
22334 2004-08-15 15:31  pbartok
22335
22336         * ButtonBase.cs:
22337           - First (mostly) working version
22338
22339 2004-08-13 16:15  pbartok
22340
22341         * Control.cs:
22342           - Fixed Anchor default
22343
22344 2004-08-13 15:43  pbartok
22345
22346         * Control.cs:
22347           - Changed GetCursorPos signature
22348
22349 2004-08-13 15:42  pbartok
22350
22351         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22352           - Changed signature for GetCursorPos
22353
22354 2004-08-13 15:25  pbartok
22355
22356         * XplatUIX11.cs:
22357           - Cleanup
22358           - Fixed resizing/exposure handling
22359
22360 2004-08-13 15:22  jordi
22361
22362         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22363           with tickposition
22364
22365 2004-08-13 14:55  jordi
22366
22367         * TrackBar.cs: change from wndproc to events
22368
22369 2004-08-13 13:00  jordi
22370
22371         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22372           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22373
22374 2004-08-13 12:53  pbartok
22375
22376         * XplatUIWin32.cs:
22377           - Changed GetWindowPos to also provide client area size
22378           - Fixed broken prototypes for several win32 functions
22379
22380 2004-08-13 12:53  pbartok
22381
22382         * XplatUI.cs, XplatUIDriver.cs:
22383           - Changed GetWindowPos to also provide client area size
22384
22385 2004-08-13 12:52  pbartok
22386
22387         * XplatUIX11.cs:
22388           - Added generation of WM_POSCHANGED
22389           - Changed GetWindowPos to also provide client area size
22390
22391 2004-08-13 12:52  pbartok
22392
22393         * Control.cs:
22394           - Added Dispose() and destructor
22395           - Fixed resizing and bounds calculation
22396           - Fixed Layout
22397           - Added memory savings for invisible windows
22398
22399 2004-08-13 12:46  jordi
22400
22401         * TrackBar.cs: adds timer and grap window
22402
22403 2004-08-13 10:25  jackson
22404
22405         * Timer.cs: SWF Timer
22406
22407 2004-08-12 16:59  pbartok
22408
22409         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22410           - Implemented method to get current mouse position
22411
22412 2004-08-12 14:29  jordi
22413
22414         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22415           enhancement, fix mouse problems, highli thumb, etc
22416
22417 2004-08-12 13:31  pbartok
22418
22419         * Control.cs:
22420           - Fixed Anchoring bugs
22421
22422 2004-08-12 13:01  jackson
22423
22424         * StatusBar.cs: Don't forget things
22425
22426 2004-08-12 12:54  jackson
22427
22428         * ThemeWin32Classic.cs: Handle owner draw status bars
22429
22430 2004-08-12 12:54  jackson
22431
22432         * StatusBar.cs: Implement missing properties, events, and methods.
22433           Handle mouse clicking
22434
22435 2004-08-12 10:19  jackson
22436
22437         * StatusBarPanelClickEventArgs.cs,
22438           StatusBarPanelClickEventHandler.cs: Classes for handling status
22439           bar panel click events
22440
22441 2004-08-12 10:10  jackson
22442
22443         * Control.cs: Add missing properties
22444
22445 2004-08-12 09:46  pbartok
22446
22447         * BindingsManagerBase.cs:
22448           - Name changed to BindingManagerBase.cs
22449
22450 2004-08-12 09:25  jordi
22451
22452         * ScrollableControl.cs: calls ctrlbase instead of exeception
22453
22454 2004-08-11 16:28  pbartok
22455
22456         * InputLanguageChangingEventArgs.cs:
22457           - Never check in before compiling. Fixes the last check-in
22458
22459 2004-08-11 16:26  pbartok
22460
22461         * InputLanguageChangingEventArgs.cs:
22462           - More signature fixes
22463
22464 2004-08-11 16:20  pbartok
22465
22466         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22467           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22468           ImageListStreamer.cs, InputLanguage.cs,
22469           InputLanguageChangedEventArgs.cs,
22470           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22471           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22472           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22473           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22474           - Signature fixes
22475
22476 2004-08-11 16:16  pbartok
22477
22478         * Application.cs:
22479           - Fixed Signature
22480           - Added .Net 1.1 method
22481
22482 2004-08-11 15:25  pbartok
22483
22484         * SWF.csproj:
22485           - Fixed BindingManagerBase.cs filename
22486
22487 2004-08-11 15:22  pbartok
22488
22489         * BindingManagerBase.cs:
22490           - Was checked in with wrong filename
22491
22492 2004-08-11 14:50  pbartok
22493
22494         * SWF.csproj:
22495           - Updated
22496
22497 2004-08-11 13:41  jordi
22498
22499         * XplatUIWin32.cs: Fixes ClientRect
22500
22501 2004-08-11 13:19  pbartok
22502
22503         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22504           XplatUIX11.cs:
22505           - We had SetWindowPos and MoveWindow to set window positions and
22506             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22507             keep SetWindowPos as matching counterpart
22508           - Added some X11 sanity checking
22509
22510 2004-08-11 12:59  pbartok
22511
22512         * Control.cs:
22513           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22514             (It seems that SetBounds is just a front for SetBoundsCore and
22515              SetBoundsCore updates the underlying window system and
22516              UpdateBounds is responsible for updating the variables associated
22517              with the Control and sending the events)
22518           - Major cleanup of Size handling; we now have two sizes, client_size
22519             and bounds. Bounds defines the window with decorations, client_size
22520             without them.
22521
22522 2004-08-11 12:55  pbartok
22523
22524         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22525           - Added method to calculate difference between decorated window and
22526             raw client area
22527
22528 2004-08-11 12:54  pbartok
22529
22530         * Label.cs:
22531           - Forcing redraw on resize
22532
22533 2004-08-11 11:43  pbartok
22534
22535         * ImageList.cs:
22536           - Removed disposing of the actual images when the list is disposed
22537
22538 2004-08-11 09:13  pbartok
22539
22540         * Control.cs:
22541           - Now properly reparents windows
22542
22543 2004-08-11 08:37  pbartok
22544
22545         * Control.cs:
22546           - Duh!
22547
22548 2004-08-11 07:47  pbartok
22549
22550         * Control.cs:
22551           - Rewrote the collection stuff. Might not be as fast now, not
22552             keeping the number of children around and accessible directly, but
22553             it's more straightforward
22554
22555 2004-08-11 07:44  pbartok
22556
22557         * AccessibleObject.cs:
22558           - Fixed to match ControlCollection rewrite
22559
22560 2004-08-11 07:43  pbartok
22561
22562         * ImageList.cs:
22563           - Added missing creation of the collection list
22564
22565 2004-08-10 20:08  jackson
22566
22567         * StatusBar.cs: Get the paint message from WndProc
22568
22569 2004-08-10 19:31  jackson
22570
22571         * ThemeWin32Classic.cs: Create Brushes as little as possible
22572
22573 2004-08-10 19:20  jackson
22574
22575         * UICues.cs: Add Flags attribute
22576
22577 2004-08-10 19:19  jackson
22578
22579         * StatusBarPanel.cs: Signature cleanup
22580
22581 2004-08-10 19:10  jackson
22582
22583         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22584           Initial implementation of status bar item drawing
22585
22586 2004-08-10 17:27  jordi
22587
22588         * TrackBar.cs: add missing methods, properties, and restructure to
22589           hide extra ones
22590
22591 2004-08-10 16:24  jackson
22592
22593         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22594           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22595           attribute
22596
22597 2004-08-10 13:21  jordi
22598
22599         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22600           enhancements and standarize on win colors defaults
22601
22602 2004-08-10 12:52  jackson
22603
22604         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22605           ThemeWin32Classic.cs: Implement DrawItem functionality
22606
22607 2004-08-10 12:47  jordi
22608
22609         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22610
22611 2004-08-10 12:32  jordi
22612
22613         * Control.cs: throw ontextchange event
22614
22615 2004-08-10 11:43  pbartok
22616
22617         * Control.cs:
22618           - Added more to the still unfinished Dock/Anchor layout code
22619
22620 2004-08-10 11:39  pbartok
22621
22622         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22623           - Added GetWindowPos method
22624
22625 2004-08-10 11:36  pbartok
22626
22627         * XplatUIWin32.cs:
22628           - Implemented several methods
22629
22630 2004-08-10 09:47  jackson
22631
22632         * TrackBar.cs: Allow control to handle buffering
22633
22634 2004-08-10 09:41  jackson
22635
22636         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22637
22638 2004-08-10 09:24  jackson
22639
22640         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22641
22642 2004-08-10 09:09  jackson
22643
22644         * StatusBar.cs: Let Control handle all the buffering.
22645
22646 2004-08-10 09:08  jackson
22647
22648         * Control.cs: Control will now handle the buffering code, so each
22649           control does not have to implement this.
22650
22651 2004-08-10 08:34  jackson
22652
22653         * XplatUIDriver.cs: Use default colors from the theme
22654
22655 2004-08-09 17:12  pbartok
22656
22657         * ImageList.cs:
22658           - Fixed several bugs Ravindra pointed out
22659
22660 2004-08-09 16:11  pbartok
22661
22662         * Control.cs:
22663           - Added incomplete dock layout code
22664           - Added support for mouse wheel
22665
22666 2004-08-09 16:09  pbartok
22667
22668         * XplatUIX11.cs:
22669           - Added handling for middle and right mousebutton
22670           - Added handling for mouse wheel
22671           - Added handling for key state and mouse state and position
22672           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22673           messages
22674
22675 2004-08-09 15:40  jackson
22676
22677         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22678           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22679           checkin
22680
22681 2004-08-09 15:37  jackson
22682
22683         * StatusBar.cs: Initial implementation of StatusBar
22684
22685 2004-08-09 15:36  jackson
22686
22687         * ITheme.cs: Add support for drawing status bar and getting status
22688           bar item sizes
22689
22690 2004-08-09 15:35  pbartok
22691
22692         * MouseButtons.cs:
22693           - Fixed values
22694
22695 2004-08-09 15:34  jackson
22696
22697         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22698           status bar item sizes
22699
22700 2004-08-09 15:21  jackson
22701
22702         * ThemeWin32Classic.cs: Use known colors for default control
22703           colours
22704
22705 2004-08-09 15:12  jackson
22706
22707         * ThemeWin32Classic.cs: Make the default font static, it is static
22708           in control so this doesn't change functionality and creating fonts
22709           is sloooooow.
22710
22711 2004-08-09 14:56  pbartok
22712
22713         * X11Structs.cs:
22714           - Added GrabMode enum
22715
22716 2004-08-09 14:55  pbartok
22717
22718         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22719           - Removed Run method, was only required for initial development
22720
22721 2004-08-09 14:51  pbartok
22722
22723         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22724           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22725           capture
22726
22727 2004-08-09 13:48  pbartok
22728
22729         * XplatUIX11.cs:
22730           - Fixed default sizing for child windows
22731
22732 2004-08-09 12:56  pbartok
22733
22734         * XplatUIX11.cs:
22735           - Added generation of WM_DESTROY message
22736           - Added handling of window manager induced shutdown
22737
22738 2004-08-09 11:31  jackson
22739
22740         * ThemeWin32Classic.cs: New names for control properties
22741
22742 2004-08-09 11:25  jackson
22743
22744         * Control.cs: Use new color names
22745
22746 2004-08-09 11:02  jackson
22747
22748         * XplatUI.cs: Get default window properties from the theme
22749
22750 2004-08-09 11:01  jackson
22751
22752         * ITheme.cs: The theme engine now controls default window
22753           properties
22754
22755 2004-08-09 11:00  jackson
22756
22757         * ThemeWin32Classic.cs: Add default window color properties
22758
22759 2004-08-09 10:17  jackson
22760
22761         * ThemeWin32Classic.cs: Use correct default back color
22762
22763 2004-08-09 10:05  jackson
22764
22765         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22766           the theme now.
22767
22768 2004-08-09 09:56  jackson
22769
22770         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22771
22772 2004-08-09 09:54  jackson
22773
22774         * Control.cs: Get default properties from the theme.
22775
22776 2004-08-09 09:53  jackson
22777
22778         * ITheme.cs: Themes now handle default control properties
22779
22780 2004-08-09 09:53  jackson
22781
22782         * ThemeWin32Classic.cs: Themes now handle default control
22783           properties so coloring will be consistent
22784
22785 2004-08-08 16:54  jordi
22786
22787         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22788
22789 2004-08-08 15:08  jordi
22790
22791         * XplatUIX11.cs: fixes keyboard crash
22792
22793 2004-08-08 13:47  jordi
22794
22795         * Label.cs: add cvs header info
22796
22797 2004-08-08 12:09  jackson
22798
22799         * ThemeWin32Classic.cs: Add pen_buttonface
22800
22801 2004-08-08 11:52  jordi
22802
22803         * Label.cs, LinkLabel.cs: [no log message]
22804
22805 2004-08-08 11:34  jordi
22806
22807         * ThemeWin32Classic.cs: Use Windows Standard Colours
22808
22809 2004-08-07 17:32  jordi
22810
22811         * TrackBar.cs: throw exceptions of invalid enums values
22812
22813 2004-08-07 17:31  jordi
22814
22815         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22816           draw method name
22817
22818 2004-08-07 16:56  jackson
22819
22820         * HorizontalAlignment.cs: Initial checkin
22821
22822 2004-08-07 13:16  jordi
22823
22824         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22825           methods
22826
22827 2004-08-07 13:05  jordi
22828
22829         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22830           GetSysColor defines
22831
22832 2004-08-06 18:01  pbartok
22833
22834         * ThemeWin32Classic.cs:
22835           - Fixed some rounding issues with float/int
22836
22837 2004-08-06 18:00  jackson
22838
22839         * DockStyle.cs, AnchorStyles.cs:
22840
22841                   Add flags and serializable attributes.
22842
22843 2004-08-06 17:46  pbartok
22844
22845         * XplatUIX11.cs:
22846           - Implemented GetParent
22847
22848 2004-08-06 17:18  pbartok
22849
22850         * TrackBar.cs:
22851           - Fixed some rounding issues with float/int
22852
22853 2004-08-06 17:17  pbartok
22854
22855         * X11Structs.cs, XplatUIX11.cs:
22856           - Fixed Refresh and Invalidate
22857
22858 2004-08-06 15:30  pbartok
22859
22860         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22861           - Fixed recursive loop when resizing
22862           - Improved/fixed redrawing on expose messages
22863
22864 2004-08-06 09:53  jordi
22865
22866         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22867           keyboard navigation
22868
22869 2004-08-06 08:02  pbartok
22870
22871         * X11Structs.cs, XplatUIX11.cs:
22872           - Fixed reparenting
22873           - Fixed window border creation
22874
22875 2004-08-05 15:38  pbartok
22876
22877         * XplatUIX11.cs:
22878           - Attempted fix for reparenting problems
22879
22880 2004-08-04 15:14  pbartok
22881
22882         * Control.cs:
22883           - Fixed Invalidation bug (calculated wrong client area)
22884           - Added ClientSize setter
22885
22886 2004-08-04 15:13  pbartok
22887
22888         * Form.cs:
22889           - Added AutoScale properties
22890
22891 2004-08-04 15:13  pbartok
22892
22893         * SWF.csproj:
22894           - Added latest files
22895
22896 2004-08-04 14:11  pbartok
22897
22898         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22899           XplatUIX11.cs:
22900           - Added Invalidate handling
22901
22902 2004-08-03 17:09  jordi
22903
22904         * XplatUIDriver.cs: fixes spelling mistake
22905
22906 2004-07-27 09:53  jordi
22907
22908         * TrackBar.cs: fixes trackbar events, def classname, methods
22909           signature
22910
22911 2004-07-27 09:29  jordi
22912
22913         * ScrollBar.cs: fixes scrollbar events
22914
22915 2004-07-27 04:38  jordi
22916
22917         * Control.cs: changes to be able to run winforms samples
22918
22919 2004-07-26 11:42  jordi
22920
22921         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
22922           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
22923
22924 2004-07-26 05:41  jordi
22925
22926         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
22927           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
22928           implementation
22929
22930 2004-07-22 09:22  jordi
22931
22932         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
22933           check link overlapping, implement events, and fixes
22934
22935 2004-07-21 10:28  jordi
22936
22937         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
22938
22939 2004-07-21 10:19  jordi
22940
22941         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
22942           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
22943           LinkLabelLinkClickedEventArgs.cs,
22944           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
22945           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
22946           implementation
22947
22948 2004-07-19 13:09  jordi
22949
22950         * Control.cs, Label.cs: label control re-written: added missing
22951           functionlity, events, and properties
22952
22953 2004-07-19 10:49  jordi
22954
22955         * Control.cs: fixes SetBounds logic
22956
22957 2004-07-19 01:29  jordi
22958
22959         * Control.cs: Call RefreshWindow only if the window has created
22960
22961 2004-07-15 14:05  pbartok
22962
22963         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
22964           - Implemented ImageList and ImageList.ImageCollection classes
22965           - Added ColorDepth enumeration
22966           - Updated SWF VS.Net project
22967
22968 2004-07-15 11:06  jordi
22969
22970         * XplatUIStructs.cs: added MsgButons enum
22971
22972 2004-07-15 11:03  jordi
22973
22974         * Control.cs: added basic mouse handeling events
22975
22976 2004-07-15 03:38  jordi
22977
22978         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
22979           Vertical TrackBar control implementation
22980
22981 2004-07-13 09:33  jordi
22982
22983         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
22984
22985 2004-07-13 09:31  jordi
22986
22987         * Control.cs, Form.cs: commit: new properties and fixes form size
22988           problems
22989
22990 2004-07-09 14:13  miguel
22991
22992         * ProgressBar.cs: Spelling
22993
22994 2004-07-09 11:25  pbartok
22995
22996         * ProgressBar.cs:
22997           - Removed usage of Rectangle for drawing. Miguel pointed out it's
22998           faster
22999
23000 2004-07-09 11:17  miguel
23001
23002         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23003
23004                 * ProgressBar.cs: Fixed spelling for `block'
23005
23006                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23007                 style guidelines.
23008
23009                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23010
23011 2004-07-08 23:21  pbartok
23012
23013         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23014           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23015           BaseCollection.cs, Binding.cs, BindingContext.cs,
23016           BindingMemberInfo.cs, BindingsCollection.cs,
23017           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23018           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23019           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23020           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23021           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23022           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23023           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23024           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23025           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23026           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23027           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23028           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23029           InputLanguageChangedEventArgs.cs,
23030           InputLanguageChangedEventHandler.cs,
23031           InputLanguageChangingEventArgs.cs,
23032           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23033           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23034           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23035           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23036           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23037           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23038           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23039           QueryAccessibilityHelpEventArgs.cs,
23040           QueryAccessibilityHelpEventHandler.cs,
23041           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23042           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23043           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23044           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23045           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23046           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23047           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23048           XplatUIX11.cs, lang.cs:
23049           - Initial check-in
23050