2007-02-13 Everaldo Canuto <everaldo@simios.org>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
2
3         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
4         for most themes.
5         
6         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
7         
8         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
9         and use MenuAccessKeysUnderlined instead.
10
11 2007-02-13  Andreia Gaita  <avidigal@novell.com>
12
13         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
14         A selected control would not get a Focus call if:
15                 - the default active control of the container is the same as
16                   the one that was selected
17                 - we are switching from one container to another
18         Under these conditions, the container being selected already has
19         an active_control, which is the same as the one being activated, 
20         so set_ActiveControl would always return and not send the Focus
21         call. Fix to check if the currently active control of the container
22         is actually focused.
23
24 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
25
26         * StatusStrip.cs: Implement the spring layout.
27         * ToolStripControlHost.cs: Make sure the hosted control's visibility
28         always matches the host.
29         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
30         and TextAfterImage.
31
32 2007-02-13  Andreia Gaita  <avidigal@novell.com>
33
34         * Control.cs: Code reorganization only.
35           - Reorganize the WndProc cases so that each case has it's own handling method, 
36           to help with the no-line-numbering stack traces.
37           - Formatting changes (it's vstudio's fault, really :p)
38
39 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
40
41         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
42           Thread.CurrentUICulture to match DateTimePicker's (and MS)
43           behaviour.
44
45 2007-02-12  Jackson Harper  <jackson@ximian.com>
46
47         * RichTextBox.cs:
48         * TextBox.cs: By default we have a non multiline document
49         - use the multiline property instead of the internal variable
50         * TextBoxBase.cs: Treat multiline and non multiline the same in
51         most places.
52         - Use the documents multiline flag instead of tracking it ourself
53         * TextControl.cs: Attempt at getting multiline to match MS
54         behavior.  Lines now track an offset, which is either their X or Y
55         offset depending on whether or not we are in multiline mode.
56         - Update all the methods to understand that lines have an X value.
57         - Fix crash in Undo::Duplicate when empty lines are deleted.
58
59 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
60
61         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
62         code moved to properties PreferredHeight and PreferredWidth. It solve the
63         all problems when preferred sizes must be recalculated. Fixes #80801.
64
65 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
66
67         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
68         font height when compatible_text_rendering is false. Partially fix #80801.
69
70 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
71
72         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
73
74 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
75
76         * Form.cs: Improved exception messages in ShowDialog.
77
78 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
79
80         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
81         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
82         if not set. Fixes bug #80764. Avoid accessing current_settings field
83         directly.
84
85 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
86
87         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
88         false.
89
90         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
91         public in 2.0 and for easy maintenance and dont break compatibility it is 
92         internal in 1.1.
93         
94 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
95
96         * ToolStripItem.cs: Implement using images from ImageList.
97
98 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
99
100         * DateTimePicker.cs: Change default date-formatting culture from
101           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
102           seems to be the way MS does it.
103
104 2007-02-08  Andreia Gaita  <avidigal@novell.com>
105
106         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
107         (the 6 was cut off on the right side)
108
109 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
110
111         * Form.cs: Tell MenuStrips to close when the form is clicked.
112         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
113         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
114         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
115         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
116         support for Overflow, where items that do not fit are automatically
117         reparented to a drop down menu.
118         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
119         Also: fixes bug #80747.
120
121 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
122
123         * ComboBox.cs: Remove warning (unused code).
124         * ScrollableControl.cs: Remove warning for 1.1 profile.
125
126 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
127
128         * Form.cs: Remove a warning.
129
130 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
131
132         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
133           'g' specifier, not documented anywhere, but seems to always show up
134           as a single space (might have something to do with the DateTime 'g'
135           specifier, which is the era format, but since DateTimePicker can't
136           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
137           won't crash if the format has an unmatched quote. Now shows
138           single-character formats correctly. Fixes #80744.
139
140 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
141
142         * StatusStrip.cs: Stretch property needs to call base.Stretch,
143         not this.Stretch to fix stack overflow. [Fixes bug #80760]
144
145 2007-02-07  Chris Toshok  <toshok@ximian.com>
146
147         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
148         background color.  it overwrites the background image we've
149         already painted.  Fixes #80599.
150
151 2007-02-07  Chris Toshok  <toshok@ximian.com>
152
153         * DataGrid.cs: return immediately from Edit() when there are no
154         columns.  Fixes #80662.
155
156 2007-02-07  Chris Toshok  <toshok@ximian.com>
157
158         * MessageBox.cs: fix #80625.  don't always show the Help button in
159         2.0.  use the displayHelpButton parameter to determine if we
160         should show it. Also, make the internal show_help field private.
161
162 2007-02-07  Chris Toshok  <toshok@ximian.com>
163
164         * Control.cs (SetVisibleCore): check in the proposed patch for
165         80604, and set is_visible before calling CreateControl.
166
167 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
168
169         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
170         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
171         on it.
172
173 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
174
175         * MenuAPI.cs: hotkey_active internal field added, it is required because
176         we need to know when hotkeys must be draw, before this change a keystate
177         Navigating was used but we can have menu in navigating state without
178         hotkeys. Fixes #80694.
179         
180         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
181
182 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
183
184         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
185           corresponding events and methods to be internal for 1.1 profile and
186           public for 2.0 profile (required by SizeGrip).
187         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
188           implicit control list). Don't set the size nor the location of the
189           SizeGrip anymore as it's not needed.
190         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
191           draw directly on the captured control (fixes #80656). Removed
192           ShowGrip (it wasn't used anywhere), redraw (always true), added
193           GetDefaultSize and GetDefaultRectangle to calculate defaults.
194         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
195           be called from SizeGrip.
196
197 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
198
199         * Timer.cs: Throw ArgumentException if Interval <= 0.
200
201 2007-02-05  Jackson Harper  <jackson@ximian.com>
202
203         * TreeView.cs: We need to check scrollbar visibility when window
204         visibility is updated, because non visible trees don't ever add
205         scrollbars.
206         * Cursor.cs: We want the override cursor to be reset to NULL when
207         we set current cursor to the default cursor.
208
209 2007-02-05  Jackson Harper  <jackson@ximian.com>
210
211         * TextControl.cs: Don't have crlfs when we are non multiline.
212         - Consolidate the line position.
213
214 2007-02-05  Jackson Harper  <jackson@ximian.com>
215
216         * X11Keyboard.cs: BACK+CTRL gets a special char code.
217
218 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
219
220         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
221           handling LeaveNotify->NotifyUngrab in order to send
222           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
223           after calling XUngrabPointer, so we call WindowUngrabbed directly
224           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
225         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
226           MouseCaptureChanged correctly. Also create handles if changing
227           Capture (matches MS behaviour).
228
229 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
230
231         * SizeGrip.cs: Make the last change 2.0 only.
232
233 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
234
235         * SizeGrip.cs: If resizing and the capture is lost, revert any size
236           changes to initial size (fixes #80597).
237
238 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
239
240         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
241
242 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
243
244         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
245           background) and only allow dragging if enabled. This way the
246           sizegrip can be used to fill the open square that otherwise would
247           have been shown in the bottom right corner of ScrollableControl
248           when ScrollableControl is not suppose to support sizing.
249         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
250           sizegrip is shown and enabled, and hook up with necessary events.
251
252 2007-02-01  Chris Toshok  <toshok@ximian.com>
253
254         * DataGridTextBoxColumn.cs: clean up the
255         GetFormattedString/GetColumnValueAtRow combination of functions.
256         Also fix UpdateUI, and the initial state of
257         IsInEditOrNavigateMode.
258
259         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
260         aren't supposed to scroll the textbox here, we're supposed to
261         scroll the datagrid.
262
263 2007-02-01  Chris Toshok  <toshok@ximian.com>
264
265         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
266         setting the position.
267
268 2007-02-01  Chris Toshok  <toshok@ximian.com>
269
270         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
271         here, since the most recent focus fixes keep us from generating
272         the Leave event when our textbox gets focus.
273         (Edit): we should be passing null for the column style's
274         instantText parameter.
275         
276 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
277
278         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
279         raised.  Fixes menu text/icons not showing up in PDN.
280
281 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
282
283         * Control.cs: Remove code in constructor that makes every
284         control with WS_CHILD set have initial location -1, -1.
285
286 2007-01-31  Jackson Harper  <jackson@ximian.com>
287
288         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
289         XplatUIX11.
290         * XplatUIX11.cs: Give teh keyboard to teh dnd.
291
292 2007-01-31  Jackson Harper  <jackson@ximian.com>
293
294         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
295         - Remove some debug code.
296
297 2007-01-31  Jackson Harper  <jackson@ximian.com>
298
299         * XplatUIX11.cs: If you set the override cursor during a grab, it
300         should actually override the grab cursor.  This comes into play
301         when you are setting custom cursors in a DND feedback method.
302
303 2007-01-31  Jackson Harper  <jackson@ximian.com>
304
305         * X11Dnd.cs: Add support for handling the QueryContinue and
306         GiveFeedback events.
307         - Cancel drag and drop actions when the escape key is clicked.
308         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
309         can handle the ESCAPE key.
310         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
311         done when dnd events are continued after the button is released.
312         - Add a new helper method so that dnd can translate key events.
313
314 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
315
316         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
317         make it more obvious what is happening.
318
319 2007-01-30  Jackson Harper  <jackson@ximian.com>
320
321         * XplatUIX11.cs: Don't break when handling button release in drag
322         and drop operations. We need that BUTTONUP message to get through
323         so capture is released.
324         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
325         this is handled automatically when the mouse is down.
326
327 2007-01-30  Jackson Harper  <jackson@ximian.com>
328
329         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
330         is closed, so we need to make sure that we aren't changing the
331         dialog result when the OK (Open or Save) button has been clicked
332         and we are closing the window ourselves.  Note we don't need to
333         worry about the cache being written in this case, because it was
334         already done in the previous FilOk call.
335
336 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
337         
338         * DateTimePicker.cs: Remove a warning.
339         * ComboBox.cs: Remove a couple of warnings.
340
341 2007-01-29  Chris Toshok  <toshok@ximian.com>
342
343         * XplatUIX11.cs: don't crash, and remove the icon if the user has
344         set one, if SetIcon is passed a null icon.
345
346 2007-01-29  Andreia Gaita  <avidigal@novell.com>
347
348         * TextBox.cs: Redraw when the password characters changes
349         * TextControl.cs: Check if textbox has a password char and draw 
350         a line of password chars instead of the text in the line. LineTag gets 
351         an extra Draw() method which allows document.Draw to override the text 
352         that will be drawn. Removes 1024 char limitation on length of passworded 
353         lines.
354
355 2007-01-29  Jackson Harper  <jackson@ximian.com>
356
357         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
358         single chars is not.
359
360 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
361
362         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
363         one pixel.  Fix a StackOverflowException caused by an overload wrongly
364         calling itself.
365
366 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
367
368         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
369         also remove ProcessArrowKey and put the code inside ProcessKeys.
370
371 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
372
373         * PaddingConverter.cs: Added.
374
375 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
376         
377         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
378         ShowPanels is false (fixes #80600). Only draw up to 127 characters
379         of text (fixes #80601). For panels clip the text to draw to the
380         panel (fixes #80603).
381
382 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
383
384         * ComboBox.cs: Fixed implementation of ResetText.
385
386 2007-01-25  Jackson Harper  <jackson@ximian.com>
387
388         * TextControl.cs: For the last char of a line we need to use the
389         line size, not that chars width, since it won't actually be
390         computed since the right side of a char is based on the start of
391         the left side of the next char, and the next char does not exist.
392
393 2007-01-25  Chris Toshok  <toshok@ximian.com>
394
395         * Splitter.cs: fix the new unit tests, and reindent some switch
396         statements.
397
398 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
399
400         * ComboBox.cs: Implemented 2.0 methods and events.
401         * TextBoxBase.cs: Added OnTextUpdate, so that
402         ComboBox.ComboTextBox can inform ComboBox of it.
403
404 2007-01-25  Jackson Harper  <jackson@ximian.com>
405
406         * TextControl.cs: Respect ShowSelection when deciding whether or
407         not to display the caret, this allows comboboxes to have carets
408         when the combotextbox does not have focus.
409
410 2007-01-25  Jackson Harper  <jackson@ximian.com>
411
412         * TextControl.cs: Add a Suspend/Resume for updating, basically the
413         same as the Suspend/Resume for recalc, except this will do actual
414         Invalidates.
415         - New Undo manager, works much like the MS version.
416         - Implemented Redo
417         * TextBoxBase.cs: The Cut operation is undoable.
418
419 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
420         
421         * TextBoxBase.cs: Don't antialias text. Makes it look way better
422         on Windows (no difference on Linux).    
423
424 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
425
426         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
427         we don't want to activate any windows. Fixes #79433.
428
429 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
430
431         - ButtonBase.cs: Fix capitalization of parameter: disposing.
432         [Fixes bug #80609]
433
434 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
435
436         * FileDialog.cs:
437         - Move to using System.ComponentModel.EventHandlerList
438         - Replace Refresh with Invalidate
439         - Clear the mime filecache on closing
440         - Some other memory reducing work. After beeing closed FD now uses
441           only about 300 KB for the fdo mime stuff plus the memory of the
442           cached icons.
443         * Mime.cs: Changed coding style and removed unnecessary commented
444         code. Some more memory memory reducing work.
445
446 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
447
448         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
449         a few other missing 2.0 properties.
450         * Theme.cs: Added DrawFlatStyleComboBox.
451         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
452
453 2007-01-24  Chris Toshok  <toshok@ximian.com>
454
455         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
456         wake_waiting flag, not just when there's data to be read.  if we
457         don't, then future wakeup's won't reach us and we'll be doomed to
458         wait for the entire 1 second timeout forever (unless there are X
459         events to be had).
460
461 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
462
463         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
464         until you pass Items.Count, not Items.Count - 1 like 1.1.
465
466 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
467
468         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
469
470 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
471
472         * ToolStripContainer.cs: The recent Dock fix exposed that I was
473         adding the panels in the wrong order.
474
475 2007-01-24  Jackson Harper  <jackson@ximian.com>
476
477         * TextBoxBase.cs: When we move the caret we also need to move the
478         selection, this fixes some random crashing after doing select
479         text, unselect, delete a char, paste.
480
481 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
482
483         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
484
485 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
486
487         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
488         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
489         * ToolBar.cs: Force redraw in BackgroundImageChanged.
490
491 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
492
493         * ToolBar.cs:
494         - Implement support for vertical toolbars. Fixes #80539;
495         - Call LayoutToolBar when resize, it fix some other problems in layout.
496         - Rename requested_height to requested_size, as we can have width on it
497         when toolbar is vertical.
498         - Create a private property "Vertical" that uses Dock to verify when 
499         toolbar is vertical or not.
500         - Set ControlStyles when change Dock property.
501         - Refactory in LayoutToolBar to have better variables names and to support
502         vertical toolbars.
503         - Fixes default value for ButtonSize when button count is equal zero, size
504         must be (39, 36) test case writed.
505
506 2007-01-23  Chris Toshok  <toshok@ximian.com>
507
508         * Control.cs: fix the checks so that they work correctly for mdi
509         parents/children.
510
511 2007-01-23  Chris Toshok  <toshok@ximian.com>
512
513         * Control.cs: ControlCollection seems to have super-secret
514         abstraction breaking knowledge of Mdi containers.  allow MdiClient
515         to add toplevel controls.
516
517 2007-01-23  Chris Toshok  <toshok@ximian.com>
518
519         * Control.cs: throw an ArgumentException if a toplevel control is
520         added to our control collection from ControlCollection.Add, as
521         well as from ControlCollection.IList.Add.  This fixes the
522         ControlSetTopLevelTest.TestTopLevelAdd unit test.
523
524         Also, in ControlCollection.IList.Add, don't through an
525         ArgumentNullException, throw an ArgumentException, when value ==
526         null.  This matches MS.
527
528 2007-01-23  Chris Toshok  <toshok@ximian.com>
529
530         * BindingSource.cs: initial, incomplete, implementation of
531         BindingSource.
532
533 2007-01-23  Jackson Harper  <jackson@ximian.com>
534
535         * TextControl.cs:
536         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
537         that I can fix a broken unit test (TextBoxTest::ClearUndo)
538         
539 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
540
541         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
542
543 2007-01-23  Andreia Gaita  <avidigal@novell.com>
544
545         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
546         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
547         IndexOfKey() for 2.0
548
549 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
550
551         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
552         to prevent it from changing z-order.
553         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
554         leave UI updates in MdiWindowManager.
555         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
556         1 sized (NC handling goes weird on Linux otherwise).
557         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
558         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
559         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
560         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
561         and SetWindowState(s) to allow for changing the size of an activated child
562         before activating it (reduces a lot of flicker).
563
564 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
565
566         * Form.cs: Changing FormBorderStyle has different semantics based
567         on whether the Form is visible or not.  If not visible, don't change
568         the Size.  But InvalidateNC needs to be called to force the window
569         to pick up the changes and redraw itself.  [Fixes bug #80574]
570
571 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
572
573         [Moma work]
574         * ContainerControl.cs: ProcessCmdKey.
575         * ErrorProvider.cs: new constructor.
576         * Form.cs: fix AutoValidateEvent compiler warning.
577         * Label.cs: fix OnAutoSizeChanged compiler warning.
578         * MenuStrip.cs: fix CanOverflow compiler warning.
579         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
580         * TextBox.cs: Dispose.
581         * ToolStrip.cs: CanOverflow, re-enable double buffering.
582         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
583         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
584         * ToolStripItem.cs: Overflow, RightToLeft properties.
585
586 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
587
588         * Form.cs: Move the layout of the main form to MdiWindowManager.
589         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
590         do a layout of the main window to update MdiClient's client area to
591         the right area. Fixes #80533. Remove the calculation of nc size, 
592         it was just wrong and the correct one is the same as for 
593         InternalWindowManager. 
594
595 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
596
597         * Control.cs: Setting Anchor or Dock needs to reset the other
598         to its default.  [Fixes bug #80556]
599
600 2007-01-20  Chris Toshok  <toshok@ximian.com>
601
602         * CheckedListBox.cs: class status changes.
603
604         * ScrollableControl.cs: same.
605
606         * RichTextBox.cs: same.
607
608         * ContainerControl.cs: same.
609
610         * ListView.cs: same.
611
612         * NotifyIcon.cs: same.
613
614         * MenuStrip.cs: same.
615
616         * RadioButton.cs: same.
617
618         * CheckBox.cs: same.
619
620         * PrintPreviewDialog.cs: same.
621
622         * Form.cs: same.
623
624 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
625
626         * TreeNode.cs: Apply Alan's patch for Name property.
627
628 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
629         
630         * Form.cs: Implemented SizeGripStyle.
631         * SizeGrip.cs: Check for minimum and maximum size for the
632         control being resized and only resize if size has actually
633         changed.
634
635 2007-01-19  Chris Toshok  <toshok@ximian.com>
636
637         * DataGridColumnStyle.cs: stop setting _readonly in the
638         PropertyDescriptor setter.  fixes a unit test failure.
639
640         also, rename ParentReadOnly to TableStyleReadOnly, and have it
641         just consult our table style (if we have one).  We don't need to
642         consult the datagrid readonly attribute because that's passed in
643         as the _ro arg to Edit.  this simplifies things a little.
644         
645         * DataGrid.cs: use CurrentColumn instead of
646         current_cell.ColumnNumber just to simplify some of the code.
647
648         switch the order of some things in the CurrentCell setter to keep
649         the previous cell from getting a textbox again -
650         EnsureCellVisibility causes scrolling to happen, which calls Edit.
651         So we need to set the new cell before calling it.
652         
653         call Edit in OnEnter, as does Microsoft.
654         
655         also, make sure the current table style isn't the one we create
656         initially when checking to see if it's different than the one
657         we're setting it to in BindColumns (this fixes #80421).
658
659         * GridTableStylesCollection.cs: table styles can have "" for a
660         mapping name.  part of the fix for #80421.
661
662         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
663         Edit significantly.
664
665 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
666
667         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
668         and less GDI object leaky-er.
669
670 2007-01-18  Andreia Gaita  <avidigal@novell.com>
671
672         * LinkLabel.cs: Add opaque control style
673
674 2007-01-18  Jackson Harper  <jackson@ximian.com>
675
676         * TextControl.cs: Calculate width properly.
677         - Don't store the tag's X offset, this can be figured out very
678         easily.
679         - When getting the caret tag make sure to get the last empty tag.
680
681 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
682
683         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
684         [Fixes bug #79959]
685
686         * Control.cs: Color.Empty shouldn't count for previous transparent
687         redraw changes.
688
689 2007-01-18  Jackson Harper  <jackson@ximian.com>
690
691         * TextBox.cs:
692         * RichTextBox.cs:
693         * TextControl.cs: Starting to merge in some pieces of my older
694         undo work.  Basically just some slight cleanup of the undo API.
695
696 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
697
698         * TrackBar.cs: Fix signature of RightToLeftLayout.
699         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
700         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
701         * Application.cs: Implemented UseWaitCursor.
702
703 2007-01-18  Jackson Harper  <jackson@ximian.com>
704
705         * TextControl.cs: We can't skip tags if any part of the tag is
706         visible.
707
708 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
709
710         * ContainerControl.cs: Override OnLayout.
711
712 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
713
714         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
715
716         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
717         everything else.
718
719 2007-01-18  Chris Toshok  <toshok@ximian.com>
720
721         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
722         (leftover from the container_selected days, I'd wager).  fixes bug
723         #80546.
724
725 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
726
727         * Control.cs: Apply patch from George to fix the new testcase on
728         bug #80451.  We can't just check for Color.Transparent, we need 
729         to check if the back color's alpha channel is < 255.
730
731 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
732
733         * Form.cs: Move setting show_icon = true to before the constructor
734         so that the base constructor has that information when it calculates
735         the form's size.  Was causing forms to be (6, 6) bigger than they
736         were supposed to be.  Thanks for catching this Rolf!
737
738 2007-01-18  Jackson Harper  <jackson@ximian.com>
739
740         * TextControl.cs: When replacing a selection we need to invalidate
741         from the initial selection start, because selection start is moved
742         to the end of the replacement.
743
744 2007-01-18  Andreia Gaita  <avidigal@novell.com>
745
746         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
747
748 2007-01-18  Chris Toshok  <toshok@ximian.com>
749
750         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
751         I just added.
752
753 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
754
755         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
756         layout methods and properties from ToolBarButton must be available
757         into ToolBarButtonInfo.
758
759 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
760
761         * Control.cs: If the control has a transparent background, we
762         need to refresh it when it moves and when it's parent's background
763         image changes.  [Fixes bug #80451]
764
765 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
766
767         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
768
769 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
770
771         * XplatUIWin32.cs: Implement proper double buffering for Windows.
772         [Fixes bug #80447, and probably speeds up things as well]
773
774 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
775
776         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
777         * XplatUIWin32.cs: We need to recalculate NC size after changing 
778         window style to toolwindow (otherwise the client rectangle will be
779         3 pixels to small for some reason).
780         * MdiWindowManager.cs: Revert NC size calculations to match how
781         they are calculated only based on window styles (to match
782         Win32AdjustWindowRectEx, since otherwise when setting size or 
783         location, Control will call Win32AdjustWindowRectEx to update client 
784         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
785         calculate a different value of client size causing another paint 
786         (and flickering))
787         * InternalWindowManager.cs: When moving or resizing a window only
788         update size or location if they actually changed.
789         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
790         (seems to match Windows behaviour better). Cleaned up 
791         ManagedWindowDecorations to draw what's needed and nothing else
792         (was drawing borders and lines where they shouldn't be)
793         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
794         (style = 0xFFFF) and takes into account caption height when 
795         calculating window rectangle.   
796
797 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
798
799         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
800         can be added to toolbar multiple times, we need to maintain a list of 
801         button information for each positions.
802
803 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
804
805         * ToolBar.cs: Some small stetic changes.
806
807 2007-01-16  Jackson Harper  <jackson@ximian.com>
808
809         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
810         that allow us to have nested recalc = false blocks.
811         - Add paste support for images in the RichTextBox
812         * RichTextBox.cs: flush the text after the color is changed, so
813         the change takes effect.
814         - Use SuspendRecalc
815         - Some extra debugging info
816         * TextControl.cs: Tags no longer track their length, it is just
817         computed from the next tags length, this makes things a little
818         simpler and reduces places that we have to track length changes.
819         - Refactored the linetag class a little so we could make it
820         a base class for different kinds of tags
821         - Created a image tag, a tag that can have a single image inserted
822         into it
823         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
824         that we can call suspend multiple times.
825         - Add some debugging methods
826
827 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
828
829         * MdiClient.cs: Add ActivatePreviousChild for 
830         mdi child window navigation.
831         * Form.cs: Use MdiClient.ActivateNextChild/
832         ActivatePreviousChild instead of Form.SelectNextControl
833         to select the next/previous child since 
834         SelectNextControl doesn't do it in the same order
835         as mdi children should do it.
836
837 2007-01-16  Chris Toshok  <toshok@ximian.com>
838
839         * Control.cs: remove container_selected field.
840
841 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
842
843         * MdiClient.cs: Update main form's ActiveChild when
844         updating keyboard focus for the mdi child.
845
846 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
847
848         * Control.cs: PreferredSize fix.
849
850         * Form.cs: Add several 2.0 events, properties, and methods.
851
852 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
853
854         * Form.cs: Provide meaningful message when MdiParent is assigned a
855         Form that is not an MdiContainer.
856
857 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
858
859         * MdiClient.cs: Update main form's ActiveChild when
860         activating a mdi child.
861
862 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
863
864         * MdiWindowManager.cs: Fix NRE when merging menus and main form
865         doesn't have a menu.
866
867         * Form.cs: Request NCRecalc after creating a mdi child window.
868         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
869         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
870         
871         * MdiClient.cs: Add new method SendFocusToActiveChild that either
872         sends keyboard focus to the active child, or to the MdiClient
873         if there are no child forms.
874         
875 2007-01-15  Chris Toshok  <toshok@ximian.com>
876
877         * ListView.cs: drop the *Internal overrides, just do our work in
878         ItemControl's WndProc instead.
879
880         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
881         of the various controls, and forward the events properly (in the
882         same manner as MS) from the textbox to the UpDown.  Also the
883         ActiveControl of the UpDownBase gets set properly now.  Finally,
884         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
885
886         * NumericUpDown.cs: set Text in the ctor.
887
888         * DomainUpDown.cs: call UpdateEditText in the ctor.
889         
890         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
891         so even a Selectable = false textbox can be focused if you click
892         in it.  Go figure.
893
894         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
895         just add their handling in their respective WndProc's.  Also add
896         an explicit FocusInternal method that doesn't consult CanFocus
897         before calling Select(this).
898
899         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
900         do our work in WndProc instead.
901
902         * TabControl.cs: same.
903
904         * ComboBox.cs: same.
905
906 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
907
908         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
909         Fixes #80006.
910
911 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
912
913         * ListViewItem.cs:
914         * ThemeWin32Classic.cs: Don't draw the item text outside
915         item bounds in Details view, as well as use trimming.
916         Fixes bug #80376.
917
918 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
919
920         * Form.cs: Implement Form.ShowIcon.
921         
922         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
923         null, which when combined with the DlgModalFrame window style removes
924         the icon from the title bar.
925
926 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
927
928         * Control.cs: Call OnMouseClick after OnClick. (2.0)
929
930 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
931
932         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
933         menu when mdi child windows theres a menu, uses insert to get icon
934         at first position. Partially fix #80006.
935
936 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
937
938         * Clipboard.cs: Implement 2.0 methods.
939
940 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
941
942         * Menu.cs: Implement Insert method of MenuItemCollection class
943         to fix MenuMerge.
944
945 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
946
947         * ListView.cs: Implement 2.0 FindItemWithText method.
948
949 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
950
951         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
952         to calculate menu bar size. Fixes #80290.
953
954 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
955
956         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
957
958 2007-01-11  Chris Toshok  <toshok@ximian.com>
959
960         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
961         initial form.
962
963 2007-01-11  Chris Toshok  <toshok@ximian.com>
964
965         * LinkLabel.cs: make sure to call base.Select in our Select method
966         if it turns out we're going to be selected (i.e. if we have a link
967         that is going to receive focus).  That way our container's
968         ActiveControl is updated properly.
969
970 2007-01-11  Chris Toshok  <toshok@ximian.com>
971
972         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
973         they have 1 or more links.  this fixes the crash gert reported.
974
975 2007-01-11  Andreia Gaita  <avidigal@novell.com>
976
977         * ContainerControl.cs: Remove ContainerSelected flag, not needed
978         anymore.
979
980         * Control.cs (Controls.Add): Check if control to be added to the collection
981         is a top level control, and throw an ArgumentException if it is.
982         Remove ContainerSelectedFlag, not needed anymore.
983
984         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
985         top most control doesn't activate the form. This fixes a problem in the
986         MessageBox, where the default button wouldn't get focus because the form
987         was activated before being Loaded - when the Owner is set, SetTopMost is
988         called, and it would activate it.
989
990 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
991
992         * Button.cs: When clicked and setting the parent form's DialogResult,
993         use FindForm instead of Parent, since parent could be a container
994         control and not the Form.  Fixes bug #80495.
995
996 2007-01-10  Chris Toshok  <toshok@ximian.com>
997
998         * Form.cs: move the call to SendControlFocus into the same
999         is_loaded check.
1000
1001 2007-01-10  Chris Toshok  <toshok@ximian.com>
1002
1003         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1004         It breaks in the face of the new ActiveControl stuff, and should
1005         be unnecessary.
1006
1007         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1008         activecontrol's focus if it's not already set, after we set
1009         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1010         after the previous focus/active control fixes regressed it.
1011
1012         * Control.cs: reindent some code.
1013         
1014 2007-01-10  Chris Toshok  <toshok@ximian.com>
1015
1016         * Splitter.cs: clearing some outstanding changes from my tree.
1017         Replace all accesses (not writes) to the internal dock_style field
1018         with the Dock property.
1019
1020 2007-01-10  Chris Toshok  <toshok@ximian.com>
1021
1022         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1023         FireValidated virtual.
1024
1025         * Form.cs: override and don't chain up calls to FireEnter and
1026         FireLeave.
1027
1028 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1029
1030         * ListView.cs: Add more text padding space when using
1031         auto resize for columns (the previous value didn't work fine).
1032
1033         * ThemeWin32Classic.cs: Update text position inside columns,
1034         to match the appeareance of .Net.
1035
1036         * ColumnHeader.cs: When using auto resize, only the Width should
1037         depend on the sub items, not the Height. Also, set width after
1038         auto resizing (the value of Width should never remain as -1 or -2).
1039
1040 2007-01-10  Chris Toshok  <toshok@ximian.com>
1041
1042         * Application.cs: fix compilation errors when debug is enabled.
1043
1044 2007-01-10  Chris Toshok  <toshok@ximian.com>
1045
1046         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1047         add some nice ascii art pictures and explanation of the process).
1048         (GetMostDeeplyNestedActiveControl): new utility function we need
1049         because our ActiveControl can refer to a child container with its
1050         own ActiveControl.
1051
1052         * Form.cs (OnActivated): remove the call to SelectActiveControl
1053         from here, since you can override this method and not chain up,
1054         and winforms still sets the active control.
1055         (OnCreateControl): also remove the unnecessary SelectActiveControl
1056         call from here.
1057         (WndProc): it's actually called from the WM_ACTIVATE block, just
1058         before calling OnActivated.
1059
1060         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1061         inside the else.  the ActiveControl setter will end up setting
1062         focus on @control.  This keeps us from setting it again (and
1063         generating an extra LostFocus/GotFocus pair).
1064         (Select (bool, bool)): reindent.
1065
1066 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1067
1068         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1069         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1070         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1071         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1072         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1073         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1074         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1075         ToolStripTextBox.cs: Another wave of corcompare work.
1076
1077 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1078
1079         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1080         the Width property.
1081
1082         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1083         methods by callling Column.AutoResize method on columns.
1084
1085 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1086
1087         * Control.cs: Provide proper implementations of PreferredSize
1088         and GetPreferredSize (2.0).
1089
1090 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1091
1092         * Form.cs: Remove one character (!) to make my previous OnClosing
1093         stuff work for modal windows like MessageBox.
1094
1095 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1096
1097         * ListView.cs:
1098         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1099         ListView.Columns to get the last displayed column. Fixes #80452.
1100
1101 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1102
1103         * Label.cs, LinkLabel.cs: Source code identation fixes.
1104
1105 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1106
1107         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1108         we dont need to invalidate only borders because when we invalidate four
1109         border lines the invalidate's generates a complete redraw of button, 
1110         because it now invalidate a complete rect some other redraws operations
1111         are fixed. Fixes #80196.
1112         
1113         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1114         Remove ToolBarInvalidateEntireButton as it is not used.
1115
1116 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1117         
1118         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1119         called for 2.0 profile.
1120         * CloseReason.cs: Make class internal for 1.1.
1121
1122 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1123
1124         * ToolStripManager.cs: Implement FindToolStrip functionality.
1125         * ToolStrip.cs: Register and unregister with ToolStripManager.
1126
1127 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1128
1129         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1130         to ArrangedElementCollection.  Implemented this with as few #if's as 
1131         possible (which is still too many).
1132
1133 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1134
1135         * Control.cs: Implement SizeFromClientSize() [2.0].
1136
1137 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1138
1139         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1140         use Theme.BorderSize to calculate area instead of static value 1, 
1141         by the way use new BorderStaticSize instead     Border3DSize when 
1142         border_static is true. Fixes #79537.
1143         
1144         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1145         
1146         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1147         it is not needed.
1148
1149 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1150
1151         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1152
1153 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1154
1155         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1156         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1157         
1158         * Hwnd.cs: 
1159         - border_static field added, it will used to define when a control 
1160         theres 3D border but it must be static (thin).
1161         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1162         instead of static value 1, by the way use new BorderStaticSize instead
1163         Border3DSize when border_static is true.
1164
1165         * XplatUIX11.cs, XplatUIOSX.cs: 
1166         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1167         
1168         * Theme.cs: BorderStaticSize field added.
1169
1170 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1171
1172         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1173
1174 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1175
1176         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1177         mimic same behavior than win32 that set border only in CreateParams,
1178         it fix problems under CreateParams overrides. Fix #79442 and partial
1179         fix #79537.
1180         
1181         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1182         of thi control you must call recreate handle. 
1183         
1184         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1185         need to do anything as RecreateHangle will take care about borders.
1186
1187 2007-01-05  Mike Kestner  <mkestner@novell.com>
1188
1189         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1190         cycles between the ItemControl and parent.  Fixes #80388.
1191
1192 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1193
1194         * Control.cs: Lazy init layout engine. Do not directly use 
1195         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1196
1197 2007-01-05  Chris Toshok  <toshok@ximian.com>
1198
1199         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1200         unless our list manager has changed (i.e. unless we have reason to
1201         believe our columns have changed).  Fixes #80422.
1202         
1203         also, disable the call do BindColumns in
1204         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1205         1.1 the event isn't raised in response to a column addition on a
1206         table.)
1207
1208 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1209
1210         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1211         that inheritors can not call it if they choose.  Fixes bug #80456.
1212
1213 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1214
1215         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1216         doesn't blow up with a null exception on marshalling.
1217         
1218 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1219
1220         * Control.cs: Implement several 2.0 protected properties and methods.
1221         Ensure that all necessary events are being called when properties
1222         are set.
1223
1224 2007-01-05  Mike Kestner  <mkestner@novell.com>
1225
1226         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1227         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1228         instead of the parent control.  Fixes #80378.
1229
1230 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1231
1232         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1233           determine whether to use yard-pound or not (bug #78399).
1234
1235 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1236
1237         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1238         problems. So it is time to bring back the old popupbutton colors.
1239
1240 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1241
1242         * ColumnHeader.cs:
1243         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1244         property by using the internal information of the
1245         columns order in ListView.
1246
1247 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1248
1249         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1250         Add 2.0 Tag properties.
1251
1252         * LinkArea.cs: Add 2.0 ToString method.
1253
1254 2007-01-03  Chris Toshok  <toshok@ximian.com>
1255
1256         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1257         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1258         when we're editing, which fixes #80047.
1259
1260 2007-01-03  Chris Toshok  <toshok@ximian.com>
1261
1262         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1263         #80404.
1264
1265 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1266
1267         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1268         property and implementation.
1269
1270         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1271         for MdiWindowListItem property.
1272
1273         * ToolStripDropDown.cs: Don't consider hidden menu items while
1274         laying out the menu.
1275
1276 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1277
1278         * SendKeys.cs: window handle is not needed in win32, so just
1279         get the active window for X after parsing keys and don't use
1280         it when building the message; it is passed by parameter to the 
1281         Xplat method and used there to build the message instead. Also,
1282         wait for events to be processed on SendWait, as opposed to Send,
1283         which doesn't wait :) Playing with threads and Send() completely 
1284         hangs on ms.net, only SendWait() works.
1285         
1286         XplatUIX11.cs
1287         X11Display.cs: Check for valid window handle.
1288
1289 2007-01-03  Jackson Harper  <jackson@ximian.com>
1290
1291         * TextControl.cs: Need to prevent wrap calculations when replacing
1292         text (this was there before i removed it accidently).
1293         - Don't update the cursor during the positioning, just set it to
1294         selection_start at the end of the operaion.
1295
1296 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1297
1298         * Control.cs:
1299         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1300         
1301 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1302
1303         * MonthCalendar.cs: Added Click and DoubleClick events again,
1304         but this time they only hide Control's Click and DoubleClick.
1305         
1306 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1307
1308         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1309         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1310
1311 2007-01-02  Jackson Harper  <jackson@ximian.com>
1312
1313         * TextBoxBase.cs: We move the caret with the split now, so we
1314         don't need to explicitly move the caret after splitting.  This
1315         fixes the caret bumping down an extra line on Enter.
1316
1317 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1318
1319         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1320         2.72). 
1321
1322         * ScrollableControl.cs: Add Scroll event.
1323
1324 2007-01-02  Mike Kestner  <mkestner@novell.com>
1325
1326         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1327         to fix all hdr height padding codepaths.  Fixes #80207.
1328
1329 2007-01-02  Chris Toshok  <toshok@ximian.com>
1330
1331         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1332         setting it to the Control defaults anyway, and it being after the
1333         Dock set was screwing up layout.
1334         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1335         no need to call UpdateStatusBar here, as it'll be re-layed out if
1336         it needs to be.
1337
1338 2007-01-02  Mike Kestner  <mkestner@novell.com>
1339
1340         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1341         to header height for width == -1. Fixes the rest of #80207.
1342
1343 2007-01-02  Mike Kestner  <mkestner@novell.com>
1344
1345         * ListView.cs: rework the mouse event forwarding everaldo added
1346         to translate the coordinates to the parent control not
1347         raise the parent events until after we've done our work. Hover
1348         needs more work, in the case where HoverSelection is on, because
1349         the item control receives more than one MouseHover per Enter
1350         event, so we need to ensure only the "first" hover gets forwarded.
1351         Opening a minor bug for that.
1352
1353 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1354
1355         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1356         * ListControl.cs: Implemented AllowSelection property. Removed extra
1357         tabs.
1358         * ListBox.cs: Implemented AllowSelection property.
1359
1360 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1361
1362         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1363         SelectedItem, it prevent for errors when you must disable item
1364         before perform click. Fixes #80409.
1365
1366 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1367
1368         * MenuAPI.cs: Prevent second level and beyond submenus to close
1369         until first level when move out side of popup.
1370         
1371 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1372
1373         * MenuAPI.cs:
1374         - Down submenu positin in three pixels.
1375         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1376
1377 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1378
1379         * ThemeWin32Classic.cs:
1380         - Fix popup menu size adding one pixel on the top.
1381         - Down menu item border from two to one to mimic Win32.
1382         - Some source identation fixes. 
1383
1384 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1385
1386         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1387         position of menu arrows, it fix wrong arrow size.
1388
1389 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1390
1391         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1392         instead of line, it simplify draw operation and fix it using 3D
1393         borders to mimic Win32.
1394
1395 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1396
1397         * StatusStrip.cs: Add implementation of the sizing grip.
1398
1399         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1400         StatusStrip rendering.
1401
1402 2006-12-31  Chris Toshok  <toshok@ximian.com>
1403
1404         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1405         override the layout style (anchor/dock) of the control.  assign to
1406         Dock instead.  Fixes bug #80416.
1407
1408         * ToolStrip.cs: same.
1409
1410 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1411
1412         * ContainerControl.cs: Use ContainerSelected flag to check if 
1413         a Container is directly selected, or if Select is called on a 
1414         non-container. If a container is directly selected, focus events 
1415         should not be raised.
1416         Apply #80411 patch to throw exception on set_ActiveControl if 
1417         control is the same as the current one.
1418         
1419         * Control.cs: Use ContainerSelected flag (see above).
1420         Add invalidation check to raise event but not invalidate if 
1421         dimensions are 0.       
1422         Apply #80411 patch.
1423         
1424
1425 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1426
1427         * MenuAPI.cs: After click, dont close popup menu when menu is
1428         ContextMenu. Fixes #80399.
1429
1430 2006-12-30  Chris Toshok  <toshok@ximian.com>
1431
1432         * ContainerControl.cs: make sure we throw the exception if the
1433         container control doesn't contain the control we're setting
1434         ActiveControl to.
1435
1436 2006-12-30  Chris Toshok  <toshok@ximian.com>
1437
1438         * Control.cs (SetTopLevel): fix the exception raised by
1439         SetTopLevel for child controls.
1440         (set_Anchor): call UpdateDistances when setting the anchor type.
1441         This fixes bug #80336.
1442
1443 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1444
1445         * Theme.cs: For now, revert back to 8pt font.
1446
1447 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1448
1449         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1450         Fixes #80395.
1451
1452 2006-12-29  Chris Toshok  <toshok@ximian.com>
1453
1454         * Control.cs: reorder the code in OnResize to give the same event
1455         ordering as MS.
1456
1457 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1458
1459         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1460         TileHorizontally and TileVertically.
1461         
1462 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1463
1464         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1465         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1466         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1467         Corrected copyright and email adress.
1468
1469 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1470
1471         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1472         of Exception in FullPath property if no TreeView is associated with
1473         the TreeNode.
1474
1475 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1476
1477         * Theme.cs: Marked default_font as private, and initialize it in ctor
1478         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1479         on 2.0 profile.
1480         * ThemeGtk.cs: Removed default_font intialization.
1481         * ThemeWin32Classic.cs: Removed default_font initialization.
1482
1483 2006-12-28  Chris Toshok  <toshok@ximian.com>
1484
1485         * Control.cs: fix a couple of place where we were creating handles
1486         more aggressively than we should be.  Fixes ControlRefresh unit
1487         tests.
1488
1489 2006-12-28  Chris Toshok  <toshok@ximian.com>
1490
1491         * Control.cs: contrary to what the comment said, Control.Dock does
1492         not supercede Control.Anchor - the last one you assign to decides
1493         the layout behavior.  so we need to keep track of which was the
1494         last set.  Also, fix some of the affected property arguments in
1495         PerformLayout calls, and remove an redundant parent.PerformLayout
1496         call in OnResized.
1497
1498         Add a VisibleInternal property, which returns is_visible.  We
1499         can/should get rid of all the usage of this field elsewhere.
1500
1501 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1502         
1503         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1504         control style, not DoubleBuffer. Added UseDoubleBuffering property
1505         that indicates whether doublebuffering is enabled and supported.
1506         (comment from and code based on Gert Driesen's patch in #80324).
1507         Fixes #80324.
1508
1509 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1510         
1511         * Control.cs: Fixed a NRE.
1512
1513 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1514
1515         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1516         for 2.0.
1517
1518 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1519
1520         * Control.cs: Rewrote double buffering, now a seperate
1521         class handles all the buffering, no Graphics is disposed of
1522         until the painting is finished (earlier implementation 
1523         would crash if the control was resized in the OnPaint, 
1524         since it would cause the double buffer to be recreated
1525         and the old one disposed), a separate Graphics is 
1526         created for every paint (MS behaviour and anyways the state
1527         of the Graphics would have to be saved and restored otherwise)
1528         
1529         * XplatUIDriver.cs: 
1530         * XplatUIX11.cs:
1531         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1532         so that we can get the graphics for the back buffer without
1533         having to create a new one and remove the offscreen_dc parameter
1534         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1535         
1536 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1537
1538         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1539         Also make virtual all the key-related methods.
1540
1541         * ListViewItem.cs: Make virtual the key related methods for
1542         ListViewSubItemCollection.
1543
1544 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1545
1546         * ListView.cs:
1547         * ListViewItem.cs:
1548         * ThemeWin32Classic.cs:
1549         * Theme.cs: Initial support for Tile view in ListView,
1550         as well as the implementation of the required bits for it (Item
1551         and Subitem).
1552
1553 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1554
1555         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1556         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1557         Provide useful exception messages.
1558
1559 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1560
1561         * TrackBar.cs: Remove a warning.
1562         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1563         when used by DateTimePicker, fixes #80287. This also requires that 
1564         MonthCalendar implements it's own drawing for the yearly updown control,
1565         otherwise the Capture tracking would be too complicated. Removed the Click 
1566         and DoubleClick events (according to comments they were hiding the base class
1567         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1568         raise these events, not that they cannot be raised. It is possible to raise 
1569         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1570         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1571         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1572         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1573         event, no longer needed.
1574         
1575 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1576
1577         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1578         true if new value differs from current value.
1579
1580 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1581
1582         * Control.cs: ControlCollection.Count must be public. Fixed build of
1583         unit tests.
1584
1585 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1586
1587         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1588
1589 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1590
1591         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1592
1593 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1594
1595         * Control.cs: Invalidates control including when Width and Height is 
1596         equal zero or is not visible, only Paint event must be care about 
1597         this. Fixes #79913.
1598
1599 2006-12-26  Chris Toshok  <toshok@ximian.com>
1600
1601         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1602         more corcompare work.
1603
1604         * DataGridView.cs: fix compiler warning.
1605
1606         * ColumnHeader.cs: some corcompare work, and also take the
1607         opportunity to make the internal fields private.
1608
1609         * ListView.cs: fix the fallout from the above field change.
1610
1611 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1612
1613         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1614         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1615         ToolStripTextBox.cs: Fixes to events and corcompare.
1616
1617 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1618
1619         * ListView.cs: Call owner.OnMousexx event to propagate events from
1620         item to ListView. Fixes #80367.
1621
1622 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1623
1624         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1625         if value is less than one. ItemHeight should not be set to a value
1626         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1627         Removed extra tabs.
1628
1629 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1630
1631         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1632         * ToolStripStatusLabel.cs: Add Spring for Moma.
1633
1634 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1635
1636         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1637         Fixed code formatting. Removed debug code.
1638         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1639
1640 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1641
1642         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1643         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1644         ArgumentOutOfRangeException if ColumnCount is negative. In 
1645         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1646         less than 4 or higher than 32768.
1647         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1648         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1649         Fixed IsFormatProviderDefault to return true if FormatProvider has
1650         not been explicitly set.
1651
1652 2006-12-25  Chris Toshok  <toshok@ximian.com>
1653
1654         * Application.cs: add a couple of 2.0 events.
1655
1656 2006-12-25  Chris Toshok  <toshok@ximian.com>
1657
1658         * Control.cs: fix compiler warning.
1659
1660         * AxHost.cs: corcompare fixes.
1661
1662         * ApplicationContext.cs: corcompare fixes.
1663
1664 2006-12-25  Chris Toshok  <toshok@ximian.com>
1665
1666         * Control.cs: only update dist_right/dist_bottom if the
1667         width/height is > 0.  this fixes anchored controls being resized
1668         smaller until they disappear and then resized larger again.
1669
1670 2006-12-25  Chris Toshok  <toshok@ximian.com>
1671
1672         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1673         since they're nothing more than X/Left and Y/Top, respectively.
1674
1675         Also, move back to a per-control Bitmap/Graphics for
1676         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1677         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1678         Height.
1679
1680 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1681
1682         * MessageBox.cs: Implemented overload that takes a new "bool
1683         displayHelpButton" by adding a new internal field "show_help".
1684         When clicked this will raise the HelpRequested on the owner or the
1685         main form. 
1686
1687         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1688         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1689
1690         * ListView.cs: Add support ColumnWidthChanged and
1691         ColumnWidthChanging. 
1692
1693         Add support for ColumnReordered event.
1694         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1695         reorder.
1696
1697         Very nice codebase!
1698
1699         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1700
1701         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1702
1703 2006-12-24  Chris Toshok  <toshok@ximian.com>
1704
1705         * GridTablesFactory.cs: 2.0 corcompare work.
1706
1707         * ToolStripContainer.cs: add "override" to
1708         ContextMenuStripChanged, and remove the local event object.
1709
1710         * ToolStripDropDown.cs: same with a couple properties.
1711
1712         * ToolStripPanel.cs: same with AutoSizeChanged event.
1713
1714         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1715
1716         * Form.cs: add the remaining 2.0 events, and do some corcompare
1717         attribute work.
1718
1719         * DateTimePicker.cs: add "new" to padding.
1720
1721         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1722
1723         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1724
1725         * DataGridView.cs: PaddingChanged is overridden.
1726
1727 2006-12-24  Chris Toshok  <toshok@ximian.com>
1728
1729         * Control.cs: corecompare work here too.
1730
1731         * DataGridViewElement.cs, DataGridView.cs,
1732         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1733         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1734         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1735         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1736         work.
1737
1738 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1739
1740         * Control.cs: Switched the error message on the console for a
1741         todo.  A review of the code will have to cope with this anyways
1742         (since its a large feature, it is in our radar) and it was
1743         producing too much output when running PDN.
1744
1745         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1746         changes.  Applications depend on this (PDN 2.72)
1747
1748 2006-12-23  Chris Toshok  <toshok@ximian.com>
1749
1750         * TableLayoutSettings.cs: finish up the corcompare work for this
1751         class.
1752
1753 2006-12-23  Chris Toshok  <toshok@ximian.com>
1754
1755         * Control.cs: make SetImplicitBounds internal, do some futzing
1756         with LayoutEngine so that it's available in 1.1, and remove the
1757         entire duplicated code mess from PerformLayout.  Use
1758         System.Windows.Forms.Layout.DefaultLayout instead.
1759
1760         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1761
1762 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1763
1764         * Form.cs: Add MainMenuStrip property.
1765
1766 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1767
1768         * Control.cs: Add ContextMenuStrip property and implementation.
1769         Fix ContextMenu implementation to show menu centered on control when
1770         activated using the keyboard instead of showing at screen (0,0).
1771
1772         * ToolStripDropDown.cs: Fix needed overload of Show ().
1773
1774 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1775
1776         * Menu.cs: Name property added for 2.0 profile.
1777         
1778 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1779
1780         * Menu.cs: Update information about FindMenuItem, method to be
1781         implemented soon.
1782
1783 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1784
1785         * MenuAPI.cs: When deselect items deselect also selected subitems.
1786         
1787 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1788
1789         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1790         FindSubItemByCoord to found itens that is not active, also an
1791         cheking added to FindSubItemByCoord to search for items only 
1792         in visible popup windows. Fixes #80274.
1793
1794 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1795
1796         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1797         internal property, it be care about change ExStyle. 
1798
1799 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1800
1801         * ContainerControl.cs: set activeControl for parent forms up the 
1802         tree when the new activecontrol is a container.
1803         When validating the active control, if it is a container, also
1804         raise up the validation for it's active control. Fixes #80280
1805         
1806         * Control.cs: Add internal property flag and check to prevent
1807         Focus events from getting raised when Select() is called for
1808         a ContainerControl. There are still too many focus events being
1809         raised at the moment though.
1810         Cleaned up the code a bit.
1811
1812 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1813
1814         * Control.cs: Added all missing 2.0 events.and
1815         fixed a couple of corcompare issues.
1816         * TrackBar.cs: Implemented missing 2.0 bits.
1817         * MonthCalendar.cs, 
1818         * DateTimePicker.cs, 
1819         * MdiClient.cs: Fixed some corcompare issues.
1820
1821 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1822
1823         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1824         SplitterPanel.cs: corecompare work.
1825
1826 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1827
1828         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1829         Clean up warnings for BackgroundImageChanged and PaddingChanged
1830         events now that they are implemented in Control.cs.
1831
1832 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1833
1834         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1835         
1836         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1837         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1838         of TableLayoutPanel and supporting cast.
1839
1840 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1841
1842         * XplatUIWin32.cs: 
1843         - GrabWindow now confines the mouse pointer to the confine window.
1844         - Added Win32ClipCursor and Win32GetClipCursor.
1845
1846         * Control.cs: 
1847         - Added CaptureWithConfine to be able to capture and confine 
1848         mouse pointer.
1849         
1850         * InternalWindowManager.cs: 
1851         - Call CaptureWithConfine instead of Capture if we're an
1852         MdiChild (fixes #79982).
1853
1854 2006-12-21  Chris Toshok  <toshok@ximian.com>
1855
1856         * DataGrid.cs: guard against the initial state of selection, where
1857         selection_start == -1.  make sure we only select from index >= 0.
1858         Fixes bug #80291.
1859
1860 2006-12-21  Chris Toshok  <toshok@ximian.com>
1861
1862         * Control.cs: we don't need to be so draconian with
1863         UpdateDistances, and we thusly don't need to call it before
1864         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1865
1866 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1867
1868         * ComboBox.cs,
1869         TextBox.cs: Implemented AutoComplete properties.
1870
1871 2006-12-20  Chris Toshok  <toshok@ximian.com>
1872
1873         * DataGridView*.cs: some corecompare work.
1874
1875 2006-12-20  Jackson Harper  <jackson@ximian.com>
1876
1877         * XplatUIX11.cs: We need to hide the caret when deleting it,
1878         otherwise you get carets left lying around everywhere.
1879         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1880         prevents getting some weird half drawn caret tracers when
1881         scrolling.
1882         * TextControl.cs: Attempt to reduce the number of times we need to
1883         recreate the caret.
1884
1885 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1886
1887         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1888
1889 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1890
1891         * DateTimePicker.cs:
1892         - Implemented missing 2.0 bits.
1893         - Changed some default values to match MS.
1894         
1895 2006-12-20  Jackson Harper  <jackson@ximian.com>
1896
1897         * TextBoxBase.cs: When changing the font across the document we
1898         can't recalculate after changing each line, since that will cahnge
1899         the line count.
1900         - PreferredHeight is a little different than i thought.
1901         - When backspacing, move the caret before we do the actual char
1902         delete, because when that delete crosses a wrap boundary the
1903         positional information will change.
1904
1905 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1906
1907         * Control.cs: Added some missing 2.0 bits: 
1908         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1909         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1910         add IBindableComponent and IDropTarget implementation.
1911         
1912         * MonthCalendar.cs: 
1913         - Added all missing 2.0 features:
1914         BackgroundImageLayout, RightToLeftLayout, 
1915         OnHandleDestroyed, RightToLeftLayoutChanged, 
1916         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1917         PaddingChanged.
1918         - Rewrote all the BoldDate code, it was completely broken.
1919         - Fixed all the tests (the tests can now be re-enabled, the
1920         problems were not with the tests, but with the control, it was
1921         mostly broken).
1922         
1923         * DateTimePicker.cs: Changed the location where the 
1924         MonthCalendar is shown.
1925         
1926 2006-12-19  Chris Toshok  <toshok@ximian.com>
1927
1928         * DataGridView.cs: add IDropTarget implementation.
1929
1930         * ToolStripPanel.cs: add IDropTarget implementation.
1931
1932 2006-12-19  Jackson Harper  <jackson@ximian.com>
1933
1934         * TextControl.cs: soft now means something different than what it
1935         used to mean, we want to move the caret regardless of whether or
1936         not this break was soft (would we really have wanted the caret
1937         to not move with the break in the old context?)
1938         * TreeView.cs: Make sure we factor in the vert scrollbar when
1939         calculating the horizontal scrollbar's maximum.
1940
1941 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1942
1943         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
1944         check for keywords in alternate casing, close bug #80049.
1945
1946 2006-12-19  Chris Toshok  <toshok@ximian.com>
1947
1948         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
1949         methods (which all do nothing).
1950
1951         * IDropTarget.cs: add the 4 missing methods.
1952
1953 2006-12-19  Chris Toshok  <toshok@ximian.com>
1954
1955         * TableLayoutRowStyleCollection.cs: corcompare work.
1956         
1957         * TableLayoutSettings.cs: same.
1958
1959         * TableLayoutStyle.cs: same.
1960
1961         * TableLayoutColumnStyleCollection.cs: same.
1962
1963 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
1964
1965         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
1966         TableLayoutPanel I've had in my local tree for way too long.
1967
1968 2006-12-19  Miguel de Icaza  <miguel@novell.com>
1969
1970         * TableLayoutSettings.cs: Finish the public API (still needs all
1971         the logic to update on changes). 
1972
1973         * TableLayoutPanelCellPosition.cs: new file.
1974         
1975         * TableLayoutRowStyleCollection.cs,
1976         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
1977         TableLayoutSettings.cs: Track the final 2.0 table api.
1978
1979 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1980
1981         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
1982         and Image List 2.0 members for ColummnHeader.
1983         * ListView.cs: Add key-related 2.0 methods for
1984         ColumnHeaderCollection.
1985
1986 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1987
1988         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
1989         ArgumentNullException if items argument is null. Ignore null item in
1990         arrays. Removed extra tabs.
1991
1992 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
1993
1994         * MonthCalendar.cs: Fixed InvalidCastException.
1995
1996 2006-12-19  Jackson Harper  <jackson@ximian.com>
1997
1998         * TextControl.cs: Don't increment the position here.
1999         - When calculating char positions only add in the line break size
2000         for hard line breaks.
2001
2002 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2003
2004         * SendKeys.cs: Changed some things to match ms.net behaviour
2005         when parsing shifted capital letters.
2006         
2007         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2008         Add window handle as parameter to SendInput. X11 needs the 
2009         window handle, and the handle being passed      to it in the keys 
2010         queue is the active control handle (which windows needs), not 
2011         the window handle.
2012         
2013         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2014         to support SendKeys on X.       
2015         
2016         * X11Keyboard: Implement helper method to lookup a linux keycode
2017         given the virtual keycode. Added table of keycode-2-virtualkey
2018         values to support this.
2019
2020 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2021
2022         * ListView.cs: Add support for SelectedIndexCollection
2023         and SelectedItemCollection 2.0 methods. Implement support
2024         for ImageKey too.
2025         * ListViewItem.cs: Add support for ListViewSubItemCollection
2026         2.0 methods. Also, fix an incorrect behavior of AddRange method
2027         (it shouldn't call Clear).
2028         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2029
2030 2006-12-19  Jackson Harper  <jackson@ximian.com>
2031
2032         * RichTextBox.cs: 
2033         * TextBoxBase.cs: New args for FormatText
2034         * TextControl.cs: Rewrote the main drawing method, this version
2035         feels a little easier to understand and debug to me.  Hopefully it
2036         does to others also
2037         - Fix FormatText to OR in the new formating values.  Added
2038         FormatSpecified param, basically this works in the same way as
2039         BoundsSpecified in Control.
2040         - Set the caret properties when the caret is positioned.
2041         - When wrapping text make sure that we calculate the width of the
2042         last character
2043         - when calculating alignments we might have wrapped down to the
2044         next line, so don't search for an individual tag, search for the
2045         end of the line
2046         - We need to invalidate the selection area when we replace the
2047         selection.
2048         
2049 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2050
2051         * Application.cs: add Restart () 2.0 support
2052
2053 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2054
2055         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2056         property. Fixes #80268.
2057         
2058 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2059
2060         * MenuAPI.cs: Dont trigger select event when closes top menu
2061         item. Fixes #80270.
2062
2063 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2064
2065         * MenuAPI.cs: When you click on menuitem only trigger onselect
2066         event for top menu itens. Fixes #80271.
2067         
2068 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2069
2070         * MdiWindowManager.cs: Make IconicBounds depend on
2071         the bottom of MdiClient, not the top (fixes #80267)
2072         
2073 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2074
2075         * MdiClient.cs: Added missing 2.0 attribute
2076
2077 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2078
2079         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2080         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2081
2082 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2083
2084         * MenuAPI.cs: Fix click when menuitem is not popup,
2085         this regression was caused by last commit (#80272).
2086
2087 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2088
2089         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2090         fire click event or close menu. Fixes #80272.
2091
2092 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2093
2094         * ListViewHitTestInfo.cs: add
2095
2096 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2097
2098         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2099         * FlatButtonAppearance.cs: add
2100         * DockingAttribute.cs: add
2101
2102 2006-12-17  Chris Toshok  <toshok@ximian.com>
2103
2104         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2105         and rebind our columns when it does - this way, if you make
2106         changes to the DataTable (or set the Table attribute on a DataView
2107         after setting it as the DataGrid's DataSource, the changes are
2108         made visible.)  Fixes bug #80107.
2109
2110 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2111
2112         * ListViewGroup.cs: add internal Location property for layouting.
2113         * Theme.cs: add abstract ListViewGroupHeight function.
2114         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2115
2116 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2117
2118         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2119         Added reset of selected index to 0 when adding first tab page.
2120         Fixes #80264
2121         
2122         * NumericUpDown.cs: Fix NET_2_0 check
2123
2124 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2125
2126         * ListViewGroup.cs: fixed DefaultValueAttribute value
2127
2128 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2129
2130         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2131
2132 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2133
2134         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2135         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2136         ScrollableControl.cs: Add a handful of methods that are
2137         overwritten in 2.0 
2138
2139 2006-12-15  Chris Toshok  <toshok@ximian.com>
2140
2141         * XplatUIWin32.cs: initial implementation of the Reversible
2142         drawing functions.  there are some problems.  DrawReversibleFrame
2143         doesn't seem to work at all for Dashed FrameStyle, and in the
2144         Thick case there are drawing errors at the corners (we probably
2145         need to bind Rectangle instead of doing moveto/lineto's.)
2146
2147 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2148         
2149         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2150         to send blocks of key messages. Send accumulates keys to send with Flush, 
2151         while SendWait sends all keys immediately.
2152                 
2153         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2154         XplatUIX11.cs,  XplatUIX11-new.cs:
2155         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2156         to Win32 SendInput.
2157         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2158         
2159         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2160         testing for ms.net on this class is very tricky, as the tests run too fast 
2161         to allow the hook to release, essentially freezing the keyboard and the 
2162         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2163         category :p
2164
2165 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2166
2167         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2168                         added missing attributes.
2169  
2170 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2171
2172         * ListViewGroup.cs: Added missing attributes.
2173         * ListViewGroupCollection.cs: Added missing attributes.
2174
2175 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2176
2177         * ListViewItem.cs: fixed ListViewSubItem text property.
2178
2179 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2180         
2181         * Control.cs: Added missing 2.0 attributes
2182         
2183 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2184         
2185         * MdiClient.cs: Added missing 2.0 attribute.
2186         * MonthCalendar.cs: Added some missing 2.0 attributes 
2187         and properties.
2188         
2189 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2190
2191         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2192
2193 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2194
2195         * MainMenu.cs: Add the new 2.0 constructor to help out people
2196         using the MainMenu in VS2005.
2197
2198 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2199         
2200         * MdiChildContext.cs: Removed it, no longer used.
2201         * MdiClient.cs: Added missing 2.0 attributes.
2202         
2203 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2204         
2205         * InternalWindowManager.cs: Fix a NullRef with previous 
2206         changes for toolwindows.
2207         
2208 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2209
2210         * Control.cs: 
2211         - Added AfterTopMostControl to allow for certain controls 
2212         to always stay on top when normal controls are brought to 
2213         front.
2214         
2215         * XplatUIWin32.cs: 
2216         - (DrawInversibleRectangle): Get window rectangle from Win32 
2217         in stead of from control, since Win32 doesn't calculate
2218         screen coords correctly from control's Location if it 
2219         have docked siblings.
2220         
2221         * MdiWindowManager.cs:
2222         - Correct the control menu popup location when clicked on
2223         the maximized form icon. (fixes #80223.1)
2224         - Don't show moving rectangle if mouse hasn't moved from
2225         the original clicked point.
2226         - Removed FormGotFocus handler (not used).
2227         - Calculate the control buttons location from the main
2228         window's size and not client size (fixes #79770).
2229         - Form is now closed when the form icon is double-clicked
2230         (fixes #79775). 
2231         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2232         
2233         * InternalWindowManager.cs:
2234         - Moved some MDI-only methods to MdiWindowManager.
2235         - Removed unused properties and methods.
2236         - Unified method naming for methods handling wm messages.
2237         - Moved all message handling to seperate methods for
2238         each message.
2239         
2240         * ThemeWin32Classic.cs:
2241         - DrawManagedWindowDecorations now draws the title bar 
2242         with a gradient brush.
2243         - Add a CPDrawButtonInternal that allows us to specify
2244         light, normal and dark colors for the buttons (control 
2245         buttons for MDI children were drawn with the same light
2246         color as the background, therefore loosing the 3D effect).
2247         
2248         * SizeGrip.cs:
2249         - Add a CapturedControl property that is used to 
2250         determine the control to resize (defaults to parent). 
2251         Needed for MdiClient, since its SizeGrip's parent is
2252         MdiClient, but the control to resize is the main form.
2253         
2254         * MdiClient.cs:
2255         - Set SizeGrip's CapturedControl to the main form in order
2256         to resize the main form and not the MdiClient.
2257         - Override AfterTopMostControl to leave the scrollbars 
2258         always on top.
2259
2260 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2261
2262         * ListView.cs: fixed ListViewItemCollection AddRange and
2263                         implemented ListViewItemCollection AddRange 2.0 support.
2264
2265 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2266
2267         * ListViewGroup.cs: Add.
2268         * ListViewGroupCollection.cs: Add
2269         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2270         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2271                                 stub for ImageKey 2.0 support.
2272
2273 2006-12-14  Mike Kestner  <mkestner@novell.com>
2274
2275         * ListView.cs: add text padding to the autocalculation for columns
2276         of width -2.  Fixes #80207.
2277  
2278 2006-12-14  Mike Kestner  <mkestner@novell.com>
2279
2280         * ListView.cs: add some index guarding for partial row navigation 
2281         logic.  Fixes #80250.
2282
2283 2006-12-14  Mike Kestner  <mkestner@novell.com>
2284
2285         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2286         are added or inserted to the collection.  Fixes #81099.
2287
2288 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2289
2290         * MenuAPI.cs: Closes menu when right click out side of popup
2291         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2292
2293 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2294
2295         * ListViewItem.cs: Fix dumb error.
2296
2297         * ListView.cs: Add Find and ContainsKey methods in 
2298         ListViewItemCollection, and also return true for IsReadOnly
2299         and IsFixedSize (changes for 2.0). 
2300
2301 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2302
2303         * Control.cs: Allow Region to be set to null.
2304
2305 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2306
2307         * MdiWindowManager.cs: Remove unused (commented out) code.
2308         * Form.cs: When the MdiChild is maximized, the form needs 
2309         WM_NCMOUSELEAVE, so request it.
2310         * InternalWindowManager.cs: 
2311         - Added tooltips to control buttons.
2312         - Removed duplicated control button handling code.
2313         - Removed unused (commented out) code.
2314         
2315 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2316
2317         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2318         was used because we must set cursor without trigger ChangeCursor event
2319         and without change Cursor control property. Fixes #79963.
2320
2321 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2322         
2323         * Control.cs: Check if Region setter value is null, and ignore
2324
2325 2006-12-12  Jackson Harper  <jackson@ximian.com>
2326
2327         * TextControl.cs: We were almost always drawing one more line then
2328         needed, since the GetLineByPixel will return the last line found
2329         at that pixel. In most cases though, we were invalidating up to
2330         the junction between two lines.
2331         - Improve debug code.
2332
2333 2006-12-12  Chris Toshok  <toshok@ximian.com>
2334
2335         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2336         and FillReversibleRectangle.
2337
2338         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2339         and FillReversibleRectangle.
2340
2341         * XplatUIWin32.cs: add stubs which do nothing for
2342         DrawReversibleFrame, DrawReversibleLine, and
2343         FillReversibleRectangle.
2344
2345         * XplatUIOSX.cs: add stubs which raise NIE for
2346         DrawReversibleFrame, DrawReversibleLine, and
2347         FillReversibleRectangle.
2348
2349         * XplatUIX11.cs: add working implementation for
2350         DrawReversibleFrame, DrawReversibleLine, and
2351         FillReversibleRectangle.
2352         
2353         * ControlPaint.cs: implement DrawReversibleFrame,
2354         DrawReversibleLine, and FillReversibleRectangle, by calling into
2355         the appropriate XplatUI method.
2356
2357 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2358
2359         * Form.cs: Make MdiClient have the focus even if it's
2360         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2361         messages. Fixes #79907.
2362         
2363 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2364
2365         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2366         queried after the window is created.
2367         
2368         * XplatUIX11.cs: Added SendParentNotify to implement 
2369         WM_PARENTNOTIFY logic. Fixes #79965.
2370         
2371         * Control.cs: Added MakeParam.
2372         
2373 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2374
2375         * MdiClient.cs: Resume Layout before setting window
2376         states (fixes #80201).
2377
2378 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2379
2380         * MenuAPI.cs: Deselect a menu item after performing
2381         the click (fixes #80197).
2382
2383 2006-12-11  Jackson Harper  <jackson@ximian.com>
2384
2385         * TextBoxBase.cs: We need to cap this value, since Maximum -
2386         ViewPortHeight can be less than zero.
2387         - Only do selection with the left mouse button.
2388         * TextBox.cs: Don't tell the world that we have a context menu.
2389         * Control.cs: New method so that we can control whether or not the
2390         context menu is visible outside MWF.
2391
2392 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2393
2394         * ToolBarButton.cs: Fix text positon. 
2395
2396 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2397
2398         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2399
2400         * Control.cs (DoubleBuffered): Add implementation.
2401
2402         * Application.cs (OpenForms): Add.
2403
2404 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2405
2406         * Form.cs: Use opacity instead of Opactiy to determine if we need
2407         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2408
2409 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2410
2411         * Control.cs: Fix NRE if Control.Site was set to null.
2412
2413 2006-12-11  Chris Toshok  <toshok@ximian.com>
2414
2415         * Control.cs: ControlCollection.Remove should return if the arg is
2416         null, and ControlCollection.SetChildIndex should raise a ANE.
2417
2418 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2419
2420         * Control.cs: Verify value set for Dock property. Code formatting
2421         updates.
2422
2423 2006-12-11  Jackson Harper  <jackson@ximian.com>
2424
2425         * TextControl.cs: Draw the caret and the selection when a flag is
2426         set on the owner.
2427         * TextBoxBase.cs: We want to draw the caret and the selection for
2428         TextBox but not for TextBoxBase.
2429         - If the window is resized and scrolling is no longer needed (the
2430         whole doc is visible) set the scroll position to zero.
2431         - The default SelectWord (the one TextBox uses) should move the
2432         caret to the end of the word.
2433         - SelectAll moves the caret to the end of the selection.
2434         * TextBox.cs: We don't selectall on focus, we just do it when the
2435         control is created.
2436         
2437 2006-12-11  Mike Kestner  <mkestner@novell.com>
2438
2439         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2440
2441 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2442
2443         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2444         2.0 support.
2445         * ListViewItem.cs: Add Name 2.0 property.
2446
2447 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2448
2449         * TabControl.cs: Set visibility on selected or default tab 
2450         when tabcontrol handle is created, so that it's contents
2451         actually show up (duh). Fixes #80193
2452         Don't redraw the control if there is no handle created, as
2453         the selected index might be completely invalid. Added some tests
2454         to check for this.
2455
2456 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2457
2458         * ToolBar.cs: Uses maximun width and height of all buttons as 
2459         button rectangle when ButtonSize specified, it looks strange but
2460         is what happens in Win32. Fixes #80189.
2461
2462 2006-12-11  Jackson Harper  <jackson@ximian.com>
2463
2464         * TextControl.cs: Need to track undo levels ourself, since
2465         compound actions will mess them up.
2466
2467 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2468
2469         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2470         SelectedIndex value is changed (even if it's not valid).
2471         Reset SelectedIndex to 0 when the handle is created and if
2472         the current index is invalid.
2473         Fixes SelectdeIndex unit tests and #80128
2474
2475 2006-12-08  Chris Toshok  <toshok@ximian.com>
2476
2477         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2478         calls EndEdit, it needs to be called before we set current_cell to
2479         its new value.  Otherwise, we end up committing the value in the
2480         textbox to the new cell as well.  Fixes bug #80160.
2481
2482 2006-12-08  Chris Toshok  <toshok@ximian.com>
2483
2484         * Form.cs (set_CancelButton): if the button's DialogResult is
2485         None, set it to Cancel.  Fixes bug 80180.
2486
2487 2006-12-08  Jackson Harper  <jackson@ximian.com>
2488
2489         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2490         to watch ourselves when setting the canvas size and setting the
2491         scrollbar values.
2492
2493 2006-12-08  Chris Toshok  <toshok@ximian.com>
2494
2495         * DataGrid.cs: comment out the two MakeTransparent calls for the
2496         time being so people using trunk (and not 1.2.2) on windows can
2497         actually use the datagrid.  This deals with bug #80151.
2498
2499 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2500
2501         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2502         Graphics.DrawImage (image, int, int, int, int) overload instead
2503         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2504         the dpi difference and was blurring images it drew.
2505         [Fixes bug #79960]
2506
2507 2006-12-08  Chris Toshok  <toshok@ximian.com>
2508
2509         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2510         rowcnt is 0 (such as with an empty datasource), and make sure we
2511         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2512         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2513
2514 2006-12-08  Chris Toshok  <toshok@ximian.com>
2515
2516         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2517         grid.
2518
2519 2006-12-08  Chris Toshok  <toshok@ximian.com>
2520
2521         [ Fixes bug #80167 ]
2522         
2523         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2524         style is FlatStyle.System.
2525
2526         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2527         ButtonBase.flat_style private, and switch uses of it to the public
2528         property.
2529         
2530 2006-12-08  Chris Toshok  <toshok@ximian.com>
2531
2532         [ Fixes bug #80121 ]
2533         
2534         * ThemeWin32Classic.cs: center the caption text in the datagrid
2535         when we draw it.
2536
2537         * DataGrid.cs: lessen the amount we add to the caption height from
2538         6 to 2.  6 was making it huge.
2539
2540 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2541
2542         * UpDownBase: Handle MouseWheel call directly instead of capturing
2543         the inner textbox's OnMouseWheel. Fixes #80166
2544
2545 2006-12-08  Jackson Harper  <jackson@ximian.com>
2546
2547         * TextControl.cs: We need to invalidate the textbox when we empty
2548         it (how had this not been discovered before?)
2549
2550 2006-12-08  Jackson Harper  <jackson@ximian.com>
2551
2552         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2553         to behave like MS, we now ignore the eventargs.Click and just
2554         track state ourself, which we were already doing anyways.
2555         - Constrain the double click handler to the double click size.
2556         
2557 2006-12-08  Chris Toshok  <toshok@ximian.com>
2558
2559         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2560         direction if that scrollbar isn't shown.  fixes bug #80158.
2561
2562 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2563
2564         * NumericUpDown.cs: Update value on getter. Fixes #79950
2565
2566 2006-12-08  Chris Toshok  <toshok@ximian.com>
2567
2568         * MenuItem.cs: add back in the event cloning code.  I didn't know
2569         how to do it in the face of the EventHandlerList work i'd done
2570         last week.  Fixes bug #80183.
2571
2572 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2573
2574         * Control.cs: Add an invalidate to the BackgroundImage setter.
2575         [Fixes 80184]
2576
2577 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2578
2579         * ToolStrip*: Add some small properties reported by MoMA, fix event
2580         firing and default properties based off of unit tests, and add some
2581         attributes based off of the class status page.
2582
2583 2006-12-07  Jackson Harper  <jackson@ximian.com>
2584
2585         * TextBoxBase.cs: Take HideSelection into account when determining
2586         whether or not to show the selection.
2587         * RichTextBox.cs: After inserting the RTF into the document move
2588         the cursor to the beginning of the document.
2589
2590 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2591
2592         * Control.cs: Remove static ArrayList "controls" which maintained
2593         a reference to every control created.
2594         * Application.cs: Create a static FormCollection to maintain a reference
2595         to every form created.  Use it in places that formerly enumerated through
2596         the controls one looking for forms.
2597         * Form.cs: Add and remove self from above FormCollection.
2598
2599 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2600
2601         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2602           not libgdk (though it makes me wonder why I didn't have any
2603           problems)
2604
2605 2006-12-07  Chris Toshok  <toshok@ximian.com>
2606
2607         [ you had to know this was coming after that last commit...]
2608         
2609         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2610         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2611         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2612         XCopyArea).
2613
2614 2006-12-07  Chris Toshok  <toshok@ximian.com>
2615
2616         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2617         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2618         all the behavior we need for double buffering.
2619
2620         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2621         client side Bitmap, just like the old Control-based double buffer
2622         code did.  The methods are virtual, so each XplatUI driver
2623         subclass can replace the implementation to use a faster, platform
2624         specific approach.
2625
2626         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2627         double buffer code, and clean things up a bit in the process.
2628
2629 2006-12-06  Chris Toshok  <toshok@ximian.com>
2630
2631         * Control.cs: reindent WndProc.
2632
2633 2006-12-06  Chris Toshok  <toshok@ximian.com>
2634
2635         [ I wanna be like BenM when I grow up ]
2636         
2637         * Hwnd.cs: create a single static Graphics object on the static
2638         Bitmap we create.  use this for our text measurements.
2639
2640         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2641         This was causing us to allocate a backbuffer for every control,
2642         even when it wasn't flagged as double buffered.  Instead use the
2643         single graphics instance.  This might have implications for
2644         multithreaded applications.  If we run into problems we can switch
2645         to creating 1 Graphics per control, on the static Hwnd bitmap.
2646
2647         this change nets us a 7M savings in private dirty mappings when
2648         running FormsTest.exe.
2649
2650 2006-12-06  Chris Toshok  <toshok@ximian.com>
2651
2652         * ListView.cs: the BackgroundImage override is just to set
2653         attributes.  chain up to base.BackgroundImage.
2654
2655         * RichTextBox.cs: same.
2656
2657         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2658         changes, so instead a handler for BackgroundImageChanged.
2659         
2660         * Control.cs: make background_image private.
2661
2662 2006-12-06  Chris Toshok  <toshok@ximian.com>
2663
2664         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2665         sure we even need this assignment, but roll with it for now.
2666
2667         * Control.cs: make the cursor field private.
2668
2669 2006-12-06  Chris Toshok  <toshok@ximian.com>
2670
2671         * Form.cs: we don't need to explicitly set ImeMode to
2672         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2673         behavior in the face of ImeMode.Inherit.
2674
2675         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2676         change the ctor's assignment to use ImeMode instead of ime_mode.
2677
2678         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2679         ImeModeInherit.  Only check for the parent's imemode (and return
2680         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2681         This fixes the button unit test, which sets both ImeMode and
2682         DefaultImeMode to ImeMode.Disable.
2683
2684         also make the ime_mode field private.
2685
2686 2006-12-06  Chris Toshok  <toshok@ximian.com>
2687
2688         * Control.cs: make control_style private.
2689
2690         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2691         setting the styles to true, then setting them to false instead of
2692         reverting to their previous values.
2693
2694         also, call SetStyle on the scrollbars instead of using
2695         control_style directly.
2696
2697 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2698
2699         * FormCollection.cs: Implement. [2.0]
2700
2701 2006-12-06  Chris Toshok  <toshok@ximian.com>
2702
2703         * Control.cs: make tab_stop private.
2704
2705         * Label.cs: set TabStop, not tab_stop.  reformat some event
2706         add/remove methods to make them more compact.
2707
2708 2006-12-06  Chris Toshok  <toshok@ximian.com>
2709
2710         * RadioButton.cs: fix TabStop handling.
2711
2712 2006-12-06  Chris Toshok  <toshok@ximian.com>
2713
2714         * TextBox.cs: remove the explicit assignments to has_focus.
2715         Control does that.
2716
2717         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2718         manage that.
2719         
2720 2006-12-06  Chris Toshok  <toshok@ximian.com>
2721
2722         * ButtonBase.cs: remove all uses of is_enabled from this code.
2723         it's always true when any of the code containing the checks is
2724         executed.
2725
2726 2006-12-06  Chris Toshok  <toshok@ximian.com>
2727
2728         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2729         with different semantics (some are present in both 1.1 and 2.0
2730         profiles) so that we match MS's behavior in our unit tests.
2731
2732 2006-12-06  Jackson Harper  <jackson@ximian.com>
2733
2734         * TextControl.cs: Make this operation undoable.
2735         * TextBoxBase.cs: Factor the border width into the preferred
2736         height.
2737         - implement Modified as per the spec.
2738
2739 2006-12-06  Chris Toshok  <toshok@ximian.com>
2740
2741         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2742
2743 2006-12-06  Chris Toshok  <toshok@ximian.com>
2744
2745         * Control.cs: make right_to_left and context_menu fields private.
2746
2747 2006-12-06  Chris Toshok  <toshok@ximian.com>
2748
2749         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2750         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2751         Control.child_controls private.  switch all uses over to
2752         Control.Controls.
2753
2754 2006-12-06  Chris Toshok  <toshok@ximian.com>
2755
2756         * System.Windows.Forms/GroupBox.cs,
2757         System.Windows.Forms/AccessibleObject.cs,
2758         System.Windows.Forms/ErrorProvider.cs,
2759         System.Windows.Forms/Control.cs,
2760         System.Windows.Forms/UpDownBase.cs,
2761         System.Windows.Forms/ScrollBar.cs,
2762         System.Windows.Forms/DateTimePicker.cs,
2763         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2764         System.Windows.Forms/ToolTip.cs,
2765         System.Windows.Forms/RadioButton.cs,
2766         System.Windows.Forms/LinkLabel.cs,
2767         System.Windows.Forms/Splitter.cs,
2768         System.Windows.Forms/TextBoxBase.cs,
2769         System.Windows.Forms/ToolStripTextBox.cs,
2770         System.Windows.Forms/ContainerControl.cs,
2771         System.Windows.Forms/ThemeWin32Classic.cs,
2772         System.Windows.Forms/SizeGrip.cs,
2773         System.Windows.Forms/ToolStripDropDown.cs,
2774         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2775         private.  switch all uses over to Control.Parent.
2776
2777 2006-12-06  Chris Toshok  <toshok@ximian.com>
2778
2779         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2780         Control does this before calling emitting these events.
2781
2782         * TabControl.cs: same.
2783
2784         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2785         Control.client_rect.
2786
2787         * ButtonBase.cs: use the ClientSize property instead of the
2788         client_size field.
2789
2790         * ScrollableControl.cs: same.
2791
2792         * Control.cs: another pass at making properties private.  also,
2793         move the initialization of tab_stop to the ctor.
2794
2795 2006-12-05  Andreia Gaita <avidigal@novell.com>
2796
2797         * TabControl.cs: Let the selected index be set freely if the 
2798         control handle is not yet created.
2799
2800 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2801
2802         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2803         internal until I can rewrite DefaultLayout.
2804         * ToolStrip.cs: Fix build error and some general cleaning.
2805         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2806         Fix build errors caused by making some of Control's fields private.
2807
2808 2006-12-05  Jackson Harper  <jackson@ximian.com>
2809
2810         * TextControl.cs: Redo Insert a little so that it use IndexOf
2811         instead of Split, this prevents it from messing up on things like
2812         \n\n\n. Also more effecient since the split array doesn't need to
2813         be created.
2814         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2815         multiline text differently, this is the first of many fixes that
2816         will make multiline/non-multiline the same thing as far as the
2817         TextBoxBase is concerned.
2818         - Don't split the text and insert lines, this can lose some line
2819         endings (like is the last line a soft or hard break). Instead use
2820         the new Insert.
2821         - Fix an off by one when combining all the lines in the Text
2822         getter.
2823         - Remove separate multiline handling from the Text getter/setter.
2824
2825 2006-12-05  Chris Toshok  <toshok@ximian.com>
2826
2827         * ButtonBase.cs: a few changes:
2828
2829         - don't reinitialize internal Control fields in the ctor when they
2830         have the same values as Control sets them.
2831
2832         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2833         this before calling those methods.
2834
2835         - we don't need to call Refresh for anything.  use Invalidate
2836         instead.
2837
2838         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2839         calls Refresh in its OnEnabledChanged.
2840         
2841         - several of the events we were registered for in the ctor to
2842         redraw ourselves already include calls to Invalidate in the
2843         property setters that raise the events.  remove the extra
2844         invalidation.
2845
2846         - reformat a switch statement that was 83274658 columns wide.
2847         
2848 2006-12-05  Mike Kestner  <mkestner@novell.com>
2849
2850         * ComboBox.cs: fix a unit test regression from a TextBox
2851         SelectionLength return of -1 when there's no selection.  
2852
2853 2006-12-05  Chris Toshok  <toshok@ximian.com>
2854
2855         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2856         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2857         cleaning up some of the internal Control fields being used by
2858         subclasses.
2859
2860 2006-12-05  Mike Kestner  <mkestner@novell.com>
2861
2862         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2863         listbox after AddImplicit calls since it defaults to hidden. Add a 
2864         hack to preserve requested heights across DropDownStyle changes.
2865
2866 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2867
2868         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2869
2870 2006-12-05  Chris Toshok  <toshok@ximian.com>
2871
2872         * DataGridView.cs: fix compiler warnings.
2873
2874         * PrintControllerWithStatusDialog.cs: same.
2875
2876         * ToolBar.cs: same.
2877
2878         * FolderBrowserDialog.cs: same.
2879
2880         * Splitter.cs: same.
2881
2882         * DataGridViewComboBoxCell.cs: same.
2883
2884         * XplatUIWin32.cs: same.
2885
2886         * PictureBox.cs: same.
2887
2888         * Win32DnD.cs: same.
2889
2890         * PageSetupDialog.cs: same.
2891
2892         * FileDialog.cs: same.
2893
2894         * PrintDialog.cs: same.
2895
2896         * DataGridTextBoxColumn.cs: same.
2897
2898         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2899
2900 2006-12-05  Chris Toshok  <toshok@ximian.com>
2901
2902         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2903         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2904         System.ComponentModel.EventHandlerList work.
2905
2906 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2907
2908         * DrawTreeNodeEventArgs.cs: Added.
2909
2910 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2911         
2912         * InternalWindowManager.cs: Remove an unused field.
2913         
2914 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2915
2916         * InternalWindowManager.cs:
2917         - Save the point where the title bar is clicked.
2918         
2919         * MdiWindowManager.cs:
2920         - Only allow moving of the window as long as the 
2921         clicked point on the title bar does not get out of
2922         MdiClient's rectangle. Fixes #79982.
2923         
2924         * MdiClient.cs:
2925         - Added Horizontal/VerticalScrollbarVisible.
2926         - Simplified the scrollbar sizing algorithm.
2927         - Cache the difference in scrolled value in
2928         H/VBarValueChanged and move the calculation out
2929         of the for loop.
2930
2931 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2932
2933         * Control.cs: Make the Console.WriteLine in WndProc 
2934         write more info.
2935
2936 2006-12-05  Chris Toshok  <toshok@ximian.com>
2937
2938         * ToolStripManager.cs, ToolStripButton.cs,
2939         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
2940         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
2941         ToolStripSplitButton.cs, ToolStripSeparator.cs,
2942         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
2943         ToolStripProgressBar.cs, ToolStripContainer.cs,
2944         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
2945         to using System.ComponentModel.EventHandlerList.
2946
2947 2006-12-04  Chris Toshok  <toshok@ximian.com>
2948
2949         * LinkLabel.cs: fix up compiler warnings.
2950
2951         * TableLayoutSettings.cs: same.
2952
2953         * TreeView.cs: same.
2954
2955         * ToolBar.cs: same.
2956
2957         * TabControl.cs: same.
2958
2959         * RichTextBox.cs: same.
2960
2961         * ListViewItem.cs: same.
2962
2963         * PropertyGrid.cs: same.
2964
2965         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
2966
2967         * ToolTip.cs same.
2968
2969         * TextRenderer.cs: fix up compiler warnings.
2970
2971         * Label.cs: same.
2972
2973         * Form.cs: corcompare fixes.
2974
2975         * PictureBox.cs: fix up compiler warnings.
2976
2977         * ImageListStreamer.cs: same.
2978
2979         * TrackBar.cs: corcompare fix.
2980
2981         * Control.cs: fix up compiler warnings.
2982
2983         * SplitterPanel.cs: same.
2984
2985         * NumericTextBox.cs: same.
2986
2987         * ImageList.cs: same.
2988
2989         * StatusStrip.cs: same.
2990
2991         * ProgressBar.cs: corcompare fix.
2992
2993         * ToolStripButton.cs: fix up compiler warnings.
2994
2995         * ToolStripStatusLabel.cs: same.
2996
2997         * ToolStripSplitButton.cs: same.
2998
2999         * ToolStripSeparator.cs: same.
3000
3001         * ToolStripProgressBar.cs: same.
3002
3003         * ToolStripDropDownMenu.cs: same
3004
3005         * ToolStripDropDown.cs: same.
3006
3007         * ToolStripDropDownButton.cs: same.
3008
3009         * ToolStrip.cs: same.
3010
3011         * ToolStripControlHost.cs: same.
3012
3013         * ToolStripContentPanel.cs: same.
3014
3015         * ToolStripDropDown.cs: same.
3016
3017         * ToolStripContainer.cs: same.
3018
3019         * ToolStripPanel.cs: same, and add "new" where we need it to work
3020         with the new ArrangedElementCollection.
3021
3022         * ToolStripItemCollection.cs: add "new" where we need it to work
3023         with the new ArrangedElementCollection.
3024
3025 2006-12-04  Andreia Gaita <avidigal@novell.com>
3026
3027         * TabControl.cs: Fix default tab selection to after TabControl
3028         gets focus and not before. Fixes #80128
3029
3030 2006-12-04  Chris Toshok  <toshok@ximian.com>
3031
3032         * DataGridTableStyle.cs: remove the gross calling of
3033         datagrid.Refresh from here.  It's a broken idea and it doesn't
3034         work anyway.
3035
3036         * DataGrid.cs: instead, just register/unregister from the
3037         DataGridTableStyle events in CurrentTableStyle.  we play it
3038         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3039         even though some would most likely not require it.  Fixes bug
3040         #80115 (and one portion of #80117 as a side effect).
3041
3042 2006-12-04  Chris Toshok  <toshok@ximian.com>
3043
3044         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3045         so the textbox (if any) goes away.  Fixes bug #80117.
3046
3047 2006-12-04  Chris Toshok  <toshok@ximian.com>
3048
3049         * DataGridColumnStyle.cs: set the column's readonly property
3050         initially based on the property descriptor's IsReadOnly.  Fixes
3051         bug #80044.
3052
3053 2006-12-04  Chris Toshok  <toshok@ximian.com>
3054
3055         * ComboBox.cs: wrap the dropdown style changing work in
3056         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3057
3058 2006-12-04  Jackson Harper  <jackson@ximian.com>
3059
3060         * TextBoxBase.cs: Fix off by one, since these are one-based.
3061         * TextBox.cs: Select all the text when we get focus.  The TextBox
3062         does this but the RTB does not.
3063
3064 2006-12-04  Chris Toshok  <toshok@ximian.com>
3065
3066         * DataGridTextBoxColumn.cs: remove some spew.
3067
3068         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3069         but some part of me is saying "it shouldn't be here.."  At any
3070         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3071         setting the value.
3072
3073 2006-12-04  Chris Toshok  <toshok@ximian.com>
3074
3075         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3076         to reassign the propertydescriptor.
3077
3078 2006-12-04  Jackson Harper  <jackson@ximian.com>
3079
3080         * TextBoxBase.cs:
3081         * TextControl.cs: Remove some unused variables.  Maybe this will
3082         patch things up between mike and I.
3083         - don't split lines less then one char wide, if the viewport is
3084         that small text won't be visible anyways.
3085         
3086 2006-12-04  Jackson Harper  <jackson@ximian.com>
3087
3088         * TextBoxBase.cs: Default selection length is -1, need to do some
3089         more testing on windows to see when this is used for the property.
3090         - Redid the Lines [] property to that we properly remove soft line
3091         breaks
3092         - added support for preserving carriage returns
3093         -  CanUndo is not a variable like 'is undo enabled' it just returns
3094         true if there is undo operations available.
3095         - AppendText doesn't need to grab the last tag itself anymore,
3096         this happens automatically when we move the cursor.
3097         * TextControl.cs: Add CompoundActions to the undo class. This
3098         allows combining the other operations into one big option.  ie a
3099         paste will combine { delete old, insert new, move cursor }
3100         - Add InsertString undo operation
3101         - New method for deleting multiline text
3102         - Add carriage returns to lines. So we can preserve carriage
3103         returns when text is 'roundtripped'
3104
3105 2006-12-04  Chris Toshok  <toshok@ximian.com>
3106
3107         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3108         minimum 0.  Fixes the scrollbar exception in bug #80136.
3109
3110 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3111
3112         * MdiClient.cs: 
3113         * MdiWindowManager: Removed unused fields and methods.
3114         
3115 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3116         
3117         * StatusBar.cs: Update all panels when a AutoSize=Contents
3118         panel needs updating.
3119         
3120         * StatusBarPanel.cs: Remove twidth and only use initialize.
3121         Fixes #80031.
3122                 
3123 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3124
3125         * Form.cs: When a form's MdiParent is set add it directly
3126         on top of the z-order in stead of relying on MdiClient's
3127         ActivateChild to do it. Fixes #80135.
3128         
3129         * MdiClient.cs: 
3130         - Remove original_order, mdi_child_list is already doing
3131         the same thing.
3132         - Create mdi_child_list on construction in
3133         stead of first use (avoids a few null checks).
3134
3135         * MenuItem.cs: Use an already existing list of mdi children
3136         to get the correct order of children and remove the other
3137         redundant list.
3138
3139 2006-12-04  Chris Toshok  <toshok@ximian.com>
3140
3141         * PropertyGridView.cs: cached_splitter_location is only used in
3142         !DOUBLEBUFFER code.
3143
3144         * PropertyGrid.cs: implement the ComComponentNameChanged event
3145         using Events, hoping that would fix the warning.  Looks like a
3146         compiler bug instead (#80144).
3147
3148         * PropertyManager.cs: remove unused method.
3149
3150 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3151
3152         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3153         include parentesis to fix expression evaluation. Fixes #79634.
3154
3155 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3156         
3157         * MenuAPI.cs:
3158         - Changes to fix behavior in Menu control, some reported in #80097
3159         and other detected during behavior refactory like a select event
3160         problems.
3161         - Remove unneded "if's" conditions.
3162         - Created an internal to flag when popup is active in control, we need 
3163         it because in .NET you can have menu active but without popup active
3164         when you active menu using popup without visible items.
3165         - Mimic win32 behavior for Select and Popup events.  
3166         - Dont open popup menu when you dont have visible subitems.
3167         - Do nothing when click on disabled menu item.
3168         - Some small changes to follow the coding style guidelines.
3169         - Unselect menu only when another control gives focus. Fixes #80097.
3170         - Remove unused code.
3171         
3172         * MenuItem.cs: internal VisibleItems method to check if menu
3173         theres visible subitems, it will be usefull to fix some 
3174         behavior in Menu control.
3175         
3176 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3177         
3178         * Timer.cs: Tag property for 2.0 profile.
3179         
3180 2006-12-01  Chris Toshok  <toshok@ximian.com>
3181
3182         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3183         
3184         * Win32DnD.cs: comment out some unused fields.
3185
3186         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3187         some unused properties/methods.
3188
3189         * XplatUIX11.cs: fix MousePosition so we override the base class's
3190         property instead of conflicting with it.
3191
3192         * PictureBox.cs: comment out some unused fields
3193
3194         * OSXStructs.cs: make some struct fields public.
3195
3196         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3197         MousePosition so we override the base class's property instead of
3198         conflicting with it.
3199
3200         * X11Dnd.cs: comment out some unused fields
3201
3202         * X11DesktopColors.cs: fix some struct field visibility to quiet
3203         the compiler.
3204
3205         * X11Dnd.cs: remove some debug code.
3206
3207         * ThemeClearlooks.cs: comment out unused field.
3208
3209         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3210
3211         * ThemeGtk.cs: comment out some unused pinvokes.
3212
3213         * Timer.cs: remove some unused fields.
3214
3215         * ThemeClearlooks.cs: comment out unused field.
3216
3217         * UpDownBase.cs: comment out unused field.
3218
3219         * DataObject.cs: comment out unused field.
3220
3221         * DataGridBoolColumn.cs: reomve unused field.
3222
3223         * DataGrid.cs: remove unused field.
3224
3225         * Cursor.cs: remove old ToBitmap code.
3226
3227         * ControlPaint.cs: remove unused method.
3228
3229         * ScrollBar.cs: remove unused fields.
3230
3231         * ComboBox.cs: remove unused field, and chain up to
3232         AccessibleObject ctor.
3233
3234         * ListBox.cs: remove unused field.
3235
3236         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3237
3238         * GridEntry.cs: remove unused fields.
3239
3240         * Binding.cs: remove unused fields.
3241
3242         * AxHost.cs: remove unused method.
3243
3244         * ContainerControl.cs: remove unused field.
3245
3246         * ScrollableControl.cs: remove unused fields.
3247
3248 2006-12-01  Chris Toshok  <toshok@ximian.com>
3249
3250         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3251         the Where/WhereString stuff.  it's easy enough to CWL
3252         Environment.StackTrace.
3253
3254         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3255         unused private fields.
3256
3257 2006-12-01  Jackson Harper  <jackson@ximian.com>
3258
3259         * TextControl.cs: Do not update the view while inserting multiline
3260         text. If we update the view we might wrap lines, before entering
3261         the new lines, which causes the new line insertion calculations to
3262         be totally fubared.
3263         - Remove an old TODO
3264         - Make debug output a little nicer
3265         
3266 2006-12-01  Chris Toshok  <toshok@ximian.com>
3267
3268         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3269
3270 2006-12-01  Chris Toshok  <toshok@ximian.com>
3271
3272         [ fix the majority of the CS0108 warnings we've been suppressing ]
3273         
3274         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3275
3276         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3277         to "LayoutToolBar" to quiet mcs.
3278         
3279         * TabControl.cs: mark our ControlCollection class as 'new'.
3280
3281         * TextBoxBase.cs: mark some events as 'new'.
3282
3283         * Splitter.cs: TabStop is 'new'.
3284
3285         * ControlBindingsCollection.cs: mark a few methods as new since
3286         they change the visibility from protected to public.
3287
3288         * RadioButton.cs: DoubleClick -> base class, and remove unused
3289         HaveDoubleClick.
3290
3291         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3292         events as new.
3293
3294         * NumericUpDown.cs: TextChanged -> base class.
3295
3296         * CheckedListBox.cs: mark our ObjectCollection class as new to
3297         quiet mcs.
3298
3299         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3300         muck with the base class.
3301
3302         * StatusBar.cs: fix some mcs warnings about Update being the same
3303         name as a base class method.
3304
3305         * RichTextBox.cs: mark some events as new, and make them do things
3306         to the base class impl.
3307
3308         * UserControl.cs: mark TextChanged as new, and have it manipulate
3309         base.TextChanged.
3310
3311         * UpDownBase.cs: mark some things new.
3312
3313         * CheckBox.cs: mark DoubleClick "new", and add some text about
3314         what we need to look at.
3315
3316         * Panel.cs: make the events "new", and manipulate the base
3317         version.  these are just here for attributes.
3318
3319         * AccessibleObject.cs: make owner private.
3320
3321         * Control.cs: deal with AccessibleObject.owner being private.
3322         cache our own copy if we need it.
3323
3324         * Button.cs: add "new" to the DoubleClickEvent.
3325
3326         * ListBox.cs: no need to track our own has_focus here.  let
3327         Control.has_focus do it for us.  Also some other work to clear up
3328         warnings about not overriding base class methods of the same name.
3329         
3330         * ComboBox.cs: clear up some warnings about not override base
3331         class methods of the same name.
3332
3333 2006-12-01  Chris Toshok  <toshok@ximian.com>
3334
3335         * Form.cs: flag a few things as "new" to quiet some of the mcs
3336         warnings.
3337
3338         * AxHost.cs: same.
3339
3340         * PrintPreviewDialog.cs: same.
3341
3342         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3343         now DGV isn't so horrible on the class status page.  also, move
3344         all events to using System.ComponentModel.EventHandlerList.  my
3345         wrists hurt.
3346
3347 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3348
3349         * MdiWindowManager.cs:
3350         - Set form to active mdi child if shown,
3351         and update the active mdi child to the next 
3352         remaining child in the z-order if the form is hidden.
3353
3354         * Form.cs: 
3355         - Track if the form has been visible and if its 
3356         visibility is beeing changed, so that the MdiClient
3357         can properly decide the ActiveMdiChild. The MdiClient 
3358         cannot track this since the form can change visibility 
3359         before MdiClient is created.
3360
3361         * MdiClient.cs:
3362         - Don't activate anything of the parent form is changing
3363         its visibility.
3364         - Rework ActiveMdiChild to only return visible mdi 
3365         children and take into account several other corner 
3366         cases.
3367
3368 2006-12-01  Chris Toshok  <toshok@ximian.com>
3369
3370         * IBindableComponent.cs: new 2.0 interface.
3371
3372 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3373
3374         * DataGrid.cs: Font for caption area is bold by default.
3375
3376 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3377
3378         * Menu.cs: Tag property for 2.0.
3379         
3380 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3381
3382         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3383         
3384 2006-12-01  Chris Toshok  <toshok@ximian.com>
3385
3386         * TreeView.cs: doh, the Begin* events should be
3387         TreeViewCancelEventHandler.
3388
3389 2006-12-01  Chris Toshok  <toshok@ximian.com>
3390
3391         * Form.cs: Form.ControlCollection already stores off the
3392         form_owner field.  don't access the base class's internal "owner"
3393         field.
3394
3395         * Control.cs: make all the fields in Control.ControlCollection
3396         private.  there's no need for any internal fields here.
3397
3398 2006-12-01  Chris Toshok  <toshok@ximian.com>
3399
3400         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3401         OnHandleCreated.  Fixes bug #80109.
3402
3403 2006-12-01  Chris Toshok  <toshok@ximian.com>
3404
3405         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3406         SplitContainer.cs, Control.cs, StatusStrip.cs,
3407         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3408         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3409         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3410         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3411         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3412         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3413         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3414         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3415         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3416         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3417
3418         do most of the work to convert our code over to use
3419         System.ComponentModel.Component.Events for
3420         adding/removing/dispatching events.
3421
3422
3423 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3424
3425         * DataGridView.cs: Fix an ArgumentNullException reported 
3426         twice today in IRC.
3427
3428 2006-11-30  Mike Kestner  <mkestner@novell.com>
3429
3430         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3431         grabbed listbox.  Fixes #80036 and #80101.
3432
3433 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3434
3435         * Message.cs: Changed ToString() to match MS.
3436         
3437 2006-11-30  Jackson Harper  <jackson@ximian.com>
3438
3439         * TextBoxBase.cs: You can still change the selected text on a read
3440         only textbox.
3441         * TextControl.cs: Lower magic number for wrap calculations. This
3442         lets text get closer to the right (far) edge.
3443
3444 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3445
3446         * Control.cs: Tweak 2.0 layout properties.
3447         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3448         * TextRenderer.cs: Add a new overload.
3449         * ToolStrip*: Huge amount of changes and new features.
3450
3451 2006-11-30  Mike Kestner  <mkestner@novell.com>
3452
3453         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3454         scroll range correct.  Fixes #79994.
3455
3456 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3457
3458         * MdiWindowManager.cs: Update main form's text when
3459         a form is closed. (fixes #80038)
3460         
3461 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3462
3463         * ToolBar.cs:
3464         - Fix an regression in ButtonSize.
3465         - Get ImeMode default value change to "Disable".
3466         - Get ShowTooltips default value change to true, default value is 
3467         "false" but after make a test in .NET we get "true" result as default.
3468         
3469 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3470
3471         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3472
3473 2006-11-29  Chris Toshok  <toshok@ximian.com>
3474
3475         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3476         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3477         SetWindowTransparency hasn't been called.
3478
3479 2006-11-29  Chris Toshok  <toshok@ximian.com>
3480
3481         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3482         if it's supported.
3483         (set_AllowTransparency): reorder things a little so that the
3484         WS_EX_LAYERED style is removed properly.
3485
3486 2006-11-29  Chris Toshok  <toshok@ximian.com>
3487
3488         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3489         
3490         * Form.cs: only call the XplatUI transparency method (get/set) if
3491         SupportsTransparency says it's supported. Otherwise fallback to
3492         doing nothing (in the set case) or returning the instance field we
3493         cache (in the get case).
3494
3495         * XplatUIStructs.cs: add TransparencySupport flag enum.
3496         
3497         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3498         change to SupportsTransparency.
3499
3500         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3501         TransparencySupport.None from SupportsTransparency.
3502
3503         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3504         TransparencySupport.Set from SupportsTransparency.
3505
3506         * XplatUIWin32.cs: implement GetWindowTransparency calling
3507         GetLayeredWindowAttributes, and implement SupportsTransparency by
3508         checking whether or not both
3509         GetWindowTransparency/SetWindowTransparency are available
3510         entrypoints.  We need to do this since SetWindowTransparency is
3511         available as of win2k, but GetWindowTransparency requires winxp.
3512         yay win32 api.
3513
3514         * XplatUI.cs: Add GetWindowTransparency, and change
3515         SupportsTransparency to allow for either/both Get/Set.
3516
3517 2006-11-29  Chris Toshok  <toshok@ximian.com>
3518
3519         * DataGrid.cs: keep from going into an infinite loop redrawing a
3520         datagrid that has no datasource.  Fixes bug #80033.
3521
3522 2006-11-29  Chris Toshok  <toshok@ximian.com>
3523
3524         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3525         Invalidate) before the mainmenu has been assigned to a control.
3526
3527 2006-11-29  Chris Toshok  <toshok@ximian.com>
3528
3529         * DataGrid.cs: detect when we should be double the double click
3530         row/column autosize stuff, although that codepath has yet to be
3531         written.  part of the work for bug #79891.
3532
3533 2006-11-29  Chris Toshok  <toshok@ximian.com>
3534
3535         * Binding.cs (SetControl): fix unit test.
3536
3537 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3538
3539         * PageSetupDialog.cs: Validate the margins and set them in
3540         PageSettings. 
3541         * NumericTextBox.cs: New class to mimic the behavior of the
3542         textboxes used in the printing dialogs.
3543
3544 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3545         
3546         * Form.cs: Revert previous change (remove call UpdateBounds
3547         from form constructor), because it messes with the handle creation
3548         order, and that one needs lots and lots of love.
3549         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3550         for valid printer and throw InvalidPrinterException if document
3551         is set but printer not valid), adding a MonoTODO. Once 
3552         handle creation is done properly, we can put this back in.
3553
3554 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3555
3556         * MenuItem.cs: Create a invalidate method for menu item, to be
3557         calling from set text, it make text changes to imadiate update
3558         on screen. Fixes #80013. 
3559         
3560 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3561
3562         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3563         fixes bug #80070 and some other problem on toolbar buttons
3564         layout.
3565
3566 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3567
3568         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3569         with dotted brush.      Fixes #79564
3570         
3571 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3572
3573         * Form.cs: Removed call to UpdateBounds on Form
3574         constructor, it was causing a call to CreateHandle
3575         before it was supposed to.
3576         * PrintControllerWithStatusDialog: Applied patch
3577         by Chris Toshok to hide controller when there are
3578         no printers available.
3579         PrintDialog.cs: initialize printer settings to 
3580         null - correct DefaultValues test #5
3581         * PrintPreviewControl.cs: Move PrintController
3582         initialization to GeneratePreview
3583         * PrintPreviewDialog.cs: 
3584         - Remove Preview generation     from Document_set(). It is 
3585         called on OnPaint
3586         - Throw InvalidPrinterException on CreateHandle if
3587         a Document is set but there are no printers or 
3588         printer is not valid.
3589         * ThemeWin32Classic: don't paint PrintPreviewControl
3590         if there is nothing to paint    
3591
3592 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3593
3594         * Form.cs: Add another popular method.
3595
3596         * TabPage.cs: ditto.
3597
3598 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3599
3600         * MenuItem.cs: Fixed a warning.
3601         * InternalWindowManager: Fixed a warning.
3602
3603 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3604
3605         * MenuItem.cs:
3606         - When cloning a menu also clone MdiList and clone the 
3607           window menu items properly (as the forms and menuitems
3608           are kept in an internal hashtable, these need updating 
3609           as well)
3610         - Rewrote the window menu code, menu items are added in the
3611           order the forms were added to their parent, and they are
3612           updated every time the window menu is shown (before the
3613           list was only generated once, in the current order of the
3614           forms, and would never be updated). A checkmark is shown
3615           next to the item corresponding to the active mdi child.
3616
3617 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3618
3619         * XplatUIStructs.cs: 
3620         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3621         
3622         * XplatUIWin32.cs: 
3623         - Added TME_NONCLIENT to TMEFlags.
3624         - Handles WM_NCMOUSEMOVE in GetMessage to 
3625           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3626
3627         * MdiWindowManager:
3628         - Now merges mdi child menu to parent menu when maximized.
3629         - Recalculate NC areas of both mdi child and mdi parent. 
3630           Fixes #79757 (4).
3631           on window state and size changes.Fixes #79844 (3).
3632         - Handle WM_NCCALCSIZE to properly calculate borders.
3633
3634         * Form.cs:
3635         - Add/remove to the mdi containers list of mdi children 
3636           in the order they are added.
3637         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3638           to the maximized mdi child.
3639         
3640         * InternalWindowManager.cs:
3641         - Only execute a click on the control buttons on the mouse up,
3642           not on the mouse down. Show the state of the button 
3643           (was only showing Normal state, never Pressed state). The
3644           pressed button now follows the mouse (if you click the Close 
3645           button and move the mouse over the Maximize button, the 
3646           Maximize button will be shown as pressed). Since Win32 does
3647           not generate WM_NCLBUTTONUP if you release the button outside
3648           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3649           it as a mouse up.
3650         
3651         * ThemeWin32Classic.cs:
3652         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3653
3654         * MdiClient.cs:
3655         - Added a list of forms which contains the order the forms are
3656           added to the mdi parent.
3657         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3658         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3659         - If the active form changes set the scrollbars to the top
3660           of the Z order, otherwise the form could hide them.
3661         - Scrollbars are now sized according to ClientSize, not 
3662           to Size, and they take into account the other scrollbar
3663           to determine maximum.
3664         
3665 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3666         
3667         * XplatUI.cs:
3668         * XplatUIDriver.cs:
3669         * XplatUIX11.cs:
3670         * XplatUIWin32.cs:
3671         * XplatUIOSX.cs:
3672         - Added RequestAdditionalWM_NCMessages for windows to 
3673           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3674           Currently only implemented in XplatUIWin32.
3675
3676 2006-11-27  Chris Toshok  <toshok@ximian.com>
3677
3678         * Hwnd.cs: only add the hwnd to the windows hash in
3679         set_WholeWindow and set_ClientWindow if whole_window/client_window
3680         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3681
3682 2006-11-27  Mike Kestner  <mkestner@novell.com>
3683
3684         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3685         from the ComboListBox.ShowWindow code. Fixes #79969.
3686
3687 2006-11-27  Chris Toshok  <toshok@ximian.com>
3688
3689         * Hwnd.cs: remove the setters for ExposePending and
3690         NCExposePending - noone uses them.
3691
3692 2006-11-27  Jackson Harper  <jackson@ximian.com>
3693
3694         * TextControl.cs: new param for ReplaceSelection which determines
3695         whether we select the new selection, or set the cursor to the end
3696         of the new selection.
3697         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3698         pasting, select the new text.
3699         * RichTextBox.cs: Use new param for ReplaceSelection.
3700
3701 2006-11-27  Jackson Harper  <jackson@ximian.com>
3702
3703         * TextBoxBase.cs: Set the selection to the caret after the caret
3704         is moved, otherwise they get out of sync.
3705
3706 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3707
3708         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3709         it fixes #80015
3710
3711 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3712
3713         * ThemeWin32Classic.cs: 
3714         - Fix toolbar drop down arrow position.
3715         - Fix drop down appearance when ToolBar.Appearance is normal,
3716         it fixes #80018.
3717         
3718 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3719
3720         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3721         * Control.cs: Same.
3722         * UpDownBase.cs: Same.
3723         * ButtonBase.cs: Same.
3724         * ScrollBar.cs: Same.
3725         * TrackBar.cs: Same.
3726         * PictureBox.cs: Same.
3727         * UserControl.cs: Same.
3728         * Label.cs: Same.
3729         * ListControl.cs: Same.
3730         * TextBoxBase.cs: Same.
3731         * ListView.cs: Same.
3732         * RichTextBox.cs: Same.
3733         * TreeView.cs: Same.
3734
3735 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3736
3737         * PrintDialog.cs:
3738         - Text label for where 
3739         - Text label comment was not shown
3740
3741 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3742
3743         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3744
3745 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3746
3747         * InternalWindowManager.cs: 
3748         - Handle WM_PARENTNOTIFY to activate the form
3749         if any child control is clicked.
3750         - The form is only sizable if not minimized.
3751
3752         * MdiWindowManager.cs:
3753         - Save the IconicBounds if the form is moved.
3754         - Rework SetWindowState, now the window bounds 
3755         are stored only if the old window state is Normal.
3756         
3757         * MdiClient.cs:
3758         - In SetWindowStates store the old window state if 
3759         the window is maximized and restore window state if
3760         the window looses focus.
3761         - Don't handle any scrollbar value changes if 
3762         initializing the scroll bars. Fixes #79771.
3763         - Reworked ArrangeIconicWindows. Current algorithm
3764         tests bounds agains all other minimized windows, if
3765         any intersections create new bounds (going left to 
3766         right, bottom to top) and then test again. When 
3767         successful the bounds are saved and never computed
3768         again. Fixes #79774.
3769
3770 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3771
3772         * InternalWindowManager.cs: Added HandleTitleBarUp.
3773
3774 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3775
3776         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3777         hexadecimal in ParseUserEdit.
3778
3779         
3780 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3781
3782         * MdiWindowManager.cs: 
3783         - Handle a click on the form's icon to show the 
3784         system menu (when maximized). Fixes #79775.
3785         - Change the existing click handler for the form's
3786         icon when not maximized to show on MouseUp.
3787         Fixes #79776.
3788
3789         * Form.cs: In OnResize only layout the mdi child's
3790         parent if it actually has a parent. Might not if
3791         the window is closing.
3792
3793
3794 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3795
3796         * MdiClient.cs: Ignore active MDI client for text of parent, if
3797         child has no text set.
3798
3799 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3800
3801         * ToolBar.cs: Fixed ToString to match MS.
3802
3803 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3804
3805         * NumericUpDown: 
3806         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3807         update inner values on set. Fixes #79966.
3808         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3809         - Fix hexadecimal parsing.
3810         
3811         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3812         parent. Fixes #79957
3813
3814 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3815
3816         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3817         the actual size has to be queried, since if height /
3818         width is negative Win32 changes it to 0. 
3819         Fixes #79999 on Windows.
3820         
3821         * XplatUIX11.cs: Set height / width to 0 if negative
3822         in SetWindowPos. Fixes #79999 on Linux.
3823         
3824 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3825
3826         * ThemeWin32Classic.cs: Fix text redenring when button is
3827         pressed.
3828
3829 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3830
3831         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3832         and later navigate by mouse. Fixes #79528.
3833
3834 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3835
3836         * ToolBar.cs: Set default value for TabStop to false in
3837         constructor, it fixes remaining behavior of bug #79863.
3838
3839 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3840
3841         * MdiWindowManager.cs:
3842         * InternalWindowManager.cs:
3843         - Moved a few methods specific to Mdi from 
3844         InternalWindowManager to MdiWindowManager.
3845         Fixes #79996.
3846         
3847 2006-11-21  Chris Toshok  <toshok@ximian.com>
3848
3849         * XplatUIOSX.cs: stub out InvalidateNC.
3850
3851         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3852         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3853
3854         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3855
3856         * XplatUIDriver.cs: add InvalidateNC abstract method.
3857
3858         * XplatUI.cs: add InvalidateNC.
3859
3860 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3861
3862         * ToolBar.cs: Invalidate complete button area when pressed status 
3863         was changed.
3864         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3865         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3866         by 1 when button is pressed.
3867
3868 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3869
3870         * ToolButton.cs: Invalidate middle of DropDown button when
3871         ToolBar theres DropDownArrows.
3872         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3873         fix DropDown drawing operations.
3874
3875 2006-11-20  Chris Toshok  <toshok@ximian.com>
3876
3877         * NativeWindow.cs: fix the formatting of functions ('{' on the
3878         following line), and enable the thread exception dialog.
3879
3880         * Application.cs: remove the duplicate exception catching from
3881         here.
3882
3883 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3884
3885         * Toolbar.cs: Triggers button click event when click on icon
3886         of dropdown ToolBarButton. Fixes #79912.
3887         
3888 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3889
3890         * Theme.cs:
3891         * ThemeWin32Classic.cs:
3892         - Added a property WindowBorderFont to enable themeing
3893           of mdi child windows' Text.
3894           
3895 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3896
3897         * InternalWindowManager.cs:
3898         * Form.cs:
3899         * MdiClient.cs:
3900         * MdiWindowManager.cs: 
3901         - If mdi child is maximized, set mdi parent's
3902           text to "Parent - [Child]". Fixes #79770.
3903         - If there is any maximized mdi child windows, only the active 
3904           window (and any new windows) is maximized, the rest are normal.
3905         - On a WindowState change only save mdi child's window bounds 
3906           if the old window state was normal. Fixes #79774.
3907         - The scroll bars are now calculated on hopefully all
3908           necessary events. Fixed #79771 / #79844->6 / #79906.
3909         - MdiClient.SizeScrollBars() now takes into account docked 
3910           controls in the parent when calculating available space.
3911         - InternalWindowManager now always repaints the entire title
3912           area. Fixes #79844->1/4/5.
3913         - Added RequestNCRecalc on mdi child windowstate changes.
3914           Fixes #79772.
3915
3916 2006-11-20  Mike Kestner  <mkestner@novell.com>
3917
3918         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3919         in the MouseUp handler of the listbox and move the return handling
3920         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3921
3922 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3923
3924         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
3925
3926 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3927
3928         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
3929           working in 1.2.x anymore. So, updated.
3930
3931 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
3932
3933         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
3934         NumberGroupSeparator of current culture instead of assuming en-US.
3935         Fixed bug #79967.
3936
3937 2006-11-17  Mike Kestner  <mkestner@novell.com>
3938
3939         * Control.cs: Add the concept of implicit bounds setting so that
3940         dock/undock round trips preserve explicitly set size/locations.
3941         Fixes #79313.
3942
3943 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3944
3945         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
3946           can't handle those filters. (Fixes bug #79961)
3947
3948 2006-11-17  Chris Toshok  <toshok@ximian.com>
3949
3950         [ fixes the exit/crashes associated with #79835.  it's clearly
3951         suboptimal though, we need to figure out a better way to solve
3952         this. ]
3953         
3954         * PrintPreviewControl.cs: deal with the new invalid printer
3955         exceptions.
3956
3957         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
3958         and return false (so CommonDialog.ShowDialog doesn't actually show
3959         the form.)
3960
3961         * PrintDialog.cs: enable/disable the Ok button depending on
3962         whether or not the printer is valid.
3963
3964         * CommonDialog.cs (ShowDialog): only actually show the form if
3965         RunDialog returns true.
3966
3967 2006-11-17  Jackson Harper  <jackson@ximian.com>
3968
3969         * TextControl.cs: When soft splitting a line, mark it as a soft
3970         split line. Also carry over the current line break to the next
3971         line.
3972
3973 2006-11-17  Chris Toshok  <toshok@ximian.com>
3974
3975         * XplatUIX11.cs: when scrolling a window with an invalid area, we
3976         only want to shift the part of the invalid area that overlaps the
3977         area we're scrolling.  we also don't want to clear the invalid
3978         area unless the invalid area was entirely contained within the
3979         scrolling area.
3980
3981 2006-11-16  Chris Toshok  <toshok@ximian.com>
3982
3983         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
3984         also make sure to free the memory returned by XGetWindowProperty
3985         in GetText().
3986
3987         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
3988
3989 2006-11-16  Chris Toshok  <toshok@ximian.com>
3990
3991         * XplatUI.cs: add a new super secret way to get at the totally
3992         unsupported X11 backend.
3993
3994 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
3995
3996         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
3997
3998 2006-11-16  Jackson Harper  <jackson@ximian.com>
3999
4000         * TreeView.cs: Allow more explicit setting of top node position
4001         for scrollbars. Slower algo, but more accurate.
4002         - CollapseAll should maintain the current top node.
4003         * TextBoxBase.cs: When positioning the caret, use the line, pos
4004         method, since the x, y method does not grab the correct tag, and
4005         the caret height never gets set correctly. (Maybe I should just do
4006         away with the caret having its own height, and always use the
4007         carets current tag for height).
4008
4009 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4010
4011         [Fixes 79778, 79923]
4012
4013         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4014         Parent to the FosterParent instead.
4015
4016 2006-11-16  Jackson Harper  <jackson@ximian.com>
4017
4018         * TreeView.cs: Need to recalc the topnode when we expand or
4019         collapse. The scrolling methods can't handle this on their own,
4020         since they use differences between the last scroll position, and
4021         those difference get completely messed up since we are expanding
4022         nodes.  This problem should probably be fixed in the scrolling
4023         methods, so they can figure out exactly where they are, but this
4024         will slow things down a little.
4025         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4026         strings, makes nunit-gui look a lot nicer.
4027
4028 2006-11-16  Chris Toshok  <toshok@ximian.com>
4029
4030         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4031         the broken multithreaded event handling we have in here.  File
4032         this entry under "Why we should move to the new X11 backend".
4033
4034         Any thread can make it into UpdateMessageQueue, which gets events
4035         from the X socket - some of which could belong to hwnds being
4036         managed by a different thread.  We can also have multiple threads
4037         in UpdateMessageQueue at the same time, with each one reading from
4038         the X socket.  This leads to many problems, with the following
4039         solutions:
4040
4041         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4042         EnqueueLocked.
4043
4044         The MotionNotify compression we do can't work across threads
4045         (without locking the entire queue, perhaps) since we call
4046         hwnd.Queue.Peek, so we just punt and don't compress motion events
4047         unless the owning thread is the one which got the X event.
4048
4049         ConfigureNotify is another fun one, since it modifies the hwnd's
4050         bounds and then enqueues the event.  We add a lock to Hwnd which
4051         is held when setting configure_pending to true (and enqueuing the
4052         event).
4053
4054         There is a race wrt the wake socket.  we need to make sure that
4055         only 1 thread is waiting on that socket, or else a thread could
4056         sleep waiting for data that never comes.  It's difficult (but not
4057         impossible) to make happen, because it seems to require something
4058         like the following:
4059
4060             1. Thread 1 polls on wake_receive
4061         
4062             2. poll returns saying there's data to be read on
4063                wake_receive.
4064         
4065             3. Thread 2 polls on wake_receive and immediately returns
4066                saying there's data to be read.
4067
4068             4. Thread 2 reads the wakeup byte from wake_receive
4069
4070             5. Thread 1 attempts to read the wakeup byte from
4071                wake_receive.
4072
4073             6. Thread 2 exits (due to a form closing, perhaps).
4074
4075             7. Thread 1 blocks forever.
4076         
4077         Fun, eh?
4078
4079         Fixing the Expose handling isn't done yet, and the races inherent
4080         in that piece of code are responsible for the drawing mistakes you
4081         see when generating expose events in a MT app (like NPlot).  This
4082         one is the likely to be the hardest to bandaid, and it doesn't
4083         appear to cause anything but drawing problems.  The other issues
4084         caused apps to exit or hang.
4085
4086         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4087         called from a different thread than the one that should be calling
4088         these functions.
4089
4090         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4091
4092 2006-11-15  Chris Toshok  <toshok@ximian.com>
4093
4094         * Application.cs: null out the context's MainForm when we exit
4095         RunLoop.  Fixes a newly checked in unit test as well as the last
4096         ODE from bug #79933.
4097
4098 2006-11-15  Chris Toshok  <toshok@ximian.com>
4099
4100         * Form.cs (set_Owner): allow a null value so we can clear the
4101         form's owner.
4102         (Dispose): set all our owned_form's Owner properties to null, and
4103         clear the owned_forms collection.
4104         (WM_CLOSE): clean up this a little bit.. still not right though.
4105
4106         * ApplicationContext.cs: OnMainFormClosed should only call
4107         ExitThreadCore if the main form isn't recreating.  Fixes unit
4108         test.
4109
4110 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4111
4112         [Fixes 78346]
4113
4114         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4115
4116 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4117
4118         [Fixes 79433]
4119
4120         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4121         keep popup window types from stealing focus from the main form
4122         on Windows.
4123
4124         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4125
4126         * MenuAPI.cs: Set above flag to true.
4127
4128 2006-11-15  Chris Toshok  <toshok@ximian.com>
4129
4130         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4131         the button being released is not in wParam.
4132
4133 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4134
4135         * Form.cs: Add the released button to MouseEventArgs.Button
4136         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4137         on Win32.
4138
4139 2006-11-15  Chris Toshok  <toshok@ximian.com>
4140
4141         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4142         GetText().  untested because it's unused in our implementation.
4143         Control.Text always caches the text, even if
4144         ControlStyles.CacheText is not set.
4145
4146         fixes bug #79939.
4147
4148 2006-11-15  Chris Toshok  <toshok@ximian.com>
4149
4150         [ fixes #79933 ]
4151         
4152         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4153         message.  no hiding, no disposing.
4154
4155         in the WM_CLOSE handler, hide the form if it's modal.
4156
4157 2006-11-15  Chris Toshok  <toshok@ximian.com>
4158
4159         * XplatUIX11.cs: use AddExpose instead of sending a message.
4160         fixes textbox border drawing.
4161
4162 2006-11-15  Chris Toshok  <toshok@ximian.com>
4163
4164         * PropertyGridView.cs: keep from crashing on mouse move/down when
4165         the property grid is empty.
4166
4167 2006-11-14  Jackson Harper  <jackson@ximian.com>
4168
4169         * TextControl.cs: Make PageUp and PageDown more like the MS
4170         versions.
4171         * TextBoxBase.cs: When we set the text property position the
4172         cursor at the beginning of the document.
4173
4174 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4175
4176         * Form.cs: if a mdi child's WindowState has changed
4177         before it's creation, it would display wrong control
4178         buttons.
4179         
4180 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4181
4182         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4183           (Fixes bug #79927)
4184
4185 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4186
4187         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4188         the window gets to paint its borders even if the window is
4189         getting smaller.
4190         
4191         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4192         otherwise the old control buttons would still be painted 
4193         if the window gets bigger.
4194         
4195         * PaintEventArgs.cs: add an internal method so that the clip 
4196         rectangle can be changed.
4197         
4198 2006-11-13  Chris Toshok  <toshok@ximian.com>
4199
4200         [ fixes bug #79745 ]
4201         
4202         * NotifyIcon.cs: lots of cleanup.
4203
4204         * X11Structs.cs: add an enum for XEMBED messages.
4205
4206         * XplatUIX11.cs: reindent one of the giant switch statements, it
4207         was taking up an additional tab stop, and this file is already way
4208         too wide for my laptop's screen.
4209
4210         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4211         we get it, resize the hwnd to the WMNormalHints max_width/height.
4212
4213 2006-11-13  Jackson Harper  <jackson@ximian.com>
4214
4215         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4216         teh simple way.
4217
4218 2006-11-13  Chris Toshok  <toshok@ximian.com>
4219
4220         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4221         #79898.  force a reference to the Region to stick around so the
4222         unmanaged object isn't collected (rendering our handle in the MSG
4223         stale).
4224
4225 2006-11-13  Chris Toshok  <toshok@ximian.com>
4226
4227         * XplatUIX11.cs: fix #79917 for window managers which support
4228
4229         using XStoreName on the raw utf8, and we need to convert to
4230         COMPOUND_TEXT if it's non-latin1.
4231
4232 2006-11-13  Chris Toshok  <toshok@ximian.com>
4233
4234         * Form.cs (set_DialogResult): we need to set closing to false if
4235         we're setting our result to None.  fixes bug #79908.
4236
4237 2006-11-13  Jackson Harper  <jackson@ximian.com>
4238
4239         * TextControl.cs: When formatting text, compute the adjusted tag
4240         lengths correctly, using FindTag for the end tag instead of trying
4241         to figure it out outselves.
4242         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4243         the item, ItemHeight doesn't work, because trees with large
4244         imagelists use those for their height
4245         * TreeView.cs: ActualItemHeight factors in the image height
4246         - compute left edge of checkboxes correctly
4247         - when expanding/collapsing move the bottom down one pixel, so we
4248         aren't moving part of the node
4249
4250 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4251
4252         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4253         stack in PaintEventStart so that it won't get disposed by the gc
4254         before reaching PaintEventEnd.
4255
4256 2006-11-13  Jackson Harper  <jackson@ximian.com>
4257
4258         * TextBoxBase.cs: Don't select the word if we are on a line with
4259         no text.
4260         - We don't need to position the caret on mouse up, since the mouse
4261         move handler should be doing this
4262         - When double clicking a blank line, the caret is advanced to the
4263         next line.
4264
4265 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4266
4267         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4268
4269 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4270
4271         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4272         Fixes part of bug #79910.
4273
4274 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4275
4276         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4277           (bug #79903). Some minor string updates to match ms.
4278
4279 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4280
4281         * FileDialog.cs: Don't add an extension if the filename
4282           already ends with that extension.
4283
4284 2006-11-10  Jackson Harper  <jackson@ximian.com>
4285
4286         * TreeView.cs: Use the currently highlighted node for the
4287         BeforeSelect event.
4288         * TextBoxBase.cs: There is no need to expand selection on
4289         MouseMove.
4290         - CanUndo means 'is there any undo operations', not 'is undo
4291         allowed on this textcontrol. Fixed ClearUndo unit test.
4292
4293 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4294
4295         * Button.cs: only perform click when button is Selectable (so as 
4296         not to activate default buttons when they're disabled)
4297         
4298         * Control.cs: Rewrite of the SelectNextControl and related 
4299         methods. HandleClick now selects next control if the current one
4300         is being disabled.
4301         
4302         * Form.cs: OnActivated selects next active control only if Load 
4303         has already occurred. If Load hasn't run, there's no point in 
4304         selecting here, Load might change the state of controls.
4305         
4306         * FocusTest.cs: Tests marked as working again for these fixes
4307
4308 2006-11-10  Chris Toshok  <toshok@ximian.com>
4309
4310         * XplatUIX11.cs: a couple of fixes.
4311
4312         - use XInternAtoms with almost all the atoms we need to register,
4313         instead of many, many calls to XInternAtom.  should help a bit on
4314         startup time, at the expense of making the code look a little
4315         worse.
4316
4317         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4318         isn't reparented (which seems to be a clue that we're running fon
4319         compiz) and they have an Owner form.  This fixes the tool windows
4320         in paint.net when running under compiz.
4321
4322         - when setting the opacity of a window, support both the case
4323         where the window has been reparented and also when it hasn't been.
4324         Since compiz/beryl doesn't seem to reparent windows, and these are
4325         the only window managers which support translucency, I'm not sure
4326         why we need the hwnd.reparented case at all.. but leave it in.
4327         now we get translucent windows in paint.net under compiz/beryl.
4328
4329 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4330
4331         * FileDialog.cs: Always return the value for FilterIndex that
4332           was set. Internally convert it to values that make sense.
4333
4334 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4335         
4336         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4337
4338 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4339
4340         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4341         signature still using false to make it compatible with MS but the 
4342         initial value is true. Fixes #79855.
4343
4344 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4345
4346         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4347           only available on Linux.
4348
4349 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4350
4351         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4352         reduce number of calls to redraw method during toolbar creation.
4353
4354 2006-11-09  Mike Kestner  <mkestner@novell.com>
4355
4356         * ListView.cs : raise SelectedIndexChanged when an item is selected
4357         programmatically via the Item.Selected property.  Gert's nice 
4358         ListViewSelectedIndexChanged test fixture now runs clean.
4359
4360 2006-11-09  Mike Kestner  <mkestner@novell.com>
4361
4362         * ListView.cs : raise SelectedIndexChanged when a selected item is
4363         removed from the item collection using Remove or RemoveAt.
4364
4365 2006-11-09  Mike Kestner  <mkestner@novell.com>
4366
4367         * ListView.cs : raise SelectedIndexChanged once per selected item
4368         for compat with MS.  Fixes #79849+.
4369
4370 2006-11-09  Chris Toshok  <toshok@ximian.com>
4371
4372         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4373         we need to (if we have any tab pages).  Fixes unit test.
4374
4375 2006-11-09  Chris Toshok  <toshok@ximian.com>
4376
4377         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4378         width is 0, not 3.  Fixes a unit test.
4379
4380 2006-11-09  Mike Kestner  <mkestner@novell.com>
4381
4382         * ListView.cs : use Implicit scrollbars so that focus isn't 
4383         stolen from the listview when they are clicked. Fixes #79850.
4384
4385 2006-11-09  Chris Toshok  <toshok@ximian.com>
4386
4387         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4388         have a root item.  Fixes #79879.
4389
4390 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4391
4392         * FileDialog.cs:
4393           - Fix ToString ()
4394           - An ArgumentException is now thrown if a wrong filter
4395             is applied (matches ms). The previous filter doesn't change
4396             anymore if an exception is thrown.
4397           - Changing the FileName property also affects FileNames
4398         * ColorDialog.cs: The length of the CustomColors array is always
4399           16. It doesn't matter if we use a smaller array or null to update
4400           or change the custom colors property.
4401         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4402           for RootFolder if we get a undefined value.
4403
4404 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4405
4406         * StatusBarPanel.cs: 
4407         - Width is set to MinWidth if Width is smaller than
4408         MinWidth. Fixes #79842.
4409         - MinWidth now always overrides Width (MSDN says MinWidth
4410         is set to Width when AutoSize = None, but they do not 
4411         behave like that).
4412         - Style has now the the correct default value.
4413         
4414 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4415  
4416         * TrackBar.cs: 
4417         - The control is completely invalidated on 
4418         Got/LostFocus to draw the focus rectangle correctly.
4419         - When AutoSize then height is always 45 (width for 
4420         vertical controls).
4421         
4422         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4423         on the mouse when moved and it doesn't move when grabbed
4424         until the mouse moves as well. Also fixed some wrong 
4425         calculations when clicking on the thumb (control thought
4426         click was outside of thumb and didn't grab it).
4427         Fixes some of the issues in #79718.
4428
4429 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4430
4431         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4432
4433 2006-11-08  Chris Toshok  <toshok@ximian.com>
4434
4435         * PropertyGridView.cs: only call ToggleValue if the item is not
4436         readonly.
4437
4438 2006-11-08  Jackson Harper  <jackson@ximian.com>
4439
4440         * TextBoxBase.cs: The RichTextBox and textbox have very different
4441         word selection methods.  Implement the textbox's simple word
4442         selection here, and let the RichTextBox override and provide it's
4443         own.
4444         - Don't do extra selection on mouseup
4445         * RichTextBox.cs: Use the documents word selection algorithm, I
4446         think ideally, this function will be pulled into the
4447         RichTextBox.cs code someday.
4448
4449 2006-11-08  Chris Toshok  <toshok@ximian.com>
4450
4451         * RootGridEntry.cs: new class to represent GridItemType.Root.
4452
4453         * CategoryGridEntry.cs: reformat, and add boilerplate.
4454         
4455         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4456         returns the UI parent anyway, and we need special handling to
4457         implement the GetTarget method in the face of it.  Also, implement
4458         Select().
4459
4460         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4461         a root grid item, and use that instead of PropertyGrid.grid_items.
4462         Also, make use of TypeConverters (and add limitted support for
4463         ICustomTypeDescriptors) when initially populating the grid.
4464         Arrays now show up more or less properly.
4465
4466 2006-11-08  Chris Toshok  <toshok@ximian.com>
4467
4468         * Application.cs: set the modal dialog to non modal after we close
4469         it.  Fixes bug #79866.
4470
4471 2006-11-08  Jackson Harper  <jackson@ximian.com>
4472
4473         * TextControl.cs: When combining lines carry over the line end
4474         style from the end line.
4475         - Invalidate the selected area when setting it, if it is visible.
4476         * TextBoxBase.cs: Only rich text box can do full line selects.
4477         - Make sure to set the cursor position when there is a click,
4478         otherwise two clicks in separate areas could cause a large chunk
4479         to be selected.
4480
4481 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4482
4483         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4484         Fixes #79863.
4485
4486 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4487
4488         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4489         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4490
4491 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4492
4493         * MenuAPI.cs: Ignore right click for menu actions and fixes
4494         menu border when clicked.  Fixes #79846.
4495
4496 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4497
4498         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4499         MouseState after create wParam for message, this fixes mouse button 
4500         equal none in mouse up events.
4501         
4502 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4503
4504         * Control.cs : Focus() now calls Select to set the Container's
4505         Active Control and to give it focus. To avoid infinite recursion
4506         (because ActiveControl also calls Focus at one point), a check 
4507         is made in Focus with the help of a new internal variable
4508         is_focusing.
4509
4510 2006-11-07  Mike Kestner  <mkestner@novell.com>
4511
4512         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4513         if there's a selection.  Fixes #79849.
4514
4515 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4516
4517         * PropertyGrid.cs: Avoid fixed height of help description label.
4518         Fixes part of bug #79829.
4519
4520 2006-11-07  Chris Toshok  <toshok@ximian.com>
4521
4522         * XplatUIX11.cs: fix #79790 again, by using the
4523         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4524
4525 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4526
4527         * ToolBar.cs: Fix left click checking.
4528
4529 2006-11-07  Chris Toshok  <toshok@ximian.com>
4530
4531         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4532
4533 2006-11-07  Chris Toshok  <toshok@ximian.com>
4534
4535         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4536         PropertyManager unit tests.
4537
4538         * PropertyManager.cs: make property_name internal.
4539
4540 2006-11-07  Chris Toshok  <toshok@ximian.com>
4541
4542         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4543         pass a unit test.  Also, don't set image_index to anything in
4544         response to setting the ImageList property.
4545
4546 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4547
4548         * ToolBar.cs: Ignore click events when mouse button is not a
4549         left button, only accepts other button for dropdown menus.  
4550         Fixes #79854.
4551
4552 2006-11-07  Chris Toshok  <toshok@ximian.com>
4553
4554         * DataGrid.cs: make the back and parent row buttons a little less
4555         ugly.
4556
4557 2006-11-07  Jackson Harper  <jackson@ximian.com>
4558
4559         * TextBoxBase.cs: When converting to Text don't put line breaks in
4560         for soft line breaks.
4561         * TextControl.cs: There is an initial "fake" line in the document,
4562         this is now a soft break line, so that an extra line feed doesn't
4563         get added to the end of documents.
4564
4565 2006-11-07  Chris Toshok  <toshok@ximian.com>
4566
4567         [ fix bug #79778 ]
4568         
4569         * CurrencyManager.cs: if the list is readonly, don't bother
4570         checking if IBindingList.AllowNew is true.
4571
4572         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4573         for non-DataRowView datasources..  or rather, make it not crash.
4574         (DataGridPaintRelationRow): make sure we limit the row painting to
4575         the area not covered by the row header, and make our cell width at
4576         least large enough to cover the relation area.  This allows grids
4577         that have relations but no rows to render correctly.
4578         (DataGridPaintRowContents): same type of changes here.
4579         (SetDataSource): move back to always calling
4580         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4581         navigating back through relations.
4582         (HitTest): handle the case where we have no cells but have
4583         relations.  Right now we generate a hit in cell 0 of whatever the
4584         row is, not sure if this is strictly correct, but it works for our
4585         purposes.
4586         
4587         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4588         bother doing anything.
4589
4590 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4591
4592         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4593         early version of StatusStrip.  Not responsible for eaten
4594         application or firstborn children.
4595
4596 2006-11-06  Chris Toshok  <toshok@ximian.com>
4597
4598         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4599         call GetTabRect with a -1 index.  Fixes #79847.
4600
4601 2006-11-06  Jackson Harper  <jackson@ximian.com>
4602
4603         * TreeNodeCollection.cs: Update scrollbars after clearing.
4604
4605 2006-11-06  Chris Toshok  <toshok@ximian.com>
4606
4607         * NumericUpDown.cs: fix the ToString method for some unit test
4608         love.
4609
4610 2006-11-06  Chris Toshok  <toshok@ximian.com>
4611
4612         * PropertyGrid.cs:
4613         - set the initial SelectedGridItem if we can.
4614
4615         - Exclude non-mergable properties only if we're merging > 1
4616         object.  Merging 1 object isn't really merging, obviously.
4617
4618         - Handle PropertySort.NoSort just like Alphabetical, which is
4619         wrong of course, but at least gets things on the screen.
4620         
4621         * PropertyGridView.cs:
4622         - Add method "FindFirstItem" which finds the first property grid
4623         item, so we can select it by default.
4624
4625         - make use of GridEntry.CanResetValue.
4626
4627         - Don't call RedrawBelowItemOnExpansion here anymore, the
4628         individual GridEntry's will do that.
4629
4630         - Remove the ITypeDescriptorContextImpl internal class.
4631         
4632         * GridEntry.cs:
4633         - this class needs to implement ITypeDescriptorContext, as it's
4634         what MS's PropertyDescriptorGridEntry does, which means we can
4635         remove the ITypeDescriptorContextImpl internal class from
4636         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4637
4638         - keep a reference to our PropertyGridView, and move the call to
4639         RedrawBelowItemOnExpansion here from PGV.  This means
4640         programmaticly setting Expanded actually does something visible.
4641
4642         - add a CanResetValue() function which takes into account our
4643         possibly multiple "selected_objects" in the merged case.  Shifting
4644         PropertyGridView to use this method fixes another unreported
4645         crasher found running the test for #79829.
4646
4647         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4648         is updated to reflect this.
4649
4650         * CategoryGridEntry.cs: the ctor takes the PGV now.
4651         
4652 2006-11-06  Jackson Harper  <jackson@ximian.com>
4653
4654         * TextControl.cs: These are 1 based.
4655         * TextBoxBase.cs: When setting the selected text, don't change the
4656         selected text tags, this is done by ReplaceText, just position the
4657         cursor at the end of the new text.
4658
4659 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4660
4661         * ListView.cs: Allow label edit only when, when LabelEdit is
4662           set to true.
4663
4664 2006-11-06  Jackson Harper  <jackson@ximian.com>
4665
4666         * TextControl.cs: If a suitable wrapping position isn't found,
4667         just wrap right in the middle of a word.
4668
4669 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4670
4671         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4672           bug #79820.
4673
4674 2006-11-06  Jackson Harper  <jackson@ximian.com>
4675
4676         * TreeView.cs: Can't use the VisibleCount property when setting
4677         scrollbar heights, because this doesn't take into account whether
4678         or not the horz scrollbar just came visible.
4679
4680 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4681
4682         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4683         activated.  Fixes #79369, #79832.
4684
4685 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4686
4687         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4688           had to remove support for links that point to a directory. FileInfo
4689           returns no usefull information (means, the directory they point to)
4690           for such links. Replaced some empty string ("") with String.Empty.
4691
4692 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4693
4694         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4695         NullReferenceException when attempting to remove node that is not in
4696         collection. Throw NullReferenceException when null is passed to 
4697         Remove. Allow first element of the collection to be removed. Fixes
4698         bug #79831.  In GetEnumerator ().Current return null if positioned 
4699         before the first element of the collection. In GetEnumerator ().Reset,
4700         position before first element of the collection.
4701
4702 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4703
4704         * PropertyGrid.cs: To match MS, remove default title and description
4705         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4706         buttons.
4707
4708 2006-11-04  Chris Toshok  <toshok@ximian.com>
4709
4710         * Theme.cs: add a Clamp method, just for kicks.
4711
4712         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4713
4714 2006-11-04  Chris Toshok  <toshok@ximian.com>
4715
4716         * Form.cs: if the form isn't visible, Close() does nothing.
4717
4718 2006-11-03  Chris Toshok  <toshok@ximian.com>
4719
4720         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4721         Hide it.
4722         (WndProc): don't Dispose after handling the WM_CLOSE message.
4723
4724         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4725         them as such, instead of using casts from Control to Form.  Also,
4726         don't Dispose of the modal dialog when we fall out of the loop -
4727         Close() it instead.
4728
4729         fixes bug #79813.
4730
4731 2006-11-03  Chris Toshok  <toshok@ximian.com>
4732
4733         * Control.cs (Dispose): only go through the dispose thing if we're
4734         @disposing, and we haven't already been disposed.  Fixes bug
4735         #79814.
4736
4737         * Form.cs: no reason to call "base.Dispose()" here instead of
4738         "Dispose()".
4739
4740 2006-11-03  Mike Kestner  <mkestner@novell.com>
4741
4742         * ComboBox.cs : use ToString instead of casts in AddItem for
4743         sorting functionality.  Fixes #79812.
4744
4745 2006-11-03  Chris Toshok  <toshok@ximian.com>
4746
4747         * Application.cs: pave the way for actually using the thread
4748         exception dialog.  it's ifdefed out at the moment.
4749
4750 2006-11-03  Chris Toshok  <toshok@ximian.com>
4751
4752         * ThreadExceptionDialog.cs: until we get a better layout, actually
4753         hide the details textbox and label when we shouldn't see them.
4754
4755 2006-11-03  Jackson Harper  <jackson@ximian.com>
4756
4757         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4758         multiline textboxes anymore.  This method also determines the
4759         width/height of a textboxes canvas area.
4760         - Sorta a revert of the last patch.  For multiline just position
4761         the controls, then bail.  This way the scrollbar width won't be
4762         altered.
4763
4764 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4765
4766         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4767         it dont need.  Fixes #79537.
4768
4769 2006-11-02  Jackson Harper  <jackson@ximian.com>
4770
4771         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4772         send the status after firing the DndOver event.
4773
4774 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4775
4776         * TrackBar.cs: Now orientation only switches height / width if
4777         the control's handle is created (Win32 does it like this). Also 
4778         fixed a typo in ToString() for a test to pass, changed the 
4779         exception thrown in set_LargeChange and set_SmallChange to 
4780         match Win32 behaviour, and added TrackBar tests to the unit 
4781         tests.
4782
4783 2006-11-02  Chris Toshok  <toshok@ximian.com>
4784
4785         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4786         not _NET_WM_STATE_NO_TASKBAR.
4787
4788 2006-11-02  Jackson Harper  <jackson@ximian.com>
4789
4790         * TextControl.cs: Increment count by one, since in the update view
4791         count - 1 is used.
4792
4793 2006-11-02  Jackson Harper  <jackson@ximian.com>
4794
4795         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4796         the mouse is in the client rectangle (duh).
4797
4798 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4799         
4800         * TrackBar.cs: Fixed trackbar jumping around when clicking
4801         on it - the trackbar was not detecting correctly at which
4802         side of the thumb the click was done. (fixes #79718)
4803
4804 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4805
4806         * ListBox.cs: scroll visible area when change SelectedIndex to
4807         a non visible area.  Fixes #79481.
4808
4809 2006-11-01  Jackson Harper  <jackson@ximian.com>
4810
4811         * TextControl.cs: When replacing the selection move the selection
4812         start/end/anchor to the end of the new text.
4813
4814 2006-11-01  Jackson Harper  <jackson@ximian.com>
4815
4816         * XplatUIWin32.cs: When setting the parent change the controls
4817         visibility to it's visibility flag, not to it's old parents
4818         visibility (.Visible walks the parent chain).
4819
4820 2006-11-01  Chris Toshok  <toshok@ximian.com>
4821
4822         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4823         XSetTransientForHint fix breaks paint .net's tool windows.  more
4824         work needed for that one.
4825
4826 2006-11-01  Chris Toshok  <toshok@ximian.com>
4827
4828         * ScrollBar.cs: throw ArgumentException instead of Exception in
4829         LargeChange/SmallChange setters.  fixes unit tests.
4830
4831 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4832
4833         * ContainerControl.cs: reverted rev.67183 (which was itself
4834         a reversion of rev.66853... eh).
4835         
4836         * Control.cs: Fixes Reflector hang by changing Focus() call
4837         to what it was before rev.66643 (calling Select() here sets 
4838         ActiveControl, which in some situations calls back Focus and 
4839         eventually does a stack overflow). Temp fix.    
4840         Changes to GetNextControl() to not look for children to select when
4841         parent cannot be selectable (so it looks for siblings instead)  
4842         
4843 2006-10-31  Mike Kestner  <mkestner@novell.com>
4844
4845         * CheckedListBox.cs : off by one error in returned index from
4846         ObjectCollection.Add.  Fixes #79758.
4847
4848 2006-10-31  Chris Toshok  <toshok@ximian.com>
4849
4850         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4851         calls for the textbox/spinner, to keep from recursing to the point
4852         where we crash.  Fixes #79760.
4853
4854 2006-10-31  Chris Toshok  <toshok@ximian.com>
4855
4856         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4857         null/"" value, just return.  matches ms's behavior and fixes some
4858         failing tests.
4859
4860 2006-10-31  Chris Toshok  <toshok@ximian.com>
4861
4862         * Control.cs (set_Capture): make a logic a little easier to
4863         follow.
4864
4865         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4866         if it's being destroyed.  A necessary fix surely, but a bandaid
4867         also, to fix the stuck capture problem in bug #78413.
4868
4869 2006-10-31  Chris Toshok  <toshok@ximian.com>
4870
4871         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4872         convention of clearing hwnd.ClientRect when we set the
4873         width/height (so it'll be recalculated by Hwnd).
4874
4875 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4876
4877         * ContainerControl.cs: reversed Contains check from
4878         ActiveControl due to hanging problems. This fix
4879         partly regresses #79667 (button does not have
4880         initial focus), so this might be a symptom for 
4881         a larger parenting problem (set_ActiveControl
4882         is being called but the child control does
4883         not have the parent set yet?)   
4884         
4885 2006-10-31  Mike Kestner  <mkestner@novell.com>
4886
4887         * MenuAPI.cs : fix keynav when menu is click activated.
4888
4889 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4890
4891         * ToolStrip*: Version 0.2.
4892
4893         * MenuStrip.cs: Version 0.1.
4894
4895         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4896
4897 2006-10-30  Chris Toshok  <toshok@ximian.com>
4898
4899         [ fixes the oversized notify icon issue in bug #79745 ]
4900         
4901         * NotifyIcon.cs: scale the icon down to the size we're given by
4902         the XplatUI layer (this would be faster if we did it once instead
4903         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4904         since it's never invoked.
4905
4906         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4907         pixels high by default, so let's hardcode our systray icon to that
4908         size.  The SYSTEM_TRAY protocol should really have a way for
4909         client apps to query for the correct icon size.. but oh well.  A
4910         couple of patches to deal with the screwy client_window ==
4911         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4912         instance, and also make sure we don't XSelectInput twice).
4913
4914 2006-10-30  Chris Toshok  <toshok@ximian.com>
4915
4916         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4917         recreating forms.  Control recreation is the bane of my existence.
4918         Fix it in a way that keeps everyone happy.
4919
4920 2006-10-30  Chris Toshok  <toshok@ximian.com>
4921
4922         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
4923         just non-CHILD ones.  otherwise sometimes scrollbars end up with
4924         client_windows not being resized to the proper size (ReportBuilder
4925         shows this extremely well).
4926
4927 2006-10-30  Chris Toshok  <toshok@ximian.com>
4928
4929         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
4930         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
4931         showing up in the gnome taskbar.  Fixes bug #79790.
4932
4933 2006-10-30  Chris Toshok  <toshok@ximian.com>
4934
4935         * ApplicationContext.cs: guard against a NRE.
4936
4937         * Application.cs: null out the old MainForm for the context, so we
4938         don't try to use it again once it's disposed.  Fixes bug #79783.
4939
4940 2006-10-30  Chris Toshok  <toshok@ximian.com>
4941
4942         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
4943         BindingContext, set the data source directly, otherwise do the
4944         lazy approach - the actual ListManager will be created when we get
4945         a BindingContext. Fixes bug #79700.
4946
4947 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4948
4949         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
4950           XplatUIX11.cs: Remove old 2 parameter SetVisible.
4951
4952         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
4953
4954 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4955
4956         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
4957         of SetVisible that allows a window to be shown, but not activated.
4958         This is needed on Windows for MenuStrip, and can probably be used
4959         with MainMenu and ComboBox to fix the focus stealing issues on
4960         Windows.
4961
4962         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
4963
4964 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
4965
4966         * PictureBox.cs: Fix the output of the ToString method.
4967
4968 2006-10-29  Chris Toshok  <toshok@ximian.com>
4969
4970         * Control.cs (get_TopLevelControl): fix bug #79781.
4971
4972 2006-10-29  Chris Toshok  <toshok@ximian.com>
4973
4974         * ListControl.cs (set_DataSource): throw Exception here, not
4975         ArgumentException, to match MS behavior.
4976
4977 2006-10-29  Chris Toshok  <toshok@ximian.com>
4978
4979         * Form.cs: remove the try-catch's around calls to GetWindowState.
4980         We can just check the return value.
4981
4982         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
4983         Instead return -1.
4984
4985         * XplatUI.cs: Add note about additional return value for
4986         GetWindowState.
4987
4988 2006-10-29  Chris Toshok  <toshok@ximian.com>
4989
4990         * Control.cs (CreateHandle): when we create our handle, we also
4991         create the handles of our child controls.  Fixes one of the
4992         Control unit tests (CH11).
4993
4994 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4995
4996         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
4997
4998 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
4999
5000         * ThemeClearlooks.cs: A little speedup.
5001
5002 2006-10-27  Chris Toshok  <toshok@ximian.com>
5003
5004         * Control.cs: implement Control.FromChildHandle in a way that
5005         matches the docs (and fixes the failed test.)
5006
5007 2006-10-27  Chris Toshok  <toshok@ximian.com>
5008
5009         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5010         comments).
5011
5012         * DataGrid.cs: implement ResetForeColor such that the tests
5013         succeed.
5014         
5015 2006-10-27  Chris Toshok  <toshok@ximian.com>
5016
5017         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5018         being set to "".  Fixes bug #79759.
5019
5020 2006-10-27  Jackson Harper  <jackson@ximian.com>
5021
5022         * TextControl.cs: We need to clear the entire selection area when
5023         setting the start, otherwise multiline selections are still
5024         visible.
5025
5026 2006-10-26  Chris Toshok  <toshok@ximian.com>
5027
5028         * PropertyGridView.cs: 
5029
5030         - ifdef all the code specific to the double
5031         buffer case, and provide some alternatives in the non-doublebuffer
5032         code, which makes heavy use of XplatUI.ScrollWindow to move things
5033         around without having to invalidate (and cause flicker).  There
5034         are still some drawing problems in the non-doublebuffered case, so
5035         DOUBLEBUFFER is defined by default.
5036
5037         - Fix the way dropdowns are handled.  now we explicitly watch for
5038         the events which might cause the dropdown to close, and break out
5039         of the nested event loop there.  This gets rid of all Capture
5040         code, at the expense of the Msg special casing.  Seems to work,
5041         though, and fixes bug #79743.
5042
5043 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5044         * Control.cs: SetIsRecreating now recreates implicitly added
5045         child controls as well. Finally fixes #79629. The flag passed to 
5046         SetIsRecreating has also been removed since it wasn't used.
5047         
5048 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5049
5050         * PageSetupDialog.cs: Clean some code, fix some bits, 
5051         add some checks, and add a printer sub-dialog.
5052
5053 2006-10-26  Chris Toshok  <toshok@ximian.com>
5054
5055         * PropertyGrid.cs: make set_SelectedObject call
5056         set_SelectedObjects, and move the duplicate logic to the
5057         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5058
5059         * PropertyGridView.cs: hide the textbox when we get a
5060         SelectedObjectsChanged event.
5061
5062         Fixes bug #79748.
5063
5064 2006-10-26  Chris Toshok  <toshok@ximian.com>
5065
5066         * PropertyGridView.cs: deal with the type converter not supporting
5067         GetStandardValues() or GetStandardValues() returning null, which
5068         is does in the default case.  Fixes #79742.
5069
5070 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5071
5072         * CheckedListBox.cs: nunit no longer crashes when selecting 
5073         Project/Edit menu option
5074         
5075 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5076
5077         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5078         is no menu selected. fixes #79739
5079
5080 2006-10-25  Chris Toshok  <toshok@ximian.com>
5081
5082         * PropertyGridView.cs: factor out the splitter invalidation code
5083         into the SplitterPercent setter, and for kicks implement the
5084         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5085         amount in either direction.
5086
5087 2006-10-25  Chris Toshok  <toshok@ximian.com>
5088
5089         * PropertyGridView.cs: do some cleanup of the brush used to draw
5090         text - read only fields should be grayed out.  not sure how to do
5091         this with the textbox, though.  but the textbox's should also be
5092         readonly now at least.  Also, hide/show the textbox when resizing
5093         the control.
5094         
5095         * CursorConverter.cs: use System.Reflection when getting the
5096         properties of Cursors, as TypeDescriptor.GetProperties isn't
5097         returning static properties.
5098
5099 2006-10-25  Chris Toshok  <toshok@ximian.com>
5100
5101         * PropertyGridView.cs: factor out the up/down handling, and reuse
5102         it for page up/down.  also add End/Home support.
5103
5104 2006-10-25  Chris Toshok  <toshok@ximian.com>
5105
5106         * PropertyGridView.cs:
5107
5108         - ensure the selected grid item is visible in the scrolled area,
5109         fixes bug #79572.
5110
5111         - fix Keys.Down handling when you're on the last item in the
5112         propertygrid.
5113
5114 2006-10-25  Mike Kestner  <mkestner@novell.com>
5115
5116         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5117         clicks too.  Fixes #79725.
5118
5119 2006-10-24  Chris Toshok  <toshok@ximian.com>
5120
5121         * PropertyGrid.cs: use property.Converter instead of
5122         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5123         TypeConverters declared on the property as well as on the
5124         PropertyType.  Fixes bug #79678.
5125
5126 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5127
5128         * MimeIcon.cs, Mime.cs:
5129           Fallback to the default platform handler if no shared mime info
5130           stuff exists (fixes #79693).
5131
5132 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5133         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5134         from previous fix (duh).
5135
5136 2006-10-20  Chris Toshok  <toshok@ximian.com>
5137
5138         * PropertyGridView.cs: the dropdown should be MIN(number of items
5139         in list, 15).  Fixes #79551.
5140
5141 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5142         Fixes #79384, #79394, #79652, #79667
5143         * Application.cs: 
5144         
5145         - Modal windows are now destroyed in the proper order for windows
5146         
5147         * ContainerControl.cs:
5148         
5149         - ActiveControl setter has more conditions on when to return:
5150                 - if we're reselecting the active control, but it actually
5151                 didn't have focus (window hidden or some such), it runs
5152                 - if the active control being selected doesn't actually 
5153                 exist in the container, it returns
5154         
5155         * Form.cs
5156         
5157         - The ShowDialog now gets the current form as the owner when
5158         invoking without parameters, and correctly activates the owner 
5159         when returning
5160         
5161         * MessageBox.cs
5162         
5163         - MessageBox now catches the Escape key to exit
5164
5165 2006-10-20  Chris Toshok  <toshok@ximian.com>
5166
5167         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5168         most of bug #79676):
5169
5170         - you can navigate around the property grid with the arrow keys.
5171
5172         - the dropdown is sized properly when the pg has a vertical
5173         scrollbar.
5174
5175         - fix the indentation for subentries, and properly select the
5176         entire label rect.
5177
5178         - fix the gray bar's drawing (only draw it to the last element,
5179         not for the height of the control.  Also make sure we draw that
5180         last horizontal grid line.
5181
5182         - use the same mechanism the datagrid uses wrt the editing textbox
5183         when scrolling/resizing/etc.  Namely, we hide it first, do the
5184         operation, then show it again (if it's still visible).
5185         
5186         - aggressively remove a lot of unnecessary refreshes (and also
5187         calls to Invalidate(). call more limited variants, and only redraw
5188         what we need.)
5189         
5190         * PropertyGrid.cs:
5191
5192         - when we're populating the merged collection, fill in the UI
5193         parent with either the passed in item, or the category item we
5194         create.
5195
5196         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5197
5198         * GridItem.cs: drop some fully qualified names.
5199         
5200         * GridEntry.cs: add a "UIParent", which is basically the parent
5201         treenode.
5202
5203         * GridItemCollection.cs: add an IndexOf method.
5204
5205 2006-10-20  Mike Kestner  <mkestner@novell.com>
5206
5207         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5208         a working win32 NC invalidation mechanism, we can't invalidate
5209         menus.  [Fixes #79705]
5210
5211 2006-10-20  Mike Kestner  <mkestner@novell.com>
5212
5213         * ListBox.cs : don't update the VScrollbar if the list is empty,
5214         just hide it.  [Fixes #79692]
5215
5216 2006-10-20  Jackson Harper  <jackson@ximian.com>
5217
5218         * RichTextBox.cs: Handle some special chars better, and don't skip
5219         the entire group when we encounter a special char that we don't
5220         handle correctly.
5221
5222 2006-10-18  Chris Toshok  <toshok@ximian.com>
5223
5224         * PropertyGridView.cs: address a number of issues from bug #79676,
5225         mostly of the cosmetic variety.
5226
5227         - The highlight rectangle for indented items not extends all the
5228         way to the left.
5229
5230         - Indented items aren't indented so much.
5231
5232         - the dropdown is properly sized width-wise if the pg has a
5233         vertical scrollbar.
5234
5235 2006-10-18  Chris Toshok  <toshok@ximian.com>
5236
5237         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5238         systray stuff is rather convoluted to begin with.
5239
5240         systray icons are a single window for some reason (that I haven't
5241         figured out yet), and for them, client_window == whole_window.
5242         Given the way the tests are structured elsewhere to determine
5243         which paints are pending (client vs. nc), that situation will
5244         always yield PAINT, not NCPAINT.  So, if we have a pending
5245         nc_expose and no pending expose, remove the hwnd from the paint
5246         queue, and also set nc_expose_pending to false, to keep us from
5247         blocking further expose's adding the hwnd to the paint queue.
5248
5249         phew.  like i said, a rather convoluted change.  Fixes the
5250         notifyicon repaint issues in bug #79645.
5251
5252 2006-10-18  Chris Toshok  <toshok@ximian.com>
5253
5254         * Form.cs: when getting the backcolor of the form, don't get
5255         base.BackColor, as this allows parents to influence the background
5256         color.  This breaks mdi forms.  Instead, if the background_color
5257         is empty, return the default.
5258
5259 2006-10-18  Chris Toshok  <toshok@ximian.com>
5260
5261         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5262         to being private instead of internal static.
5263
5264         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5265         crap, it wasn't working for more deeply nested controls anyway,
5266         and we already have the is_recreating flag - use that instead.
5267         Before calling DestroyHandle in RecreateHandle, recurse through
5268         the control tree setting it to true.  this returns the recreate
5269         code to much of its original simplicity, while now guaranteeing we
5270         actually recreate everything we're supposed to.  This change gets
5271         fyireporting actually showing mdi children.
5272
5273 2006-10-17  Chris Toshok  <toshok@ximian.com>
5274
5275         * Form.cs: remove some debug spew, and collapse some duplicate
5276         code at the end of SetClientSizeCore.
5277
5278         * XplatUIX11.cs: 
5279         - add some more debug spew here too wrt Destroy handling.
5280         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5281         in Control's handling of WM_DESTROY.
5282         - Remove the handling of zombie window DestroyNotifies from the
5283         event loop - we don't need it.  Now the only DestroyNotifies we
5284         actually handle are ones generated by X.
5285         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5286         match gtk's (functioning) handling of this. This keep metacity
5287         from leaving droppings in the form of wm borders with no window
5288         contents all over the place.
5289
5290         * Control.cs:
5291         - add a bunch of debug spew wrt control recreation.
5292         - fix a bug where we weren't tracking Visible properly on
5293         recreated hwnds.
5294         - fixed the WM_PAINT double buffer handling to support re-entrant
5295         calls (yes, i know it's gross, but it's happening to us).
5296
5297 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5298         * ThemeWin32Classic.cs: changed drawing of selected days
5299         to make them look better.
5300
5301 2006-10-16  Chris Toshok  <toshok@ximian.com>
5302
5303         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5304         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5305
5306         * XplatUIX11.cs: move away from using hwnd.client_dc and
5307         hwnd.non_client_dc and on to a stack of dc's (and in window's
5308         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5309         without puking or not disposing of Graphics objects.
5310
5311         * XplatUIOSX.cs: same.
5312
5313         * XplatUIWin32.cs: same.
5314
5315 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5316
5317         * FileDialog.cs: Don't call on_directory_changed inside
5318           OnSelectedIndexChanged (it changes the SelectedIndex too).
5319           Instead move it to OnSelectionChangeCommitted.
5320
5321 2006-10-13  Chris Toshok  <toshok@ximian.com>
5322
5323         * XplatUIX11.cs: more Destroy work.  the current code does the
5324         following things, in order:
5325
5326         1. Enumerates all handles of all controls at or below the one
5327         being destroyed, in pre-order.  As it is doing this, it marks the
5328         handles as zombie and clears all references to them.
5329         
5330         2. calls XDestroyWindow on the window passed in.
5331
5332         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5333         list.
5334
5335 2006-10-13  Chris Toshok  <toshok@ximian.com>
5336
5337         * XplatUIX11.cs: set hwnd.zombie to true before calling
5338         SendMessage (WM_DESTROY).  this keeps us from marking the new
5339         window a zombie, and also keeps us from calling sendmessage at
5340         all.
5341
5342 2006-10-13  Jackson Harper  <jackson@ximian.com>
5343
5344         * TextControl.cs: Do not show the caret and selection at the same
5345         time.  Reduces ugliness by 35%.
5346
5347 2006-10-13  Chris Toshok  <toshok@ximian.com>
5348
5349         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5350         zombie after we do the recursive call, so we actually do call
5351         SendMessage on the children controls.
5352         (GetMessage): if we find a pending paint event for a zombie hwnd,
5353         remove the hwnd from the paint queue, or else it will always be
5354         there (and we'll effectively loop infinitely)
5355
5356 2006-10-13  Mike Kestner  <mkestner@novell.com>
5357
5358         * MenuItem.cs : add Selected format under keynav too.
5359         Fixes #79528.
5360
5361 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5362
5363         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5364         implementation and that of MS.
5365
5366 2006-10-13  Chris Toshok  <toshok@ximian.com>
5367
5368         * Control.cs (OnInvalidated) only futz with the invalid_region if
5369         the control is double buffered.  this fixes the apparent hang in
5370         the ListView unit tests.  Someone needs to make the
5371         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5372
5373 2006-10-13  Chris Toshok  <toshok@ximian.com>
5374
5375         * PropertyGridView.cs:
5376
5377         - do a little refactoring so that only one place calls
5378         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5379         else call that.  Also make it Refresh, since there are redraw bugs
5380         otherwise (we should take a look at that...)
5381
5382         - do a little more refactoring work to share the body of code
5383         involved with the drop down.  it was duplicated in the code
5384         dealing with the listbox handling and in the code dealing with the
5385         UITypeEditors.
5386
5387         - add a Capture to the dropdown form's control once it's
5388         displayed, and add a MouseDown handler that checks to make sure
5389         the position is inside the control.  If it's not, close the
5390         dropdown.  This fixes #78190.
5391
5392         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5393         if the value is different than the initial value.
5394         
5395 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5396
5397         * Control.cs: see #78650
5398         - Fixed GetNextControl for several cases:
5399                 - Changed FindFlatForward to return 
5400                 correct sibling control when more than one
5401                 control has same TabIndex as the currently 
5402                 focused one.
5403                 - Changed FindFlatBackward to loop children
5404                 from last to first and apply same logic as in
5405                 FindFlatForward
5406                 - Changed FindControlForward to search for
5407                 children when control is not a container
5408                 but has children, or search for siblings if
5409                 control is a container...
5410                 - Changed FindControlBackward   to continue
5411                 searching for child controls when hitting 
5412                 Panel-like parents
5413                 
5414         - Fixed Focus method to update ActiveControl
5415         (FocusTest.FocusSetsActive failure)
5416         
5417         * TabControl.cs:
5418         - Focus rectangle now refreshes when gaining
5419         or losing focus
5420         - Removed grab for Tab key on IsInputKey that 
5421         was keeping tab navigation from working (#78650)
5422
5423 2006-10-13  Chris Toshok  <toshok@ximian.com>
5424
5425         * PropertyGridView.cs:
5426         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5427         SelectedObjects.
5428
5429         - Deal with GridItem.Value == null a few places.
5430
5431         * PropertyGrid.cs: 
5432         - replace the PopulateGridItemCollection with a pair of methods
5433         which compute the intersection of all the properties in the
5434         SelectedObjects array.  Fixes #79615.
5435
5436         - Throw ArgumentException from set_SelectedObjects if there's a
5437         null in the array.
5438
5439         - Add GetTarget method which can be used to traverse up the
5440         GridItem.Parent chain.  It depends on the assumption that
5441         selected_objects for different GridEntries are always in the same
5442         order (a safe assumption).  Use this method and loop over all the
5443         selected objects in the entry when calling RemoveValueChanged and
5444         AddValueChanged.
5445         
5446         * GridEntry.cs: Make this handle multiple selected objects.
5447         .Value returns null if not all the selected objects share the same
5448         value.
5449
5450 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5451         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5452           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5453           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5454           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5455           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5456         add additional functionality.
5457
5458 2006-10-12  Mike Kestner  <mkestner@novell.com>
5459
5460         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5461         * HelpProvider.cs : new ToolTipWindow ctor sig.
5462         * ToolTip.cs : remove ToolTip param from Window sig since it is
5463         not used.
5464         * ToolBar.cs : add tooltip support.  Fixes #79565.
5465
5466 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5467
5468         * ComboBox.cs: move the events in set_SelectedIndex to 
5469         after the call to HighlightIndex in order to avoid 
5470         possible recursion and subsequent problems with the call
5471         to HighlightIndex and include a range check in 
5472         set_HighlightIndex. Fixes #79588
5473         
5474 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5475
5476         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5477         to ui thread's settings instead of sunday. 
5478         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5479
5480 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5481
5482         * DateTimePicker.cs
5483         * MonthCalendar.cs
5484         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5485         and implement missing functionality (selecting different parts 
5486         of the date and edit them individually with the keyboard).
5487         
5488 2006-10-11  Chris Toshok  <toshok@ximian.com>
5489
5490         * Control.cs (OnInvalidated): fix NRE relating to last change.
5491
5492 2006-10-11  Chris Toshok  <toshok@ximian.com>
5493
5494         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5495         atoms in _NET_WM_STATE here if the window is maximized.  We need
5496         to do this because we're *replacing* the existing _NET_WM_STATE
5497         property, so those atoms will be lost otherwise, and any further
5498         call to GetWindowState will return Normal for a window which is
5499         actually maximized.  Fixes #79338.
5500
5501 2006-10-11  Jackson Harper  <jackson@ximian.com>
5502
5503         * TextControl.cs: Special case for setting selection end to
5504         selection start, we basically kill the anchor.
5505         - some todo comments.
5506
5507 2006-10-11  Chris Toshok  <toshok@ximian.com>
5508
5509         * Control.cs: switch to using an "invalid_region" to track which
5510         parts of the image buffer need updating.  This is more code than
5511         the simple fix from r66532.  That version just attempted to always
5512         fill the entire buffer on redraw, which turns out to be
5513         inefficient when invalidating small rectangles.  This version
5514         simply adds the invalid rectangle to the invalid region.  When we
5515         get any WM_PAINT message we see if it can be filled using the
5516         image buffer, and if it can't (if the paint event's clip rectangle
5517         is visible in the invalid region) we first fill the image buffer.
5518         So, the image buffer is still a cache, we just fill it lazily.
5519
5520         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5521         need it any longer.
5522
5523 2006-10-11  Chris Toshok  <toshok@ximian.com>
5524
5525         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5526         well as size after calling XMoveResizeWindow.  This keeps us from
5527         ignoring future SetWindowPos calls.  Fixes the disappearing
5528         DateTimePicker in the ToolBarDockExample from bug #72499.
5529
5530 2006-10-11  Chris Toshok  <toshok@ximian.com>
5531
5532         * TextBoxBase.cs: reorder things a bit when it comes to
5533         resizing-causing-recalculation.  we were recalculating the
5534         document when our position was changed, which shouldn't happen.
5535         We only care about size changes.  Clear up some more redundant
5536         recalculation calls while I'm at it.  This makes the toolbar dock
5537         example snappy when you're just dragging toolbars around (since it
5538         causes a relayout whenever you move one.)
5539
5540 2006-10-11  Chris Toshok  <toshok@ximian.com>
5541
5542         * ToolBarButton.cs (get_Rectangle): this only returns
5543         Rectangle.Empty if Visible == false, or Parent == null.
5544         Parent.Visible doesn't matter.
5545
5546 2006-10-10  Chris Toshok  <toshok@ximian.com>
5547
5548         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5549         by .net 1.1, so switch to an internal method instead.
5550
5551 2006-10-10  Chris Toshok  <toshok@ximian.com>
5552
5553         * Control.cs (WM_PAINT): when a control is double buffered we draw
5554         initially to the ImageBuffer and then copy from there.  But when a
5555         parent control which has child controls is double buffered, the
5556         initial drawing doesn't encompass the entire ClientRectangle of
5557         the parent control, so we end up with uninitialized bits (this is
5558         easily seen by dragging the top toolbar in
5559         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5560         manually set the ClipRectangle of the paint_event (only the one we
5561         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5562         of the nastiness in bug #72499.
5563
5564         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5565         which we use in Control.cs's WM_PAINT handling.
5566
5567 2006-10-10  Jackson Harper  <jackson@ximian.com>
5568
5569         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5570
5571 2006-10-10  Chris Toshok  <toshok@ximian.com>
5572
5573         * Cursor.cs: Apply a slightly different patch to the one suggested
5574         in #79609.
5575
5576 2006-10-10  Jackson Harper  <jackson@ximian.com>
5577
5578         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5579         not the parent form.
5580         * TextControl.cs: use difference in old line count vs new count to
5581         calculate how many lines were added, this takes into account soft
5582         line breaks properly.
5583
5584 2006-10-10  Chris Toshok  <toshok@ximian.com>
5585
5586         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5587         rectangle located at 0,0 and the size of the text.  Use
5588         ClientRectangle instead.  This fixes rendering of non-left aligned
5589         link labels.
5590
5591 2006-10-10  Jackson Harper  <jackson@ximian.com>
5592
5593         * TextBoxBase.cs: When we set the selection start position the
5594         caret.
5595         * TextControl.cs: Need to update the caret when we decrement it to
5596         zero.
5597         - Make sure that the selection_visible flag gets reset to false if
5598         the selection isn't visible.  Before this you could get it set to
5599         visible by changing the selection start, then changing the end to
5600         equal the start.
5601
5602 2006-10-09  Jackson Harper  <jackson@ximian.com>
5603
5604         * TreeView.cs: Don't update scrollbars when we aren't visible.
5605         * TreeNodeCollection.cs: Only need to update scrollbars if being
5606         added to an expanded visible node or the root node.
5607
5608 2006-10-09  Chris Toshok  <toshok@ximian.com>
5609
5610         * XplatUIX11.cs (SendMessage): fix NRE.
5611
5612 2006-10-09  Jackson Harper  <jackson@ximian.com>
5613
5614         * TextBoxBase.cs: Implement horizontal autoscrolling.
5615         * TextControl.cs: Add a movement types that allows moving forward
5616         and backwards without wrapping.
5617
5618 2006-10-09  Mike Kestner  <mkestner@novell.com>
5619
5620         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5621         with focus "expansion" of labels.  Fixes #79532 and then some.
5622         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5623         when wrapping.
5624
5625 2006-10-09  Jackson Harper  <jackson@ximian.com>
5626
5627         * TextBoxBase.cs: Set the default max values to MaxValue since
5628         we use the scrollbar for autoscrolling and the default value is
5629         100.  If we don't do this the caret won't keep up with typing
5630         after about 18 characters.
5631         * TextControl.cs: Make sure the selection is offset by the
5632         viewport x.  This fixes selection when using auto scrolling.
5633
5634 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5635         
5636         * Form.cs: The active control should be selected after the 
5637         OnLoad so that any child control initialization that affects
5638         the selection is done. Fixes #79406
5639
5640 2006-10-06  Chris Toshok  <toshok@ximian.com>
5641
5642         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5643         to have no evil effects.
5644
5645         - Stop selecting StructureNotifyMask on non-toplevel windows.
5646
5647           The only way children should be resized is by using the SWF api,
5648           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5649           Toplevel windows can be interacted with via the window manager,
5650           and so we keep the input mask there.
5651
5652           The other event StructureNotifyMask gives us (that we care
5653           about) is DestroyNotify.  The code is already structured such
5654           that it assumes we won't be getting a DestroyNotify event for
5655           the window we pass to XDestroyWindow (which is what
5656           StructureNotifyMask is supposed to guarantee.)  So, that code
5657           shouldn't be affected by this either.
5658
5659         - Stop selecting VisibilityChangeMask altogether.
5660
5661           We weren't doing anything with the resulting events anyway.
5662         
5663         This vastly reduces the number of X requests and events we see
5664         when resizing/laying out a large ui.
5665
5666 2006-10-06  Chris Toshok  <toshok@ximian.com>
5667
5668         * ScrollableControl.cs (DisplayRectangle): we need to take into
5669         account the DockPadding regardless of whether or not auto_scroll
5670         == true.  rework this slightly to this effect, and fix bug #79606,
5671         and part of #72499 (you can now see the drag handles and drag
5672         toolbars around).
5673
5674 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5675
5676         * ListViewItem.cs: Collections of selected and checked items are now
5677         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5678         we mark the collection "dirty".
5679         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5680         to only clear SelectedItems when a new item is selected and MultiSelect
5681         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5682         event of ListViewItemCollection, and mark its list dirty whenever
5683         that event is fire. This allows us to return selected/checked items 
5684         in the same order as they are in the Items collection. This matches
5685         the MS behavior.
5686
5687 2006-10-06  Chris Toshok  <toshok@ximian.com>
5688
5689         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5690         right mouse clicks.  Fixes bug #79593.
5691
5692 2006-10-06  Chris Toshok  <toshok@ximian.com>
5693
5694         * Splitter.cs: doh, fix splitters that don't want to cancel the
5695         movement when you drag them.  Also, impose the limits on the
5696         values we send to the SplitterMovingEvent.  Fixes #79598.
5697
5698 2006-10-06  Jackson Harper  <jackson@ximian.com>
5699
5700         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5701         since we use this for auto scrolling also.
5702
5703 2006-10-05  Chris Toshok  <toshok@ximian.com>
5704
5705         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5706         beginning to think that most datagrid column types don't need this
5707         method.  Fixes bug #79392.
5708
5709 2006-10-05  Chris Toshok  <toshok@ximian.com>
5710
5711         * DataGrid.cs: move back to a more lazy scheme for creating the
5712         CurrencyManager, so we aren't updating it every time you set
5713         either DataSource or DataMember.  Also, don't call
5714         RecreateDataGridRows if the currency manager hasn't changed.
5715
5716 2006-10-05  Chris Toshok  <toshok@ximian.com>
5717
5718         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5719         emitted, SelectedIndex should already be updated.  Fixes bug
5720         #78929.
5721
5722 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5723
5724         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5725           ToolStripTextBox.cs: Initial commit.
5726         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5727
5728 2006-10-05  Jackson Harper  <jackson@ximian.com>
5729
5730         * TabControl.cs: We need to invalidate the tab control area when
5731         new ones are added (duh).
5732
5733 2006-10-03  Chris Toshok  <toshok@ximian.com>
5734
5735         * Form.cs (ProcessDialogKey): if the focused control is in this
5736         form and is a button, call its PerformClick method here.  Fixes
5737         #79534.
5738
5739 2006-10-04  Jackson Harper  <jackson@ximian.com>
5740
5741         * TabPage.cs: Ignore setting of Visible, and add an internal
5742         method for setting the controls visibility.  TabPage's Visible
5743         property is a little strange on MS, this seems to make us
5744         compatible, and fixes cases where people set all the tab pages to
5745         visible.
5746         * TabControl.cs: Use the new internal setting on tab pages
5747         visibility.
5748
5749 2006-10-03  Mike Kestner  <mkestner@novell.com>
5750
5751         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5752
5753 2006-10-03  Mike Kestner  <mkestner@novell.com>
5754
5755         * ListView.cs : use is_visible instead of Visible to check if 
5756         scrollbars should be placed/sized.  Also some max_wrap_width
5757         love for LargeIcon view.  [Fixes #79533]
5758
5759 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5760
5761         * TextControl.cs :
5762           Make set_TextAlign() do actually update the align. Fixed #78403.
5763
5764 2006-10-03  Chris Toshok  <toshok@ximian.com>
5765
5766         * DataGrid.cs: fix a crash when switching datasources if the
5767         vertical scrollbar is at someplace other than Value = 0.  Also,
5768         reduce the number of recalculation passes we do in SetDataSource
5769         from 2 to 1.
5770
5771 2006-10-03  Jackson Harper  <jackson@ximian.com>
5772
5773         * TextBoxBase.cs: Move the if value the same bail check up, we
5774         don't want to empty the document if it is already empty, this
5775         seems to severly mess up the caret.  TODO: I should probably fix
5776         the empty statement to update teh caret somehow.
5777
5778 2006-10-03  Chris Toshok  <toshok@ximian.com>
5779
5780         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5781         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5782         reflection, an internal row type, properties on said type, etc.)
5783         will work with our datagrid.  Fixes #79531.
5784
5785 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5786
5787         * FileDialog.cs: Don't crash if a path is not accessible
5788           (System.UnauthorizedAccessException). Fixes #79569.
5789         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5790           a ':' too. Return unknown icon for those paths/files.
5791
5792 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5793
5794         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5795         GetContainerControl returns null.
5796
5797 2006-10-02  Chris Toshok  <toshok@ximian.com>
5798
5799         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5800         call to XGetWindowAttributes instead of "handle".  fixes an X
5801         error using notifyicon after the NotifyIconWindow to Form base
5802         class switch.
5803
5804 2006-10-02  Chris Toshok  <toshok@ximian.com>
5805
5806         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5807         server grab and looping we need to do to get down to the most
5808         deeply nested child window.
5809         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5810         QueryPointer again after the WarpPointer so we can generate a
5811         proper (fake) MotionNotify event to be enqueued in the destination
5812         window's queue.
5813         (GetCursorPos): call QueryPointer.
5814
5815         Fixes #79556.
5816
5817 2006-10-02  Jackson Harper  <jackson@ximian.com>
5818
5819         * NotifyIcon.cs: Derive the notify icon from a form, so things
5820         like FindForm work on it.
5821         - Swallow the WM_CONTEXTMENU message, since that is generated on
5822         mouse down, and context menu is a mouse up kinda guy.  I believe
5823         the correct fix here is probably to make the notify icon entirely
5824         NC area, but this seems to work fine for anyone not manipulating
5825         WndProc.
5826
5827 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5828
5829         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5830           ToolStripItemCollection.cs, ToolStripLabel.cs,
5831           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5832           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5833           Initial implementation.
5834         * TextRenderer.cs: Provide padding to MeasureText.
5835
5836 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5837
5838         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5839         of ButtonBaseAccessibleObject. Fix bug #79552.
5840
5841 2006-10-02  Jackson Harper  <jackson@ximian.com>
5842
5843         * MdiWindowManager.cs: When maximizing use the containers client
5844         rect, not it's bounds, so nc area is accounted correctly.
5845         - Use the parent form's size for the menu position, since the
5846         client isn't always the full form size.
5847
5848 2006-10-01  Chris Toshok  <toshok@ximian.com>
5849
5850         * ScrollableControl.cs: make sure neither right_edge or
5851         bottom_edge are < 0, since they're used as LargeChange for the
5852         horiz/vert scrollbars respectively.  Fixes #79539.
5853
5854 2006-10-01  Chris Toshok  <toshok@ximian.com>
5855
5856         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5857         the xplatuix11 code can cause us to destroy/recreate our handle.
5858
5859         * XplatUIX11.cs
5860         (SystrayAdd):
5861         - this code can be invoked many times for the same Hwnd.  Make
5862           sure we only destroy the client window once (the first time this
5863           method is called).  This fixes bug #79544.
5864         - Remove the call to the improperly bound XSync.  why we had two
5865           bindings to this, I will never know, but this call resulted in
5866           events being discarded from the queue(!).
5867         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5868           not our current state but the state we wish to be in.  So, 0 if
5869           we don't want to be mapped.  Change it to 1.
5870         (SystrayRemove): The XEMBED spec makes mention of the fact that
5871         gtk doesn't support the reparent of client windows away from the
5872         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5873         The only avenue we have for removing systray icons is to destroy
5874         them.  We don't want the handle to go away for good, though, so
5875         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5876         #79545.
5877         
5878 2006-10-01  Chris Toshok  <toshok@ximian.com>
5879
5880         * Form.cs (WndProc): inline the native_enabled variable usage into
5881         the cases in which it's used.  Fixes #79536.
5882
5883 2006-09-29  Mike Kestner  <mkestner@novell.com>
5884
5885         * ListView.cs : toggle the selection state for ctrl clicks in 
5886         multiselect mode. [Fixes #79417]
5887
5888 2006-09-29  Mike Kestner  <mkestner@novell.com>
5889
5890         * ListView.cs : kill CanMultiSelect and refactor the selection
5891         code to support multiselection in the absence of mod keys. Steal
5892         arrow/home/end keys by overriding InternalPreProcessMessage to
5893         restore regressed keynav behavior.
5894         [Fixes #79416]
5895
5896 2006-09-29  Jackson Harper  <jackson@ximian.com>
5897
5898         * MdiClient.cs: Repaint the titlebars when the active window is
5899         changed.
5900
5901 2006-09-29  Chris Toshok  <toshok@ximian.com>
5902
5903         * Application.cs: when entering a runloop with a modal, make sure
5904         the hwnd is enabled.  Fixes #79480.
5905
5906 2006-09-29  Chris Toshok  <toshok@ximian.com>
5907
5908         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5909         when ListManager.CanAddRows == false, bump us back one.
5910
5911         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5912         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5913         using a datagrid, which is not right.
5914         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5915         is an IEditable, but call property_descriptor.SetValue regardless.
5916         fixes #79435.
5917
5918 2006-09-29  Chris Toshok  <toshok@ximian.com>
5919
5920         * DataGridBoolColumn.cs: we need to test equality in the face of
5921         possible null values (as is the case with the default NullValue).
5922         This patch keeps us from crashing in that case.
5923
5924 2006-09-29  Jackson Harper  <jackson@ximian.com>
5925
5926         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
5927         here, since it will get called for every node collection in the
5928         tree. This is now done in the treeview once the sorting is
5929         finished.
5930         * TreeView.cs: Recalculate the visible order, and update the
5931         scrollbars after sorting, set the top nope to the root so that the
5932         recalc actually works.
5933
5934 2006-09-29  Chris Toshok  <toshok@ximian.com>
5935
5936         * LinkLabel.cs: more handling of the default link collection in
5937         the face of LinkArea manipulation.  The default link collection
5938         contains 1 element (start=0,length=-1).  If the user sets LinkArea
5939         to anything and the links collection is the default, clear it.
5940         Then only add the link if its nonempty.  Fixes #79518.
5941
5942 2006-09-29  Chris Toshok  <toshok@ximian.com>
5943
5944         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
5945         piece correctly when we hit a '\n'.  Fixes #79517.
5946
5947 2006-09-29  Chris Toshok  <toshok@ximian.com>
5948
5949         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
5950         change the binding of gdk_init_check to take two IntPtr's, and
5951         pass IntPtr.Zero for both of them.  Fixes #79520.
5952
5953 2006-09-29  Mike Kestner  <mkestner@novell.com>
5954
5955         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
5956         [Fixes #78779]
5957
5958 2006-09-28  Jackson Harper  <jackson@ximian.com>
5959
5960         * XplatUIX11.cs: When translating NC messages make sure we go from
5961         whole window to screen, not client window to screen.
5962         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
5963         method doesn't exist
5964         - Skip over controls that aren't forms when arranging.
5965
5966 2006-09-28  Jackson Harper  <jackson@ximian.com>
5967
5968         * XplatUIWin32.cs: Clip the rect to the parent window.
5969         * XplatUIStructs.cs: Add clipping modes struct.
5970         * InternalWindowManager.cs: New private method that factors title
5971         bar heights in when calculating the pos of an NC mouse message.
5972         - Use SendMessage to force a paint when the form's size is changed
5973         instead of painting the decorations immediately.
5974         - Don't let the NC button click messages get to DefWndProc,
5975         because they will attempt to handle windowing themself, and this
5976         messes up z-order (it will put them in front of the scrollbars).
5977         * XplatUIX11.cs: Make sure that we don't reset window managers if
5978         we already have one (ie the window is an MDI window).
5979
5980 2006-09-28  Chris Toshok  <toshok@ximian.com>
5981
5982         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
5983         menu code really needs going over.
5984
5985 2006-09-27  Chris Toshok  <toshok@ximian.com>
5986
5987         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
5988         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
5989         window is maximizable.  So, we need to make sure that even if we
5990         clear the border/wm frame of those functions, they're still
5991         available (basically, we remove the decoration without removing
5992         the function).  Half the fix for #79338.
5993
5994 2006-09-27  Chris Toshok  <toshok@ximian.com>
5995
5996         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
5997         Fixes bug #79515.
5998
5999 2006-09-27  Chris Toshok  <toshok@ximian.com>
6000
6001         * Splitter.cs: reorder things a bit so that we don't actually
6002         draw/move the splitter until after calling OnSplitterMoving.  This
6003         lets users cancel/disallow the movement by explicitly setting
6004         event.SplitX/SplitY.  Fixes #79372.
6005
6006 2006-09-27  Jackson Harper  <jackson@ximian.com>
6007
6008         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6009         because it is most likely on a window being destroyed, and that
6010         will give us an X11 error.
6011
6012 2006-09-27  Chris Toshok  <toshok@ximian.com>
6013
6014         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6015         the dropdown button now toggles between showing and hiding the
6016         dropdown.  Also, get rid of dropdown_form_showing and just use
6017         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6018         that part to someone who has handled Capture-fu before.
6019
6020 2006-09-27  Chris Toshok  <toshok@ximian.com>
6021
6022         * DataGrid.cs: return false if alt isn't pressed when '0' is
6023         pressed.  this keeps the '0' key from being swallowed, and fixes
6024         bug #79350.
6025
6026 2006-09-27  Chris Toshok  <toshok@ximian.com>
6027
6028         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6029         Calling Refresh (in response to a scrollbar event) screws up the
6030         scrollbar painting.  Fixes bug #78923.
6031
6032 2006-09-27  Chris Toshok  <toshok@ximian.com>
6033
6034         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6035         then insert into hashtable" blocks threadsafe.
6036
6037 2006-09-27  Chris Toshok  <toshok@ximian.com>
6038
6039         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6040         baseclass's, since otherwise the
6041         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6042         effect.  This gets the close button back in messageboxes.
6043
6044 2006-09-27  Chris Toshok  <toshok@ximian.com>
6045
6046         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6047         flag, not just != 0.  this makes flags that are actually multiple
6048         bits (like WS_CAPTION) work.  fixes bug #79508.
6049
6050 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6051
6052         * PageSetupDialog.cs: add support for getting and settings the 
6053         paper size, source and orientation.
6054
6055 2006-09-26  Chris Toshok  <toshok@ximian.com>
6056
6057         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6058         and caption == "", we need to remove the resize handles as well as
6059         the title bar.
6060
6061         * Control.cs (set_Text): turns out that setting Text on a form
6062         should change the WM styles on the window, since if ControlBox ==
6063         false, the only way to get a window border is to have a non-""
6064         Text property.  check winforms/forms/text.cs for an example.  so,
6065         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6066         update both window styles and title.  This fixes a lot of dialogs
6067         (including the preferences dialog in MonoCalendar.)
6068
6069 2006-09-26  Chris Toshok  <toshok@ximian.com>
6070
6071         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6072         control isn't a Form), call Win32ShowWindow to hide the window,
6073         but don't update the control Visible property.  When we reparent
6074         back to a parent control, call SetVisible in order for the
6075         window's visibility to be reinstated.
6076
6077         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6078         the FosterParent.
6079
6080         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6081         call for good, since it breaks MonoCalendar (and other things I'm
6082         sure.) Also, set all_controls to null *after* the owner calls,
6083         which end up regenerating it.
6084         (ChangeParent): allow new_parent to be == null, passing
6085         IntPtr.Zero down to XplatUI.
6086
6087         this fixes #79294 the right way.
6088
6089 2006-09-26  Mike Kestner  <mkestner@novell.com>
6090
6091         * GridEntry.cs : internal SetParent method.
6092         * PropertyGrid.cs : attach to property changed on the proper
6093         target if we have a hierarchical grid with subobjects. Setup
6094         GridItem.Parent for hierarchical items.
6095         * PropertyGridView.cs : Set value on the correct target for
6096         hierarchical grids. [Fixes #78903]
6097
6098 2006-09-26  Chris Toshok  <toshok@ximian.com>
6099
6100         * Control.cs (ChildNeedsRecreating): this should return true if
6101         either we're being recreated and the child is in our list, or our
6102         parent is waiting for our recreation.
6103
6104 2006-09-26  Chris Toshok  <toshok@ximian.com>
6105
6106         * Control.cs (ControlCollection.Remove): reinstate the
6107         value.Hide() call as suggested in bug #79294.
6108
6109 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6110
6111         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6112         coordinates (versus a relative move).
6113
6114 2006-09-26  Chris Toshok  <toshok@ximian.com>
6115
6116         * Control.cs: rework child recreation a little bit.  It turns out
6117         that we race between the DestroyNotify the WM_DESTROY message.  If
6118         the parent gets its DestroyNotify before the child gets the
6119         WM_DESTROY message, the child ends up not recreating (since the
6120         parent finishes its recreation on DestroyNotify, and the child
6121         checks ParentIsRecreating.)
6122
6123         So, instead we store off a list of all the child controls which
6124         need to be recreated when the parent control starts to recreate
6125         itself.  Then, when child controls get their WM_DESTROY message we
6126         check to see if they're in the parent's pending recreation list,
6127         and if so, we recreate.  This removes all dependency on ordering
6128         from the code and fixes the initial MonoCalendar upgrade dialog.
6129         
6130 2006-09-26  Jackson Harper  <jackson@ximian.com>
6131
6132         * TextControl.cs: Use the Line to get the length of the line,
6133         since soft line breaks can change the end line.
6134
6135 2006-09-26  Chris Toshok  <toshok@ximian.com>
6136
6137         * Control.cs (ControlCollection.AddImplicit): don't add the
6138         control again if it's already in one of our lists.  This keeps us
6139         from adding controls over and over again for comboboxes when their
6140         handle gets recreated (as the combobox adds implicit controls in
6141         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6142
6143 2006-09-26  Jackson Harper  <jackson@ximian.com>
6144
6145         * TextControl.cs: When deleting characters make sure that any
6146         orphaned zero lengthed tags get deleted.
6147         - Fix ToString for zero lengthed tags.
6148
6149 2006-09-25  Jackson Harper  <jackson@ximian.com>
6150
6151         * TextControl.cs: When getting a tag at the location there can be
6152         multiple tags at the same spot, these are 0-lengthed tags that
6153         appear when extra formatting has been stuck in a location.  We
6154         need to pull out the last of these 0 lengthed tags.
6155
6156 2006-09-25  Jackson Harper  <jackson@ximian.com>
6157
6158         * TextControl.cs: Fix print out in debug method.
6159         * TextBoxBase.cs: When text is set bail if we are setting to the
6160         previous value.
6161         
6162 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6163
6164         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6165           It is now possible to change the selected index in a FontXXXListBox
6166           with the up and down arrow keys from the FontXXXTextBoxes.
6167           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6168           FontXXXListBoxes to match ms.
6169
6170 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6171
6172         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6173         anyone can dispose it, anytime. All other properties returns enums, 
6174         structs or basic types so they don't need such tricks.
6175
6176 2006-09-22  Jackson Harper  <jackson@ximian.com>
6177
6178         * XplatUI.cs:
6179         * XplatUIWin32.cs:
6180         * Clipboard.cs:
6181         * DataFormats.cs:
6182         * XplatUIOSX.cs:
6183         * XplatUIDriver.cs: Update interface to add a primary selection
6184         flag, so the driver can use the primary selection buffer if
6185         needed.
6186         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6187
6188         * RichTextBox.cs: We need to supply the data object to paste now
6189         (so we can choose to supply CLIPBOARD or PRIMARY).
6190         * TextBoxBase.cs: Supply data object to paste (see above).
6191         - Middle click uses the primary selection data object.
6192         
6193 2006-09-21  Chris Toshok  <toshok@ximian.com>
6194
6195         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6196         of SetWMStyles.  It's still a rat's nest and is largely
6197         order-dependent which I dislike immensely.  This also fixes the X
6198         button disappearing from toplevel forms.
6199
6200 2006-09-21  Mike Kestner <mkestner@novell.com>
6201
6202         * ListBox.cs: move Jordi's click/dblclick raising code to the
6203         mouse up handler.
6204
6205 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6206
6207         * ListBox.cs: Fixes 79450
6208
6209 2006-09-21  Mike Kestner <mkestner@novell.com>
6210
6211         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6212         to deal with people updating the TreeNodeCollection after the tree
6213         is disposed.  "Fixes" 79330.
6214
6215 2006-09-20  Jackson Harper <jackson@ximian.com>
6216
6217         * TextControl.cs: Push the cursor record onto the undo stack
6218         before the delete action. This fixes 78651.
6219
6220 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6221
6222         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6223         CreateParams. Fixes 79329.
6224
6225 2006-09-19  Chris Toshok  <toshok@ximian.com>
6226
6227         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6228         things up a bit.  First, get rid of the NetAtoms array (and the NA
6229         enum), and just embed the atoms as static fields.  Also, add a
6230         couple of functions (StyleSet and ExStyleSet) to clean up all the
6231         bitmask testing of styles.
6232
6233         * X11Structs.cs: remove the NA enum, not needed anymore.
6234         
6235 2006-09-19  Chris Toshok  <toshok@ximian.com>
6236
6237         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6238         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6239         added cleanup to get MessageBox titles appearing again, which were
6240         broken by my earlier fix for caption-less/ControlBox-less windows.
6241
6242 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6243
6244         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6245           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6246           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6247           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6248           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6249           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6250           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6251           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6252           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6253           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6254           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6255             Inital import.
6256         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6257           ToolStripButton.cs: Stubs needed for above.
6258         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6259
6260 2006-09-15  Chris Toshok  <toshok@ximian.com>
6261
6262         * XplatUIX11.cs:
6263         - make the MessageQueues hashtable Synchronized.
6264         
6265         - SendMessage: if the Hwnd is owned by a different thread, use the
6266         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6267         thread.  Fixes bug #79201.
6268
6269 2006-09-15  Chris Toshok  <toshok@ximian.com>
6270
6271         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6272         ControlBox == false, we disallow maximize/minimize/close.  If the
6273         form Caption is "" we also disallow move (and get rid of the Title
6274         decoration).  Unfortunately, regardless of how things are set,
6275         we're stuck with the Title and WM menu.
6276
6277 2006-09-15  Chris Toshok  <toshok@ximian.com>
6278
6279         * Application.cs: add locking around the static message_filters
6280         ArrayList, part of #79196.
6281
6282 2006-09-15  Chris Toshok  <toshok@ximian.com>
6283
6284         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6285         Form.ControlBox == false, the window has no titlebar nor resize
6286         handles.  fixes bug #79368.
6287
6288 2006-09-15  Chris Toshok  <toshok@ximian.com>
6289
6290         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6291         >= 0.  Fixes bug #79370.
6292
6293 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6294         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6295         * Control.cs:
6296             Add properties: LayoutEngine, Margin, DefaultMargin.
6297             Add method: GetPreferredSize.
6298             Move layout logic from PerformLayout to layout engines. 
6299
6300 2006-09-13  Chris Toshok  <toshok@ximian.com>
6301
6302         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6303         fix for #79326 broke #78718, so this change addresses that.
6304
6305         - in SendWMDestroyMessages remove the call to
6306         CleanupCachedWindows, since we might be recreating the control and
6307         need to maintain the references to right Hwnd handles.  Also, set
6308         the zombie flag to true for each of the children in the hierarchy
6309         instead of calling hwnd.Dispose.  This will cause GetMessage to
6310         ignore all events for the window except for DestroyNotify.
6311
6312         - In GetMessage, ignore messages except for DestroyNotify for
6313         zombie hwnds.
6314         
6315         * Control.cs: revert the is_recreating fix from the last
6316         ChangeLog.  It's definitely "right", but it breaks switching from
6317         an MDI form to a non-MDI form.  Will need to revisit that.
6318
6319         * Hwnd.cs: add a zombie flag, which means "the
6320         client_window/whole_window handles are invalid, but we're waiting
6321         for the DestroyNotify event to come in for them".  Set the flag to
6322         false explicitly if setting WholeWindow/ClientWindow, and also
6323         when Disposing.
6324         
6325 2006-09-13  Chris Toshok  <toshok@ximian.com>
6326
6327         * XplatUIX11.cs: rework window destruction slightly.
6328
6329         - when destroying the windows associated with a control, we don't
6330         need 2 separate XDestroyWindow calls.  Just the one for the
6331         whole_window (or for client_window if whole_window is somehow
6332         IntPtr.Zero -- can this happen?) is enough.
6333
6334         - reworked SendWMDestroyMessages slightly, so we always dispose
6335         the child control hwnd's after sending the messages.
6336         
6337         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6338         the two places it was used (one was even using hwnd.Handle and the
6339         other hwnd.client_window.  ugh), adding another call in
6340         SendWMDestroyMessages.  We need this new call because now the
6341         DestroyNotify events in the queue will be ignored for the child
6342         controls (as their hwnd's were disposed, and the window id's
6343         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6344
6345         - this fixes bug #79326.
6346
6347 2006-09-13  Chris Toshok  <toshok@ximian.com>
6348
6349         * Control.cs: don't always set is_recreating to false at the end
6350         of RecreateHandle, since sometimes we're not done (and won't be
6351         until WndProc handles the WM_DESTROY message).  Also, set
6352         is_recreating to false in the WM_DESTROY handling code.  Part of
6353         the fix for bug #79326.
6354
6355 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6356
6357         * X11DesktopColors.cs: Start the droppage of debugging messages.
6358
6359         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6360
6361 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6362
6363         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6364
6365 2006-09-12  Chris Toshok  <toshok@ximian.com>
6366
6367         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6368         to create it using SetDataSource.  Fixes bug #79151.
6369
6370 2006-09-11  Chris Toshok  <toshok@ximian.com>
6371
6372         * XEventQueue.cs: add a DispatchIdle property.
6373
6374         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6375         either the queue is null, or the queue has DispatchIdle set to
6376         true.
6377         (DoEvents): set queue.DispatchIdle to false around the
6378         peek/translate/dispatch message loop in this method.  This keeps
6379         Application.Doevents from emitting idle events.  Part of the fix
6380         for #78823.
6381
6382 2006-09-11  Chris Toshok  <toshok@ximian.com>
6383
6384         * DataGrid.cs (set_DataSource): make this work for both the
6385         winforms/datagrid test and ReportBuilder.  It seems as though when
6386         we've created a ListManager (or maybe it's if we have a
6387         BindingContext?), when we set the DataSource it clears the
6388         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6389         #79333.
6390
6391 2006-09-11  Chris Toshok  <toshok@ximian.com>
6392
6393         * XplatUIX11.cs: deal with queue being null, which happens in all
6394         the Clipboard functions.  Fixes one of the two problems mentioned
6395         in #78612.
6396
6397 2006-09-11  Chris Toshok  <toshok@ximian.com>
6398
6399         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6400         button on various spots (including outside the menu) works closer
6401         to MS, and doesn't crash.  Fixes #79343.
6402
6403 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6404
6405         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6406         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6407         and the internal comparer is set. When a new ListViewItemSorter is set,
6408         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6409         was specified. No further processing is necessary if SortOrder is set
6410         to it's current value. If Sorting is modified to None, and View is
6411         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6412         (either custom or our internal ItemComparer) to null, on 1.0 profile
6413         only set item_sorter to null if its our internal IComparer. If Sorting
6414         is modified to Ascending or Descending, then use our internal IComparer
6415         if none is set, and if the current IComparer is our internal one then:
6416         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6417         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6418         Enum.IsDefined to verify whether a valid View value is specified in
6419         its setter. Automatically sort listview items when listview is
6420         created. In Sort, do nothing if ListView is not yet created, or if
6421         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6422         to None or ListViewItemSorter was set to null). Added Sort overload
6423         taking a bool to indicate whether the ListView should be redrawn when
6424         items are sorted (we use this in ListViewItemCollection to avoid double
6425         redraws). Modified our internal IComparer to take the sort order into
6426         account. In Add and AddRange methods of ListViewItemCollection, also
6427         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6428         view), but use overload with noredraw option to avoid double redraw.
6429         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6430         true when View is Tile, and do the same when attempting to set View to
6431         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6432         for selected/checked indices, as it involves overhead when sorting is
6433         done while these collections are not used all that often. Instead
6434         we'll build the indices on demand. Modified IList implementation of
6435         CheckedIndexCollection to use public methods if object is int.
6436         Modified CheckedListViewItemCollection to hide checked items if
6437         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6438         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6439         IList implementation in SelectedIndexCollection to use public methods
6440         if object is int. Modified SelectedListViewItemCollection to hide
6441         selected items if listview is not yet created.
6442         * ListViewItem.cs: CheckedIndices list no longer needs to be
6443         maintained separately (see ListView changes). Also clone font, fixes
6444         test failure.
6445
6446 2006-09-11  Mike Kestner  <mkestner@novell.com>
6447
6448         * ComboBox.cs: if we are updating the contents of the currently
6449         selected index, refresh the control or the textbox selection.
6450         [Fixes #79066]
6451
6452 2006-09-11  Mike Kestner  <mkestner@novell.com>
6453
6454         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6455         the 'specified' logic has been moved there.  This seems like a bug 
6456         in Control.cs, since our current SetBoundsCore completely ignores 
6457         the specified parameter.  Peter's commit seems to indicate that is 
6458         the way the MS control implementation works.  [Fixes #79325]
6459
6460 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6461
6462         * XplatUI.cs: Set default_class_name to be composed
6463         of current domain id. This allows MWF to be loaded in multiple
6464         domains on Win32.
6465
6466 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6467
6468         * X11Keyboard.cs: If we are unable to obtain the input method, do
6469         not call CreateXic to create the input context.   Should fix
6470         #78944/79276.
6471
6472 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6473
6474         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6475           Simplified gnome support by adding more pinvokes to get the
6476           icon for a file or mime type.
6477
6478 2006-09-08  Jackson Harper  <jackson@ximian.com>
6479
6480         * MenuAPI.cs: Deslect popup context menu items before closing the
6481         window, so that you don't see the previously selected item
6482         selected when you reopen the menu.
6483         * TextControl.cs: Update the cursor position even if we don't have
6484         focus.  This fixes typing in things like the ComboBox.  I'm not
6485         totally sure we should always set the visibility if we don't have
6486         focus, but couldn't find any corner cases where the cursor showed
6487         up when it shouldn't.
6488
6489 2006-09-08  Chris Toshok  <toshok@ximian.com>
6490
6491         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6492         our arrays are length 256.  & 0xff before indexing.  Fixes the
6493         crash in bug #78077.
6494         
6495 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6496
6497         * ThemeWin32Classic.cs: 
6498         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6499         is true. Handle that check box too.
6500
6501 2006-09-07  Chris Toshok  <toshok@ximian.com>
6502
6503         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6504         79244.
6505
6506 2006-09-07  Chris Toshok  <toshok@ximian.com>
6507
6508         * Control.cs: in set_BackColor only do the work if
6509         background_color != value.
6510
6511         * XplatUIX11.cs: move the clearing of invalid areas (both client
6512         and nc) to the same block of code where we set (nc_)expose_pending
6513         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6514         so things that cause invalidates from within OnPaint will trigger
6515         another call to OnPaint.  Fixes bug #79262.
6516
6517 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6518
6519         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6520         * FileDialog.cs: Fix typo
6521
6522 2006-09-07  Jackson Harper  <jackson@ximian.com>
6523
6524         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6525         for tab pages if they have any.
6526
6527 2006-09-06  Mike Kestner  <mkestner@novell.com>
6528
6529         * Splitter.cs: use the "current" rect when finishing drag handle
6530         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6531
6532 2006-09-06  Mike Kestner  <mkestner@novell.com>
6533
6534         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6535         support offset splitters. [Fixes #79298]
6536
6537 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6538
6539         * Mime.cs: Fixed a bug that could override the global mime type
6540           result.
6541
6542 2006-09-05  Jackson Harper  <jackson@ximian.com>
6543
6544         * TabControl.cs: Better calculation method for setting the slider
6545         pos. Prevents crashes on really wide tabs.
6546         - Draw Image on tab pages if an image list is used.
6547
6548 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6549
6550         * MonthCalendar.cs: When Font changes, the Size should be
6551         updated to fit the new font's space requirements.
6552
6553 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6554
6555         * ListBox.cs: If the items are cleared with Items.Clear set
6556           top_index to 0.
6557
6558 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6559
6560         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6561         fire DateChanged event instead of DateSelected event when
6562         the date was changed by keyboard interaction.
6563
6564 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6565
6566         * DateTimePicker.cs: Handle DateChanged for the associated
6567         month_calendar control, and set month_calendar.Font from 
6568         OnFontChanged method, as well as resize the height of the
6569         control when needed. Make PreferredHeight proportional.
6570
6571 2006-09-01  Chris Toshok  <toshok@ximian.com>
6572
6573         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6574         properties.
6575
6576         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6577
6578 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6579
6580         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6581           for decorations (Fixes #79219)
6582
6583 2006-09-01  Mike Kestner  <mkestner@novell.com>
6584
6585         * ComboBox.cs: first stab at sorting plus some selection handling
6586         fixes to bring us more in line with MS behavior.  Also switches back
6587         to index based selection.  Alternative patches for index-based 
6588         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6589         and latency@gmx.de on bug 78848.  I assume they were similar to this
6590         code I've had simmering in my tree forever.
6591         [Fixes #78848]
6592
6593 2006-09-01  Chris Toshok  <toshok@ximian.com>
6594
6595         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6596         when setting list position guard against ending up with a -1 index
6597         (the other part of the fix for #78812).  Should probably make sure
6598         we don't need the analogous fix in the ItemDeleted case.
6599
6600         * DataGrid.cs:
6601         - in SetDataSource, work around the fact that the way
6602         OnBindingContextChanged is invoked will cause us to re-enter this
6603         method.  I'll remove the hack once I investigate
6604         OnBindingContextChanged.
6605
6606         - fix the logic in set_DataSource and set_DataMember (basically
6607         what to do if the other of the two is null.)
6608         
6609         - in OnListManagerItemChanged, we need to take into account the
6610         edit row when deciding whether or not to call RecreateDataGridRows
6611         (part of the fix for #78812).
6612
6613 2006-09-01  Jackson Harper  <jackson@ximian.com>
6614
6615         * Splitter.cs: Don't do anything if there is no control to affect
6616         (prevents us from crashing in weird tet cases).
6617         * TreeView.cs: Bounding box for the mouse movement reverting
6618         focus/selection back to previously selected node.  This matches
6619         MS, and makes the tree a lot more useable.
6620         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6621         use clipping so they are not drawn.  This fixes when the control
6622         is set to have a transparent background, or if it was over an
6623         image.
6624
6625 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6626
6627         * MimeIcon.cs: Improved handling for reading default icons when
6628           using gnome (2.16 made it necessary). Check and read svg icons
6629           first, then 48x48 and then 32x32 icons.
6630
6631 2006-08-31  Chris Toshok  <toshok@ximian.com>
6632
6633         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6634         visible.
6635
6636         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6637         ProcessKeyPreview.  Fixes part of #77806.
6638
6639         * DataGrid.cs: big patch.
6640
6641         - revert the queueing up of DataSource/DataMember if inside
6642         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6643         its delayed databinding.  Instead, call SetDataSource in
6644         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6645         #78811.
6646
6647         - Also, it wasn't mentioned in #78811, but the test case exhibits
6648         behavior that was lacking in our datagrid implementation - Columns
6649         that have mapping names that don't exist in the datasource's
6650         properties aren't shown.  Yuck.  To fix this I added the bound
6651         field to the column style, and basically any calculation to figure
6652         out anything about columns uses a loop to find the bound columns.
6653         still need to investigate if I can cache an array of the bound
6654         columns or if the indices must be the same.
6655
6656         - When setting CurrentCell, we no longer abort if the cell being
6657         edited was in the add row.  This fixes the other part of #77806.
6658
6659         - The new code also fixes #78807.
6660         
6661         * ThemeWin32Classic.cs: perpetrate the same disgusting
6662         column.bound field hack, and only render bound fields.
6663
6664 2006-08-31  Chris Toshok  <toshok@ximian.com>
6665
6666         * DataGridColumnStyle.cs: add bound field.  this field is true if
6667         the datasource has a property corresponding to the mapping name.
6668
6669         * DataGridTableStyle.cs: set the bound field on the column styles
6670         depending on whether or not we have a column for that property.
6671
6672 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6673
6674         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6675           splitter control (fixes #79228)
6676
6677 2006-08-31  Chris Toshok  <toshok@ximian.com>
6678
6679         * DataGridColumnStyle.cs: we need to delay the assignment of
6680         property descriptor until the last possible moment due to the lazy
6681         databinding stuff in the datagrid.  Also, fix the exceptions
6682         thrown by CheckValidDataSource to match MS.
6683
6684 2006-08-31  Jackson Harper  <jackson@ximian.com>
6685
6686         * Form.cs: When activated select the active control, if there is
6687         no active control, we select the first control.
6688         * XplatUIX11.cs: If there is no focus control when we get a
6689         FocusIn event, find the toplevel form and activate it.  This
6690         occurs when you popup a window, it becomes the focus window, then
6691         you close that window, giving focus back to the main window.
6692
6693 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6694
6695         * MonthCalendar.cs: 
6696         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6697         as StringFormat with Center alignments in MonthCalendar,
6698         instead of creating new ones when drawing the control. 
6699         Also, draw the month name in bold style.
6700
6701 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6702
6703         * Control.cs:
6704           - PerformLayout(): It would seem MS performs the fill even if the 
6705             control is not visible (part of #79218 fix)
6706           - ResetBackColor(): Use the setter to reset the color, to allow
6707             overriders to catch the change.
6708         * Form.cs:
6709           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6710           - CreateHandle(): dito (part of $79218 fix)
6711           - Don't set an icon if we have a dialog
6712         * ScrollableControl.cs:
6713           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6714           - ScrollIntoView(): No need to scroll if control is already visible
6715             (resolves fixme and fixes #79218)
6716
6717 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6718
6719         * MonthCalendar.cs: Change proportions in SingleMonthSize
6720         to match the aspect of the original control.
6721
6722 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6723
6724         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6725           get updated when they get maximized.
6726
6727 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6728
6729         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6730
6731 2006-08-29  Chris Toshok  <toshok@ximian.com>
6732
6733         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6734
6735 2006-08-29  Jackson Harper  <jackson@ximian.com>
6736
6737         * TreeView.cs: Need to track selected node and highlighted node,
6738         they aren't always the same thing, when the mouse is down on a
6739         node it is hilighted, but not selected yet.
6740         - Do the HideSelection stuff right
6741         - Need to focus on rbutton mouse down. And redraw selection when
6742         right click is mouse upped.
6743
6744 2006-08-29  Mike Kestner  <mkestner@novell.com>
6745
6746         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6747         when SubItems.Count < Columns.Count.  [Fixes #79167]
6748
6749 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6750
6751         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6752
6753 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6754
6755         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6756           from X. Only send based on ConfigureNotify if we don't have the
6757           correct location in hwnd (if the window manager moved us)
6758
6759 2006-08-28  Mike Kestner  <mkestner@novell.com>
6760
6761         * ListView.cs: remove a TODO. 
6762         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6763         [Fixes ListView part of #79166]
6764
6765 2006-08-28  Mike Kestner  <mkestner@novell.com>
6766
6767         * ListView.cs: move wheel handler to parent since it is focused
6768         instead of the item_control now.  [Fixes #79177]
6769
6770 2006-08-28  Mike Kestner  <mkestner@novell.com>
6771
6772         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6773         when the control is focused. [Fixes #79171]
6774
6775 2006-08-28  Mike Kestner  <mkestner@novell.com>
6776
6777         * ListView.cs: size the item and header controls for empty and
6778         unscrollable views.
6779         * ThemeWin32Classic.cs: draw disabled backgrounds.
6780         [Fixes #79187]
6781
6782 2006-08-28  Chris Toshok  <toshok@ximian.com>
6783
6784         * Form.cs: remove unused "active_form" static field.
6785
6786         * Hwnd.cs: lock around accesses to static windows collection.
6787
6788         * Application.cs: lock threads in Exit ().
6789
6790 2006-08-28  Chris Toshok  <toshok@ximian.com>
6791
6792         * NativeWindow.cs: lock around accesses to window_collection.
6793         
6794 2006-08-28  Chris Toshok  <toshok@ximian.com>
6795
6796         * Control.cs: err, fix this the right way, by locking on controls
6797         when using it.  not by making it synchronized.
6798
6799 2006-08-28  Chris Toshok  <toshok@ximian.com>
6800
6801         * Control.cs: make the static "controls" field synchronized, as it
6802         gets updated from multiple threads.
6803
6804 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6805
6806         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6807           Prevent other threads from exiting when calling thread sets quit state.
6808         * XEventQueue.cs: Added PostQuitState property
6809
6810 2006-08-27  Chris Toshok  <toshok@ximian.com>
6811
6812         * AsyncMethodData.cs: add a slot for the window handle.
6813
6814         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6815         window (the destination control's window, not the foster window).
6816
6817         * Control.cs (BeginInvokeInternal): store the window's handle in
6818         the AsyncMethodData.
6819         
6820
6821 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6822
6823         * XplatUIX11.cs:
6824           - PostQuitMessage: Removed resetting S.D display handle, we might have
6825             another loop started after calling PostQuitMessage (Fixes #79119)
6826           - Created destructor to reset S.D handle
6827
6828 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6829
6830         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6831
6832 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6833
6834         * TextControl.cs (Insert): Update the caret position even if we don't
6835           have a handle yet, just don't call the driver in that case.
6836         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6837           to the end of the new selection text (Fixes #79184)
6838
6839 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6840
6841         * Form.cs (Activate): Only activate if the handle is created)
6842         * Control.c:
6843           - Mark window as invisible when it's disposed
6844           - Check if window handle is created when setting window visible, 
6845             instead of relying just on the is_created variable
6846           - Check if object is disposed when creating the control (Fixes #79155)
6847
6848 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6849
6850         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6851           when allowing layout again. Otherwise we re-generate the anchoring 
6852           distance to the border again and actually alter what the user wanted
6853           This is ugly, it'd be better if we used DisplayRectangle instead of
6854           ClientRectangle for Control.UpdateDistances, but that causes us to
6855           have other problems (initial anchoring positons would be wrong)
6856           (Fixes #78835)
6857
6858 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6859
6860         * Control.cs:
6861           - The size and location setters shouldn't go directly to 
6862             SetBoundsCore, but to SetBounds, which triggers layout on the
6863             parent, then calls SetBoundsCore. (Related to fix for #78835)
6864           - SetBounds: Moved actual location update code into this function
6865             from SetBoundsCore, to match MS. Added call to PerformLayout if
6866             we have a parent (to trigger resizing of anchored parents if the 
6867             child size has changed (see testcase for #78835) 
6868         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6869           new control code
6870         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6871
6872 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6873
6874         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6875           System.Drawing when a toplevel window gets closed; there might
6876           be other toplevel windows belonging to the same app (Fixes #78052)
6877
6878 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6879
6880         * FileDialog.cs: After reading FileDialog settings from mwf_config
6881           use Desktop prefix only if a real folder doesn't exist anymore.
6882         * FontDialog.cs: Added char sets.
6883           It is now possible to select the font, size or style with the
6884           textboxes.
6885
6886 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6887
6888         * PrintPreviewDialog.cs: Use assembly name constants.
6889
6890 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6891
6892         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6893           scrollbar from whacking it's buttons)
6894
6895 2006-08-24  Chris Toshok  <toshok@ximian.com>
6896
6897         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6898         in this patch (aggregating setting Left/Top/Width/Height to
6899         setting Bounds on the scrollbars), but the crux of the fix is in
6900         Recalculate, where we scroll by the remaining scroll_position if
6901         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6902         serious.
6903
6904 2006-08-24  Jackson Harper  <jackson@ximian.com>
6905
6906         * MdiClient.cs:
6907         * MdiWindowManager.cs: If the form is made a non-mdi window we
6908         need to remove the form closed event so that closing forms works
6909         correctly.
6910
6911 2006-08-24  Jackson Harper  <jackson@ximian.com>
6912
6913         * Control.cs: Make IsRecreating internal so that the driver can
6914         check it
6915         - Temporarily remove the Hide when controls are removed, its
6916         making a whole bunch of things not work because visibility isn't
6917         getting reset elsewhere correctly
6918         * Form.cs: Need to do a full handle recreation when the mdi parent
6919         is set.
6920         * XplatUIX11.cs: If we are recreating handles don't dispose the
6921         HWNDs.  What was happening is the handles were being recreated in
6922         SendWMDestroyMessages, but then flow continued on in that method
6923         and destroyed the new handles.
6924
6925 2006-08-23  Jackson Harper  <jackson@ximian.com>
6926
6927         * Form.cs: MdiClient is always at the back of the bus
6928         * Control.cs: When the order of items in the collection is changed
6929         we need to reset the all_controls array
6930         - do the same sorta setup thats done when adding a control when a
6931         control is set on the collection.
6932
6933 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6934
6935         * TextBoxBase.cs (get_Text): Return an empty array if our document
6936           is empty (fixes #79052)
6937
6938 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6939
6940         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
6941           on WM_SYSCHAR messages (fixes #79053)
6942
6943 2006-08-23  Chris Toshok  <toshok@ximian.com>
6944
6945         * DataGrid.cs: fix flickering when scrolling vertically.
6946
6947 2006-08-23  Chris Toshok  <toshok@ximian.com>
6948
6949         * DataGrid.cs (EndEdit): only invalidate the row header when we
6950         need to.
6951
6952 2006-08-23  Chris Toshok  <toshok@ximian.com>
6953
6954         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
6955         methods.  fixes the flicker when scrolling around.
6956
6957 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6958
6959         * FileDialog.cs: Making sure the control is created before we get a 
6960           chance to use it with BeginInvoke (Fixes #79096)
6961
6962 2006-08-23  Chris Toshok  <toshok@ximian.com>
6963
6964         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
6965         width to use when painting the rows.
6966
6967 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6968
6969         * TextBoxBase.cs:
6970           - Throw ArgumentException if a negative value is passed to SelectionLength
6971           - Update the selection end if start is moved. end needs to be always
6972             after start. (Fixes #79095)
6973           - Track selection length; MS keeps the selection length even if start
6974             is changed; reset on all other operations affection selection
6975
6976 2006-08-22  Jackson Harper  <jackson@ximian.com>
6977
6978         * TreeView.cs: Make sure both scrollbars get displayed and sized
6979         correctly when the other bar is visible.
6980         - Use the original clip rectangle for checking if the area between
6981         the two scrollbars is visible, not the viewport adjusted clipping
6982         rectangle.
6983
6984 2006-08-22  Jackson Harper  <jackson@ximian.com>
6985
6986         * Binding.cs: We don't use IsBinding because it requires the
6987         control to be created, which really shouldn't be necessary just to
6988         set a property on the control.
6989
6990 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6991
6992         * ComboBox.cs: Some CB.ObjectCollection methods must throw
6993         ArgumentNullReferenceException when the argument is null.
6994
6995 2006-08-21  Jackson Harper  <jackson@ximian.com>
6996
6997         * Timer.cs: Track the thread that the timer is started in (NOT
6998         CREATED), this way messages for it will only be triggered on its
6999         queue.
7000         * XEventQueue.cs: Track the timers here, this makes timers per
7001         thread, like MS.
7002         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7003
7004 2006-08-19  Chris Toshok  <toshok@ximian.com>
7005
7006         * XplatUIX11.cs: after further communication with pdb, we get the
7007         best of both worlds.  SetZOrder working for un-Mapped windows, and
7008         no X errors for un-mapped windows.
7009
7010 2006-08-19  Chris Toshok  <toshok@ximian.com>
7011
7012         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7013         as it was causing pdn toolbars to not have the correct stacking.
7014
7015 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7016
7017         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7018         calculation.  Not sure why control should ever be setting a negative
7019         width though.  Fixes #78931.
7020
7021 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7022
7023         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7024         null items in ObjectCollection class.
7025         * ListBox.cs.: Likewise.
7026
7027 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7028
7029         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7030           as the base method in ThemeWin32Classic should work fine.
7031           Fixed bug #78607.
7032
7033 2006-08-18  Jackson Harper  <jackson@ximian.com>
7034
7035         * Binding.cs: When validating if the value entered doesn't convert
7036         properly reset to the old value.
7037         * RadioButton.cs: Don't fire click when we get focus.
7038
7039 2006-08-18  Jackson Harper  <jackson@ximian.com>
7040
7041         * FileDialog.cs: Paint the selection on the directory combobox the
7042         same way as on MS. 
7043
7044 2006-08-17  Jackson Harper  <jackson@ximian.com>
7045
7046         * ErrorProvider.cs: Don't allow the error control to be selected.
7047         * Control.cs: Don't send the SetFocus messages, the control
7048         activation will do this, and if we do it blindly here validation
7049         does not work.
7050
7051 2006-08-17  Jackson Harper  <jackson@ximian.com>
7052
7053         * Control.cs:
7054         * ContainerControl.cs: Make validation events fire in the correct
7055         order.  TODO: For some reason the first validation event is not
7056         getting fired.
7057
7058 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7059
7060         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7061
7062 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7063
7064         * ComboBox.cs : implement scroll wheel support for popped-down
7065         state. Fixes #78945. 
7066
7067 2006-08-17  Jackson Harper  <jackson@ximian.com>
7068
7069         * TreeView.cs: Specify treeview actions (old patch that didn't get
7070         committed for some reason).
7071         - Don't let the mouse wheel scroll us too far.  Just want to make
7072         the bottom node visible, not scroll it all the ways to the top.
7073
7074 2006-08-17  Jackson Harper  <jackson@ximian.com>
7075
7076         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7077
7078 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7079
7080         * ComboBox.cs : don't do mouseover selection in simple mode.
7081
7082 2006-08-16  Jackson Harper  <jackson@ximian.com>
7083
7084         * Form.cs: Fire the closing events for all the mdi child windows
7085         when a window is closed.  If the cancel args are set to true, the
7086         main window still gets the event fired, but it doesn't not close.
7087         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7088         handler, instead of when the button is clicked, so cancelling the
7089         close works correctly.
7090         * ComboBox.cs: Send the mouse down to the scrollbar.
7091
7092 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7093
7094         * ListBox.cs: When passing 'null' to SelectedItem,
7095         set SelectedIndex to -1, to unselect items. This is the
7096         observed behaviour in .Net.
7097
7098 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7099
7100         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7101           MS flags saying there won't be any. (fixes #78800)
7102         * Control.cs (HandleClick): Made virtual
7103
7104 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7105
7106         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7107           cultures. Fixed bug #78399.
7108
7109 2006-08-16  Jackson Harper  <jackson@ximian.com>
7110
7111         * Form.cs: Use the MdiClients MdiChildren property to access
7112         MdiChildren instead of creating the array from the child controls.
7113         * MdiClient.cs: Maintain a separate array of the mdi children, so
7114         that insertion order is maintained when the Z-order is changed.
7115
7116 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7117
7118         * ListView.cs : add an ItemComparer and default to it for sorting.
7119         Fixes #79076, but sorting needs a complete overhaul to be compat with
7120         MS.
7121
7122 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7123
7124         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7125
7126 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7127
7128         * Hwnd.cs (Mapped): Properly traverse the tree
7129
7130 2006-08-15  Chris Toshok  <toshok@ximian.com>
7131
7132         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7133         pass manager.Current.GetType() to ParseData.  It has to be the
7134         property type.  So, hold off doing the ParseData until we're in
7135         SetPropertyValue where we know the type.  This fixes the crash in
7136         #78821 but the textbox is still empty.
7137
7138 2006-08-15  Chris Toshok  <toshok@ximian.com>
7139
7140         * DataGrid.cs:
7141         - when we're scrolling, only call Edit() again if the
7142         current cell is still unobscured. Fixes bug #78927.
7143         - when handling mousedown on a cell, ensure the cell is visible
7144         before calling Edit.
7145         - remove the properties from DataGridRow, and remove the
7146         DataGridParentRow class altogether.
7147         
7148
7149 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7150
7151         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7152           fire OnTextChanged by ourselves. There's no point calling base,
7153           we don't set the base value anywhere else. Fixes #78773.
7154
7155 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7156
7157         * ListBox.cs: Call CollectionChanged when modifying
7158         an item from Items indexer, to update the actual items
7159         in the list box.
7160
7161 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7162
7163         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7164         to match .Net behaviour.
7165
7166 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7167
7168         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7169
7170 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7171
7172         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7173
7174 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7175
7176         * MessageBox.cs: Prevent potential NRE exception.
7177         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7178
7179 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7180
7181         * MessageBox.cs: Calculate the owner of a messagebox, also make
7182           it topmost. Fixes #78753
7183
7184 2006-08-14  Chris Toshok  <toshok@ximian.com>
7185
7186         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7187         programmatically move windows.  first, set the PPosition hint as
7188         well as the USPosition hint.  Second include some code from pdb
7189         that sets the window type to NORMAL when we set the transient for
7190         hint.  This is because, in the absence of a window type, metacity
7191         thinks any window with TransientFor set is a dialog, and refuses
7192         to let us move it programmatically.  fascists.
7193
7194 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7195
7196         * XplatUIX11.cs: When setting normal hints, take into consideration
7197           an different hints previously set so we don't delete them (fixes #78866)
7198
7199 2006-08-12  Chris Toshok  <toshok@ximian.com>
7200
7201         * ToolBarButton.cs: make Layout return a boolean, if something to
7202         do with the button's layout changed.
7203
7204         * ToolBar.cs:
7205         - add another parameter to Redraw, @force, which all existing
7206           calls set to true.
7207         - make the Layout function return a boolean which is true if the
7208           layout has actually changed.  Redraw now uses this (and @force)
7209           to determine when to invalidate.  At present the only place
7210           where @force can be false is the call from OnResize, when
7211           background_image == null.  So, resizing a toolbar when the
7212           layout doesn't change results in no drawing.
7213
7214 2006-08-12  Chris Toshok  <toshok@ximian.com>
7215
7216         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7217         the VScrollBar and HScrollbar reversed.  oops.
7218
7219         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7220         scrollbars.  we were assigning them twice (once in
7221         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7222         therefore causing two scrollbar resizes (and redraws?) to happen
7223         per grid resize.
7224
7225 2006-08-12  Chris Toshok  <toshok@ximian.com>
7226
7227         * ToolBarButton.cs: redraw the entire button if the theme tells us
7228         to.
7229
7230         * Theme.cs: add ToolBarInvalidateEntireButton.
7231
7232         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7233         buttons, just the border.
7234
7235         * ThemeNice.cs: redraw the entire toolbar button since we need to
7236         draw the highlight image.
7237
7238         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7239         we need to redraw the entire button (not just the border).
7240
7241 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7242
7243         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7244           for vertical bars. Fixes the mismatches shown by #78513
7245
7246 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7247
7248         * FileDialog.cs: If a saved/remembered path doesn't exist
7249           anymore, fall back to "Desktop".
7250
7251 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7252
7253         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7254           parent. It's apparently legal to not have one
7255         * XplatUIX11.cs:
7256           - SetZOrder: Don't try to set Z-Order on an unmapped window
7257           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7258             it unless the coordinates are negative
7259
7260 2006-08-10  Mike Kestner  <mkestner@novell.com>
7261
7262         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7263         when setting to null per msdn docs.  Fixes #78854.
7264
7265 2006-08-10  Chris Toshok  <toshok@ximian.com>
7266
7267         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7268         flickering by setting a clip rectangle on the Graphics when we
7269         need to redraw just a particular menuitem.  Also, rename "OnClick"
7270         to "OnMouseDown" to reflect what it actually is.
7271         
7272         * Form.cs: track the OnMouseDown change.
7273
7274 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7275
7276         * CommonDialog.cs: Properly inherit the CreateParams from the form
7277           and only change what we need. Fixes #78865
7278
7279 2006-08-10  Chris Toshok  <toshok@ximian.com>
7280
7281         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7282         flickering in flat mode (and most of the flickering in general) by
7283         only invalidating the button border (and not the entire rectangle)
7284         when the state changes.  A couple of cases still flicker:
7285         ToggleButtons, and the dropdown arrow case when the user mouse
7286         ups.
7287
7288 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7289
7290         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7291           for german keyboards. Numlock state shouldn't affect the behaviour
7292           of the Del key. Fixes bug #78291.
7293
7294 2006-08-10  Chris Toshok  <toshok@ximian.com>
7295
7296         * ListControl.cs: remove the items.Clear line from BindDataItems,
7297         as this is the first thing done by both subclasses in their
7298         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7299         passed -1, refresh the list.  This gets databinding working when
7300         the datasource is set on the list before the datasource is
7301         populated (as in wf-apps/ReportBuilder.)
7302
7303         * ComboBox.cs: remove the argument to BindDataItems.  This call
7304         should really go away, and be initiated by the ListControl code.
7305
7306         * ListBox.cs: same.
7307
7308 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7309
7310         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7311           if no data is in the document when the control is displayed
7312
7313 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7314
7315         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7316           yes (fixes #78806)
7317         * TextControl.cs: 
7318           - PositionCaret: Allow positioning of caret but don't call methods 
7319             requiring a handle if the window isn't created yet
7320           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7321           - owner_HandleCreated: Don't position the caret, just update it's 
7322             location. User might have already set a different position
7323
7324 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7325
7326         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7327           windows. Screws up the returned coordinates for child windows. 
7328           Fixes #78825. I'm hoping this doesn't break something, since the
7329           code was explicitly put in 8 months ago, but no bug was attached.
7330           Menus still seem to work properly.
7331
7332 2006-08-08  Chris Toshok  <toshok@ximian.com>
7333
7334         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7335         supposed to do - delay data binding until the EndInit call.  Also,
7336         make the table style collection's CollectionChangeAction.Refresh
7337         work properly.
7338
7339         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7340         (with action = Refresh) when a consituent table's MappingName is
7341         changed.
7342
7343 2006-08-08  Chris Toshok  <toshok@ximian.com>
7344
7345         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7346         Invalidate, since changing the text can change the size of the all
7347         toolbar buttons.
7348
7349 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7350
7351         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7352           we don't have it yet
7353
7354 2006-08-08  Chris Toshok  <toshok@ximian.com>
7355
7356         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7357         dialog, as this causes X errors later on, since we actually
7358         destroy the window.  Instead, .Hide() it.
7359
7360 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7361
7362         * ComboBox.cs: Added focus reflection for popup window
7363         * XplatUIX11.cs: 
7364           - Removed transient setting for non-app windows for now, not sure it
7365             was needed
7366           - Fixed logic checking if we have captions when deciding 
7367             override_redirect, WS_CAPTION is two bits and a 0 check was not
7368             sufficient
7369           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7370             complicated
7371         * Form.cs: 
7372           - AddOwnedForm: Don't just add the form to the list, call the property
7373             to ensure the driver is informed about the ownership as well
7374           - CreateHandle: Set the TopMost status in the driver if we have an owner
7375         * XplatUI.cs: Fixed debug statement
7376
7377 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7378         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7379           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7380           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7381           TrackBarRenderer.cs: Make constructor private.
7382         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7383         * ProfessionalColorTable.cs: Make properties virtual.
7384
7385 2006-08-06  Duncan Mak  <duncan@novell.com>
7386
7387         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7388         is not changing.
7389
7390 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7391         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7392           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7393           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7394           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7395           Initial import of new 2.0 classes.
7396
7397 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7398         * Application.cs: Add 2.0 VisualStyles properties.
7399
7400 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7401         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7402           XplatUIX11.cs: Create property to allow access to existing private
7403           variable "themes_enabled"
7404
7405 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7406
7407         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7408         file size, as otherwise our class libraries fail using windows. Fixes
7409         bug #78759.
7410
7411 2006-08-04  Jackson Harper  <jackson@ximian.com>
7412
7413         * Form.cs:
7414         * XplatUIX11.cs: Move the toolwindow window manager creation into
7415         the X11 driver, this way on win32 we can let windows create/handle
7416         the toolwindows.
7417
7418 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7419
7420         * PrintDialog.cs: Remove some redundant checks, add some others,
7421         clean some code, and move the focus to the text boxes when the
7422         values are incorrect.
7423
7424 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7425
7426         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7427
7428 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7429
7430         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7431           handled correctly. Fixes bug #79001.
7432
7433 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7434
7435         * PrintDialog.cs: The "Copies" numeric up down must have
7436         set the Minimum property to 1; only if the value is bigger
7437         than 1, activate "Collate" check box. This is the behaviour of .Net.
7438         Also modify the Document elements only if it is not null.
7439
7440 2006-08-03  Jackson Harper  <jackson@ximian.com>
7441
7442         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7443         length. (We have a larger array then actual node count).
7444                 
7445 2006-08-03  Jackson Harper  <jackson@ximian.com>
7446
7447         * ComboBox.cs: Don't show selection by default.
7448         - The SelectAll isn't needed here, since the focus code should do
7449         that
7450         - DDL style lists to manual selection drawing, so when they
7451         get/lose focus they have to invalidate.
7452
7453 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7454
7455         * TextBoxBase.cs: Don't always show all selections by default.
7456
7457 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7458         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7459           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7460           Fixed various typos.
7461
7462 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7463
7464         * Control.cs: Removing the controls in a ControlCollection with
7465           Clear now hides the controls as expected. Fixes bug #78804. 
7466
7467 2006-08-03  Jackson Harper  <jackson@ximian.com>
7468
7469         * Control.cs: Revert previous focus patch, it breaks reflector.
7470
7471 2006-08-03  Jackson Harper  <jackson@ximian.com>
7472
7473         * ComboBox.cs: Cleanup selection and focus with the combobox.
7474         This also eliminates some duplicated keyboard code, since now
7475         everything is handled by the main class.
7476         - Make list selection work on mouse up instead of down, to match
7477         MS.
7478
7479 2006-08-02  Jackson Harper  <jackson@ximian.com>
7480
7481         * Control.cs: Setting focus needs to go through the whole
7482         selection mechanism.
7483
7484 2006-08-02  Chris Toshok  <toshok@ximian.com>
7485
7486         * PrintPreviewDialog.cs: change MinimumSize to use
7487         base.MinimumSize so it works.
7488
7489 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7490
7491         * TextControl.cs:
7492           - UpdateCaret: Added sanity check in case caret isn't defined yet
7493           - Line.Delete: Now updating selection and caret markers if we're
7494             transfering a node (Properly fixes #78323)
7495           - SetSelectionEnd: Added sanity check
7496         * TextBoxBase.cs: Removed broken attempt to fix #78323
7497
7498 2006-08-01  Chris Toshok  <toshok@ximian.com>
7499
7500         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7501         Close() call is handled in Form, not here.
7502
7503 2006-08-01  Chris Toshok  <toshok@ximian.com>
7504
7505         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7506         layout/rendering.
7507
7508         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7509         for sizes < 100% zoom.  The code now aggressively attempts to keep
7510         from calling document.Print (), and tries not to use the scaling
7511         g.DrawImage whenever possible (it still does if you scale to >
7512         100%, since usually that involves huge images).
7513
7514         * PrintPreviewControl.cs: hook up the close button.
7515
7516 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7517         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7518           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7519           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7520           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7521           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7522           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7523           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7524           Removed [Serializable] for 2.0 Event Handlers.
7525
7526 2006-07-31  Jackson Harper  <jackson@ximian.com>
7527
7528         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7529         * TextControl.cs: Uncomment out the body of this method.
7530
7531 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7532
7533         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7534           standard cursors.
7535
7536 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7537
7538         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7539           that embed TextBox and need selections visible even if textbox is not
7540           focused to enforce that behaviour.
7541         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7542           selection drawing
7543
7544 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7545
7546         * TextControl.cs:
7547           - Added new SetSelectionStart/SetSelectionEnd overloads
7548           - Fixed viewport width assignment to be accurate
7549           - Adjusted alignment line shift calculations to allow cursor on right
7550             aligned lines to be always visible at the right border (like MS)
7551         * TextBoxBase.cs:
7552           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7553           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7554           - CalculateScrollBars: Use ViewPort size instead of window size, to
7555             properly consider space occupied by the border and scrollbars 
7556             (Fixes #78661)
7557           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7558             calculations; no longer leaves artifacts
7559           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7560             calculation bugs (Still missing right/center align calculations)
7561
7562 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7563
7564         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7565           use of both scroll rect and clip rect, as they do the same.
7566
7567 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7568
7569         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7570           in the event handler (fixes #78912)
7571
7572 2006-07-31  Chris Toshok  <toshok@ximian.com>
7573
7574         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7575         grid.ListManager.Count, since grid.ListManager might be null.
7576         This of course begs the question "why are we drawing rows for a
7577         grid with no list manager (and therefor no rows)?"  Fixes the
7578         crash in bug #78929.
7579
7580 2006-07-31  Chris Toshok  <toshok@ximian.com>
7581
7582         * RelatedPropertyManager.cs: Don't always chain up to the parent
7583         ctor.  instead, call SetDataSource if the parent's position is !=
7584         -1.  Fixes the crash in #78822.
7585
7586 2006-07-31  Chris Toshok  <toshok@ximian.com>
7587
7588         * DataGrid.cs (get_ListManager): use field instead of property
7589         accessors for datasource and datamember.
7590         (RowsCount): make internal again.
7591         (OnMouseDown): end edits before resizing columns/rows.
7592         (OnMouseUp): restart edits after resizing columns/rows.
7593
7594 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7595
7596         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7597           This fixes the situation where the last set cursor is displayed
7598           whenever the mouse is over scrollbars.
7599
7600 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7601
7602         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7603         Document properties, as well as initial values.
7604
7605 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7606
7607         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7608           and ClientEdge results in a 3-pixel border, which is
7609           wrong.
7610
7611 2006-07-28  Jackson Harper  <jackson@ximian.com>
7612
7613         * TreeNodeCollection.cs: Fix the clear method.
7614         - Fix the Shrink also
7615
7616 2006-07-27  Jackson Harper  <jackson@ximian.com>
7617
7618         * TreeView.cs: Make sure the visible order is computed when we
7619         attempt to size the scrollbars (for trees that mess with the
7620         scrolling when they shouldn't.
7621         - Make sure to give the scrollbars valid values.
7622
7623 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7624
7625         * XplatUIX11.cs: Move motion compression code to where it
7626           has less performance impact
7627
7628 2006-07-26  Jackson Harper  <jackson@ximian.com>
7629
7630         * UpDownBase.cs: When the control is selected make the child
7631         controls non selectable, so that a click on them won't do a
7632         focus/unfocus cycle.
7633         - Don't give focus to the text box when the spinner is selected.
7634         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7635
7636 2006-07-26  Chris Toshok  <toshok@ximian.com>
7637
7638         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7639         satisfied with this solution.  If the bitmaps are small, we should
7640         just cache them in the PrintPreviewDialog and draw them here.
7641         Also, the layout is broken for the 2-up and 3-up cases.
7642
7643         * Theme.cs: add PrintPReviewControlPaint.
7644
7645         * PrintPreviewDialog.cs: first pass implementation.
7646
7647         * PrintPreviewControl.cs: first pass implementation.  No
7648         scrollbars yet.
7649
7650         * PrintDialog.cs: only validate fields if that particular portion
7651         of the UI is enabled.  Also, set the document's controller to a
7652         PrintControllerWithStatusDialog wrapping the document's print
7653         controller.
7654
7655         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7656         bring up a SaveFileDialog (i hope we don't want to match the
7657         behavior of the crappy windows file entry) and set the
7658         PrinterSettings.PrintFileName accordingly.
7659
7660 2006-07-26  Jackson Harper  <jackson@ximian.com>
7661
7662         * ContainerControl.cs: Add a field that disables auto selecting
7663         the next control in a container when the container is activated.
7664         * UpDownBase.cs: Don't select the text box when the up down is
7665         selected.
7666
7667 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7668
7669         * XEventQueue.cs: Added methods for peeking (used for compression
7670           of successive events)
7671         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7672           mouse move events (fixes #78732)
7673
7674 2006-07-25  Jackson Harper  <jackson@ximian.com>
7675
7676         * UpDownBase.cs: Use an internal class for the textbox so that we
7677         can control focus.  the updown control should always have focus,
7678         if either the text area or the buttons are clicked.
7679         - Send the key messages to the textbox, since it never actually
7680         has focus
7681         - Activate and decativate the textbox caret.
7682
7683 2006-07-24  Jackson Harper  <jackson@ximian.com>
7684
7685         * Control.cs: Use the directed select when selecting a control,
7686         this way the container controls override will get called and the
7687         whole ActiveControl chain will get triggered.  TODO: probably need
7688         to make sure this gets done everywhere instead of the old
7689         Select(Control).
7690         * ContainerControl.cs: Implement the directed Select method to
7691         find and activate the correct child control.    
7692         
7693 2006-07-22  Mike Kestner  <mkestner@novell.com>
7694
7695         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7696         menu handling code so that clicks without a grab work too.
7697         [Fixes #78914]
7698
7699 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7700
7701         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7702           Added some small optimizations.
7703
7704 2006-07-21  Matt Hargett  <matt@use.net>
7705
7706         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7707
7708 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7709
7710         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7711           tests pass and match MS in some strange border cases.
7712
7713 2006-07-21  Chris Toshok  <toshok@ximian.com>
7714
7715         * ThemeWin32Classic.cs: handle drawing of the relation links and
7716         parent row buttons.
7717
7718         * Theme.cs: change args to DataGridPaintParentRow.
7719
7720         * DataGrid.cs: Don't use controls for the relation links and
7721         parent buttons, so we have to handle all their interactions in
7722         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7723         when we're navigating through child tables, so we can reinstate
7724         selection, expanded state, current cell, etc.
7725
7726 2006-07-20  Chris Toshok  <toshok@ximian.com>
7727
7728         * ToolBar.cs: When we redraw a button, for whatever reason,
7729         there's no reason to redraw the entire toolbar.  Also, don't call
7730         Control.Refresh from within Redraw, as it's much heavier than
7731         Invalidate (which is really what we want).
7732
7733 2006-07-20  Chris Toshok  <toshok@ximian.com>
7734
7735         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7736         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7737         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7738         traces from within a debug IBindingList datasource
7739         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7740         to work in a similar fashion.
7741
7742 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7743
7744         * ListBox.cs: Don't call Sort () when setting 
7745         the Sorted property to false (avoid an unnecessary sort).
7746
7747 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7748
7749         * ListControl.cs: DataSource should throw an ArgumentException
7750         instead of a normal exception when the argument is not of the 
7751         correct type.
7752
7753 2006-07-20  Mike Kestner  <mkestner@novell.com>
7754
7755         * Control.cs: add InternalPreProcessMessage to allow us to steal
7756         key events before MWF gets its paws on them.  Adapted from a
7757         suggestion by eno.
7758         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7759         up/down/left/right navigation. Override the new internal control
7760         method to steal the events since they never make it to WndProc.
7761         * ToolBarButton.cs: don't worry about pushed when setting hilight
7762         since the drawing code prefers pushed to hilight. Invalidate on 
7763         Hilight changes. Fixes #78547 and #78525.
7764
7765 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7766
7767         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7768           the canvas size. Fixes #78868
7769
7770 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7771
7772         * Splitter.cs: Track requested split position until first layout
7773           is performed. Fixes #78871
7774
7775 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7776
7777         * Application.cs: Removed code that forces 1.x for the version
7778           number if the version started with 0. Not sure why that code was
7779           there and I couldn't find any bugs that indicated we needed it.
7780           Fixes #78869
7781
7782 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7783
7784         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7785           ResetDefaults(), just write some output to the console until it's
7786           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7787
7788 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7789
7790         * PropertyGridView.cs: set StartPosition of drop down forms
7791         so they appear in correct initial spot.  Fixes #78190.
7792
7793 2006-07-19  Mike Kestner  <mkestner@novell.com>
7794
7795         * ThemeWin32Classic.cs: use parent background color when drawing
7796         flat toolbars.  Restructure the conditionals to make sure non-flat
7797         non-Divider toolbars are filled too.  Fixes #78837.
7798
7799 2006-07-19  Mike Kestner  <mkestner@novell.com>
7800
7801         * ListBox.cs: Sort on collection changes even if the handle
7802         isn't created yet.  Fixes #78813.
7803
7804 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7805
7806         * ListControl.cs: DisplayMember should never be null,
7807         and now we assign String.Empty when null is passed to it (this
7808         is the .Net way).
7809
7810 2006-07-17  Mike Kestner  <mkestner@novell.com>
7811
7812         * ListViewItem.cs: restructure Font and subitem Font handling 
7813         to hold a specific font and refer back to owner on null.
7814         Fixes #78761.
7815
7816 2006-07-17  Mike Kestner  <mkestner@novell.com>
7817
7818         * ToolBar.cs: bandaid for side-effect of previous patch which was
7819         discarding explicit heights for non-AutoSize toolbars.  Need to
7820         extend my format tester to deal with AutoSize=false. Fixes #78864.
7821
7822 2006-07-15  Jackson Harper  <jackson@ximian.com>
7823
7824         * LabelEditTextBox.cs:
7825         * TreeView.cs: Use a new LabelEdit class for node editing, this
7826         class automatically 'closes' itself when it gets the enter key or
7827         loses focus.
7828         - Use the client rectangle when setting the trees scrollbars, so
7829         border style is taken into account.
7830         
7831 2006-07-14  Jackson Harper  <jackson@ximian.com>
7832
7833         * TreeNode.cs:
7834         * TreeView.cs: Make the editing work similar to MSs, firing the
7835         events correctly and ending edits correctly.
7836
7837 2006-07-14  Mike Kestner  <mkestner@novell.com>
7838
7839         * ToolBarButton.cs:
7840         * ToolBar.cs: layout restructuring and redraw enhancements to support
7841         formatting changes gracefully, like setting TextAlign, ImageList, 
7842         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7843         of the MS controls.  Things like flat toolbars ignoring button size
7844         but becoming constant sized at the largest button's size.  Normal
7845         toolbars with an image set cannot be shrunk smaller than the image,
7846         but text can be clipped/ignored.
7847         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7848         is zero.  Seems like DrawString should be smart enough to not put
7849         anything on screen though. Also trim labels and ellipsize at the char
7850         boundary, not word.
7851         Fixes #78711 and #78483.
7852
7853 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7854
7855         * FolderBrowserDialog.cs: Disable "New Folder" button and
7856           "New Folder" contextmenu menuitem if a folder like "My Computer"
7857           is selected.
7858
7859 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7860
7861         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7862         * FolderBrowserDialog.cs:
7863           - Use MWFConfig to store and read size and position settings
7864           - Added code to create a new folder (button or context menu).
7865             Use TreeView labeledit to change the name of the new folder.
7866
7867 2006-07-14  Jackson Harper  <jackson@ximian.com>
7868
7869         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7870         when the tree is scrolled we end editing.
7871
7872 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7873
7874         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7875           Down arrows
7876
7877 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7878
7879         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7880         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7881         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7882         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7883         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7884         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7885         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7886         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7887         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7888         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7889         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7890         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7891         ListViewItemSelectionChangedEventHandler.cs,
7892         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7893         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7894         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7895         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7896         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7897         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7898         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7899         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7900         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7901         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7902         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7903         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7904         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7905         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7906         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7907         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7908         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7909         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7910         WebBrowserNavigatingEventHandler.cs, 
7911         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7912
7913 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7914
7915         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7916         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7917         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7918         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7919         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7920         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7921         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7922         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
7923         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
7924         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
7925         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
7926         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
7927         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
7928         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
7929         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
7930         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
7931         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
7932         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
7933         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
7934         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
7935         ListViewItemStates.cs, MaskFormat.cs: Added
7936
7937 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
7938
7939         * PropertyGridView.cs: Fix keyboard navigation of drop down.
7940         Patch from eno for bug 78558.
7941         
7942 2006-07-13  Jackson Harper  <jackson@ximian.com>
7943
7944         * TreeView.cs: When an edit is finished make sure that the
7945         selected node is visible.
7946         - When setting the top/bottom use the scrollbars is_visible, so
7947         everything will be set correctly even if the tree isn't visible
7948         yet.
7949
7950 2006-07-13  Jackson Harper  <jackson@ximian.com>
7951
7952         * ComboBox.cs: Revert the item->index part of my previous patch.
7953         * TreeView.cs: Use LostFocus instead of Leave for detecting when
7954         the edit box has lost focus (duh).
7955         - Just make the edit box not visible when we get return, that will
7956         take the focus, which will call EndEdit
7957         * TreeNode.cs When we start editing, notify the treeview.
7958
7959 2006-07-12  Jackson Harper  <jackson@ximian.com>
7960
7961         * ComboBox.cs: Clear out old items before setting the item list.
7962         This prevents databound controls from having their items added
7963         twice.
7964         - Switch the combobox to use indices whereever possible instead of
7965         using Item's.  This allows usto navigate through lists that have
7966         more then one item with the same string value (ie a, b, b, a).
7967         - Scroll the listboxes scrollbar when a non visible item is
7968         highlighted
7969         - Allow keypress to cycle through all the possible values. For
7970         example if you have b1, b2, b3 and hold down the B key all the
7971         values will be cycled through.
7972         
7973 2006-07-12  Jackson Harper  <jackson@ximian.com>
7974
7975         * TextBoxBase.cs:
7976         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
7977         this using the internal methods.
7978         * Control.cs: Add OnGotFocusInternal.  A new method that allows
7979         controls to "override" OnGotFocus and change focus behavior if
7980         needed.
7981         - Same thing for LostFocus
7982         * ComboBox.cs: Pass off focus to the text control properly.
7983
7984 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
7985
7986         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
7987         * FolderBrowserDialog.cs: Almost a complete rewrite.
7988           - Better support for Environment.Specialfolders
7989           - Added support for MWFVFS
7990           - Made setting SelectedPath work
7991
7992 2006-07-12  Jackson Harper  <jackson@ximian.com>
7993
7994         * Control.cs: Optimze getting all the controls.
7995
7996 2006-07-11  Jackson Harper  <jackson@ximian.com>
7997
7998         * ContainerControl.cs: Override SETFOCUS in the container control,
7999         so that it is not selected on mouse click.
8000
8001 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8002
8003         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8004           Hopefully we will have a better way once all of focus is complete.
8005
8006 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8007
8008         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8009           a compile error with csc.
8010
8011 2006-07-11  Jackson Harper  <jackson@ximian.com>
8012
8013         * Control.cs: When hiding a control only select the next control
8014         if the current control was focused.
8015         - Don't handle enter/leave when setting/killing focus, this is
8016         done by the container control.
8017         - Remove is_selected, it's not needed anymore.
8018         - Add utility methods for selecting a child control, and for
8019         firing the Enter/Leave events.
8020         * ContainerControl.cs: When a control is activated fire the
8021         enter/leave events.
8022         - Don't wrap when processing the tab key, so that focus can be
8023         moved outside of the container.
8024         - Use the correct active control
8025
8026 2006-07-11  Jackson Harper  <jackson@ximian.com>
8027
8028         * ComboBox.cs: Remove some debug code that was blinding me.
8029         * UpDownBase.cs: These controls actually aren't implicit, they are
8030         visible to the user.
8031
8032 2006-07-10  Chris Toshok  <toshok@ximian.com>
8033
8034         * DataGrid.cs: move back to the is_adding boolean field.  god i
8035         hate this is_editing/is_adding/is_changing stuff.
8036
8037 2006-07-10  Chris Toshok  <toshok@ximian.com>
8038
8039         * DataGridTableStyle.cs: just check if the property type is bool.
8040         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8041         Don't use CanRenderType.
8042
8043         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8044         if our text == NullText.  Remove CanRenderType.
8045
8046         * DataGridBoolColumn.cs: nuke CanRenderType.
8047
8048         * DataGrid.cs: reenable some code to end the current edit inside
8049         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8050         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8051         Also, remove the visible_row_count arg from CalcRowHeaders, since
8052         we don't need to worry about the actual height of the area.
8053
8054 2006-07-10  Chris Toshok  <toshok@ximian.com>
8055
8056         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8057         mode, just return.
8058
8059         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8060         the real sense of the IsInEditOrNavigateMode property (true =
8061         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8062
8063         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8064         column style exists, we still need to set its property descriptor
8065         to match up with our list manager.
8066
8067 2006-07-10  Chris Toshok  <toshok@ximian.com>
8068
8069         * ThemeWin32Classic.cs: implement the new row/header painting
8070         approach.  The parent row painting will likely go away and
8071         replaced with label controls, but the rest seems to work ok (and
8072         efficiently).
8073
8074         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8075         the row headers as a block now.  Instead we draw them in the
8076         normal draw-row loop.  Add some calls for drawing parent rows and
8077         relation rows.
8078
8079         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8080         a default table style.  Set the defaults from ThemeEngine.Current,
8081         not SystemColors.  Fix lots of misc issues with property setters.
8082
8083         * DataGrid.cs: move loads of style information out of this class
8084         as it's being duplicated with DataGridTableStyle.  keep track of a
8085         special DataGridTableStyle for the properties we used to mirror
8086         here.  Switch all the style properties to access this table style
8087         instead of instance fields of this class.  Also add a internal
8088         class to represent parent rows (more needs to be stored here, like
8089         the selection state from the parent table, as well as the
8090         expansion state.)  Also, for datasources with relations, do the
8091         right thing for collapse/expand, and add support for the
8092         navigation/parent row buttons.
8093
8094         Lastly, fix the crash in the 1.1.16 build.
8095
8096         * GridTableStylesCollection.cs: make the explicit interface
8097         implementations call the class's methods as opposed to duplicating
8098         them.
8099
8100         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8101         0 so the text doesn't jump around when we move the cursor.
8102
8103 2006-07-10  Jackson Harper  <jackson@ximian.com>
8104
8105         * TextBoxBase.cs:
8106         * ListBox.cs: Match MS's ToString (this makes debugging focus
8107         stuff infinitely easier).
8108
8109 2006-07-10  Jackson Harper  <jackson@ximian.com>
8110
8111         * Control.cs (SelectNextControl): When checking the control's
8112         parent use this instead of ctrl.parent so that null can be passed
8113         to SelectNextControl. (I have unit tests for this).
8114         - Remove unused var.
8115
8116 2006-07-10  Chris Toshok  <toshok@ximian.com>
8117
8118         * CurrencyManager.cs: correct one regression, the removal of the
8119         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8120         Refresh() correctly, and fix some event emission in
8121         ListChangedHandler.
8122
8123 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8124
8125         * FileDialog.cs: Don't use brackets for new folders if they exist
8126           under *nix. Instead use -(number of existing folders +1).
8127
8128 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8129
8130         * FileDialog.cs:
8131           - Fixed really nasty bug #78771
8132           - Don't block the whole GUI when reading directories with a lot of
8133             entries. Use an other thread instead and call BeginInvoke to
8134             update the ListView in MWFFileView
8135
8136 2006-07-07  Chris Toshok  <toshok@ximian.com>
8137
8138         * Control.cs (Dispose): release any Capture when disposing.
8139
8140 2006-07-07  Chris Toshok  <toshok@ximian.com>
8141
8142         * LinkLabel.cs (Select): if we chain up to the parent, set
8143         focused_index to -1 so we'll search for the first available link
8144         the next time the user tabs into us.  Also, if the direction is
8145         backward and focused_index == -1, start the search from the last
8146         element.
8147
8148 2006-07-07  Chris Toshok  <toshok@ximian.com>
8149
8150         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8151         is beyond the end of the text, don't do anything.
8152         (CreateLinkPieces): set our ControlStyles.Selectable based on
8153         whether or not we have any links.
8154         (Link.Invalidate): use a loop instead of foreach.
8155         (Link.set_Start): null out owner.sorted_links so it'll be
8156         recreated by CreateLinkPieces.
8157
8158 2006-07-06  Chris Toshok  <toshok@ximian.com>
8159
8160         * LinkLabel.cs: revert the SetStyle change.
8161
8162 2006-07-06  Chris Toshok  <toshok@ximian.com>
8163
8164         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8165         (OnEnableChanged): s/Refresh/Invalidate
8166         (OnGotFocus): if we have a focused index already, refocus it (so
8167         if we mouse out/in to the window it'll focus the right link).
8168         (OnKeyDown): move the tab handling out of here.
8169         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8170         when we lose focus.
8171         (OnMouseDown): don't Capture here - Control handles it.  Also,
8172         focus the active link.
8173         (OnMouseUp): don't deal with Capture.
8174         (OnPaintBackgroundInternal): remove.
8175         (OnTextAlignChanged): CreateLinkPieces before calling the
8176         superclass's method.
8177         (OnTextChanged): call CreateLinkPieces before calling superclass's
8178         method.
8179         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8180         move around.
8181         (Select): implement this, moving the selection between different
8182         links, and call parent.SelectNextControl if we don't have another
8183         link to focus in the given direction.
8184         (CreateLinkPieces): call Invalidate instead of Refresh.
8185         
8186 2006-07-06  Chris Toshok  <toshok@ximian.com>
8187
8188         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8189         new LinkLabel internals.
8190
8191         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8192         over pieces looking for active/focused/etc links.  also, deal with
8193         runs of text (and links) with embedded \n's in them, and use
8194         MeasureCharacterRanges instead of MeasureString to figure out the
8195         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8196         two-step.
8197
8198 2006-07-04  Jackson Harper  <jackson@ximian.com>
8199
8200         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8201         XKB or key auto repeat, do it manually.  Without key auto repeat,
8202         when a key is held down we get key press, key release, key press,
8203         key release, ... with auto repeat we get key press, key press, key
8204         press ..., and then a release when the key is actually released.
8205
8206 2006-07-03  Jackson Harper  <jackson@ximian.com>
8207
8208         * TabControl.cs:
8209         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8210         rules, they are always control color regardless of the background
8211         color.
8212
8213 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8214
8215         * FileDialog.cs: Added internal class MWFConfig.
8216           Removed Registry support and replaced it with support for the new
8217           MWFConfig class. See MWFConfig comments for more information.
8218
8219 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8220
8221         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8222           rectangle. Added some patches from eno from bug #78490 and fixed
8223           the arrow position for small up and down CPDrawScrollButtons.
8224
8225 2006-06-30  Jackson Harper  <jackson@ximian.com>
8226
8227         * InternalWindowManager.cs: Remove some debug code.
8228         * Form.cs: When an MdiParent is set to null, the window is
8229         "detatched" and becomes a normal window.
8230         * MdiClient.cs: Don't bring the new child form to the front until
8231         it is activated (setting it as active does this), this makes the
8232         previously active forms titlebar get redrawn as inactive.
8233
8234 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8235
8236         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8237           with later controls
8238
8239 2006-06-29  Mike Kestner  <mkestner@novell.com>
8240
8241         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8242         arrow in keynav state.  Fixes #78682.
8243
8244 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8245
8246         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8247           order (fixes #78393)
8248
8249 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8250
8251         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8252           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8253           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8254           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8255           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8256           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8257           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8258           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8259           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8260           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8261           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8262           values)
8263
8264 2006-06-28  Mike Kestner  <mkestner@novell.com>
8265
8266         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8267
8268 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8269
8270         * PropertyGrid.cs,
8271           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8272           item lines from other area (It also makes BackColor consistent and
8273           compatible with .NET). Fixed bug #78564.
8274
8275 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8276
8277         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8278         Patch from Eno for #78555.
8279
8280 2006-06-27  Chris Toshok  <toshok@ximian.com>
8281
8282         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8283
8284         * DataGridColumnStyle.cs: same.
8285
8286         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8287         
8288         * DataGridDrawingLogic.cs: nuke.
8289
8290 2006-06-27  Chris Toshok  <toshok@ximian.com>
8291
8292         * DataGridTableStyle.cs: clean up the constructors, and build the
8293         list of child relations for this table.  I have no idea if this is
8294         where we should be doing it (it probably isn't), but since we're
8295         already iterating over the properties..
8296
8297         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8298         struct and array for keeping track of row information, similar to
8299         what's shown in a hack on
8300         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8301
8302         * Theme.cs: be consistent about the naming of DataGrid methods,
8303         prefering ColumnWidths and RowHeights over columnsWidths and
8304         RowsHeights.
8305
8306         * ThemeWin32Classic.cs: same, and also add support for variable
8307         sized rows (and the +/- expansion icons for related rows).
8308
8309 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8310
8311         * TextBoxBase.cs: Applied Eno's patch from #78660
8312
8313 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8314
8315         * Form.cs (ScaleCore): We don't want to scale our form if it's
8316           state is minimized or maximized, but we still need to scale our
8317           child windows. Also, added try/finally block to ensure layout
8318           gets reset (Fixes #78697)
8319
8320 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8321
8322         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8323
8324 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8325
8326         * Form.cs: Fixed c+p error and added check to resize form if minimum
8327           size is bigger than current size (Fixes #78709)
8328
8329 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8330
8331         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8332
8333 2006-06-26  Mike Kestner  <mkestner@novell.com>
8334
8335         * ComboBox.cs: only do Keypress handling in the combo when there  
8336         are items in the collection. Fixes #78710.
8337
8338 2006-06-26  Chris Toshok  <toshok@ximian.com>
8339
8340         * Binding.cs: make this work bi-directionally.  also, clear up
8341         other mixups between Push/Pull Data (e.g. we're supposed to pull
8342         data when validating).
8343
8344         * BindingManagerBase.cs: trim some fully qualified collection
8345         types.
8346
8347         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8348
8349 2006-06-23  Chris Toshok  <toshok@ximian.com>
8350
8351         * PropertyManager.cs: It appears (according to the unit tests)
8352         that PropertyManager doesn't use
8353         PropertyDescriptor.AddValueChanged to track propery value changes
8354         in its datasource, but uses the same scheme as Binding, where it
8355         looks for a <Property>Changed event and binds to it.
8356
8357         Also, according to the docs, IsSuspended always returns false for
8358         a property manager with a non-null datasource.
8359
8360 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8361
8362         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8363           need to update the actual DialogResult. (Fixes #78613)
8364
8365 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8366
8367         * Form.cs (ShowDialog): Release any captures before running the
8368           new message pump (fixes #78680)
8369
8370 2006-06-22  Mike Kestner  <mkestner@novell.com>
8371
8372         * ListView.cs: Layout column widths properly in details mode even 
8373         if HeaderStyle.None is set.  Fixes #78691.
8374
8375 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8376
8377         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8378
8379 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8380
8381         * Control.cs (ContainsFocus): Using new driver method to get focused
8382           window, instead of trying to use internal tracking var, which can
8383           recursion issues (Fixes #78685)
8384         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8385           XplatUIWin32.cs: Added GetFocus method to return focused window
8386
8387 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8388
8389         * ColorDialog.cs: when the mouse button is pressed inside the color
8390         matrix, don't let the cursor move out of it until the button is
8391         released, which is the behavior on windows. Changed 'colours' by
8392         'colors' to use the same word consistently.
8393
8394 2006-06-21  Chris Toshok  <toshok@ximian.com>
8395
8396         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8397         child relation and back, using a stack).  Also, remove
8398         GetDataSource and the code that calls it - it's not needed.  Also,
8399         track CurrencyManager.ListName's removal.
8400
8401 2006-06-21  Chris Toshok  <toshok@ximian.com>
8402
8403         * CurrencyManager.cs: push some of the original type checking from
8404         BindingContext.CreateBindingManager to here, and remove some of
8405         the finalType stuff.  Need more tests to make sure I've got the
8406         ListName part right, and we might need more in SetDataSource.
8407
8408         * PropertyManager.cs: add a ctor that takes just the datasource,
8409         and no property name.  Make SetDataSource work with a null
8410         property_name, and make Current return the data_source if the
8411         property descriptor is null.  this makes 'string foo = "hi";
8412         BindingContext[foo].Current' return "hi" as it should.
8413
8414         * RelatedCurrencyManager.cs: make this code more generic - there's
8415         no reason the parent manager has to be CurrencyManager, and
8416         there's no reason to pass the DataRelation.  It suffices to use a
8417         BindingManagerBase and PropetyDescriptor.
8418
8419         * RelatedPropertyManager.cs: make a similar change here.
8420         
8421         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8422         flower I knew it could be.
8423
8424 2006-06-20  Chris Toshok  <toshok@ximian.com>
8425
8426         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8427         data in the source has changed and we need to update the control,
8428         so s/PullData/PushData.
8429
8430         * CurrencyManager.cs: Refresh is meant to update the control from
8431         data in the datasource.  So, s/PullData/PushData.
8432
8433         * BindingContext.cs: add more ugliness (we weren't handling the
8434         case where data_source = DataTable and data_member = column_name).
8435
8436         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8437         from the perspective of the datasource.  PullData pulls from the
8438         control, PushData pushes to the control.
8439
8440 2006-06-20  Chris Toshok  <toshok@ximian.com>
8441
8442         * BindingContext.cs: rewrite the CreateBindingManager code to
8443         handle navigation paths more or less properly.  This could
8444         definitely stand some more work, in particular to push the
8445         recursion up to the toplevel.  But that relies on fixes in other
8446         places (System.Data comes to mind).
8447
8448         Also, move to a flat hashtable (and encode the twolevel nature of
8449         the dictionary into the hash key).  This lets us implement the
8450         IEnumerable.GetEnumerator method.
8451
8452         * RelatedCurrencyManager.cs: new class.  Update our view based on
8453         our relation and our parent CurrencyManager's position.
8454
8455         * CurrencyManager.cs: split out some logic from the ctor into
8456         SetView, so it can be called from the new RelatedCurrencyManager
8457         subclass.
8458
8459         * RelatedPropertyManager.cs: new class.  Update our datasource
8460         based on the position of our parent CurrencyManager.
8461
8462         * PropertyManager.cs: split out some logic from the ctor into
8463         SetDataSource, so it can be called from the new RelatedDataSource
8464         subclass.  Also, make the Current getter return the value
8465         of the PropertyDescriptor, not the data_source.
8466
8467         * Binding.cs: no need to duplicate the string splitting code here.
8468
8469 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8470
8471         * Control.cs:
8472           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8473             of the control is not altered, even though  we might be changing the
8474             internal state of the control (#78458)
8475           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8476             OnEnabledChanged, to allow easy altering of any child window state
8477           - OnEnabledChanged: Added code to enable/disable driver window state
8478           - OnParentEnabledChanged: Instead of firing the event, call 
8479             OnEnabledChanged, which will fire the event and also a) set driver
8480             window state and pass the enabled state to any grandchildren (#78458)
8481
8482 2006-06-19  Jackson Harper  <jackson@ximian.com>
8483
8484         * InternalWindowManager.cs: We don't set the cursor explicitly
8485         thats done via the response to NCHITTESTs.
8486         - Don't need to adjust for titlebar heights anymore, the
8487         coordinates are coming in the correct coordinates now (see peters
8488         last patch).
8489
8490
8491 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8492
8493         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8494           being translated relative to whole window, instead of client window.
8495           That caused broken offsets on mouseclick (and caused gas for our
8496           InternalWindowManager)
8497
8498 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8499
8500         * TextControl.cs:
8501           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8502           - Undo(): Added replay of cursor move on DeleteChars action; added
8503             calling Undo() again if a recorded cursor move is invalid (to
8504             ensure that some action is performed on Undo)
8505         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8506
8507 2006-06-16  Jackson Harper  <jackson@ximian.com>
8508
8509         * MdiClient.cs: Instead of just sizing maximized windows when
8510         there is a resize we also have to adjust the Y of minimized
8511         windows, so they stay pinned to the bottom of the mdi container.
8512         - Eliminate separate tracking of the active control, we can just
8513         get this from the controls collection.
8514         - Paint the decorations for the newly activated titlebar so we get
8515         a pretty blue bar.
8516         * InternalWindowManager.cs:
8517         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8518         even if they are a tool window.
8519         
8520 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8521
8522         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8523           undo buffer, these can happen when text was deleted and the cursor
8524           was recorded first. Since we will also have a recorded cursor
8525           after the delete this is not an issue. (Fixes #78651)
8526
8527 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8528
8529         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8530           instead properly track control states internally (allows us to
8531           remove is_selected from Control)
8532
8533 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8534
8535         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8536         whose width is not a multiple of 8.
8537
8538 2006-06-13  Jackson Harper  <jackson@ximian.com>
8539
8540         * MdiClient.cs:  Only maximize the next child if the current one
8541         is maximized.
8542
8543 2006-06-13  Chris Toshok  <toshok@ximian.com>
8544
8545         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8546         modified.  Also, guard against grid or grid_drawing being null in
8547         Invalidate.
8548
8549         * DataGrid.cs: Reformat tons of getters/setters.  In the
8550         DataMember setter, just call SetNewDataSource instead of
8551         duplicating some of its functionality.  In SetNewDataSource, don't
8552         check ListManager for null, since the property getter creates the
8553         object if needed.
8554
8555         * DataGridTableStyle.cs: don't set TableStyle or call
8556         SetDataGridInternal on the column here, it's done in
8557         GridColumnStylesCollection.Add.
8558
8559         * GridColumnStylesCollection.cs: fix all the explicit interface
8560         implementations to just call our methods.  Nuke AddInternal() and
8561         move the body of it to Add().  Also, add a call to
8562         column.SetDataGridInternal to Add().
8563
8564         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8565         base()+duplicate code.  Also, use the Format property instead of
8566         format to generate an Invalidate ala MS.  Lastly, create the
8567         textbox here, unconditionally.
8568         (set_Format): call Invalidate.
8569         (get_TextBox): no need to call EnsureTextBox.
8570         (Commit): remove the message box.
8571         (Edit) remove the call to EnsureTextBox.
8572         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8573         (EnterNullValue): no need to check textbox for null.
8574         (HideEditBox): no need to check textbox for null.
8575         (SetDataGridInColumn): add the textbox to the grid's controls.
8576         (EnsureTextBox): nuke.
8577         
8578 2006-06-13  Jackson Harper  <jackson@ximian.com>
8579
8580         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8581         and redraw the buttons when needed. Unhook when the window is
8582         unmaximized.
8583         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8584         needs this so that it can redraw its buttons when the menu is
8585         repainted.
8586         * InternalWindowManager.cs:
8587         * Form.cs: The method order has changed for DrawMaximizedButtons,
8588         so that it can be a PaintEventHandler.
8589         
8590 2006-06-13  Jackson Harper  <jackson@ximian.com>
8591
8592         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8593         window is activated and maximized, even if it wasn't before.
8594         - When  a new window is activated repaint the decorations of the
8595         old one, so that it no longer has the Active "look" (the blue
8596         titlebar).
8597         * InternalWindowManager.cs: Open up CreateButtons to base classes
8598         so they can recreate the buttons on state changes.
8599         - If a window is maximized give it all three buttons
8600         * MdiWindowManager.cs: Create the titlebar buttons when the state
8601         is changed, this is needed because a toolwindow will not have all
8602         three buttons until it is maximized.
8603
8604 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8605
8606         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8607           Fixed bug #78609.
8608
8609 2006-06-12  Jackson Harper  <jackson@ximian.com>
8610
8611         * KeysConverter.cs: Make sure we handle the Ctrl special case
8612         if its the only key.
8613         
8614 2006-06-12  Jackson Harper  <jackson@ximian.com>
8615
8616         * Theme.cs: Add a method to get the size of a managed window
8617         toolbar button.
8618         * InternalWindowManager.cs: Remove the ButtonSize property, this
8619         should be retrieved from the theme.
8620         * MdiWindowManager.cs: Get the button size from the theme
8621         * ThemeWin32Classic.cs: Make the method to get the managed window
8622         titlebar button size public.
8623         - Handle the different button sizes of maximized toolwindows
8624         (should match any maximized window).
8625         - Get the titlebar height from the theme, not the WM (which gets
8626         it from the theme).
8627
8628 2006-06-12  Jackson Harper  <jackson@ximian.com>
8629
8630         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8631         event down to the mdi window manager.
8632         - Expose some extra stuff to base classes
8633         - Make sure to end the Capture on an NC Mouse up, so that we can
8634         get double clicks properly, and the sizing doens't stick.
8635         - When doing PointToClient contain it in the workable desktop
8636         area, this prevents windows from changing size when the cursor is
8637         pulled outside of the working area while sizing.
8638         * MdiWindowManager.cs: When we get a double click maximize the
8639         window.
8640         - Reset the cursor after handling mode changes.
8641
8642 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8643
8644         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8645           current desktop, instead of just assuming a 0, 0 origin. This
8646           is needed for our internal window manager, to know the top
8647           margin of the desktop
8648
8649 2006-06-12  Chris Toshok  <toshok@ximian.com>
8650
8651         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8652         we need this to get rid of the selected background in the bool
8653         column.
8654         (CancelEditing): move the ConcedeFocus call to above the Abort
8655         call.  Also, set is_changing to false and invalidate the row
8656         header if we were changing before.
8657         (ProcessKeyPreviewInternal): remove, since noone outside this
8658         class calls it anymore.  Roll the code into ProcessKeyPreview.
8659         (EndEdit): remove the internal version.
8660         (InvalidateCurrentRowHeader): make private.
8661
8662         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8663         Keys.Escape handling (and with it the last call to
8664         DataGrid.EndEdit from outside the class.)
8665
8666
8667 2006-06-12  Chris Toshok  <toshok@ximian.com>
8668
8669         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8670         (OnKeyPress): set isedit to true.
8671         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8672         already handled by the grid.
8673
8674         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8675         right.  ugh.
8676         (set_DataSource): SetDataSource always returns true, so stop
8677         putting it in an if statement.
8678         (EndEdit): get rid of some {}'s
8679         (ProcessGridKey): return true in case Keys.Escape.
8680         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8681         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8682         PositionChanged, stopped connecting to CurrentChanged.
8683         (GetDataSource): simplify this a bunch.
8684         (SetDataSource): change return type from bool to void.
8685         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8686         to this, and make sure we don't set ListManager.Position inside
8687         set_CurrentCell.
8688         (OnListManagerItemChanged): if we're passed an actual index,
8689         redraw that row.
8690
8691         * CurrencyManager.cs (set_Position): don't call PullData here.
8692
8693 2006-06-09  Jackson Harper  <jackson@ximian.com>
8694
8695         * TreeNode.cs:  Recalculate the visible order before doing the
8696         Expand/Collapse Below calls, because those calls generate an
8697         expose.
8698         - Reduce calls to the TreeView property, which is mildly expensive
8699         by using a local var.
8700         * Form.cs: Layout the MDI child windows when creating the parent
8701         form.
8702         - Don't use the internal constructor anymore
8703         * MdiClient.cs: use the parent form width/height (if available)
8704         when laying out the child windows, we do this because the
8705         mdiclient isn't docked yet when the initial layout is done.
8706         - Don't need an internal constructor anymore.
8707
8708 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8709
8710         * FileDialog.cs: handle access errors when trying to create a folder
8711         or changing to a directory. No need to initialize out parameters.
8712
8713 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8714
8715         * FileDialog.cs: Append a number when creating a new folder if the
8716           folder already exists (use parenthesis instead of square brackets)
8717
8718 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8719
8720         * FileDialog.cs:
8721           - Disabled registry support for windows and added better registry
8722             error checking for other systems (need to investigate why it
8723             works perfectly on my system)
8724           - If a folder already exist show an error MessageBox instead of
8725             trying to create an indexed name.
8726           - Fixed a non intentional typo.
8727
8728 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8729
8730         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8731
8732 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8733
8734         * FileDialog.cs: When creating a new folder don't crash if the
8735           folder already exists.
8736
8737 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8738
8739         * FileDialog.cs: Allmost a complete rewrite.
8740           - added a "virtual" file system that handles the differences
8741             between unix and windows file systems (especially the directory
8742             structure). Moved most of the directory and file handling code
8743             into the vfs.
8744             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8745             UnixFileSystem and FSEntry.
8746           - Recently used folder/directory, size, location and used file names
8747             (file name ComboBox) are now stored in the registry and get read
8748             before the dialog shows up (fixes part 6 of bug #78446).
8749           - Creation of new folders/directories is now possible (context menu
8750             or ToolBar). Added TextEntryDialog for this that fills in the gap
8751             until ListView.LabelEdit works.
8752           - Fixed cursor handling (bug #78527) and focus handling for
8753             PopupButtonPanel
8754           - Various "Search in" ComboBox enhancements. The content of the
8755             dropdown listbox now almost matches ms.
8756           - Changed the behaviour when the user switches to SpecialFolder
8757             Recent to show the ListView in View.Details.
8758           - Beside using the ToolBar to change the View property of the
8759             file ListView it is now possible to use the context menu too.
8760
8761 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8762
8763         * ComboBox.cs: Don't create a new ObjectCollection when an item
8764           gets inserted. Just insert the item in the existing object_items
8765           ArrayList.
8766
8767 2006-06-08  Jackson Harper  <jackson@ximian.com>
8768
8769         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8770         that the treeview and root node checks are done also, this fixes a
8771         regression i caused in the unit tests.
8772
8773 2006-06-07  Wade Berrier <wberrier@novell.com> 
8774
8775         * RichTextBox.cs: More ISO8859-1 -> unicode
8776
8777 2006-06-07  Mike Kestner  <mkestner@novell.com>
8778
8779         * ComboBox.cs : use items to hold highlight/selection so that
8780         collection insertions don't require synchronization.
8781
8782 2006-06-07  Jackson Harper  <jackson@ximian.com>
8783
8784         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8785         routine.  We now always keep the sized edge at the cursor instead
8786         of computing movement and adjusting rects.  There is one buglet
8787         with this method though when the cursor is moved over area that
8788         the window can not expand too (such as the toolbars on the desktop).
8789
8790 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8791
8792         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8793         here. Fixes crash on startup in AlbumSurfer.
8794
8795 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8796
8797         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8798           values
8799
8800 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8801
8802         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8803         statement to avoid calling XNextEvent which will block if another thread
8804         took the event that we were expecting. Fixes bug #78605.
8805
8806 2006-06-07  Mike Kestner  <mkestner@novell.com>
8807
8808         * ListView.cs : isolated checkbox clicking from the selection logic.
8809         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8810
8811 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8812
8813         * Form.cs: Check that the value passed to Form.DialogResult
8814         is a valid enum value.
8815
8816 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8817
8818         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8819         Computer'. Clicking it in the network view goes to 'My Computer'.
8820         Added CIFS filesystem type. Display the mount point of filesystems.
8821         Avoid duplicate mount points (happens for me with CIFS);
8822
8823 2006-06-06  Jackson Harper  <jackson@ximian.com>
8824
8825         * InternalWindowManager.cs: Draw the maximized windows buttons
8826         when resizing.
8827
8828 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8829
8830         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8831         all other dialogs. Fixes bug #78585.
8832
8833 2006-06-06  Mike Kestner  <mkestner@novell.com>
8834
8835         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8836         Only invalidate checkbox on checkstate changes to avoid flicker.
8837         * ListBox.cs : avoid unselect/select when clicking selected item.
8838         avoid reselection flicker for already multiselected items.
8839         Fixes #78382.
8840
8841 2006-06-06  Jackson Harper  <jackson@ximian.com>
8842
8843         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8844         the parent form so that the menu is removed if needed.
8845
8846 2006-06-06  Mike Kestner  <mkestner@novell.com>
8847
8848         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8849         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8850
8851 2006-06-06  Mike Kestner  <mkestner@novell.com>
8852
8853         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8854
8855
8856 2006-06-06  Jackson Harper  <jackson@ximian.com>
8857
8858         * Control.cs: Use the property (instead of the field) to get the
8859         default cursor so it is instantiated correctly.
8860         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8861         resizes so we need to manually repaint the window decorations here.
8862         - Set the titlebar button locations as soon as they are created,
8863         otherwise they are not set correctly on win32.
8864         
8865 2006-06-06  Chris Toshok  <toshok@ximian.com>
8866
8867         * CurrencyManager.cs (set_Position): call PullData before
8868         OnCurrentChanged.
8869         (AddNew): after calling IBindingList.AddNew, update our
8870         listposition, and call OnCurrentChanged/OnPositionChanged (without
8871         calling PullData).
8872         (OnCurrentChanged): remove the call to PullData from here.
8873         (OnItemChanged): remove the call to PushData from here.
8874         (OnPositionChanged): change the test from == null to != null to
8875         match the other methods.
8876         (ListChangedHandler): the grossest part of the patch.  Implement
8877         this such that it passes the unit tests in CurrencyManagerTest and
8878         the output more or less matches that of MS's implementation.
8879  
8880 2006-06-06  Mike Kestner  <mkestner@novell.com>
8881
8882         * ListView.cs : only update check state on single click.
8883         * ThemeWin32Classic.cs : fix focus drawing for details view without
8884         fullrowselect.  Fixes #78454.
8885         * XplatUIX11.cs : fix for double click emission.
8886
8887 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8888
8889         * PropertyGridView.cs : Applied Atsushi's patch to fix
8890         font dialog bug  (#78197).
8891
8892 2006-06-05  Jackson Harper  <jackson@ximian.com>
8893
8894         * TreeNode.cs: Compute the next node for expanding/collapsing
8895         correctly. We now factor in nodes without a NextNode
8896         correctly. (Fixes somes cases in nunit-gui).
8897         * InternalWindowManager.cs: Set the bounds when updating the
8898         virtual position of a tool window.
8899         
8900 2006-06-05  Chris Toshok  <toshok@ximian.com>
8901
8902         * DataGrid.cs: rename cached_currencymgr to list_manager.
8903         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8904         some.
8905         (CurrentRow, CurrentColumn): single accessors so we can make the
8906         cursor movement code a lot easier to understand.
8907         (CurrentRowIndex): implement this in terms of CurrentRow.
8908         (BeginEdit): clean this up a bit.
8909         (CancelEditing): sort out the is_editing/is_changing/is_adding
8910         stuff a little.
8911         (EndEdit): minor changes.
8912         (OnKeyDown): add a comment about a (most likely) unnecessary
8913         check.
8914         (OnMouseDown): cancel editing when we click on a row header.  And
8915         use the CurrentRow setter, not CurrentCell.
8916         (ProcessDialogKey): directly call ProcessGridKey.
8917         (UpdateSelectionAfterCursorMove): factor out this common block of
8918         code (it's used everywhere that we move the cursor by updating row
8919         or column).
8920         (ProcessGridKey): pretty substantial overhaul.  Use the
8921         CurrentRow/CurrentColumn properties to make the code a lot more
8922         readable.  Only use the CurrentCell property when we have to
8923         modify both row and column at once.  Tab behavior is still broken,
8924         and Delete is untested.
8925         (Select): if we have no selected rows, set selection_start to
8926         @row.
8927         (EditCurrentCell): rename EditCell this.  It was only ever invoked
8928         with CurrentCell as the arg, so drop the arg and rename it.
8929
8930         * DataGridColumnStyle.cs: clean up the constructors a little, and
8931         drop CommonConstructor().
8932
8933         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
8934         actually get notified when the user hits it.
8935         (ProcessKeyMessage): *substantially* simplify this method.
8936         There's no reason (that I can see) for the textbox to be making
8937         calls into the datagrid at all.  Remove all of them but the ones
8938         for Enter handling.  those will take some more work.
8939
8940         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
8941         calling HideEditBox.
8942         (HideEditBox): if we have an active textbox, render it invisible
8943         without causing a re-layout of the datagrid.
8944
8945 2006-06-05  Mike Kestner  <mkestner@novell.com>
8946
8947         * ListView.cs : fix NRE crasher when focuseditem is cleared by
8948         collection changes by resetting it to Items[0].  Fixes #78587.
8949
8950 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8951
8952         * MessageBox.cs: if the height of the text is larger than the icon_size,
8953         use that. Fixes bug #78575.
8954
8955 2006-06-05  Jackson Harper  <jackson@ximian.com>
8956
8957         * TreeView.cs: Fix line drawing when scrolling.  To do this each
8958         node is basically responsible for drawing its entire horizontal
8959         area.  When drawing a node it draws its parent node lines if
8960         needed.
8961         - Adjust the clip area to the viewport rectangle
8962         - Fix Left/Right key handling to match MS. (It expand/collapses
8963         and moves to parents/first child but does not move selection to
8964         sibling nodes).
8965         - Fix SetTop to work with new bound calculation code
8966         - When scrollbars are no longer needed we need to reset scrolling
8967         vars and recalculate the visible order so the redraw is correct
8968         * TreeNode.cs: We can't expand/collapse nodes with no children.
8969
8970 2006-06-03  John Luke  <john.luke@gmail.com> 
8971
8972         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
8973         so the colors work without dev packages
8974         
8975 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
8976
8977         * Control.cs 
8978           - Select: Implemented to just use activate. Seems to match MS 
8979             behaviour closest. Documented to only do actual control walking 
8980             based on it's parameters if in a container control so I moved 
8981             the code there.
8982           - Removed selection check logic from our internal Select() method
8983         * ContainerControl.cs:
8984           - Select: Moved selection logic from Control here, since MS documents
8985             that containers obey the bool arguments. No longer calling base
8986
8987 2006-06-02  Jackson Harper  <jackson@ximian.com>
8988
8989         * TreeView.cs: If the selected node isn't changed when we get
8990         focus update the previously selected node so that we see the
8991         selection box.
8992
8993 2006-06-02  Mike Kestner  <mkestner@novell.com>
8994
8995         * ComboBox.cs: restructure grab and general mouse event handling.
8996         Make the composite control raise mouse events like it was a single
8997         control for leaves/enters/motion/up/down events.  fix dropdown list
8998         coordinate mangling and refactor it into the scrollbar subclass to
8999         reduce code duplication.  Fixes #78282 #78361 and #78457.
9000
9001 2006-06-02  Mike Kestner  <mkestner@novell.com>
9002
9003         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9004         automatically in the Control.WndProc.
9005
9006 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9007
9008         * FileDialog.cs: fix crash when running SharpChess, which sets the
9009         FilterIndex to 2 with only one Filter.
9010
9011 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9012
9013         * ToolBar.cs: add SizeSpecified property.
9014         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9015         try to figure out our real size, otherwise fallback to what the
9016         container says.
9017
9018 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9019
9020         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9021         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9022           up the event
9023
9024 2006-06-01  Mike Kestner  <mkestner@novell.com>
9025
9026         * ListView.cs: revamp the focus management in ListView.  It still
9027         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9028         better than not handling focus at all.  Will revisit when pdb feels
9029         the general focus handling is solid.  Fixes #78526.
9030
9031 2006-06-01  Jackson Harper  <jackson@ximian.com>
9032
9033         * TreeView.cs: Set the default border style in the constructor.
9034         - Move painting to use OnPaintInternal instead of capturing
9035         WM_PAINT, this is the correct way of doing things
9036         - UpdateBelow shouldn't invalidate the scrollbar area
9037         - Cap the top on update below in case the node was above the top
9038         of the viewport rectangle.
9039         - ExpandBelow and Collapse below need to obey Begin/End Update.
9040         * TreeNode.cs: Make is_expanded internal so the treenode
9041         collection can change it without firing the whole event chain.
9042         * TreeNodeCollection.cs: When clearing all the child nodes make
9043         sure to recalc the visible order.
9044         - Improve algo for remove the top node
9045
9046 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9047
9048         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9049           SendMessage directly calling window procedures, which in turn might
9050           call SetFocus()
9051
9052 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9053
9054         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9055           has focus (works around X11 sending a FocusIn after our SetFocus)
9056         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9057
9058 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9059
9060         * Mime.cs: Fix for the NET_2_0 build.
9061           NameValueCollection needs StringComparer now.
9062
9063 2006-05-31  Chris Toshok  <toshok@ximian.com>
9064
9065         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9066         return (via an out parameter) the starting X of the column.
9067         (UpdateVisibleColumn): track change to FromPixelToColumn.
9068         (HitTest): add a ColumnResize case here.
9069         (DrawResizeLine): new function, probably poorly named.
9070
9071         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9072         only need to keep one reference.
9073         (set_ListManager): same.
9074         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9075         Also, add support for HitTestType.ColumnResize.
9076         (OnMouseMove): add column resize behavior here, and change the
9077         cursor to the correct one as we move around the datagrid.
9078         (OnMouseUp): terminate the column resize if we're resizing.
9079         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9080         for the current cell.
9081         (ConnectListManagerEvents): use cached_currencymgr.
9082         (DisconnectListManagerEvents): fill this in, using
9083         cached_currencymgr.
9084         (SetCurrentCell): remove cached_currencymgr_events handling.
9085         (SetDataMember): only call DisconnectListManagerEvents if
9086         cached_currencymgr is != null.
9087         (SetDataSource): same.
9088         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9089         cached_currencymgr.
9090
9091 2006-05-31  Jackson Harper  <jackson@ximian.com>
9092
9093         * BindingManagerBase.cs: Remove somedebug code that creeped into
9094         SVN.
9095         * TreeNode.cs: We get the indent level dynamically right now, so
9096         don't track it as a member.
9097         * TreeNodeCollection.cs: Make sure all nodes added to the list
9098         have parents, treeviews/topnodes setup properly.
9099         - Don't attempt to track indent level.
9100
9101 2006-05-30  Jackson Harper  <jackson@ximian.com>
9102
9103         * BindingContext.cs: Create the currency manager tables here.
9104         This allows us to more easily create null tables (when bad data
9105         members are used), and more easily create related currency
9106         managers.
9107         * CurrencyManager.cs: All the table creation stuff is done by the
9108         binding context now.
9109         - Current should throw an exception if listposition is -1.
9110         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9111         been bound yet.
9112
9113 2006-05-30  Mike Kestner  <mkestner@novell.com>
9114
9115         * ListView.cs: allow reexpansion of zero-width column headers.
9116         Fixes #78528.
9117
9118 2006-05-28  Chris Toshok  <toshok@ximian.com>
9119
9120         * CurrencyManager.cs (get_Current): after the late binding
9121         listposition = -1 fix, we need to guard against it here and return
9122         null, otherwise we raise an exception (which is swallowed
9123         elsewhere, and breaks datagrid databinding.)
9124
9125 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9126
9127         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9128           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9129
9130 2006-05-26  Jackson Harper  <jackson@ximian.com>
9131
9132         * ControlPaint.cs:
9133         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9134         values, it's faster and it's all we care about (we don't care if
9135         the names aren't equal).
9136         * KeyboardLayouts.cs: Eliminate some dead code.
9137         - Lazy init things
9138         * X11Keyboard.cs: Lazy init keyboard detection.
9139         - Cleanup access modifiers a little.
9140
9141 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9142
9143         * XplatUIX11.cs: Once again, attempting to get layout just right.
9144
9145 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9146
9147         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9148           the sizes of each link section, that will result in sizes that
9149           match DrawString's layout (Fixes #78391)
9150
9151 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9152
9153         * FileDialog.cs: If AddExtension property is true autocomplete the
9154           extensions in SaveFileDialog correctly. Fixes bug #78453.
9155           Set MyNetwork and MyComputer to "C:\" for windows. This should
9156           fix part 8 of bug #78446 for now.
9157
9158 2006-05-26  Chris Toshok  <toshok@ximian.com>
9159
9160         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9161         invalidate the current row header if we need to, but presumably
9162         we'll invalidate the row corrsponding to the bounds or
9163         editingControl.
9164         (GridHScrolled): switch back to this method, as it's part of the
9165         public api.  *sigh*.
9166         (GridVScrolled): same.
9167         (OnMouseWheel): hack up something that more or less works.  Call
9168         GridHScrolled/GridVScrolled directly, instead of duplicating much
9169         of their code here.
9170         (EnsureCellVisibility): reinstate a bunch of this code, since we
9171         can't just set the scrollbar Value and expect to do all the work
9172         in the ValueChanged handler.  Also, Call Update() after scrolling
9173         in one direction so the other XplatX11.ScrollWindow call has the
9174         proper stuff in the proper places.
9175         (EditCell): set is_editing to true before calling .Edit.
9176
9177         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9178         don't bother comparing first.
9179         (OnKeyPress): call grid.ColumnStartedEditing before calling
9180         base.OnKeyPress.  this will set is_changing and invalidate the row
9181         header if necessary.
9182         (ProcessKeyMessage): for WM_CHAR messages, call
9183         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9184         and WM_KEYDOWN.
9185         
9186         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9187         it's done in the DataGrid.
9188         (NextState): call grid.ColumnStartedEditing, which takes care of
9189         invalidating the row header (and setting is_changing).
9190
9191         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9192         here.  it's done in the DataGrid.
9193
9194 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9195
9196         * Control.cs: allow changing the cursor when the mouse position is
9197         out of bounds but Capture is set.
9198         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9199         linklabel but released somewhere else.
9200
9201 2006-05-25  Jackson Harper  <jackson@ximian.com>
9202
9203         * TreeView.cs: When we get focus if there is no selected node make
9204         it the top node
9205         - Remove some uneeded setup code from Draw.
9206         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9207         a new node is inserted make the new node the top.
9208         * XplatUIX11.cs:
9209         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9210         be used (should be faster).
9211         
9212 2006-05-25  Chris Toshok  <toshok@ximian.com>
9213
9214         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9215         problem with the last commit.
9216
9217 2006-05-25  Chris Toshok  <toshok@ximian.com>
9218
9219         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9220         need the invalidate call here, while scrolling right-to-left via
9221         the left arrow key (i.e. moving the editing cell while scrolling).
9222
9223         * DataGrid.cs (.ctor): remove the initialization of
9224         ctrl_pressed/shift_pressed.  We no longer track them using key
9225         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9226         to using ValueChanged handlers on the scrollbars instead of
9227         Scrolled event handlers.  This simplifies a bunch of the scrolling
9228         code.
9229         (GridHValueChanged): rename from GridHScrolled, and change it to
9230         work with the new event args.
9231         (GridVValueChanged): same.
9232         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9233         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9234         selected cell.
9235         (ProcessGridKey): correct all the keyboard navigation stuff I
9236         could find.  Ctrl up/down/left/right/home/end work now.
9237         (EnsureCellVisibility): correct method name spelling.  Also,
9238         simplify this a touch by not explicitly calling the
9239         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9240         scrollbar value.
9241         (OnKeyUpDG): no need for this method now.
9242         
9243 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9244
9245         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9246         Fixes bug #78392.
9247
9248 2006-05-25  Chris Toshok  <toshok@ximian.com>
9249
9250         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9251         r61019.
9252
9253 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9254
9255         * Application.cs: Moved setting of is_modal and closing to before
9256           we create the control, to allow the event handlers called as a
9257           result of creation affect closing. Also removed Gonzalo's previous
9258           change to setting DialogResult, the behaviour has been moved to 
9259           Form.ShowDialog()
9260         * Form.cs: 
9261           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9262             handle it instead
9263           - ShowDialog(): If no dialog result is set, we need to return Cancel
9264           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9265             the close is cancelled
9266
9267 2006-05-25  Jackson Harper  <jackson@ximian.com>
9268
9269         * StatusBar.cs: We only need to update the sizes of the other
9270         panels when we have auto size contents.  Also we are only updating
9271         the contents of the panel, not the borders, so compensate for the
9272         border width (TODO: get this width from the theme somehow).
9273         * TreeView.cs: Scrollable is true by default
9274         - Use invalidate instead of refresh where needed
9275         - Factor the scrollable value into scrollbar updating
9276         - Update the scrollbars if the Scrollable property is altered
9277         - Update the selected node if its ImageIndex is changed
9278         - Handle null nodes in UpdateNode (mainly so we don't have to
9279         check if selected is null when updating it
9280         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9281         are factored into the visible count
9282         - Use VisibleCount for clarity in the code
9283         - When the font is changed we need to recurse through all the
9284         nodes and invalidate their sizes
9285         
9286 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9287
9288         * Application.cs: set the DialogResult to fixed when the main form is
9289         hidden or destroyed while being modal.
9290
9291 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9292
9293         * Theme.cs: Use Tangoified messagebox icons. 
9294
9295         (GetSizedResourceImage): Also cope with width = 0 and do not
9296         trigger a warning in that case (0 means "give me your icon from
9297         the resouce, no special size needed).
9298
9299 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9300
9301         * Application.cs: Leave runloop if the the main modal form is 
9302           hidden (fixes #78484)
9303
9304 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9305
9306         * BindingContext.cs : reject null datasource in Contains() and
9307           Item[].
9308         * CurrencyManager.cs : check data_member validity when data_source
9309           is dataset. When it is late binding, the initial position is -1.
9310
9311 2006-05-24  Jackson Harper  <jackson@ximian.com>
9312
9313         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9314         inserted nodes that aren't visible.  This changes the
9315         max_visible_order which confuses scrollbar settings.
9316         - Use the enumerator to get the prev node instead of duplicating
9317         code.
9318         * TreeView.cs: Use new method for setting scrollbar values
9319         - Don't set the bounds every time the scrollbar is updated
9320         - When updating below the root node use an invalidate instead of a
9321         refresh to prevent the child controls (scrollbars) from being
9322         refreshed. (UpdateBelow still needs to be reworked anyways).
9323         - Reenable SetBottom now that visible orders are set correctly,
9324         added some debug code incase we ever get bad values there again.
9325         - Set the scrollbar max to 2 less then the max value, this
9326         compensates for the max value being one above the node count, and
9327         for scrollbars adding one extra "notch".
9328         - When drawing image nodes if there is an imagelist we draw the
9329         first image in the list if the supplied image index is out of the
9330         image list's bounds.
9331         
9332 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9333
9334         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9335           we receive a size change from the WM (Fixes #78503)
9336
9337 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9338
9339         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9340           rectangle (Fixes #78501)
9341
9342 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9343
9344         * ButtonBase.cs: 
9345           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9346             as a bitfield.
9347           - Fixed MouseMove to no longer switch pressed state unless the left
9348             mouse button is pressed. Atsushi provided the original patch (#78485)
9349           
9350 2006-05-24  Jackson Harper  <jackson@ximian.com>
9351
9352         * ScrollBar.cs: New internal methods that allow us to change a
9353         couple values on the scrollbar (the most common case is maximum
9354         and large change) without getting multiple invalidates.
9355
9356 2006-05-24  Chris Toshok  <toshok@ximian.com>
9357
9358         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9359         (Edit): save off the original state in oldState, and set
9360         grid.is_editing to true.
9361         (OnKeyDown): abort editing if escape is pressed.  also, call
9362         NextState if space is pressed.
9363         (OnMouseDown): call NextState.
9364         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9365         here.  Also, only invalidate the row header once (on the initial
9366         is_changing switch) to save on redraws.
9367
9368 2006-05-24  Chris Toshok  <toshok@ximian.com>
9369
9370         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9371         if the value in the cell is different than it was before.  This
9372         keeps us from triggering a layout when we move around a datarid
9373         with a highlighted cell.
9374         (Edit): suspend layout when creating/positining the text box, and
9375         resume passing false so we don't ever actually re-layout.
9376         (ReleaseHostedControl): same.
9377         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9378
9379         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9380         control-key sequences should go to the datagrid - remove that
9381         lock.  Also, modify the conditions under which we move between
9382         cells when moving the cursor within a cell, and remove the "this"
9383         and "base" from field accesses.  We weren't even consistent, given
9384         they all were in the base class.
9385
9386 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9387
9388         * Binding.cs : (.ctor)
9389           An obvious NRE fix for BindingTest.CtorNullTest().
9390
9391 2006-05-23  Chris Toshok  <toshok@ximian.com>
9392
9393         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9394         them between lines.  This fixes some quirks editing cells in the
9395         datagrid.
9396
9397 2006-05-23  Jackson Harper  <jackson@ximian.com>
9398
9399         * TreeView.cs: Use begin/end update when doing expand/collapse all
9400         so that we don't get flicker on the scrollbar.
9401
9402 2006-05-23  Jackson Harper  <jackson@ximian.com>
9403
9404         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9405         treenode calculations to be independant of the painting code. To
9406         do this nodes track a visible order which is calculated by the
9407         treeview.
9408         - Call new methods for expanding/collapsing nodes.  These methods
9409         use scrollwindow so we don't have to update everything below the
9410         node.
9411         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9412         need to update nodes when drawing anymore or calculate scrollbar
9413         stuff.
9414         - Added new methods for expanding/collapsing nodes. These methods
9415         use ScrollWindow so as to not have to redraw all the nodes below.
9416         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9417         we add/remove nodes or sort.
9418         - Handle removing the selected and the top node properly.
9419
9420 2006-05-23  Chris Toshok  <toshok@ximian.com>
9421
9422         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9423         maybe this should actually happen in the datagrid code?
9424         (EndEdit): no need to invalidate anything, given that
9425         ReleaseHostedControl causes the datagrid to relayout, which
9426         invalidates everything anyway.
9427
9428         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9429         in SetCurrentCell).
9430         (set_SelectionBackColor): call InvalidateSelection instead of
9431         Refresh.
9432         (set_SelectionForeColor): same.
9433         (BeginEdit): Flesh this out a bit.
9434         (CancelEditing): only do any of this if we're editing/adding.
9435         (EndEdit): same.
9436         (OnMouseDown): there's no need to cancel editing here, it's done
9437         in SetCurrentCell.
9438         (SetCurrentCell): only invalidate the current row header if it's a
9439         different row than the new one.
9440         (ShiftSelection): fix this to work like MS does.
9441         (ResetSelection): factor out the invalidation of selected_rows to
9442         InvalidateSelection.
9443         (SetDataSource): cancel any editing that's going on.
9444
9445         * DataGridColumnStyle.cs
9446         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9447         call the non-interface version.
9448
9449         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9450         header rectangle with the clip rectangle so we don't redraw the
9451         entire header for just a small area.  Gets rid of the last flicker
9452         when horizontally scrolling.
9453         (DataGridPaintRow): same.
9454
9455 2006-05-23  Mike Kestner  <mkestner@novell.com>
9456
9457         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9458         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9459         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9460         Critical bug report.
9461
9462 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9463
9464         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9465           and this fixes #78493
9466
9467 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9468
9469         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9470         size is not found.  
9471         
9472         * FileDialog.cs: Do not change the background for the side bar as
9473         it wont work nicely with the theme, and also reduces the artifacts
9474         in rendering the icons (which I want to fix too).
9475
9476         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9477         resources, not resgen resources. 
9478
9479         (PlatformDefaultHandler): Pull images using the new API.
9480
9481 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9482
9483         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9484           a reference to the hwnd and will not remove it unless there are
9485           no pending exposures (fixes #78341)
9486         * XplatUI.cs: Improved debug
9487
9488 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9489
9490         * MenuAPI.cs : don't handle OnClick event when it was not the left
9491           button. Fixed bug #78487.
9492
9493 2006-05-23  Mike Kestner  <mkestner@novell.com>
9494
9495         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9496         prefer submenus to the top menu for item lookup, to avoid popping down
9497         top-row items.
9498
9499 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9500
9501         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9502           Graphics.FillRectangle as the visual results are really bad (even
9503           on win). We now draw perfect arrows (and perfect shadows when the
9504           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9505           Pen.DashPattern to draw the dots of each line.
9506
9507 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9508
9509         * FileDialog.cs: Update the filename combobox when navigating through
9510           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9511
9512 2006-05-22  Mike Kestner  <mkestner@novell.com>
9513
9514         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9515         Fixes #78463.
9516
9517 2006-05-22  Mike Kestner  <mkestner@novell.com>
9518
9519         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9520         requests. Fix a misspelled parameter and a copy paste exception error
9521         in Select.
9522
9523 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9524
9525         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9526           to get the same width/height (5/13) on X11 as the default font has on
9527           win32. This means that our DefaultFont emSize is smaller than the 
9528           the MS SWF equivalent (even thought the width/height stays the same)
9529
9530 2006-05-20  Jackson Harper  <jackson@ximian.com>
9531
9532         * MdiClient.cs:
9533         * MdiWindowManager.cs:
9534         * InternalWindowManager.cs: Make sure to use the border width from
9535         the theme.
9536
9537 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9538
9539         * PrintDialog.cs: Implements printer details
9540
9541 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9542
9543         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9544           Fixes part 1 and 2 of bug #78446
9545
9546 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9547
9548         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9549           instead of sticking to the first ever calculated value
9550
9551 2006-05-19  Mike Kestner  <mkestner@novell.com>
9552
9553         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9554         PointToClient, since Capture is set. Fixes #78344.
9555
9556 2006-05-19  Mike Kestner  <mkestner@novell.com>
9557
9558         * ListView.cs: match MS behavior in Details view where items are not
9559         drawn if Columns.Count == 0. 
9560         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9561         Use a separate pen to draw the check, since changing the width affects
9562         the box as well.  Fixes #78454.
9563
9564 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9565
9566         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9567         exception should throw the name of the invalid argument.
9568
9569         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9570         there are no files listed. 
9571
9572 2006-05-18  Jackson Harper  <jackson@ximian.com>
9573
9574         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9575         up.
9576
9577 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9578
9579         * Control.cs: Brought back our old UpdateZOrder method as a private
9580           function and switched our calls from UpdateZOrder to the new one.
9581           This fixes the Paint.Net canvas disappearing bug.
9582
9583 2006-05-18  Jackson Harper  <jackson@ximian.com>
9584
9585         * Theme.cs:
9586         * ThemeWin32Classic.cs:
9587         * InternalWindowManager.cs: Move the drawing into the theme,
9588         expose everything the theme should need from the window manager.
9589
9590 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9591
9592         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9593           from the call to NativeWindow to avoid walking up the parent chain
9594           further than needed (speeds up setting cursors and avoids setting
9595           the wrong cursor if a parent has another cursor defined)
9596         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9597           the icon as hotspot, not what's contained as hotspot in the icon
9598           file. This fixes the perceived drawing offset seen with Paint.Net
9599         
9600 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9601
9602         * XplatUIX11.cs: 
9603           - Store the calculated rectangle in Hwnd object and use it when 
9604             setting the client size
9605           - Force Toolwindows to always be type Dock, to ensure they're on top
9606
9607 2006-05-18  Mike Kestner  <mkestner@novell.com>
9608
9609         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9610         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9611         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9612         Substantial refactoring to remove confusing nested classes. Coding
9613         standard and Get+Set->property refactorings.  Shift to index based
9614         highlighting in ComboListBox instead of constantly using IndexOf and
9615         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9616         in FileDialog growth.  Draw borders manually since Simple mode needs
9617         to look like two independent controls.  Make listbox border
9618         conditional to DropDownStyle.  Improved OwnerDraw support.
9619
9620 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9621
9622         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9623         Don't set the disposed graphics to null, so we can throw the "right"
9624         exception if the graphics is reused later (added a flag to avoid 
9625         double disposing). Some behaviours are different under 2.0 and are
9626         filled under bug #78448.
9627
9628 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9629
9630         * Control.cs: When double-buffering is enabled, we need to reset
9631           our graphics context between paint calls. Otherwise, any 
9632           transformations and other alterations on the context will 
9633           become cumulative (#77734)
9634
9635 2006-05-18  Mike Kestner  <mkestner@novell.com>
9636
9637         * ListView.cs: do focused item selection like MS on clicks. 
9638         Rework focus handling for ItemControl so LostFocus invalidates as
9639         well.
9640         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9641         the ListView ItemControl has focus.
9642
9643 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9644
9645         * XplatUIX11.cs: If client_window ends up being width or height zero
9646           due to border settings, move it off window inside whole_window (#78433)
9647
9648 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9649
9650         * Mime.cs: Shrink the mime file cache correctly.
9651
9652 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9653
9654         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9655
9656 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9657
9658         * XplatUIX11.cs (AddExpose): More sanity checks
9659
9660 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9661
9662         * XplatUIX11.cs:
9663           - AddExpose: Don't add expose ranges outside the size of our
9664             window
9665           - Cast opacity values to Int32 to avoid crashes with certain
9666             values
9667           - Added disabled code paths that protect against illegal cross-
9668             thread painting (Developers.exe)
9669
9670 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9671
9672         * ProgressBar.cs: Invalidate the control when it's resized
9673           since block size is based on control size. (#78388)
9674
9675 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9676
9677         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9678         of setting the incoming argument to the "reset" value, we set the
9679         this.datamember to string.empty (before we were invalidating the
9680         incoming data).   
9681
9682         Fixes 78420
9683
9684 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9685
9686         * Form.cs: Only apply transparency settings after the form
9687           is created. (Fixes #77800)
9688
9689 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9690
9691         * ApplicationContext.cs: Grab the HandleDestroyed event so
9692           we know when to fire OnMainFormClosed 
9693
9694 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9695
9696         * Application.cs: Introduced sub-class to allow tracking of
9697           threads and centralized triggering of the event mess for
9698           ThreadExit, AppExit, etc..  (#76156)
9699
9700 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9701
9702         * MimeIcon.cs:
9703           - Do not return a null icon index value for a mime subclass.
9704             Instead try the main mime type class too.
9705           - Seems that some newer distributions don't have a link to some
9706             gnome default icons anymore. So check the default gnome dir too.
9707           
9708
9709 2006-05-16  Jackson Harper  <jackson@ximian.com>
9710
9711         * MdiClient.cs: Don't paint the parent background image if we have
9712         our own background image.
9713
9714 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9715
9716         * Control.cs:
9717           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9718             controls, all filled controls are supposed to overlap (#78080)
9719           - UpdateZOrder is supposed to update the control's z-order in the
9720             parent's z-order chain. Fixed to behave like that
9721           - BringToFront: Removed obsolete code
9722           - SendToBack: Simplyfied
9723           - SetChildIndex: Trigger layout calculations when Z-order changes
9724             since layout is done by z-order
9725
9726 2006-05-16  Chris Toshok  <toshok@ximian.com>
9727
9728         [ fixes bug #78410 ]
9729         * DataGrid.cs (set_AlternatingBackColor): use
9730         grid_drawing.InvalidateCells instead of Refresh().
9731         (set_BackColor): call grid_drawing.InvalidateCells.
9732         (set_BackgroundColor): use Invalidate instead of Refresh.
9733
9734         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9735         invalidate the cell area.
9736
9737 2006-05-15  Chris Toshok  <toshok@ximian.com>
9738
9739         [ fixes bug #78011 ]
9740         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9741         on to DataGridPaintRow.
9742         (DataGridPaintRow): take a clip argument, and only draw the cells
9743         which intersect it.  same with the not_usedarea.
9744
9745         * Theme.cs (DataGridPaintRow) add @clip parameter.
9746
9747         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9748         XplatUI.ScrollWindow.
9749         (ScrollToRow): same.
9750
9751         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9752         with last column which was causing a gray swath to appear with the
9753         XplatUI.ScrollWindow code.
9754
9755 2006-05-15  Chris Toshok  <toshok@ximian.com>
9756
9757         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9758         use XplatUI.ScrollWindow.
9759         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9760
9761 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9762
9763         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9764
9765 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9766
9767         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9768           file since there are no equivalent X11 cursors
9769
9770 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9771
9772         * MonthCalendar.cs : DateTimePicker should reflect selected date
9773           on mouse*up*, not mouse*down*. Fixed originally reported part of
9774           bug #76474.
9775
9776 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9777
9778         * TabControl.cs : When argument index is equal or more than tab
9779           count, just ignore. Fixed bug #78395.
9780
9781 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9782
9783         * Control.cs: Dispose all child controls when control is diposed (#78394)
9784
9785 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9786
9787         * ColorDialog.cs: Finally it is possible to select the color with
9788           the text boxes
9789
9790 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9791
9792         * PrintDialog.cs: Fix typo
9793
9794 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9795
9796         * PrintDialog.cs: PrintDialog is not resizable
9797         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9798           color. Made some ToolBar drawing methods protected virtual.
9799
9800 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9801
9802         * PrintDialog.cs: Implementation of the PrintDialog
9803
9804 2006-05-12  Chris Toshok  <toshok@ximian.com>
9805
9806         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9807         thumb, instead use MoveThumb.  This has the side effect of making
9808         most of the other thumb moving machinery use MoveThumb as well.
9809         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9810         need to actually invalidate the rectangle where the new thumb will
9811         go.
9812         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9813         We force an Update() after, so it's not as fast as it could be,
9814         but at least there's zero flicker and no droppings.
9815         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9816         (UpdateThumbPos): add another argument (dirty), which says whether
9817         or not to calculate/add dirty regions which we later invalidate.
9818         For cases where we know we're going to use MoveThumb, we pass
9819         false for this.  Otherwise, pass true.
9820
9821 2006-05-12  Jackson Harper  <jackson@ximian.com>
9822
9823         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9824         the status bar.
9825         
9826 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9827
9828         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9829           and GetClipRegion methods and UserClipWontExposeParent property.
9830         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9831           overriding UserClipWontExposeParent property, setting to false, since
9832           Win32 handles the required expose messages to draw our clipped parent
9833           areas internally
9834         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9835           PaintEventStart to set the user clip region if set.
9836         * Control.cs: 
9837           - Now internally tracking the Region for the control since we need to
9838             store it if the handle is not yet created and only set it when it
9839             becomes created. Before setting the region forced handle creation
9840           - Added code to draw the parents underneath a user-clipped region
9841         * Hwnd.cs: Added UserClip property
9842
9843 2006-05-12  Chris Toshok  <toshok@ximian.com>
9844
9845         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9846         (set_Maximum): same.
9847         (set_Minimum): same.
9848         (set_SmallChange): same.
9849         (OnMouseUpSB): remove the call to refresh when releasing the
9850         thumb.  We shouldn't need it.
9851         
9852 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9853
9854         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9855         AutoSize set to None, we do not need to relayout everything, we
9856         just need to invalidate the current region.
9857
9858         (Draw): Do not draw the entire ClientArea, just redraw the
9859         clip area being passed.
9860
9861         * MdiClient.cs: Make MdiClient constructor with the Form argument
9862         internal. 
9863
9864 2006-05-12  Jackson Harper  <jackson@ximian.com>
9865
9866         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9867         parents background image,  but strangely not their own.
9868         - (DrawStatusBarPanel): Take into account horizontal alignment
9869         when drawing the strings and icons.
9870
9871 2006-05-12  Mike Kestner  <mkestner@novell.com>
9872
9873         * ListBox.cs: avoid invalidations for focus when the collection is
9874         empty. 
9875
9876 2006-05-12  Chris Toshok  <toshok@ximian.com>
9877
9878         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9879         invalidate the entire thumb area.  Call InvalidateDirty which
9880         limits the redraw to the thumb itself and surrounding pixels.
9881
9882         * XplatUIX11.cs (ScrollWindow): optimize copying.
9883         
9884 2006-05-12  Chris Toshok  <toshok@ximian.com>
9885
9886         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9887         Figure out the positioning/layout in a single pass instead of
9888         multiple recursive invocations.  Speeds up the initial display of
9889         the data grid.  Also, make many things private that were
9890         originally public but unused outside this class.
9891
9892 2006-05-11  Jackson Harper  <jackson@ximian.com>
9893
9894         * MdiClient.cs: Improved layout code.
9895
9896 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9897
9898         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9899           not SelectedObject.
9900
9901 2006-05-11  Chris Toshok  <toshok@ximian.com>
9902
9903         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9904         union of that will always be {0,0,width,height}.
9905
9906 2006-05-11  Jackson Harper  <jackson@ximian.com>
9907
9908         * Form.cs: Match MS's DefaultSize for forms (they must have
9909         changed the size in sp2).
9910
9911 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9912
9913         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9914
9915 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9916
9917         * TextControl.cs : Fixed bug #78109. This incorrect position
9918           comparison caused crash on automatic line split.
9919         * TextBoxBase.cs : reduce duplicate code.
9920
9921 2006-05-10  Jackson Harper  <jackson@ximian.com>
9922
9923         * MdiClient.cs: Active form is only sent to the back when using
9924         the Next form functionality, when a form is clicked the current
9925         active shouldn't be sent to the back.
9926         - Layout the mdi windows when the container is first made visible.
9927         * Form.cs: Give the MdiClient a ref to the containing form when we
9928         create it.
9929         
9930 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9931
9932         * LinkLabel.cs : link_font could be uninitialized, so populate one
9933           before actual use. Fixed bug #78340.
9934
9935 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9936
9937         * XplatUIX11.cs : clipboard format native value is IntPtr.
9938           Fixed bug #78283.
9939
9940 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9941
9942         * Control.cs: 
9943           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
9944             which is passed up the parent chain by DefWndProc
9945           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
9946             to DefWndProc (#77956)
9947         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
9948
9949 2006-05-10  Jackson Harper  <jackson@ximian.com>
9950
9951         * MdiClient.cs: We need to remove the controls from the mdi
9952         collection, when we close the window.
9953         * MdiWindowManager.cs: Special handling of closing mdi windows.
9954         * InternalWindowManager.cs: Make the close method virtual so the
9955         mdi window manager can handle it specially.
9956
9957 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
9958
9959         * DataGrid.cs:
9960           - Recalculate grid when the data source has changed
9961           - Matches styles provided by user from all data sources types
9962         * DataGridTableStyle.cs: For columns that provided by the user set the
9963         with the preferred value is there was unassigned.
9964         * CurrencyManager.cs: throw OnItemChanged event
9965
9966 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
9967
9968         * PictureBox.cs: Don't animate until handle is created. Start animation
9969           when handle is created.
9970
9971 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9972
9973         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
9974           current codebase.
9975         * XEventQueue.cs: We don't need to provide the extra info
9976
9977 2006-05-10  Jackson Harper  <jackson@ximian.com>
9978
9979         * MdiClient.cs: If the mdi clients parent form has a background
9980         image set, we draw that background image for the mdi area's
9981         background.
9982
9983 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9984
9985         * TextBoxBase.cs: Set IBeam cursor (#78347)
9986
9987 2006-05-10  Mike Kestner  <mkestner@novell.com>
9988
9989         * ToolBar.cs: fix some text padding issues with ButtonSize
9990         calculation. Update the default size to match MS documentation.
9991         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
9992         button size. Fixes #78296.
9993
9994 2006-05-10  Mike Kestner  <mkestner@novell.com>
9995
9996         * ListBox.cs: use is_visible for scrollbar positioning in case the
9997         control isn't on screen yet.  Fix off by one with Right vs Width
9998         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
9999         
10000 2006-05-10  Jackson Harper  <jackson@ximian.com>
10001
10002         * X11Dnd.cs: Drop to a control with another control on top of it.
10003         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10004         be modified in click handlers. TODO: Look for similar problems in
10005         other controls.
10006
10007 2006-05-09  Jackson Harper  <jackson@ximian.com>
10008
10009         * Form.cs: Window managers need the old window state when setting
10010         window state now.
10011         * InternalWindowManager.cs: Allow the base mdi window manager to
10012         handle more of the MDI only stuff (like maximize buttons).
10013         * MdiWindowManager.cs: Fix some snafus in changing the window
10014         state.  Add all the menu functionality, for both popup and
10015         maximized menus.
10016         * MdiClient.cs: When a new form is selected the currently
10017         activated form is sent to the back, this matches MS.
10018         - Implement a new method to activate the next mdi child window.
10019
10020 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10021
10022         * Control.cs: 
10023           - Added new InternalCapture method to allow controls to prevent
10024             the capture behaviour on the click handlers
10025           - Switched to use InternalCapture
10026         * ComboBox.cs:
10027           - Using InternalCapture to prevent mouse captures from being released
10028             on mouse button release (Fixes #78100)
10029         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10030           returns Form borders if a caption is present. (Fixes #78310)
10031
10032 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10033
10034         * TreeNode.cs: Changed serialization .ctor to not require every field
10035           to be present. (#78265)
10036         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10037
10038 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10039
10040         * MimeIcon.cs: for is faster than foreach for strings.
10041
10042 2006-05-05  Mike Kestner  <mkestner@novell.com>
10043
10044         * CheckedListBox.cs: update check handling code to not use selected.
10045         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10046         behavior for visual feedback, motion response, shift/ctrl handling,
10047         and properly deal with all 4 selection modes. Updates to bounds
10048         handling logic.  Add scroll wheel support. [Fixes #77842]
10049
10050 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10051
10052         * ListView.cs:
10053           - Moved adding of Implicit controls into .ctor. That way, subsequent
10054             creation of the controls will not cause them to think they are 
10055             toplevel windows (fixes #78200 header problem)
10056           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10057           - Switched visibility setting of header control to use internal field
10058             to avoid triggering handle creation
10059           - Now checking if handle is created before causing a refresh when items
10060             are added (This makes us now match handle creation time with MS)
10061         * Splitter.cs: Removed loading of private splitter cursor, switched to
10062           Cursors version now that that is loading the right ones
10063         * Cursors.cs: Load proper splitter cursors from resources
10064         * Cursor.cs: Added second method of loading resource cursors for the 
10065           VS.Net users amongst us
10066
10067 2006-05-05  Mike Kestner  <mkestner@novell.com>
10068
10069         * ListView.cs: give header_control a minimum size based on the
10070         ListView size.
10071
10072 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10073
10074         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10075           window seems to do that with metacity, so set that type. (#78120)
10076
10077 2006-05-05  Mike Kestner  <mkestner@novell.com>
10078
10079         * ListViewItem.cs: fix Details mode checkbox layout bug.
10080         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10081         at the end of the header, if it exists. [Fixes for #78200]
10082
10083 2006-05-04  Jackson Harper  <jackson@ximian.com>
10084
10085         * MdiClient.cs: Add a helper property to get the container form.
10086         * MdiWindowManager.cs: We have to make sure to use the menu origin
10087         when drawing the icons and buttons, this fixes maximized window
10088         icons/buttons on win32.
10089         * InternalWindowManager.cs: Reset the restore captions when a
10090         window goes from Maximized to Minimized and vice versa. Move the
10091         DrawMaximizedButtons into the MdiWindowManager source, tool
10092         windows can't be maximized. NOTE: This could use a little
10093         refactoring if time ever permits.
10094         
10095 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10096
10097         * TextBox.cs: Add MWFCategoryAttributes
10098         * TextBoxBase.cs: Add MWFCategoryAttributes
10099         * Form.cs: Add MWFCategoryAttributes
10100
10101 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10102
10103         * Control.cs: Add MWFCategoryAttributes
10104         * ScrollableControl.cs: Add MWFCategoryAttributes
10105
10106 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10107
10108         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10109           Divider is true. Fix a little glitch in PropertyToolBar
10110           drawing code
10111
10112 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10113
10114         * Control.cs:
10115           - Dispose: Call base.Dispose, this causes the disposed event
10116             to be fired (and probably other, more important stuff)
10117           - SetVisibleCore: Set is_visible to true after creating the
10118             window so that the window still gets created invisible (if
10119             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10120             to generate a WM_ACTIVE message
10121         * Form.cs: Call Dispose when we want to destroy the window, instead of
10122           just destroying the handle (Dispose will do that for us)
10123         * XplatUIX11.cs:
10124           - RootWindow also needs a queue, so we can properly process the
10125             property change events from RootWindow (like Activate)
10126           - Generatic synthetic WM_ACTIVE message when the active window is
10127             being destroyed
10128
10129 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10130
10131         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10132           bounds are changed
10133
10134 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10135
10136         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10137           for determining width and height (image might not be assigned if
10138           we're drawing an imagelist)
10139
10140 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10141
10142         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10143         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10144           height from system
10145         * Theme.cs: No longer returns hardcoded menu height, instead calls
10146           new driver method
10147         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10148           on MS (# 78257)
10149
10150 2006-05-01  Mike Kestner  <mkestner@novell.com>
10151
10152         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10153
10154 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10155
10156         * TextBoxBase.cs: Removed Fixme
10157         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10158
10159 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10160
10161         * XplatUIX11.cs:
10162           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10163             the rectangle relative to the parent, considering borders. We
10164             don't really want that.
10165           - ScrollWindow: Fixed warning to be more understandable
10166         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10167           scrollbars and scroll only the visible area
10168         * RichTextBox.cs: Removed debug output
10169
10170 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10171
10172         * NumericUpDown.cs (Text): Just use base
10173         * UpDownBase.cs: Ensure txtView is created before using it
10174
10175 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10176
10177         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10178           casting to IntPtr to avoid 64bit overflow errors
10179
10180 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10181
10182         * Control.cs:
10183           - AllowDrop: Don't force handle creation.
10184           - CreateHandle: Added call to tell driver if we're allowed to drop
10185
10186 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10187
10188         * FileDialog.cs: Remember the last directory not only for the
10189           current instance but also for new FileDialog instances.
10190
10191 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10192         
10193         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10194           broke sending async messages
10195
10196 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10197
10198         * XplatUIX11.cs:
10199           - ScrollWindow: Fixed method. We finally generate expose events again
10200             for scrolled areas. This was causing 'garbage' when scrolling
10201             textbox and other controls that used ScrollWindow
10202           - Switched from using the regular queue for paint events to the MS 
10203             model of 'generating' paint events when the queue is empty.
10204             We use the new XQueueEvent.Paint subclass to store which windows
10205             need painting.
10206           - AddExpose now takes the x/y/width/height of the exposed area
10207             and inserts the window into the paint queue if not already there
10208           - InvalidateWholeWindow: Switched to use new AddExpose method
10209           - UpdateMessageQueue: Added which queue to monitor for paint events
10210           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10211             the unlikely case nothing above handles it. We reset the expose
10212             pending states to get them off the queue.
10213           - GetMessage: Now pulls a paint event if no other events are in the
10214             queue
10215           - Invalidate: Switched to new AddExpose method
10216           - PeekMessage: Updated to understand pending paint events
10217           - UpdateWindow: Fixed logic bug. We were only updating if the window
10218             didn't need updating. Also switched to sending WM_PAINT directly,
10219             like MS does.
10220         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10221           and random access Remove(). The random access is needed to handle
10222           UpdateWindow() where a WM_PAINT is sent directly without accessing
10223           the queue.
10224         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10225           allow for better feedback when scrolling. Scrollbars are small and
10226           the immediate update should make it 'feel' more responsive without
10227           slowing things down. ScrollBar still needs it's invaliate logic
10228           updated to not always invalidate the whole bar on certain changes.
10229
10230 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10231
10232         * Control.cs:
10233         (BackColor): if the control does not support a transparent background,
10234         return the default backcolor when the parent backcolor is transparent.
10235
10236 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10237
10238         * Application.cs: Updated to new StartLoop/GetMessage API
10239         * RichTextBox.cs: Provide some output on RTF parsing errors
10240         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10241           new queue_id argument to GetMessage and PeekMessage to allow faster
10242           handling of per-thread queues in drivers.
10243         * Hwnd.cs: Added Queue tracking and property
10244         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10245         * XEventQueue.cs: Added thread trackingA
10246         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10247         * XplatUIX11.cs:
10248           - Implemented new per-thread queue
10249           - GetMessage: Fixed return/break behaviour on several cases. We were
10250             returning stale messages in some cases, instead of just processing
10251             the next message
10252
10253 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10254
10255         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10256
10257 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10258
10259         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10260           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10261
10262 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10263
10264         * PropertyGridView.cs: Fix drop down width.
10265
10266 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10267
10268         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10269           a mess in DrawToolBar, so I removed one of them.
10270
10271 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10272
10273         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10274           needed (clip). Otherwise we get artifacts.
10275
10276 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10277
10278         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10279           dimension is fixed
10280         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10281           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10282         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10283           if it matches the scale base font (avoids unneeded scaling)
10284
10285 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10286
10287         * X11DesktopColors.cs: One gtk_init_check should be enough
10288
10289 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10290
10291         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10292           match MS behaviour
10293
10294 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10295
10296         * TextBoxBase.cs: 
10297           - Generate OnTextChanged for Backspace even if we're only deleting
10298             the current selection
10299           - When setting the Text property, only select all text if the
10300             control does not have focus when it is being set. Otherwise
10301             just place the cursor at the beginning of the control
10302
10303 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10304
10305         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10306           Added a little helper to draw PropertyGrid ToolBar with a different
10307           border and a different BackColor.
10308         * PropertyGrid.cs: Some background parts didn't get painted with the
10309           correct background color. Added a class that helps us to draw the
10310           correct border for PropertyGridView and a class that helps us to
10311           draw ToolBars with a different backcolor
10312         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10313
10314 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10315
10316         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10317         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10318
10319 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10320
10321         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10322           into the palette entries. Also, since we're working on a copy
10323           we needed to copy the palette back onto the bitmap.
10324         * Cursor.cs: Same fix as XplatUIWin32.cs.
10325
10326 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10327
10328         * ImageListStreamer.cs: Need to read the var (or we're off)
10329
10330 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10331
10332         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10333           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10334           TextBoxBase.cs: Unused var fixes
10335         * AxHost.cs: Small 2.0 fix
10336         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10337           as it seems that is what at least Metacity expects. This will make
10338           icons show up on 64bit platforms. We still have some 64bit size
10339           issues, though, since the startup app window size still won't match.
10340
10341 2006-04-25  Mike Kestner  <mkestner@novell.com>
10342
10343         * *.cs: cleanup newly reported exception var unused warnings.
10344
10345 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10346
10347         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10348           ms
10349
10350 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10351
10352         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10353           image. The image position is always the same, no matter if the
10354           button is pressed or not.
10355
10356 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10357
10358         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10359           selection and set the correct filename for SaveFileDialog.
10360           Patch by Emery Conrad.
10361
10362 2006-04-24  Mike Kestner  <mkestner@novell.com>
10363
10364         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10365         check for item.X outside the ClientRect instead of item.Y. Fixes
10366         #78151.
10367
10368 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10369
10370         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10371         trust that value blindly and do some sanity check. Fixes bug #77814.
10372
10373 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10374
10375         * ImageListStreamer.cs: save the mask as a 1bpp image.
10376
10377 2006-04-21  Mike Kestner  <mkestner@novell.com>
10378
10379         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10380         pass Checked and Indeterminate to the Theme Engine. Improve
10381         encapsulation with ListBox.
10382         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10383         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10384         nested types.  Move all CheckState functionality to CheckedListBox.
10385         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10386         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10387         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10388         single base list. Fix scrollbar sizing and placement to mirror MS.
10389         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10390         used.
10391         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10392         for CheckedListBox by using new DrawItemState info.  Center the
10393         checkboxes on the items. Use new StringFormat property.
10394
10395 2006-04-18  Jackson Harper  <jackson@ximian.com>
10396
10397         * Form.cs: MdiChildren don't do default locations the same way as
10398         regular forms.  This prevents a crash when trying to position the
10399         mdi windows.
10400
10401 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10402
10403         * PropertyGridTextBox.cs: Formatting, copyright
10404         * PropertiesTab.cs: Formatting
10405         * PropertyGrid.cs: Formatting
10406         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10407           click toggling of values
10408           
10409 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10410
10411         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10412         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10413           every time a control is created
10414         * Application.cs: Removed obsolete EnableRTLMirroring method
10415
10416 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10417
10418         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10419         SelectedIndex to -1. Fixes bug #78121.
10420
10421 2006-04-17  Jackson Harper  <jackson@ximian.com>
10422
10423         * Binding.cs: Handle null values for Current and BindingContext.
10424         This occurs when binding is a little delayed.
10425         * CurrencyManager.cs: return null for Current when there are no
10426         items in the list.
10427         - Hookup to the listchanged event on the DataView and update
10428         bindings when the list is changed.  This fixes late binding of
10429         controls.
10430
10431 2006-04-17  Jackson Harper  <jackson@ximian.com>
10432
10433         * X11Dnd.cs:
10434         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10435         Ringenbach.
10436
10437 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10438
10439         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10440           place
10441         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10442           with the correct ButtonState
10443
10444 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10445
10446         * XplatUIX11.cs: Improved distinguishing between window types to
10447           tell the WM a type closer to what the app wants (Fixes #78107)
10448
10449 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10450
10451         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10452           GrabHandle
10453
10454 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10455
10456         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10457           drawing code to reflect the size grip changes
10458
10459 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10460
10461         * ImageListStreamer.cs: fix handling of the mask that follows the main
10462         bitmap when deserializing and serialize it properly. The generated mask
10463         should better be a 1bpp image, but I'll do that later.
10464
10465 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10466
10467         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10468           path doesn't fit into some of our Current.Places
10469
10470 2006-04-13  Jackson Harper  <jackson@ximian.com>
10471
10472         * ComboBox.cs: Use borders instead of drawing our own decorations,
10473         try to obey correct rules for heights.
10474         * Theme.cs:
10475         * ThemeNice.cs:
10476         * ThemeClearLooks.cs:
10477         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10478         this is now handled by borders.
10479         - Remove unused DrawListBoxDecorationSize method.
10480         
10481 2006-04-13  Mike Kestner  <mkestner@novell.com>
10482
10483         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10484         reported by Alex.
10485
10486 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10487
10488         * ThemeWin32Classic.cs: 
10489           - Fixed CPDrawStringDisabled
10490           - Corrected drawing of disabled menu items
10491           - Fixed drawing of disabled radio buttons (bug #78095)
10492           - Draw check in a disabled CheckBox with color ControlDark 
10493
10494 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10495
10496         * Form.cs: Use the provided width when calculating the menu size;
10497           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10498           and ClientSize.Width won't be updated yet
10499         * Application.cs: Use Visible instead of Show() to make form visible,
10500           this way we create the handle later and menusize is considered
10501
10502 2006-04-12  Mike Kestner  <mkestner@novell.com>
10503
10504         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10505         reporting.
10506
10507 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10508
10509         * TextBox.cs: Implemented context menu
10510
10511 2006-04-12  Mike Kestner  <mkestner@novell.com>
10512
10513         * ListView.cs: implement box selection. fixes #77838.
10514         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10515
10516 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10517
10518         * XplatUIX11.cs: Added setting of window type when transient window
10519           is created (metacity would move it otherwise)
10520         * X11Structs.cs: Added WINDOW_TYPE atoms
10521         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10522           background (the control is Opaque but still wants transparent
10523           backgrounds)
10524
10525 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10526
10527         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10528           that set Opaque but don't mean it (like all ButtonBase-derived
10529           controls) to still draw their background
10530         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10531           the background
10532
10533 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10534
10535         * Control.cs (PaintControlBackground): Set the graphics object
10536           on our PaintEvent to null to prevent it from being disposed
10537           when the PaintEvent gets disposed
10538
10539 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10540
10541         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10542         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10543
10544 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10545
10546         * Control.cs: 
10547           - Added transparency check to BackColor property. Transparent
10548             backgrounds are only allowed if the control styles permit it
10549           - Added recursive painting of parent control background and
10550             foreground if a control with a transparent backcolor is drawn
10551             (Thanks to Tim Ringenback for providing his 'hack' as a base
10552              for this patch) Fixes #77985 and #78026.
10553           - Added Opaque style check before calling OnPaintBackground, no
10554             need to draw the background if the control is opaque
10555           - Removed ControlAccessibleObject owner variable (inherited from
10556             base, no need to define again)
10557           - Added some documentation links explaining the drawing events
10558             and styles
10559
10560 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10561
10562         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10563           that the affected control is the located at the left border of our
10564           parent (Fixes #77936)
10565
10566 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10567
10568         * TextBoxBase.cs: When rendering disabled or readonly controls,
10569           draw the background with 'Control' instead of 'Window' color as
10570           long as the user hasn't specifically set a color
10571
10572 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10573
10574         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10575           since that won't be updated if the user types text (only if it's
10576           programatically set)
10577
10578 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10579
10580         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10581           layout changes do to app-triggered resizes will have the proper
10582           display rectangle for layout
10583
10584 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10585
10586         * ThemeWin32Classic.cs:
10587           - Make use of the SystemBrushes and SystemPens wherever possible
10588           - Corrected some highlight colors
10589           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10590             drawing
10591         * Theme.cs: Added Empty field to CPColor struct
10592
10593 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10594
10595         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10596           is displayed when calculating the display rectangle. Thanks to Mike
10597           for teaching me the err of my ways.
10598
10599 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10600
10601         * ScrollableControl.cs:
10602           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10603             (instead of 0,0) and we now return the real width/height instead of
10604             just the clientrectangle, adjusted for padding. The rectangle is
10605             now cached and created by the new CalculateDisplayRectangle method.
10606           - Created new CalculateDisplayRectange method, which basically does
10607             what get_DisplayRectangle() did originally, but now using the 
10608             right edge instead of DisplayRectangle to determine the size of
10609             our scrollbars
10610           - get_Canvas(): Fixed it to properly calculate canvas for 
10611             right/bottom controls which seem to be placed to the right/bottom
10612             of any controls that have a fixed location
10613           - Removed TODO that's taken care of
10614           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10615             and SetDisplayRectLocation according to new MSDN2 docs
10616           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10617             event when that is called, this is added for compatibility
10618           - ScrollControlIntoView(): Implemented.
10619           - Switched scrollbars to be implicit, they shouldn't be selectable
10620         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10621           call it when the active control is set/changed
10622         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10623         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10624           implicit_control variable (used for native Win32 message generation)
10625         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10626           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10627         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10628         * XplatUIStructs.cs: Added ScrollBarCommands enum
10629
10630 2006-04-10  Jackson Harper  <jackson@ximian.com>
10631
10632         * ButtonBase.cs:
10633         * CheckedListBox.cs:
10634         * ComboBox.cs:
10635         * DataGrid.cs:
10636         * DataGridView.cs:
10637         * Form.cs:
10638         * GroupBox.cs:
10639         * ListBox.cs:
10640         * PrintPreviewControl.cs:
10641         * ProgressBar.cs:
10642         * PropertyGrid.cs:
10643         * Splitter.cs:
10644         * StatusBar.cs:
10645         * TrackBar.cs:
10646         * UpDownBase.cs: Fixup base event overrides.
10647         
10648 2006-04-06  Mike Kestner  <mkestner@novell.com>
10649
10650         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10651         all user-initiated value changes to min <= value <= max-thumbsz+1.
10652         (set_Value): check for vert/horiz when calculating new thumb position.
10653         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10654         like MS does.
10655         (OnMouseMoveSB): refactor the thumb dragging code and refine
10656         invalidation logic to reduce flicker.
10657         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10658         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10659         (UpdateThumbPosition): small code readability cleanup
10660
10661 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10662
10663         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10664           different
10665
10666 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10667
10668         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10669
10670 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10671
10672         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10673         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10674           This dramatically reduces the number of Pen.Dispose calls. 
10675           Where possible call ResPool methods only once instead of calling it
10676           over and over again (for example for the same color).
10677
10678 2006-04-06  Mike Kestner  <mkestner@novell.com>
10679
10680         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10681         Also remove an unused private field on the collection. Fixes #77972.
10682
10683 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10684
10685         * ThemeNice.cs: Added ToolBar drawing code
10686
10687 2006-04-06  Mike Kestner  <mkestner@novell.com>
10688
10689         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10690         I'm assuming that means we need to look up the toplevel for the
10691         provided control. Fixes the crash trace in #77911 but exposes another
10692         crash in some strange reflection usage in NDocGui.
10693
10694 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10695
10696         * ThemeNice.cs: Gave it a little silver touch and added Images
10697           method
10698         * FontDialog.cs: FontDialog is not resizable
10699         * FileDialg.cs: Added SizeGripStyle.Show
10700
10701 2006-04-05  Jackson Harper  <jackson@ximian.com>
10702
10703         * KeyboardLayouts.cs: Remove warning.
10704
10705 2006-04-05  Jackson Harper  <jackson@ximian.com>
10706
10707         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10708         all of our controls instead of Paint +=.
10709         * ListBox.cs:
10710         * ListView.cs:
10711         * MenuAPI.cs:
10712         * MessageBox.cs:
10713         * NotifyIcon.cs:
10714         * ProgressBar.cs:
10715         * ScrollBar.cs:
10716         * Splitter.cs:
10717         * StatusBar.cs:
10718         * TabControl.cs:
10719         * TextBoxBase.cs:
10720         * ToolBar.cs:
10721         * TrackBar.cs:
10722         * UpDownBase.cs:
10723         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10724         use OnPaintInternal. Remove Width/Height and Visible checks in
10725         paint handler, this is done at a higher level now.
10726         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10727         * PaintEventArgs.cs: Add a handled flag so controls that don't
10728         want anymore painting after OnPaintInternal can make sure OnPaint
10729         isn't called.
10730
10731 2006-04-05  Mike Kestner  <mkestner@novell.com>
10732
10733         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10734         state of the form, so that we don't process events when Modal dialogs
10735         are up. Fixes #77922.
10736
10737 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10738
10739         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10740           checking is done.
10741
10742 2006-04-05  Mike Kestner  <mkestner@novell.com>
10743
10744         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10745
10746 2006-04-05  Mike Kestner  <mkestner@novell.com>
10747
10748         * ListView.cs (HeaderMouseMove): null guarding for the over column
10749         when setting up the drag_to_index.  Fixes #78015.
10750
10751 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10752
10753         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10754           in the taskbar. Transient windows seem to accomplish that.
10755
10756 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10757
10758         * Form.cs:
10759           - Re-enabled CreateParams.X/Y code for FormStartPosition
10760           - Added code for manual placement when creating the Control
10761           - Incomplete patch to treat MDI forms differently when
10762             setting the ClientSizeCore. (Still need to figure out handling
10763             x/y coords there)
10764         * XplatUIX11.cs:
10765           - When we're explicitly setting the X/Y position of a non-Child
10766             window, let the WM know. Metacity really wants this.
10767
10768 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10769
10770         * ThemeNice.cs: Added CPDrawButton
10771
10772 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10773
10774         * ThemeNice.cs: Changed the color for focused buttons and activated
10775           the arrows for small scroll buttons.
10776
10777 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10778
10779         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10780           anymore. Changed some method modifiers to protected (virtual)
10781         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10782           changes
10783         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10784           Updated drawing of menus, buttons and progressbars; added
10785           CPDrawBorder3D 
10786
10787 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10788
10789         * ImageListStreamer.cs: implemented serialization/deserialization
10790         of the images.
10791
10792 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10793
10794         * ThemeWin32Classic.cs:
10795           - Removed all the DrawFrameControl stuff; CPDrawButton,
10796             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10797             inside the methods
10798           - Updated and corrected the drawing code of CPDrawButton,
10799             CPDrawCheckBox and CPDrawRadioButton to better match ms
10800           - Updated theme checkbox and radiobutton code to use the CP*
10801             methods
10802
10803 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10804
10805         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10806           bug is fixed
10807
10808 2006-03-31  Jackson Harper  <jackson@ximian.com>
10809
10810         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10811         sometimes.
10812         * UpDownBase.cs: Don't CreateGraphics manually, use a
10813         Refresh. Ideally we would invalidate the correct areas here.
10814
10815 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10816
10817         * XplatUIX11.cs: 
10818           - We now track the mapping state of windows. If a window (or 
10819             one of it's parents) is not mapped we no longer permit
10820             WM_PAINT messages to be generated since we'd otherwise get 
10821             lots of BadMatch X errors. Jackson did all the work figuring
10822             out the problem.
10823           - Destroying the caret if the window it's contained in is 
10824             destroyed. Can't use regular DestroyCaret method since it
10825             might fall into a drawing function (trying to remove the
10826             caret) and with that generate new BadMatch errors. Again,
10827             Jackson tracked this down.
10828           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10829             make sure we send the messages to all windows. (The old code
10830             would send the WM_DESTROY to the window, and then all child
10831             windows would be 'gone' because the WM_DESTROY handle lookup
10832             would no longer find the destroyed window)
10833         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10834         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10835
10836 2006-03-31  Jackson Harper  <jackson@ximian.com>
10837
10838         * ScrollableControl.cs: Dont recalc if we are not visible.
10839
10840 2006-03-31  Mike Kestner  <mkestner@novell.com>
10841
10842         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10843         the visibility branch.
10844
10845 2006-03-31  Jackson Harper  <jackson@ximian.com>
10846
10847         * ScrollBar.cs: Cap values when incrementing/decrementing.
10848
10849 2006-03-31  Mike Kestner  <mkestner@novell.com>
10850
10851         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10852         * ToolTip.cs: guard against timer expirations with no active control.
10853         Not sure why it happened.
10854
10855 2006-03-31  Mike Kestner  <mkestner@novell.com>
10856
10857         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10858         text.
10859         * ToolTip.cs: Position the tooltip based on where the cursor is at
10860         popup time, not at MouseEnter time.  Add a Down state so that we don't
10861         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10862         positioning offset. Lookup DisplaySize at positioning time, since it
10863         can theoretically change during invocation.
10864         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10865         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10866
10867 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10868
10869         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10870           Fixes behaviour when the Text property of the box is String.Empty
10871
10872 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10873
10874         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10875           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10876           a window)
10877
10878 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10879
10880         * FileDialog.cs: Visual enhancement for the popup buttons in 
10881           PopupButtonPanel
10882
10883 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10884
10885         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10886           code
10887
10888 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10889
10890         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10891           highlighted menu items to match ms
10892
10893 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10894
10895         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10896
10897 2006-03-30  Mike Kestner  <mkestner@novell.com>
10898
10899         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10900         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10901         go active to account for HotLight to Selected transition.
10902         * MenuItem.cs: add internal Selected prop. Fill out the Status
10903         property by calculating it from item info. Add HotLight,
10904         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10905
10906 2006-03-30  Mike Kestner  <mkestner@novell.com>
10907
10908         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10909
10910 2006-03-29  Jackson Harper  <jackson@ximian.com>
10911
10912         * Form.cs: Implement TODO.
10913
10914 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10915
10916         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10917           missing proper dialog setup in the constructor
10918
10919 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10920
10921         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10922         * Control.cs:
10923           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
10924           - Fixed ResetBindings and removed TODO
10925           - Added check for cross-thread calls to get_Handle()
10926           - Added Marshaller attribute for set_Font to satisfy class status
10927         * FontDialog.cs: Removed TODOs that seemed implemented
10928         * UpDownBase.cs: Removed unneeded TODO and Fixme
10929         * MessageBox.cs: Implemented support for Default button and removed TODO
10930         * FileDialog.cs: Removed obsolete TODO
10931         * DomainUpDown.cs: Removed obsolete TODO
10932         * ButtonBase.cs: Removed obsolete TODO
10933         * XplatUIWin32.cs: Removed obsolete TODO
10934         * Form.cs:
10935           - Removed obsolete TODO
10936           - Calling CheckAcceptButton when the acceptbutton is changed to allow
10937             internal status updates
10938           - Making sure the active control is selected when the control is created
10939         * CurrencyManager.cs: Removed obsolete TODO
10940
10941 2006-03-29  Mike Kestner  <mkestner@novell.com>
10942
10943         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
10944         of PrintPreviewDialog and RichTextBox.
10945
10946 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10947
10948         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
10949           DarkDark, Light and LightLight colors for a specific color
10950         * ThemeWin32Classic.cs:
10951           - Use Button drawing code to draw RadioButtons and CheckBoxes with
10952             Appearance = Button 
10953           - Make use of the new ResPool helper CPColor
10954           - Draw ProgressBar and StatusBar with correct 3D borders
10955
10956 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10957
10958         * ColorDialog.cs: Return selected color. Fixes bug #77940.
10959
10960 2006-03-28  Mike Kestner  <mkestner@novell.com>
10961
10962         * ListView.cs: fix Icon layout to plan for scrollbar widths when
10963         calculating col/row counts.
10964
10965 2006-03-28  Mike Kestner  <mkestner@novell.com>
10966
10967         * ColumnHeader.cs:
10968         * ListView.cs:
10969         * ListViewItem.cs:
10970         * Menu.cs: 
10971         switch to explicit interface method implementation for some methods
10972         corcompare identifies as inconsistent with MS.
10973
10974 2006-03-28  Mike Kestner  <mkestner@novell.com>
10975
10976         * MainMenu.cs: 
10977         * Menu.cs:
10978         add a few missing methods from the class status output.
10979
10980 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
10981
10982         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
10983           correct.
10984
10985 2006-03-28  Mike Kestner  <mkestner@novell.com>
10986
10987         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
10988
10989 2006-03-27  Mike Kestner  <mkestner@novell.com>
10990
10991         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
10992         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
10993
10994 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
10995
10996         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
10997
10998 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
10999
11000         * ThemeWin32Classic.cs:
11001           - GroupBox: Inserted a little gap between the text and the lines
11002             on the right side
11003           - Made the code in CPDrawBorder3D more readable
11004           - Corrected the drawing location of the up and down arrows in 
11005             CPDrawScrollButton
11006
11007 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11008
11009         * ControlPaint.cs: Corrected line widths in DrawBorder for
11010           ButtonBorderStyle Inset and Outset
11011
11012 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11013
11014         * ThemeWin32Classic.cs:
11015           - Rewrote the totally broken CPDrawBorder3D method. That was
11016             one of the main problems for the terrific ThemeWin32Classic
11017             look
11018           - Updated and corrected Button drawing
11019           - Correct the dimensions of the SizeGrip to match ms ones
11020           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11021         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11022           Border3DStyle.Sunken to match ms.
11023
11024 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11025
11026         * ThemeWin32Classic.cs: First small part of the "de-uglify
11027           ThemeWin32Classic" effort, SizeGrip
11028
11029 2006-03-24  Jackson Harper  <jackson@ximian.com>
11030
11031         * XplatUIX11.cs: Give a max idle time of one second, this matches
11032         MS and forces an Idle event every second when there are no other
11033         events in the queue.
11034
11035 2006-03-24  Mike Kestner  <mkestner@novell.com>
11036
11037         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11038         * ListView.Item.cs: fix layout issues with null image lists and images
11039         smaller than checkbox size.
11040         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11041         mode like MS does.  It's weird, but consistent.  ;-)
11042         Fixes #77890.
11043
11044 2006-03-24  Mike Kestner  <mkestner@novell.com>
11045
11046         * ListView.cs: Scroll wheel support for the item control.  Fixes
11047         #77839.
11048
11049 2006-03-23  Jackson Harper  <jackson@ximian.com>
11050
11051         * ScrollableControl.cs: Special case negative sized areas, not
11052         zero.
11053         * MonthCalendar.cs: Save the rect of the clicked date so we can
11054         use it for invalidation.
11055         - Try to cut down on the number of invalidates
11056         - Invalidate the rect the mouse is over and was over when moving
11057         the mouse, so we get the focus box following the cursor.
11058
11059 2006-03-23  Mike Kestner  <mkestner@novell.com>
11060
11061         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11062         focus rectangle drawing. Fixes #77835.
11063
11064 2006-03-23  Mike Kestner  <mkestner@novell.com>
11065
11066         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11067         the if and else if and reverting back to the original == check on the
11068         None conditional.
11069
11070 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11071
11072         * FontDialog.cs: Update the example panel if the selected index of
11073           the fontListBox changes.
11074
11075 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11076
11077         * FileDialog.cs: Make FileDialog remember which directory it was in
11078           last in the same execution.
11079
11080 2006-03-22  Mike Kestner  <mkestner@novell.com>
11081
11082         * FileDialog.cs: make the DropDownMenu on the toolbar display
11083         RadioChecks since they are mutually exclusive and that's what MS does.
11084
11085 2006-03-22  Mike Kestner  <mkestner@novell.com>
11086
11087         * Theme.cs: add Color param to CPDrawMenuGlyph.
11088         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11089         checks and radio marks and arrows are visible on highlighted items.
11090         * ControlPaint.cs: update to use new Theme signature.
11091
11092 2006-03-22  Mike Kestner  <mkestner@novell.com>
11093
11094         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11095         is active. Fixes #77870.
11096
11097 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11098
11099         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11100           to be focused/selected after startup
11101
11102 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11103
11104         * ColorDialog.cs: 
11105           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11106             CustomColors and ShowHelp properties
11107           - Some internal rewrites to get better results when using the
11108             ColorMatrix
11109
11110 2006-03-22  Mike Kestner  <mkestner@novell.com>
11111
11112         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11113         HoverSelection.  Fixes #77836.
11114
11115 2006-03-22  Mike Kestner  <mkestner@novell.com>
11116
11117         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11118         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11119         1, not 0.  Update ButtonSize based on a pixel count of the win32
11120         control.  Adjust the toolbar size/location for new button size.
11121
11122 2006-03-22  Jackson Harper  <jackson@ximian.com>
11123
11124         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11125         true.
11126         * ScrollBar.cs: When doing increments and decrements we need to
11127         set the Value property so that ValueChanged gets raised. A
11128         possible optimization here would be to make an internal SetValue
11129         that doesn't invalidate immediately.
11130         * ToolTip.cs: Tooltips get added to their container (when
11131         supplied) so they get disposed when the container is disposed.
11132         - Don't create tooltips for String.Empty. This prevents all these
11133         little 2-3 pixel windows from showing up when running nunit-gui
11134         and driving me mad.
11135         * Form.cs: Don't set topmost when setting the owner if the handles
11136         haven't been created yet.  The topmost set will happen when the
11137         handles are created.
11138
11139 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11140
11141         * XplatUIX11.cs:
11142           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11143           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11144             visible (to allow them to recalculate their sizes)
11145
11146 2006-03-21  Mike Kestner  <mkestner@novell.com>
11147
11148         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11149         methods. Removed a ton of redundant code.  Still not really happy with
11150         the border rendering, but I think that's mainly because of the
11151         ControlDarkDark being black instead of a dark grey. Depending on how 
11152         close we want to be, we might want to revisit those color choices.
11153         Among the new features added during the refactor were DropDownArrow
11154         pressed rendering, Disabled image rendering.  Proper flat appearance
11155         boundary rendering.  Removed the Divider and Wrapping dividers since I
11156         can't figure out any combination of themes and conditions to make the
11157         MS control draw a horizontal line on a toolbar despite what the
11158         Divider property docs indicate.
11159         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11160         conditions and incorrect layout.  Updated to coding standard.
11161         * ToolBarButton.cs: refactored layout and positioning code from
11162         ToolBar to here.  Invalidate wherever possible instead of forcing
11163         redraws of the whole toolbar. 
11164         (Known remaining issues: explicit ButtonSize smaller than provided
11165         images.)
11166
11167 2006-03-21  Mike Kestner  <mkestner@novell.com>
11168
11169         * ContextMenu.cs (Show): use the position parameter instead of just
11170         showing at the MousePosition.
11171
11172 2006-03-21  Jackson Harper  <jackson@ximian.com>
11173
11174         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11175         control handle this.
11176         * TreeNodeCollection.cs: If we are clearing the root node we need
11177         to reset top_node so calcs can still happen.
11178         * ThemeWin32Classic.cs: This is a Flags so we need to check
11179         properly.
11180         
11181 2006-03-21  Jackson Harper  <jackson@ximian.com>
11182
11183         * DataGrid.cs: Create columns when the binding context has been
11184         changed.
11185         * X11Structs.cs: Keysyms are uints.
11186         - Add size to fix build.
11187
11188 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11189
11190         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11191           XplatUIOSX.cs: 
11192           - Added ResetMouseHover method to allow controls to retrigger
11193             hovering if they need it more than once
11194           - Implemented MouseHoverTime and MouseHoverSize properties
11195         * Timer.cs: Start() must reset the interval
11196         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11197           properties
11198
11199 2006-03-21  Jackson Harper  <jackson@ximian.com>
11200
11201         * X11Keyboard.cs: improved layout detection. Move the nonchar
11202         tables into this file.
11203         * KeyboardLayouts.cs: Move the tables into resource files.
11204
11205 2006-03-21  Mike Kestner  <mkestner@novell.com>
11206
11207         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11208
11209 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11210
11211         * Mime.cs: Various speed optimizations. Looking up mime types
11212           is now 2 times faster than before
11213
11214 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11215
11216         * CreateParams.cs: Added internal menu field
11217         * Control.cs: 
11218           - Switched call order for UpdateBounds; now we always call
11219             the one that also takes ClientSize, and we're calculating the 
11220             client size via driver method in the others. The previous
11221             method of tracking client size by difference wasn't working
11222             for forms where even the starting client size wouldn't match
11223             the overall form size (due to borders) (Part of fix for #77729)
11224           - CreateParams(): Do not use parent.Handle unless the handle is
11225             already created. Causes havoc with Nexxia and throws off our
11226             creation of controls
11227         * XplatUIX11.cs:
11228           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11229           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11230             method (consolidates code)
11231           - Changed RequestNCRecalc to use new PerformNCCalc method
11232           - Added calls to RequestNCRecalc when menus and borders are changed
11233             to allow app to set NC size. (Part of fix for #77729) This matches
11234             when MS send a WM_NCRECALC on Win32 windows.
11235           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11236             (Part of fix for #77729). This matches what MS does, they also
11237             send that message when the form is made visible.
11238           - XException.GetMessage: Improved usability of X errors by including
11239             a translation of the window into Hwnd and Control class
11240           - Improved debug info for window creation, reparenting and destruction
11241           - Created helper method WindowIsMapped() [Currently not used]
11242         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11243         * Form.cs:
11244           - CreateParams: Now setting our menu on the new internal menu field
11245           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11246             avoid calculating the same property twice
11247         * Hwnd.cs:
11248           - Improved usability of ToString() for debugging purposes
11249           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11250             determine the height of the menu, instead of just the font. This
11251             required to also create a graphics context and to keep a bmp 
11252             around (for performance reasons)
11253
11254 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11255
11256         * MenuAPI.cs: Added OnMouseUp method
11257         * Form.cs:
11258           - Now remembering the requested client size, avoids size errors
11259           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11260             instead of base if the menu is active. This is required due to
11261             control now capturing and releasing on down/up and it would
11262             prematurely release our menu capture
11263
11264 2006-03-17  Jackson Harper  <jackson@ximian.com>
11265
11266         * KeyboardLayouts.cs: Add the czech layouts.
11267
11268 2006-03-16  Jackson Harper  <jackson@ximian.com>
11269
11270         * Control.cs: Use the viewport space when sizing not the controls
11271         client size, so things like ScrollableControl that effect the
11272         viewport size (when scrollbars are added) are computed correctly.
11273         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11274         of ManagerEntrys.
11275         - Handle creating BindingManagers for null data sources.
11276         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11277         source, otherwise when rows are added they are added to the 'fake'
11278         datasource and we will crash when trying to set the position in
11279         those rows.
11280         - Use Implicit scrollbars on the datagrid so they arent
11281         selectable.
11282         
11283 2006-03-16  Jackson Harper  <jackson@ximian.com>
11284
11285         * Binding.cs:
11286         * InternalWindowManager.cs:
11287         * MdiWindowManager.cs:
11288         * X11Keyboard.cs: I really want Mike to love me again (fix
11289         compiler warnings).
11290
11291 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11292
11293         * DataGrid.cs:
11294           - OnMouseDown: Switch to editing mode when clicking on the cell
11295                          even if we're clicking on the cell that's currently 
11296                          selected
11297           - ProcessGridKey: Left/Right now wrap like MS.Net does
11298           - ProcessGridKey: Tab now knows to add a new row when tab is
11299                             pressed in the cell of the last column of the 
11300                             last row
11301           - ProcessGridKey: Enter now adds another row  if pressed in the last
11302                             row and selectes the new row, same column cell
11303           - ProcessGridKey: Home/End navigate columns, not rows, like 
11304                             originally implemented
11305           - Broke ProcessKeyPreview code out into an extra Internal method
11306             so it can be called from the edit code
11307         * DataGridTextBox.cs (ProcessKeyMessage):
11308           - Switched to accept Tab keypresses
11309           - Added F2 handling to allow jumping to the end of the edited cell
11310           - Added logic to allow moving caret left/right inside edited cell
11311             and making the edited cell jump when the caret hits cell borders
11312           - Tab and Enter are now passed to the datagrid after being handled
11313         * TextBoxBase.cs:
11314           - Removed capture code now that Control handles it
11315           - set_SelectionStart now ensures caret is visible
11316
11317 2006-03-16  Jackson Harper  <jackson@ximian.com>
11318
11319         * TrackBar.cs: Debackwards the increment/decrement for handling
11320         mouse clicks on the bar with vertical trackbars.
11321         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11322         bottom to match MS.
11323
11324 2006-03-16  Mike Kestner  <mkestner@novell.com>
11325
11326         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11327         consistent with the MS control. Fix a bug in
11328         SelectedListViewItemCollection.Clear that was pissing me off for the
11329         better part of a day because the collection was being altered
11330         underneath us as we walked the list.
11331
11332 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11333
11334         * Control.cs: Not sure how we could miss this so long, but it seems
11335           that MS.Net has Capture set all the way from before calling 
11336           OnMouseDown through sending the mouse events until after
11337           OnMouseUp. This will fix DataGrid's selection being set to end
11338           at the location of the MouseUp.
11339
11340 2006-03-15  Jackson Harper  <jackson@ximian.com>
11341
11342         * BindingContext.cs: Check the binding after its added so that it
11343           can initialize the binding managers and hookup to events.
11344         * Binding.cs: Data members seem to sometimes include rows/cols in
11345           the format Row.Column we now take this into account.
11346           - Hookup to the position changed event so we can update the
11347           control when the position has changed in the data set.
11348         * CurrencyManager.cs: Take into account the row/col naming
11349           convention when creating dataset tables.
11350         * BindingContext.cs: Using a newer better way of storing
11351           datasource/datamember pairs.  Hopefully this better matches MS for
11352           looking up binding managers.
11353
11354
11355 2006-03-15  Jackson Harper  <jackson@ximian.com>
11356
11357         * BindingContext.cs: The currency manager needs the data member
11358         name, if the member is a data set we use the name to find the
11359         correct table.
11360         * CurrencyManager.cs: When creating the list prefer an IList over
11361         an IListSource.
11362         - Attempt to create a DataTable from a DataSet (TODO: might need
11363         some better error checking here, although MS doesn't seem to have much)
11364         - If we have a DataTable create a view and use it as our list.
11365
11366 2006-03-15  Mike Kestner  <mkestner@novell.com>
11367
11368         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11369         keyboard navigation. Support Up/Down/Left/Right selection correctly
11370         for all 4 View modes.
11371         * ListViewItem.cs: add internal row/col fields for icon layouts.
11372
11373 2006-03-15  Jackson Harper  <jackson@ximian.com>
11374
11375         * TabControl.cs: Redraw the tabs when we resize so their newly
11376         calculated sizes are drawn on screen.
11377         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11378         composite characters.
11379         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11380         - filter events so that composite characters can be created
11381         patches by peter
11382         * X11Structs.cs: Add XIMProperties enum.
11383
11384 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11385
11386         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11387           unless it's created
11388
11389 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11390
11391         * Control.cs (PerformLayout): We don't need to consider visiblity
11392           for anchoring, only for docking. This fixes 'whacky' alignment
11393           in listbox and other controls that use implicit scrollbars after
11394           the previous PerformLayout patch
11395         * ListBox.cs: Switched to use implicit scrollbars
11396           
11397 2006-03-14  Mike Kestner  <mkestner@novell.com>
11398
11399         * ToolBar.cs: 
11400         * VScrollBar.cs:
11401         - chain up the "new event" overrides to base and use
11402         OnEvent to raise them.  Part of fix for bug #76509.
11403
11404 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11405
11406         * FileDialog.cs: Do not select an item in the parent directory
11407           on backspace
11408
11409 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11410
11411         * Control.cs (PerformLayout): It would seem that we considered
11412           invisible windows for our layout. Not quite the right thing
11413           to do. Now we don't any longer, thereby fixing bug #76889.
11414
11415 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11416
11417         * Control.cs (CanFocus): I goofed. A control can have focus 
11418           even though it's not selectable. Made it match MS docs.
11419
11420 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11421
11422         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11423           center by default (fixes #76895)
11424         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11425           all uses of Border3DSides.All with the explicit ORd together
11426           Left|Right|Top|Bottom because I assume that nobody was aware 
11427           that All also implies a center fill. Most places I checked had
11428           a fill right above.
11429         * ProgressBarStyle.cs: Added
11430
11431 2006-03-13  Mike Kestner  <mkestner@novell.com>
11432
11433         * ListView.cs: fix breakage in drag shadow header positioning 
11434         from Peter's csc compilation fix.
11435
11436 2006-03-13  Mike Kestner  <mkestner@novell.com>
11437
11438         * ListView.cs: fix NRE produced by backspacing twice in a focused
11439         FileDialog.
11440
11441 2006-03-13  Mike Kestner  <mkestner@novell.com>
11442
11443         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11444
11445 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11446
11447         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11448           be changed
11449         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11450           the allowed size before making programmatic size changes
11451
11452 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11453
11454         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11455           set, metacity is broken and will still use the emty sizes in 
11456           the struct. (Fix for #77089)
11457
11458 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11459
11460         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11461           WindowExStyles and marked both enums as Flags
11462         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11463           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11464           to match WindowStyles split
11465         * XplatUIX11.cs:
11466           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11467           - Updated to match WindowStyles split
11468         * XplatUIWin32.cs:
11469           - Fixed FosterParent creation, was using ExStyle on the Style field
11470             (This should help with Popup focus issues)
11471           - Updated to match WindowStyles split
11472
11473 2006-03-13  Jackson Harper  <jackson@ximian.com>
11474
11475         * MdiWindowManager.cs: Use the system menu height. Fixes some
11476         strange sizing issues.
11477
11478 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11479
11480         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11481         * TextBoxBase.cs:
11482           - Scroll to caret after inserting text (#77672)
11483           - Make scroll range one pixel higher, fixes off-by-one error (and
11484             makes underlines visible on the last line)
11485
11486 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11487
11488         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11489           the keyboard state from being stuck with keys in 'pressed' state when
11490           focus is switched away via keyboard
11491         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11492           reset the keyboard if no X11 KeyUp events are expected to come
11493         * X11Structs.cs: Switched type of Visible to bool to match driver
11494
11495 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11496
11497         * TextControl.cs:
11498           - Switched caret to be just 1 pixel wide, matches MS and looks less
11499             clunky
11500           - Moved caret display 1 pixel down from the top of the control
11501             to improve view
11502           - InsertCharAtCharet: Update the selection start if moving the caret
11503             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11504           - No longer always creating the caret when the caret methods are
11505             called. Only the actual ShowCaret/HideCaret will do that now
11506           - Only setting caret visible if the owner control has focus
11507           - UpdateView: Added invalidation-shortcut logic for center and right 
11508             aligned text. Previously we'd update all according to the left
11509             logic which caused drawing errors. Also fixed height of invalidated
11510             areas, now properly invalidating the whole area (was off-by-one)
11511           - owner_HandleCreated: Always generate the document when the
11512             handle is created; this ensures that 
11513         * TextBoxBase.cs:
11514           - Fixed situation where caret would disappear under the right
11515             window border, also improved scrolling behaviour on left-
11516             aligned textboxes
11517           - Fixed right-aligned textboxes to have a border to the
11518             right instead of the caret being under the right border
11519         * XplatUIX11.cs:
11520           - Switched from 'nested' to simple visible/not visible tracking 
11521             for caret (part of fix for #77671)
11522           - No longer passing through translated FocusIn/FocusOut messages
11523             since we were notifying too often and the wrong windows. Instead
11524             we just notify our focussed window of receiving or loosing focus
11525         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11526           counting for caret to simple visible yes/no behaviour (part of 
11527           fix for #77671)
11528
11529 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11530
11531         * Mime.cs: Remove debug code...
11532
11533 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11534
11535         * MimeGenerated.cs: Removed
11536         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11537           and subclasses) from /usr/(local/)share/mime and
11538           $HOME/.local/share/mime.
11539
11540 2006-03-10  Jackson Harper  <jackson@ximian.com>
11541
11542         * MdiWindowManager.cs: Recalc the NC area when a window is
11543         maximized/restored so that the menu area is drawn on forms that
11544         don't have a menu.
11545
11546 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11547
11548         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11549           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11550           us to force a WM_NCCALCRESIZE message being sent. This is needed
11551           for MDI maximizing.
11552
11553 2006-03-10  Jackson Harper  <jackson@ximian.com>
11554
11555         * Form.cs: We need to use the ActiveMenu when calculating menu
11556         height.
11557         - Fix nullref when the window manager hasn't been created yet.
11558         * Control.cs: Fix nullref when we try to bring a control to the
11559         front that has no parent.
11560         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11561         height.
11562         - Add a dummy item to the maximized menu so it always has the
11563         correct height. Otherwise when there are no menus we don't get our
11564         icon and buttons.
11565         
11566
11567 2006-03-10  Jackson Harper  <jackson@ximian.com>
11568
11569         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11570         stuff.
11571         * Form.cs: Make the window_state internal so the window managers
11572         can track it.
11573         - When an MDI child is maximized let its window manager create the
11574         main menu (so it can add its icon).
11575         - Notify the window managers of state changes
11576         - Let the window manager paint its buttons and handle button
11577         clicks on the menu when it is maximized.
11578         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11579         window manager, since tool windows don't use it, only mdi windows.
11580         - Tell the main form that we don't want it to handle NCPAINT
11581         itself to avoid extra painting.
11582         - Handle clicks on a maximized windows menu.
11583         - Handle window state changes
11584         - Handle minimize/maximize clicks correctly by setting the window state.
11585         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11586         when clicking on the forms icon).
11587         - New method to create a forms maximized menu. This is its normal
11588         menu + an icon.
11589         - Handle window state changes.
11590         - Handle sizing of maximized windows.  Maximized windows are just
11591         drawn bigger then the parent visible area. All controls are still
11592         there, they are just outside the visible area (this matches windows).
11593         * MdiClient.cs: No scrollbars when a child window is maximized.
11594         - Let the children windows figure out how big they should be when
11595         sizing maximized windows.
11596         - Implement a version of ArrangeIconicWindows somewhat similar to
11597         Windows version.  There are some little differences, but I don't
11598         think any app will rely on the layout of minimized mdi windows.
11599
11600 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11601
11602         * Padding.cs: Several fixes to allow compiling with csc 2.0
11603
11604 2006-03-09  Jackson Harper  <jackson@ximian.com>
11605
11606         * Menu.cs:
11607         * MenuItem.cs: Cheap hack so we can add items to the list without
11608         the events being raised.  This allows adding mdi items during
11609         drawing. TODO: Should probably find a better time to add the items.
11610
11611 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11612
11613         * ThemeWin32Classic.cs:
11614           - CheckBox_DrawText: Added logic to not wrap if not enough space
11615             is available (Fix for bug #77727)
11616           - RadioButton_DrawText: Added logic not to wrap if not enough
11617             space is available (Fix for bug #77727). Also removed some
11618             duplicate code, DrawString always drawing the regular text
11619             before hitting the if statement.
11620
11621 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11622
11623         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11624
11625 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11626
11627         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11628         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11629           methods. Moved the new 2.0 properties into alphabetical order with
11630           other properties and added MonoTODO tags
11631
11632 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11633
11634         * AutoScaleMode.cs: Added. Fix build.
11635
11636 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11637
11638         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11639           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11640           and was requiring premature handle creation for calls from above
11641         * Form.cs, Control.cs: Removed handle arguments from calls to
11642           CalculateClientRect()
11643
11644 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11645
11646         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11647           drag_column.column_rect is MarshalByRef and can't be used that way
11648
11649 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11650
11651         * AxHost.cs: Added deserialization constructor for 
11652           AxHost+State (fixes 77743)
11653
11654 2006-03-09  Mike Kestner  <mkestner@novell.com>
11655
11656         * ListView.cs: 
11657         - Added column drag reordering for details view.
11658         - fixed behavior when mouse is dragged off column and
11659         AllowColumnReorder is false.
11660         * ColumnHeader.cs: clone the format too in Clone.
11661         * Theme.cs: add DrawListViewHeaderDragDetails method.
11662         * ThemeWin32Classic.cs:
11663         - impl new method for drawing drag column shadows and targets.
11664         - support column offset for details mode in DrawListViewItem.
11665
11666 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11667
11668         * TextControl.cs: Reset the char_count when the document is cleared
11669           (Fixes bug reported on mono-winforms mailing list)
11670
11671 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11672
11673         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11674           of calling base we simply process the key ourselves, since both
11675           DefWindowProc and the handled method would set m.Result. 
11676           (Fixes #77732)
11677
11678 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11679
11680         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11681           method also moves the window; instead implemented a copy of
11682           Control.ScaleCore (Part of fix for #77456)
11683         * TextBoxBase.cs: 
11684           - Created new CreateGraphicsInternal method to allow providing
11685             a graphics context when no handle is created without triggering
11686             handle creation. (Part of fix for #77456)
11687           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11688         * TextControl.cs: 
11689           - Switched Constructor to require TextBoxBase instead of Control (to
11690             allow uncast access to CreateGraphicsInternal)
11691           - Safeguarded use of owner.Handle property. No longer accessing it
11692             unless the handle is already created.
11693           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11694           - Now triggering a recalc when owning control becomes visible
11695         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11696           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11697           premature handle creation (Part of fix for #77456)
11698         * Control.cs:
11699           - We now only destroy our double-buffering buffers when the
11700             control is resized or disposed, but not when visibility
11701             changes. (The code even re-created them twice every time)
11702           - Now requiring a redraw of the buffer on visibility changes
11703             (fixes bug 77654 part 2)
11704           - Not passing OnParentVisibleChanged up unless the control
11705             is visible
11706           - CanFocus: Fixed to match MS documentation
11707           - Focus: Fixed to return actual focus state and to check if
11708             setting focus is legal before setting it
11709
11710 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11711
11712         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11713           when to draw focus rectangle by looking at parent focus and
11714           selected state instead. This fixes TabPages on Linux sometimes
11715           having none or multiple focus rectangles.
11716         * XplatUIX11.cs (SetFocus): 
11717           - Don't set the focus if the same window already has focus
11718           - Use SendMessage instead of PostMessage (like it's Win32
11719             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11720             to match MS behaviour
11721         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11722           are not selectable.
11723
11724 2006-03-07  Jackson Harper  <jackson@ximian.com>
11725
11726         * PictureBox.cs: Revert line I accidently committed last week.
11727
11728 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11729
11730         * Control.cs: 
11731           - Added new IsRecreating and ParentIsRecreating properties to
11732             allow testing if RecreateHandle has been called on ourselves
11733             or one of our parents
11734           - WndProc(WM_DESTROY): If our control handle is being recreated
11735             we immediately need to create the handle when receiving the
11736             destroy, that way our child windows find a valid parent handle
11737             when they themselves are being recreated upon WM_DESTROY receipt
11738             (fix for bug #77654 part 1)
11739         * XplatUIX11.cs:
11740           - DestroyWindow: WM_DESTROY must be sent to our own window before
11741             notifying any child windows. MS documents that child windows
11742             are still valid when WM_DESTROY is received. (Control now relies on
11743             this behaviour)
11744           - Added some fine-grain debug options
11745
11746 2006-03-06  Jackson Harper  <jackson@ximian.com>
11747
11748         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11749         box and base calculations off this.
11750         * MdiChildContext.cs:
11751         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11752         anymore.
11753         
11754 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11755
11756         * Splitter.cs: In situations where the affected control is added
11757           to the parent's control list after the splitter, we would not
11758           populate affected. Now we try populating it on mousedown, if
11759           it's not already set, and force it to be re-set whenever our
11760           parent changes.
11761
11762 2006-03-03  Matt Hargett  <matt@use.net>
11763
11764         * Control.cs: implement Control.Padding
11765         * Padding.cs: -Padding.All returns -1 when constructing with the
11766         implicit default ctor
11767         -Padding.ToString() matches MS.NET
11768         * ContainerControl.cs: implement
11769         ContainerControl.AutoScaleDimensions
11770         * ListControl.cs: implement ListControl.FormattingEnabled
11771         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11772         * ButtonBase.cs:
11773         * TabPage.cs: Implement UseVisualStyleBackColor.
11774         * PictureBox.cs: Implement PictureBox.InitialImage.
11775
11776 2006-03-03  Mike Kestner  <mkestner@novell.com>
11777
11778         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11779         event declarations to proxy to base event.
11780         * ListViewItem.cs: update to use ItemControl.
11781         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11782         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11783         column header label rendering for 0 width columns.
11784
11785 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11786
11787         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11788           that causes the control to be created. Fixes #77476.
11789
11790 2006-03-02  Jackson Harper  <jackson@ximian.com>
11791
11792         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11793         expose_pending.
11794
11795 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11796
11797         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11798           passed in for the EventArgs (fixes #77690)
11799
11800 2006-03-01  Jackson Harper  <jackson@ximian.com>
11801
11802         * ScrollBar.cs: Refresh afterbeing resized.
11803
11804 2006-02-28  Mike Kestner  <mkestner@novell.com>
11805
11806         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11807         Clean up a tracker compile warning.
11808         * MenuItem.cs: add internal PerformPopup method.
11809         [Fixes #77457]
11810
11811 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11812
11813         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11814           implicit expose) when the text is set to null
11815
11816 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11817
11818         * RichTextBox.cs (FlushText): When newline is true, we always
11819           need to split the line, even if no text is on it and we may
11820           never eat newlines. (Fixes #77669)
11821
11822 2006-02-28  Mike Kestner  <mkestner@novell.com>
11823
11824         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11825         and set Selected instead.
11826         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11827         collections.
11828
11829 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11830
11831         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11832
11833 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11834
11835         * FontDialog.cs:
11836           - Got rid of the panel. All controls are now directly added to
11837             the dialog form
11838           - It is now possible to set a font with the Font property
11839           - MinSize and MaxSize property do now what they should
11840           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11841           - Searching and selecting a font with the font textbox works now,
11842             the same applies to the style and size textbox
11843           - Draw the correct 3D border in the example panel
11844           - Fixed a little mem leak (unused fonts didn't get disposed)
11845           - Many other internal updates/rewrites...
11846           - Fix typo
11847
11848 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11849
11850         * TextControl.cs: 
11851           - InsertRTFFromStream: Added 'number of characters inserted' argument
11852           - set_SelectedRTF: Now using the number of characters to calculate
11853             the new location for the selection and cursor (x/y cannot be used
11854             due to potentially already wrapped text)
11855
11856 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11857
11858         * TextControl.cs: Added property and implemented means to allow 
11859           disabling recalculation of a document (can be used to speed up
11860           multiple inserts and is needed to make RTF inserts predictable, see
11861           bug #77659)
11862         * RichTextBox.cs: Using the new NoRecalc property of Document to
11863           keep x/y insert locations predictable. Also makes it faster inserting
11864           large chunks of RTF
11865
11866 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11867
11868         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11869           it's easier for a child control to handle the other messages without
11870           having to duplicate the special functionality
11871         * TextBoxBase.cs
11872           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11873             code to handle processing the key ourselves, in order to get 
11874             access to the result of KeyEventArgs.Handled. We now only call 
11875             ProcessKey if they key hasn't been handled already. Fixes #77526.
11876           - set_Text: If null or empty string is given, just clear the 
11877             document. Fixes part of #77526
11878
11879 2006-02-27  Jackson Harper  <jackson@ximian.com>
11880
11881         * SizeGrip.cs: Paint the background color before painting the grip
11882         so things look right.
11883         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11884
11885 2006-02-27  Mike Kestner  <mkestner@novell.com>
11886
11887         * ListView.cs:
11888           - Restructure layout and invalidation model to remove a ton of
11889           flicker from the control and speed up performance in general.
11890           - Add manual column resize, flickers like crazy, but I already have
11891           some ideas on how I'll fix that. (#76822)
11892           - Merge the three Icon-based views into a single layout method.
11893           - Move item selection interaction logic from the item since 
11894           interaction with the collections is more appropriate to the view.
11895           - Deselection on non-item clicks.
11896         * ListViewItem.cs:
11897           - Encapsulate most of the layout. Add some internal props to trigger
11898           layout.  Move to a model where Items invalidate themselves instead
11899           of just invalidating the whole control every time something changes.
11900           - Invalidate on Text/Caption changes.
11901           - switch to an offset based layout model to avoid having to absolute
11902           position every element on item moves.
11903           - correct checkbox layout to conform to MS layout.
11904         * ThemeWin32Classic.cs:
11905           - refactor some column header drawing code.
11906           - fix string justification for column headers (#76821)
11907           - make SmallIcon labels top justified for compat with MS impl.
11908         * ThemeClearlooks.cs:
11909           - adjust to new ListViewItem internal checkbox bounds api.
11910
11911 2006-02-27  Jackson Harper  <jackson@ximian.com>
11912
11913         * Control.cs:  Change where implicit controls fall in the zorder.
11914         They are now on top of all children.
11915         - Synced AddImplicit code with Add
11916         - Removed unused enumerator.
11917         * SizeGrip.cs: Remove the TODO as its been TODONE.
11918
11919 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11920
11921         * TextControl.cs(Insert): Combine the last lines unless the insertion
11922           string ends with \n\n, otherwise we leave one line too many (Fixes
11923           something I noticed with the testapp for #77526; the bug itself was
11924           already fixed in the previous checkin)
11925
11926 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
11927
11928         * RichTextBox.cs:
11929           - SelectionColor and SelectionFont methods no longer set absolute
11930             styles. Instead, the keep font or color respectively (This 
11931             resolves a long-standing FIXME in the code)
11932           - When flushing RTF text, the insert code now considers text trailing
11933             behind the insertion point (Fixes the bug where when replacing
11934             the selected text via SelectedRTF the remainder of the line behind 
11935             the selection would stay on the first insertion line)
11936         * TextBoxBase.cs:
11937           - AppendText now updates the selection points after inserting text
11938           - AppendText now ensures that the last tag (sometimes 0-length) of
11939             the document is used for the style information (Fixes part of 
11940             bug #77220)
11941         * TextControl.cs:
11942           - Created new FontDefiniton class to allow describing partial style
11943             changes
11944           - StreamLine() now takes a lines argument, to allow it to decide
11945             whether an encountered zero-length tag is the last in the document
11946             (which must be kept to not loose the font/color contained in it,
11947             for later appends)
11948           - Created Combine() and Split() methods for Marker structs, to 
11949             support marker updates due to reformatted documents (soft line
11950             wraps)
11951           - Implemented Document.CaretTag setter
11952           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
11953             of the last line (Not the cause, but also exposed by bug #77220)
11954           - Added LineTag argument to InsertString method, to allow callers
11955             to force a certain tag to be used (required to force use of the
11956             trailing zero-length tag of a document)
11957           - Now updating markers in Combine(), to avoid stale tag markers
11958           - Added some method descriptions to aid maintenance
11959           - Implemented new FormatText concept, allowing additive/subtractive
11960             formatting by only specifying the components that are to be 
11961             changed. This was needed for resolving the RTB.SelectedColor/
11962             RTB.SelectedFont fixmes
11963           - Added Break() support method to allow breaking up linetags (used
11964             for partial formatting)
11965           - Added GenerateTextFormat() method. It is used for partial 
11966             formatting and allows to generate a full font/color from given
11967             attributes and an existing tag.
11968
11969 2006-02-26  Jackson Harper  <jackson@ximian.com>
11970
11971         * XplatUIX11.cs:  Use the correct caption height.
11972         - Translate hittest coordinates to screen coords to match MS.
11973         * XplatUIWin32.cs: When we create MDI windows we need to reset
11974         some of the style flags, so we get a nice blank window, and can
11975         draw all the decorations ourselves.
11976         - Set a clipping rectangle on the non client paint event, the
11977         window manager drawing code needs one.
11978         * Form.cs: The window manager needs to know when the window state
11979         has been updated.
11980         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
11981         don't need to factor in border and title sizes in these
11982         methods. TODO: Remove the args and fix the call points.
11983         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
11984         properly.
11985         - Let the driver set the cursors.
11986         - Improve active window handling
11987         - Correct sizes for title bars and buttons.
11988         - Match MS drawing better
11989         * MdiWindowManager.cs: We don't need to handle border style
11990         updates specially anymore.
11991         - Check for scrollbars when windows are done moving
11992         - Handle Active properly.
11993         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
11994         correctly. I am spewing the exception though, so we don't hide the
11995         bugs.
11996         
11997 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
11998
11999         * DataGridViewRowPostPaintEventArgs.cs,
12000           DataGridViewCellPaintingEventArgs.cs,
12001           DataGridViewRowCollection.cs,
12002           DataGridViewRowPrePaintEventArgs.cs,
12003           DataGridViewCell.cs: Clear a few warnings and implement a few
12004           exceptions that should be thrown.
12005
12006 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12007
12008         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12009           'inheriting' our parent's (non-default) cursor. (Part of
12010            the fix for #77479)
12011
12012 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12013
12014         * XplatUIX11.cs: Fixed cast to make csc happy
12015
12016 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12017
12018         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12019           it's for the client area (part of fix for #77479 and needed
12020           for MDI window cursor handling)
12021         * XplatUIX11.cs
12022           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12023             the appropriate default cursors and also passing the message
12024             up the parent chain 
12025           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12026             for non-client areas
12027
12028 2006-02-15  Jackson Harper  <jackson@ximian.com>
12029
12030         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12031         is a real MDI window
12032
12033 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12034
12035         * X11DesktopColors.cs: Instead of checking the desktop session
12036           string for "KDE" check if it starts with "KDE"
12037
12038 2006-02-10  Jackson Harper  <jackson@ximian.com>
12039
12040         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12041         systems).
12042
12043 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12044
12045         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12046           errors
12047         * ColorDialog.cs:
12048           - Got rid of the panel. All controls are now directly added to
12049             the dialog form
12050           - Changed to mono coding style
12051
12052 2006-02-10  Jackson Harper  <jackson@ximian.com>
12053
12054         * InternalWindowManager.cs: We don't need the set visibility to
12055         false hack anymore now that peter has written beautiful shutdown
12056         code.
12057
12058 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12059
12060         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12061           where already explicitly destroyed
12062
12063 2006-02-10  Jackson Harper  <jackson@ximian.com>
12064
12065         * MdiClient.cs: Handle the case where windows are too high or to
12066         the left and we need scrollbars.
12067
12068 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12069
12070         * MimeIcon.cs: Added some icons
12071         * FileDialog.cs:
12072           - Fixed bug #77477
12073           - Got rid of the panel. All controls are now directly added to
12074             the dialog form
12075           - Changed to mono coding style
12076           - On Linux "My Computer" and "My Network" will now show some
12077             more usefull information. A new class, MasterMount, gathers
12078             this information from /proc/mount. Updated MWFFileView to make
12079             use of this information
12080           - Fixed a bug that caused FileDialog to crash when
12081             ".recently_used" file had a zero size
12082           - FilterIndex does now what it should
12083           - Some Refactoring
12084         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12085             FileDialog changes
12086
12087 2006-02-09  Jackson Harper  <jackson@ximian.com>
12088
12089         * ComboBox.cs: Don't touch if null.
12090
12091 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12092
12093         * Cursor.cs: 64bit safeness fix
12094         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12095
12096 2006-02-09  Jackson Harper  <jackson@ximian.com>
12097
12098         * Form.cs: If a form is made into an MDI form update the styles so
12099         all the props can get set correctly.
12100         - Kill the mdi_container when we dont need it anymore.
12101         * InternalWindowManager.cs: Add missing NOT
12102
12103 2006-02-08  Jackson Harper  <jackson@ximian.com>
12104
12105         * InternalWindowManager.cs: Respek clipping when drawing MDi
12106         decorations.
12107
12108 2006-02-08  Jackson Harper  <jackson@ximian.com>
12109
12110         * Hwnd.cs: Add bits to track non client expose events.
12111         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12112         gives us a proper invalid rect and will allow for some nice
12113         optimizations with NC client drawing
12114         - MDI windows are children windows, so move their style handling
12115         into the child window block.
12116         * InternalWindowManager.cs: Remove a state reset that was
12117         getting invoked at the wrong time. Fixes managed windows getting
12118         into a 'stuck' captured state.
12119
12120 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12121
12122         * TextControl.cs (Document.ctor): Now initializing 
12123           selection_anchor. Fixes #77493
12124
12125 2006-02-07  Jackson Harper  <jackson@ximian.com>
12126
12127         * TrackBar.cs: The increment/decrements were backwards.
12128
12129 2006-02-07  Mike Kestner  <mkestner@novell.com>
12130
12131         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12132         to the instance itself.
12133
12134 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12135
12136         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12137           on ulongs and pointers, the size differs between 32bit and 64bit
12138           systems. 
12139
12140 2006-02-07  Mike Kestner  <mkestner@novell.com>
12141
12142         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12143         for 64 bit platforms to work around a metacity bug. 
12144
12145 2006-02-07  Jackson Harper  <jackson@ximian.com>
12146
12147         * TrackBar.cs: Process the input keys we need, and hookup to
12148         KeyDown instead of using WndProc, so we get key messages.
12149
12150 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12151
12152         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12153           machine we're on. 
12154         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12155           we need to translate the XdndVersion atoms array before sending it
12156
12157 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12158
12159         * XplatUIX11.cs: 
12160           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12161             number of bits for the property, not the number of bytes. The
12162             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12163             but would not crash since it specified 8 bits instead of 4 bits)
12164           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12165             defined as XID -> long in the C headers)
12166           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12167             references since those are now IntPtr to begin with
12168           - Switched all Atom.XXX 'int' casts to IntPtr casts
12169           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12170           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12171           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12172         * X11Structs.cs:
12173           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12174           - Changed atom in HoverStruct to be IntPtr
12175         * X11DnD.cs:
12176           - Removed local DllImports, switched code to use those from XplatUIX11
12177           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12178
12179 2006-02-06  Mike Kestner  <mkestner@novell.com>
12180
12181         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12182         method signatures in the import region.  There may still be some
12183         lingering struct marshaling issues, as I didn't drill down into those.
12184         Yet.
12185
12186 2006-02-06  Jackson Harper  <jackson@ximian.com>
12187
12188         * ComboBox.cs: Dont manually set the top_item, this is computed
12189         when the scrollbar position is set.
12190
12191 2006-02-06  Mike Kestner  <mkestner@novell.com>
12192
12193         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12194         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12195         usage of Atom needs to be mapped to IntPtr for example.  And there are
12196         likely other int/long issues to be addressed.
12197
12198 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12199
12200         * FileDialog.cs: One more...
12201
12202 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12203
12204         * FileDialog.cs: Next try
12205
12206 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12207
12208         * FileDialog.cs: First part of fix for #77464
12209
12210 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12211
12212         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12213           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12214           AcceptButton border drawing.
12215
12216 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12217
12218         * Form.cs: Moved positioning of form after auto scaling is applied,
12219           otherwise it would possibly use wrong form size.
12220
12221 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12222
12223         * Control.cs (RecreateHandle): No need to re-create any child
12224           controls, the child windows will get destroyed automatically by
12225           the windowing system or driver, and re-created when the handle
12226           is being accessed the first time. Fixes #77456
12227         * Form.cs: No longer setting the form to closing if the handle is 
12228           being recreated. This seems like the right thing to do, don't
12229           have a bug or testcase for this, though.
12230
12231 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12232
12233         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12234           controls to avoid unwanted side effects
12235
12236 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12237
12238         * Control.cs: 
12239           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12240             control. Fixes #77416.
12241           - DefaultSize is 0,0 for control
12242         * TextBoxBase.cs: 
12243           - DefaultSize is 100, 20
12244           - SetBoundsCore: Now enforcing the height, no matter if the provided
12245             height is more or less than the preferred one, as long as AutoSize
12246             is on
12247         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12248
12249 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12250
12251         * Control.cs:
12252           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12253             call unless both performLayout is true *and* we have a pending
12254             layout change
12255           - ResumeLayout: MS does not completely nest Suspend and Resume,
12256             they bottom out at 0, fixed our code to match that.
12257           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12258             SetBoundsCore, we were updating even when we shouldn't. This fixes
12259             swf-anchors mis-anchoring when resizing the app fast and lots.
12260           - UpdateDistances: Now only setting the left and top distance if 
12261             we have a parent and are not suspended, this is based on
12262             a suggestion by Don Edvaldson in bug #77355.
12263           - OnVisibleChanged: Fixed logic when to create the control. We may
12264             not create the control if we have no parent or if it's not visible;
12265             switched to using Visible property instead of is_visible field 
12266             since the property also considers parent states. This fixes a bug
12267             when starting Paint.Net
12268
12269 2006-02-02  Jackson Harper  <jackson@ximian.com>
12270
12271         * Form.cs: If the forms handle hasn't been created yet don't call
12272         into xplatui to make it top most, just set the topmost flag on the
12273         form in CreateParams
12274         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12275
12276 2006-02-01  Jackson Harper  <jackson@ximian.com>
12277
12278         * ScrollableControl.cs: Refactored the Recalculate method a
12279         little, this wasn't handling all the variants of bottom and right
12280         bars needed to be added and added/removed based on their
12281         counterparts being added/removed (which changes the drawable
12282         size). Also we special case client widths and heights of 0 and
12283         don't add the scrollbar for those.
12284
12285 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12286
12287         * XplatUIX11.cs: 
12288           - Added method to get AbsoluteGeometry(); currently unused, but might
12289             be used in the future, if we try again to figure out toplevel
12290             coordinates with some more crappy window managers
12291           - Added FrameExtents() method to retrieve the WM set decoration size
12292           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12293             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12294         * Hwnd.cs: 
12295           - Added whacky_wm tracking var for metacity
12296           - Added logic to have default menu height if the actual menu height
12297             has not yet been calculated (part of fix for #77426)
12298         * Form.cs: Keep track whether client size has been set and re-set 
12299           it if a menu is added/removed afterwards (Fixes #77426)
12300
12301 2006-01-31  Jackson Harper  <jackson@ximian.com>
12302
12303         * Control.cs: When a new Site is set on the component attempt to
12304         pull the AmbientProperties from it.
12305
12306 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12307
12308         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12309           in the background of the owning form. Fixes #77332
12310
12311 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12312
12313         * MimeIcon.cs: Fix for #77409
12314
12315 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12316
12317         * XplatUIX11GTK.cs: Initial import
12318
12319 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12320
12321         * FixedSizeTextBox: fixes class signature
12322
12323 2006-01-30  Jackson Harper  <jackson@ximian.com>
12324
12325         * FixedSizeTextBox.cs: New internal class that represents a
12326         textBox that will not be scaled.
12327         * TreeView.cs:
12328         * ComboBox.cs:
12329         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12330         standard TextBox.
12331                 
12332 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12333
12334         * XplatUIX11.cs: Retrieve default screen number instead of
12335           assuming 0. Attempted fix for #77318
12336
12337 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12338
12339         * XplatUIWin32.cs: 
12340           - GetWindowPos: When a window is parented by FosterParent, use 
12341             the desktop instead of FosterParent as the base to get coordinates
12342           - CreateWindow: Don't make FosterParent the parent window for Popups
12343             if we don't want a taskbar entry, Popups automatically don't get one
12344         * Hwnd.cs: Need to call remove to actually remove the key from the
12345           hash table
12346
12347 2006-01-30  Mike Kestner  <mkestner@novell.com>
12348
12349         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12350
12351 2006-01-30  Jackson Harper  <jackson@ximian.com>
12352
12353         * TreeView.cs:
12354         * TreeNode.cs: Raise events no matter how the treenode is
12355         checked. Patch by Don Edvalson.
12356
12357 2006-01-30  Jackson Harper  <jackson@ximian.com>
12358
12359         * TreeNode.cs: Signature fix.
12360
12361 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12362
12363         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12364
12365 2006-01-20  Mike Kestner  <mkestner@novell.com>
12366
12367         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12368         event forwarding when menus are active.
12369         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12370         Most of the patch is pdb's with a little rework.
12371
12372 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12373
12374         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12375           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12376           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12377         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12378         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12379           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12380           the PaintWindowDecorations method
12381         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12382         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12383         * MenuAPI.cs: Made tracker window invisible
12384         * XplatUIWin32.cs:
12385           - Removed GetMenuDC and ReleaseMenuDC methods
12386           - Implemented the client=false path for PaintEventStart and
12387             PaintEventEnd
12388
12389 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12390
12391         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12392         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12393           styles
12394         * Form.cs: 
12395           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12396             the style
12397           - CreateParams: Reworked the styles to match MS look'n'feel,
12398             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12399             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12400
12401 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12402
12403         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12404           window is not mapped, since otherwise every form that's being 
12405           created is considered minimized, which is wrong.
12406         * Form.cs: Catching the exception and returning our internal value
12407           instead
12408
12409 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12410
12411         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12412           SetWindowMinMax() to have means to tell the driver about the minimum,
12413           maximum and maximized state window sizes. (Part of the fix for #76485)
12414         * Form.cs:
12415           - Implemented tracking of minimum and maximum window size, now calling
12416             new SetWindowMinMax() driver method to tell the driver (Part of the
12417             fix for #76485)
12418           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12419             (Completes fix for #76485)
12420           - Calling new SetWindowMinMax driver method when the handle for a 
12421             form is created, to make sure the driver knows about it even if
12422             the values have been set before the window was created
12423           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12424             to avoid messing up our anchoring calculations (partial fix
12425             for #77355)
12426         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12427         * XplatUIX11.cs:
12428           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12429           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12430             (and presumably other freedesktop.org compliant WMs). Left the
12431             assumption unmapped=minimized, needed for SetVisible to work.
12432           - Now setting the window state when creating windows
12433           - Fixed SetVisible to consider/set the window state when mapping
12434             a Form. We cannot set the state before it's mapped, and we cannot
12435             use Form.WindowState once it's mapped (since it would ask the
12436             driver and get 'normal'. Therefore, we grab the state before
12437             mapping, map, and then set state.
12438           - Implmemented SetWindowMinMax method; Metacity does not seem to
12439             honor the ZoomHints, though.
12440         * XplatUIWin32.cs:
12441           - Removed MINMAXINFO (moved to XplatUIStructs)
12442           - Added SetWindowMinMax stub (on Win32 the only way to set that
12443             information is in response to the WM_GETMINMAXINFO message, which
12444             is handled in Form.cs)
12445           - Added logic to SetVisible to set the proper window state when a 
12446             form is made visible (fixes #75720)
12447
12448 2006-01-26  Jackson Harper  <jackson@ximian.com>
12449
12450         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12451         same way we handle them with Invoke.
12452
12453 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12454
12455         * Form.cs:
12456           - Added tracking of window state so CreateParams can return
12457             the appropriate style
12458           - Moved setting of WS_CAPTION style in CreateParams to allow
12459             styles without caption
12460         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12461           control if the TextBox property is accessed. Fixes #77345
12462         * Control.cs:
12463           - get_Created: now uses is_disposed and is_created to determine
12464             return value (suggested by Jackson)
12465           - CreateHandle: No longer exits if the handle is being recreated
12466           - RecreateHandle: If the handle is not yet created call the 
12467             appropriate method to create either control or handle. If the
12468             control is already created CreateHandle will simply exit instead
12469             of just creating the handle
12470         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12471           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12472           is called.
12473         * XplatUIX11.cs: 
12474           - When DestroyWindow is called, instead of waiting for the 
12475             DestroyNotification from X11, we directly post it to the WndProc
12476             and immediately dispose the hwnd object.
12477             Same applies to DestroyChildWindows, and this obsoletes the
12478             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12479             child windows before our own, to avoid X11 errors.
12480           - Removed the direct sending of WM_PAINT on UpdateWindow
12481         * XplatUIWin32.cs:
12482           - Reworked DoEvents and GetMessage to allow access to internal queue
12483             even when trying non-blocking access to the queue.  Fixes #77335. 
12484             Based on a patch suggestion by Don Edvalson. The new private
12485             GetMessage can now also be used as a backend for a PeekMessage
12486             frontend version.
12487         * XplatUI.cs: Improved debug output for CreateWindow
12488
12489 2006-01-25  Jackson Harper  <jackson@ximian.com>
12490
12491         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12492
12493 2006-01-24  Jackson Harper  <jackson@ximian.com>
12494
12495         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12496         when we have a MaxDropItems lower then the selected index.
12497
12498 2006-01-24  Jackson Harper  <jackson@ximian.com>
12499
12500         * Control.cs: Don't allow selection of non visible controls, allow
12501         selection of controls without parents.
12502
12503 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12504
12505         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12506         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12507
12508 2006-01-23  Jackson Harper  <jackson@ximian.com>
12509
12510         * UpDownBase.cs: Make the textbox handle all the selection and
12511         tabbing. This fixes tabing to updown controls.
12512
12513 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12514
12515         * TextBoxBase.cs: fixes exception thown the object was null
12516
12517 2006-01-23  Jackson Harper  <jackson@ximian.com>
12518
12519         * ButtonBase.cs: Just use the base CreateParams. They set
12520         visibility and enabled correctly.
12521         * ComboBox.cs:
12522         * TrackBar.cs:
12523         * MonthCalendar.cs: Lets let the base set as much of the
12524         createparams as possible so we don't have duplicate code all over
12525         the place.
12526
12527 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12528
12529         * ThemeGtk.cs: Added TrackBar and some experimental code to
12530           get double buffering back
12531
12532 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12533
12534         * DataGrid.cs: Allows row number set internally higher than the last
12535         when creating a new row. Restores the editing functionality.
12536
12537 2006-01-20  Mike Kestner  <mkestner@novell.com>
12538
12539         * MimeIcon.cs: delay Image creation until the icons are accessed
12540         instead of creating 190 scaled images on GnomeHandler startup.
12541
12542 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12543
12544         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12545           first call base before processing the event. Fixes #77279
12546
12547 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12548
12549         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12550           that the stride for the GDI bitmap would match the stride of
12551           a DIB or a Cursor.
12552
12553 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12554
12555         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12556
12557 2006-01-19  Jackson Harper  <jackson@ximian.com>
12558
12559         * ComboBox.cs: Hookup the text controls keydown event so we get
12560         those when the text control has the focus.
12561
12562 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12563
12564         * Label.cs: Now using the base events instead of defining new ones;
12565           this allows us to just call the base properties without having to
12566           duplicate all base property logic 
12567
12568 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12569
12570         * Label.cs: A label by default is not a tabstop (Fixes one of our
12571           failing nunit tests)
12572
12573 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12574
12575         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12576         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12577
12578 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12579
12580         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12581           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12582           This fixes #77218
12583         * XplatUIWin32.cs: 
12584           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12585             constructor creates images that can't be saved. Part of the fix
12586             for #76103
12587           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12588           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12589             bug fix for handling window state in forms properly)
12590
12591 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12592
12593         * ThemeGtk.cs: Simplify ScrollBar drawing
12594
12595 2006-01-18  Jackson Harper  <jackson@ximian.com>
12596
12597         * Splitter.cs: Set the default dock style for the splitter control
12598         in the constructor.
12599
12600 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12601
12602         * ThemeGtk.cs: Corrected StateType and ShadowType for
12603           gtk_paint_box
12604
12605 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12606
12607         * Control.cs: Make use of Theme.DoubleBufferingSupported
12608         * ThemeGtk.cs:
12609           - Added drawing for flat style buttons
12610           - Added ScrollBar drawing
12611
12612 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12613
12614         * ThemeClearlooks.cs: Removed some unneeded code.
12615         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12616
12617 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12618
12619         * LinkLabel.cs: We need to update the hover drawing when
12620           leaving the control as well.
12621
12622 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12623
12624         * DataGrid.cs: Clicking on non empty areas in the columns
12625            area was giving an exception
12626
12627 2006-01-17  Jackson Harper  <jackson@ximian.com>
12628
12629         * ThemeWin32Classic.cs:
12630         * ListView.cs: Do not draw/clip the headers when the header style
12631         is None.
12632
12633 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12634
12635         * DataGrid.cs: Fixes 77260
12636         
12637 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12638
12639         * DataGrid.cs: Clicking on a column on a empty grid was giving
12640           an exception
12641
12642 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12643
12644         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12645           or any keypress will crash the grid.
12646
12647 2006-01-17  Mike Kestner  <mkestner@novell.com>
12648
12649         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12650         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12651         invisible/previously-visible items.
12652         [Fixes #76909]
12653
12654 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12655
12656         * ThemeClearlooks.cs:
12657         - Added CL_Draw_Button method; now other theme controls that are 
12658           not derived from button or do not have a button can draw buttons
12659           too
12660         - Updated ComboBox drawing
12661         - Beautified RadioButton drawing
12662         - Corrected drawing of bottom and left tabs
12663         - Beautified DateTimePicker and MonthCalendar
12664         - Added CPDrawButton and CPDrawRadioButton
12665
12666 2006-01-16  Jackson Harper  <jackson@ximian.com>
12667
12668         * ComboBox.cs: Set the initial value of the scrollbar to the
12669         current index. Reduce the numbers of refreshs and IndexOfs called.
12670
12671 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12672
12673         * FileDialog.cs: When the file listview is focused hitting the
12674           backspace key moves the fileview to the parent directory
12675
12676 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12677
12678         * Form.cs: 
12679           - Added RecreateHandle call when changing taskbar visibility to 
12680             trigger reparenting in Win32 driver (Fixes #75719)
12681           - If a window has minimize or maximize buttons, it cannot have
12682             a help button
12683         * XplatUIWin32.cs:
12684           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12685             the toplevel form with FosterParent (A toolwindow not on the
12686             taskbar) (Fixes #75719)
12687           - Made FosterParent a toolwindow
12688
12689 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12690
12691         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12692
12693 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12694
12695         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12696           is currently over that control, make sure that tooltip_window.Text
12697           gets updated
12698
12699 2006-01-13  Mike Kestner  <mkestner@novell.com>
12700
12701         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12702
12703 2006-01-13  Jackson Harper  <jackson@ximian.com>
12704
12705         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12706         value passed.  Also redraw the selected node when we recieve
12707         focus, so tabbing between trees works correctly.
12708
12709 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12710
12711         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12712           ~/.gconf/%gconf-tree.xml, so use
12713           .gconf/desktop/gnome/interface/%gconf.xml
12714
12715 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12716
12717         * TextControl.cs: Draw text in gray if control is disabled
12718
12719 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12720
12721         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12722           make sure it's always visible. Fixes #76680.
12723
12724 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12725
12726         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12727
12728 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12729
12730         * PageSetupDialog.cs: Added.
12731         * PrintDialog.cs: Attributes.
12732         * PrintPreviewControl.cs: Updates.
12733         * PrintPreviewDialog.cs: Updates.
12734         
12735 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12736
12737         * Control.cs: Undid my selection check fix, since it's not needed
12738         * TextBoxBase.cs:
12739           - Now considering the presence of hscroll/vscroll when sizing
12740             vscroll/hscroll respectively. Fixed bug #77077
12741           - Added Left/Up/Down/Right to IsInputKey list to prevent
12742             ContainerControl from stealing them. This fixes what I broke
12743             with my last checkin.
12744
12745 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12746
12747         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12748           I finally understand how the property can be set without a setter :-)
12749
12750 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12751
12752         * Application.cs:
12753           - Switched RunLoop to use static Message.Create to create a 
12754             Message object
12755           - Added PreProcessMessage call in runloop for keyboard events; this
12756             is part of the fix for #77219, I overlooked this originally in the
12757             MSDN doc for PreProcessMessage
12758         * Control.cs:
12759           - Removed call to PreProcessMessage from handling of keyboard 
12760             messages; it's supposed to be done in the message pump
12761           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12762             per MSDN documentation.
12763           - IsInputChar: All chars are input chars by default; removed the 
12764             parent calling chain, MS does not document that
12765           - PreProcessMessage: If IsInputChar is true, we want to return false
12766             to allow dispatching of the message
12767           - When selecting the next control, now also check that we're not
12768             selecting ourselves again and therefore return a false positive.
12769         * TextBoxBase.cs:
12770           - Tried to match return values for IsInputKey and ProcessDialogKey
12771             to what MS returns; moved processing of our special keys outside
12772             ProcessDialogKey since MS does not seem to return true on those.
12773           - Moved code that previously was in ProcessDialogKey into new private
12774             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12775           - Reworked handling of WM_CHAR to not have to duplicate code from
12776             Control.cs anymore, instead we simply call down to base.
12777            
12778 2006-01-12  Jackson Harper  <jackson@ximian.com>
12779
12780         * ComboBox.cs: We always need to refresh the text area when
12781         EndUpdate is called. Fixes the combobox in the file dialog.
12782         * Control.cs: Don't create the creator_thread until the controls
12783         handle is created.  Also in InvokeRequired we check if the
12784         creator_thread is null. This gives the effect of InvokeRequired
12785         returning true if the controls handle is not created yet, and
12786         matches MS.
12787
12788 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12789
12790         * XplatUI.cs:
12791           - Added StartLoop() driver method. This is used to allow drivers to
12792             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12793             loop for a particular thread
12794           - Added EndLoop() driver method. This is called once the message
12795             pump for the thread is shut down
12796           - Added SupportsTransparency method to allow the driver to indicate
12797             opacity support for windows
12798         * Form.cs:
12799           - Removed TODO attribute, completed AllowTransparency property
12800           - Added documented logic to Opacity
12801         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12802           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12803           versions of CompatibleTextRendering
12804         * X11Structs.cs: Added opacity atom to our atom enumeration
12805         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12806           of a form might be set before it's reparented by the WM, and we need
12807           the opacity value without calling up to Form)
12808         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12809           SupportsTransparency() driver methods
12810         * Application.cs: Now calling StartLoop and EndLoop driver methods
12811         * XplatUIX11.cs:
12812           - Added opacity atom registration
12813           - Added StartLoop()/EndLoop() methods. They're empty right now but
12814             will need to get implemented when we switch to a per-thread queue
12815           - Implemented SupportsTransparency() method
12816           - Implemented SetWindowTransparency() method
12817           - Added support for setting the opacity value when a window is
12818             reparented (since the opacity needs to be set on the WM frame)
12819         * XplatUIOSX.cs, XplatUIWin32.cs:
12820           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12821
12822 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12823
12824         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12825
12826 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12827
12828         * FileDialog.cs: Added ToolTip for MWFFileView
12829         * MimeIcon.cs: Rewrote GnomeHandler.
12830           - Get currently used gnome icon theme from
12831             ($HOME)/.gconf/%gconf-tree.xml
12832           - Make use of inherited icon themes
12833           - Support SVG icon themes like Tango via librsvg
12834
12835 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12836
12837         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12838         builds. 
12839         
12840         * Application.cs: Move the use_compatible_text_rendering outside
12841         the NET_2_0 define.  If we ever need to use the
12842         use_compatible_text_rendering on the individual controls they will
12843         access the variable from the common shared code paths.
12844
12845 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12846
12847         * XplatUI.cs:
12848           - Added more granular debug options
12849           - Added method to print both window text and id
12850           - Switched debug output to use new Window() debug method
12851           - Added IsEnabled() driver method
12852           - Added EnableWindow() driver method
12853         * Form.cs:
12854           - Removed end_modal; no longer needed, new loop handles termination
12855             via 'closing' variable
12856           - If form is modal, setting DialogResult will now initiate loop
12857             termination via 'closing' variable
12858           - Added support for is_enabled/WS_DISABLED to CreateParams
12859           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12860             does all the work
12861           - Removed code that's now in RunLoop from ShowDialog()
12862           - Added various documented sanity checks to ShowDialog()
12863           - Added handling of WM_DESTROY message; we set 'closing' on getting
12864             the message to indicate the message pump to terminate
12865           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12866             send by the Application.ExitThread method. (We send the message
12867             to destroy the window after all other events have been
12868             processed through the queue, instead of destroying the handle 
12869             directly)
12870           - Moved code from Close() method to WM_CLOSE handler; added logic
12871             to only send close-related events if the form is not displayed
12872             modal
12873         * Splitter.cs (..ctor): Fixed typo in resource name
12874         * Control.cs:
12875           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12876             brush now
12877           - set_Cursor: Now only setting calling into XplatUI if the handle for
12878             the control is already created; this avoids implict handle creation
12879             or crashes if it's not created
12880           - set_Enabled: Now setting the enabled state via the new driver method
12881             instead of just tracking it
12882           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12883           - CreateControl: Reordered event firing and method calls to more
12884             closely fire events in the order MS does. Now setting the
12885             enabled state in the driver when creating the control.
12886           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12887             match MS order
12888         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12889           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12890         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12891         * Hwnd.cs:
12892           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12893           - Added EnabledHwnd property to easily allow a driver to find the
12894             handle of the first enabled window in the parent chain (this is
12895             used by drivers to pass up input events of disabled windows)
12896         * XplatUIDriver.cs: Added IsEnabled() method
12897         * Application.cs:
12898           - Removed crude and obsolete exiting tracking variable
12899           - Removed internal ModalRun(); replaced by RunLoop()
12900           - Implemented private CloseForms() method to allow closing all 
12901             windows owned by a particular (or all) threads
12902           - Exit() now properly closes all windows without forcing the message
12903             pump to quit
12904           - Removed obsolete InternalExit() method
12905           - Changed Run() methods to use new RunLoop() message pump
12906           - Implemented new RunLoop() method for both modal and non-modal forms
12907         * CommonDialog.cs:
12908           - get_CreateParams: Added setting of WS_DISABLED
12909           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12910             invoked via Form.ShowDialog()
12911         * NativeWindow.cs: We don't remove the window from the collection when
12912           the handle is destroyed; there might still be messages for it in the
12913           queue (mainly the resulting WM_DESTROY); instead it will be removed
12914           when Control calls InvalidateHandle in the WM_DESTROY handler
12915         * XplatUIX11.cs:
12916           - CreateWindow: Added logic to handle the WS_DISABLED window style
12917           - EnableWindow: Implemented based on Hwnd.Enabled
12918           - GetMessage: Reset PostQuitState so the method can be called again
12919           - Implemented support for disabled windows (passing messages to the
12920             first enabled parent) in handling all input messages
12921           - Added optimizations for handling Expose events
12922           - Implemeted new driver method IsEnabled()
12923           - Now always resetting paint pending tracking vars when we start paint
12924           - Re-implemented UpdateWindow via just sending a WM_PAINT message
12925         * XplatUIOSX.cs: Added IsEnabled method stub
12926         * XplatUIWin32.cs: Implemented new IsEnabled() method
12927
12928 2006-01-11  Jackson Harper  <jackson@ximian.com>
12929
12930         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12931         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
12932         variables a little.
12933         * ColorDialog.cs: Clear out the old form before adding the new
12934         panel.  
12935
12936 2006-01-11  Jackson Harper  <jackson@ximian.com>
12937
12938         * X11Dnd.cs: Make sure to add all the text formats when adding
12939         strings to the data object.
12940         * TreeNodeCollection.cs: When adding to a sorted tree we need to
12941         do some redrawing too.  Also change the UpdateNode to an
12942         UpdateBelow so the newly added node gets painted.
12943         
12944 2006-01-11  Miguel de Icaza  <miguel@novell.com>
12945
12946         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12947         LinkLabel.cs, PropertyGrid.cs: Implement the
12948         UseCompatibleTextRendering property for 2.x
12949
12950         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
12951
12952 2006-01-11  Jackson Harper  <jackson@ximian.com>
12953
12954         * TreeView.cs: Use the property for setting the selected node so
12955         the correct events get raised.
12956         * TreeNode.cs: Update the tree when the fore/back colours of a
12957         node are set.
12958
12959 2006-01-10  Jackson Harper  <jackson@ximian.com>
12960
12961         * TreeView.cs: Allow setting SelectedNode to null.
12962
12963 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12964
12965         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
12966
12967 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12968
12969         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
12970
12971 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12972
12973         * PrintDialog.cs: Added attributes and set default property values.
12974
12975 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12976
12977         * PrintControllerWithStatusDialog.cs: 
12978         Added PrintControllerWithStatusDialog.
12979
12980 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12981
12982         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12983         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
12984
12985 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
12986
12987         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
12988
12989 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
12990
12991         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
12992         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
12993
12994 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12995
12996         * MimeIcon.cs: Added internal class SVGUtil.
12997
12998 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
12999
13000         * FileDialog.cs: Don't crash if there are two files with the
13001           same name but different locations.
13002
13003 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13004
13005         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13006         dates across multiple month grids. Used to not highlight entire 
13007         month, but does now.
13008         
13009 2006-01-06  Jackson Harper  <jackson@ximian.com>
13010
13011         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13012         message loop. Change timer intervals to numbers that seem more
13013         natural.
13014
13015 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13016
13017         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13018           object for location info since screen object is now implemented.
13019
13020 2006-01-05  Jackson Harper  <jackson@ximian.com>
13021
13022         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13023         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13024         AsyncMethodResult, this is because we ALWAYS want the
13025         ManualResetEvent to get set.
13026         * Control.cs: When disposing use an async invoke to call shutdown
13027         code, so that thigns don't block on the finalizer thread.  Also
13028         check if we even have a message loop before trying to send
13029         messages, if we don't then don't bother sending messages.
13030         - No more weak references for async methods
13031         * XplatUIDriver.cs: No more weak references for async methods.
13032
13033 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13034
13035         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13036           returns two FontFamily with the same name
13037
13038 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13039
13040         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13041           drawing disabled text. Instead using the ColorGrayText color
13042
13043 2006-01-04  Jackson Harper  <jackson@ximian.com>
13044
13045         * TreeNode.cs: redraw the node when its image index is changed.
13046
13047 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13048
13049         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13050           time I checked there are no others like it.
13051
13052 2006-01-04  Jackson Harper  <jackson@ximian.com>
13053
13054         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13055         this gives the behavoir I was looking for.
13056         * Control.cs: Special case Invoking EventHandlers, this matches MS
13057         and fixes part of bug #76326.
13058
13059 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13060
13061         * ThemeClearlooks.cs, FileDialog.cs:
13062           - Reflect the latest Theme class changes
13063           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13064             with DateTime
13065             
13066 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13067
13068         * Theme.cs: Cache UI resource images and resize them if needed
13069
13070 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13071
13072         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13073           is called. This fixes the crash in Nexxia when setting the font
13074           attributes in the chat. [However, RTF needs a look-over to make sure
13075           that all SelectionXXX methods handle the special case that selection
13076           is empty and therefore the change must be applied to all text starting
13077           at the cursor/selection start]
13078
13079 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13080
13081         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13082           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13083         * X11Keyboard.cs: Switched to new way of calling PostMessage
13084
13085 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13086
13087         * Theme.cs: Added theme interface for images to allow the theme to
13088           control what images are used for things like FileDialog, MessageBox
13089           icons, etc.
13090         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13091
13092 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13093
13094         * FileDialog.cs:
13095           - Removed some dead code
13096           - Opening a recently used file does work now
13097           - Small UI enhancements
13098           - Refactoring
13099
13100 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13101
13102         * FileDialog.cs: Forgot too add __MonoCS__
13103
13104 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13105
13106         * FileDialog.cs: We are able to read recently used files now let's
13107           go on and write them.
13108
13109 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13110
13111         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13112           button
13113         * MimeIcon.cs: Do a check for the top level media type also
13114
13115 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13116
13117         * ThemeClearlooks.cs:
13118           - Added CPDrawStringDisabled
13119           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13120             some chars if the text doesn't fit into text_rect
13121           - DrawListViewItem: If View = View.LargeIcon center the image;
13122             rewrote the drawing of ListViewItem.Text if View = 
13123             View.LargeIcon
13124
13125 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13126
13127         * MimeIcon.cs: Use default KDE icon theme if there is no
13128           "48x48" directory for the current icon theme, fixes #77114
13129         * Mime.cs: Disable not working and actually not used code. 
13130         * ThemeWin32Classic.cs:
13131           - Replace "new SolidBrush" in GetControlBackBrush and
13132             GetControlForeBrush with ResPool.GetSolidBrush
13133           - Changed DrawListViewItem from private to protected virtual
13134         * FileDialog.cs:
13135           - Added form.MaximizeBox = true
13136           - Don't throw an exception if there is a broken symbolic link
13137
13138 2005-12-23  Jackson Harper  <jackson@ximian.com>
13139
13140         * TabControl.cs: Give the panels focus, keyboard navigation is
13141         fixed so this works correctly now.
13142         - We need these key events also.
13143         * ToolBar.cs: Remove some of the poor mans double buffering.
13144         
13145 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13146
13147         * ComboBox.cs: The internal TextBox now returns the focus.
13148
13149 2005-12-23  Jackson Harper  <jackson@ximian.com>
13150
13151         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13152
13153 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13154
13155         * Control.cs: Removed debug code
13156         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13157           implicit children
13158
13159 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13160
13161         * Control.cs: When creating the control, update the Z-order after
13162           all it's children are created, too. (Fixes nexxia not showing
13163           picturebox bug)
13164
13165 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13166
13167         * Control.cs: Do not update the anchoring distances if layout is
13168           suspended, instead do it once layout is resumed
13169
13170 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13171
13172         * Control.cs: 
13173           - After many hours of debugging, for both Jackson and
13174             myself, it turns out that it helps to set the parent of a control
13175             if you want to actually see it onscreen. In the spirit of that
13176             discovery, we're now setting the parent of the control and
13177             it's children when the control's handle is created. This fix
13178             will make Lutz Roeder's Reflector run happily. 
13179           - now just creating the handle instead of the whole control when
13180             getting a graphics context for the control.
13181
13182 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13183
13184         * ScrollableControl.cs: When calculating the canvas, don't consider
13185           the scrollbar widths. Instead, predict if horizontal scrollbar
13186           will affect canvas when deciding on vertical display and vice versa.
13187
13188 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13189
13190         * RichTextBox.cs: Set default RTF font for documents that don't
13191           have a font table (Fixes #77076)
13192
13193 2005-12-22  Jackson Harper  <jackson@ximian.com>
13194
13195         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13196         clipboard. This prevents a NullRef in that case.
13197         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13198         clipboard. PRIMARY is for the currently selected text only. (We
13199         should implement PRIMARY at some point.
13200
13201 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13202
13203         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13204           a Unicode function with a structure that was defined in Ansi way.
13205           This fixes #76942.
13206
13207 2005-12-21  Jackson Harper  <jackson@ximian.com>
13208
13209         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13210         on. Because thats how it rolls. (and this avoids it using ambient
13211         colours).
13212         * ThemeWin32Classic.cs: Use the proper back color for filling.
13213         * Menu.cs: Use the system menu bar color for drawing menu
13214         bars. Using the window back color will bring ambient colours into
13215         the picture.
13216
13217 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13218
13219         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13220           Bitmaps were created and not disposed.
13221
13222 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13223
13224         * Control.cs (CreateControl): Don't do anything if the control is
13225           already created, otherwise we'd fire the OnCreated event more than
13226           once
13227
13228 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13229
13230         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13231           will always match. Instead return -1. Fixes #76464.
13232
13233 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13234
13235         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13236           neither the beginning nor the end of the line (Fixes bug #76479)
13237
13238 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13239
13240         * Control.cs:
13241           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13242             where handle is invalid
13243           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13244             instead of slower linear search
13245         * NativeWindow.cs: Don't remove the window from the hashtable until
13246           after the driver has destroyed it (since the driver might use
13247           Control.FromHandle to lookup the control object
13248         * Hwnd.cs: Added DestroyPending property to track if a window is 
13249           already destroyed as far as the driver is concerned and only hasn't
13250           yet notified the control
13251         * XplatUIX11.cs:
13252           - Activate(): Check if the window is still valid before using the 
13253             handle
13254           - Implemented DestroyChildWindow() method to mark child windows as
13255             destroyed when a window is destroyed. This prevents situations 
13256             where we might call an X method based on queued events for a
13257             window that already has been destroyed but we haven't yet pulled
13258             the destroy method from the queue.
13259           - Added a call to the new DestroyChildWindow() method to the drivers
13260             DestroyWindow code. Also now marking the destroyed window itself
13261             as pending
13262
13263 2005-12-20  Jackson Harper  <jackson@ximian.com>
13264
13265         * StatusBar.cs:
13266         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13267         anymore. Just do them when needed, also track the rects of panels
13268         so that we can optimize refreshing more in the future.
13269
13270 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13271
13272         * ColorDialog.cs: Fixed focus drawing in small color controls
13273
13274 2005-12-19  Jackson Harper  <jackson@ximian.com>
13275
13276         * InternalWindowManager.cs:
13277         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13278         moving windows works properly.
13279
13280 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13281
13282         * Control.cs: 
13283           - Removed call to InitLayout() from SetBoundsCore(); doc says
13284             it's only called when a control is added to a container
13285           - Split InitLayout logic, moved to separate UpdateDistances() method
13286             since we need to perform those calculations more often than just
13287             when adding the control to a container. (Needed to fix #77022)
13288           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13289           - Reduced the OnBindingContextChanged events count, don't send them
13290             unless the control is created, we still aren't totally matching
13291             MS, but I can't quite figure out some of their rules
13292
13293 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13294
13295         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13296           stripes
13297
13298 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13299
13300         * ThemeClearlooks.cs:
13301           - Updated ProgressBar drawing
13302           - Corrected drawing of ScrollBars and scroll buttons
13303           - Some temporary fixes for minor pixel artefacts
13304
13305 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13306
13307         * Control.cs:
13308           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13309             cause events to be sent in the same order as MS does.
13310           - Added ChangeParent() method to trigger various OnXXXChanged events
13311             that need to be fired when a parent changes (This is a reworking
13312             of the patch from r54254, with the X11 errors fixed)
13313           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13314             since on MS we get OnLayoutChanged events when calling Clear()
13315           - Changed Enabled property to consider parent state as well, if a
13316             parent is not enabled, the control will not be either
13317           - Changed Parent property to simply call Controls.Add() since that
13318             now does all the work required, this way we avoid code duplication
13319           - Threw in a few OnBindingsContextChanged calls to try and match
13320             when MS sends them. We seem to send a few too many, though.
13321           - Added call to CreateControl when adding the control to a parent.
13322             We were never calling CreateControl. Still needs some work, in
13323             some places we treat HandleCreated and ControlCreated as equal, 
13324             which is wrong
13325           - Removed obsolete commented out code from UpdateZOrder()
13326
13327 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13328
13329         * ThemeClearlooks.cs: Updated TrackBar drawing.
13330
13331 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13332
13333         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13334
13335 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13336
13337         * FileDialog.cs: Add the Help button and the open readonly
13338           checkbox only if needed
13339
13340 2005-12-16  Jackson Harper  <jackson@ximian.com>
13341
13342         * Control.cs: Make sure we have an active menu before trying to
13343         process commands on it. Prevents menu-less forms from crashing
13344         when Alt is pressed.
13345         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13346         Dieter Bremes.
13347         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13348         2.0 build.
13349
13350 2005-12-16  Jackson Harper  <jackson@ximian.com>
13351
13352         * InternalWindowManager.cs: Don't translate tool windows screen
13353         coordinates. This fixes windows 'bouncing' around when being moved.
13354
13355 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13356
13357         * TextBoxBase.cs:
13358           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13359             not quite MS compatible, MS uses that number only for single line
13360             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13361             the limit at 2GB)
13362           - Now enforcing the MaxLength limit when entering characters
13363           - Added argument to internal Paste() method to track if it's called
13364             from programatically or via keyboard, since keyboard driven pastes
13365             need to enforce max-length
13366           - Added logic to Paste to only paste as many chars as MaxLength 
13367             allows
13368         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13369         * TextControl.cs:
13370           - Added Length property to return number of characters in document
13371           - Added private CharCount property which only tracks actual chars
13372             in the document (no linefeeds) and fires event when CharCount
13373             changes
13374           - Added tracking of character count to all methods that alter it
13375           - Added LengthChanged event to allow applications to subscribe
13376             to any changes to the document
13377
13378 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13379
13380         * TextBox.cs: 
13381           - Removed local password_char field (moved to TextBoxBase)
13382           - Now setting the document's password var when password is
13383             set
13384         * TextBoxBase.cs:
13385           - Added password_char field (needed here so MultiLine can
13386             access it)
13387           - Added logic to MultiLine property setter to set the document's
13388             variable when password display is allowed
13389           - Removed debug code and made some debug code conditional
13390         * TextControl.cs:
13391           - Added RecalculatePasswordLine() method to handle special password
13392             char only lines
13393           - Added PasswordChar property, also added related tracking vars
13394           - Draw() method now uses local text var for grabbing text to draw,
13395             this var is set to line.text unless we're doing password display,
13396             then it is set to the pre-generated all-password-chars line
13397           - Added calling RecalculatePasswordLine() method for password lines
13398
13399 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13400
13401         * Hwnd.cs: 
13402           - Added Reparented property to allow tracking of Window Manager
13403             reparenting actions (which affect X/Y calculations of toplevel 
13404             windows)
13405           - Made ToString() print window handles in hex
13406         * XplatUIX11.cs:
13407           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13408             determine if X/Y needs offsetting
13409           - AddConfigureNotify(): Fixed offset calculations
13410           - Now adds ReparentNotify messages into the queue
13411           - Now processes ReparentNotify messages and causes a 
13412             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13413             is reparented (as most likely it's X/Y coordinates are changed
13414             due to that)
13415
13416 2005-12-14  Jackson Harper  <jackson@ximian.com>
13417
13418         * XplatUIX11.cs: Tool windows still need to respek focus.
13419
13420 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13421
13422         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13423           have a working release
13424
13425 2005-12-13  Jackson Harper  <jackson@ximian.com>
13426
13427         * Form.cs: Update styles after setting the border style regardless
13428         of whether or not the window is using a window manager.
13429
13430 2005-12-13  Jackson Harper  <jackson@ximian.com>
13431
13432         * Form.cs: We now hook into an internal window manager instead of just an
13433         MDI subsystem, this is so we can have properly behaving tool windows.
13434         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13435         * InternalWindowManager.cs: New internal class that acts as a
13436         window manager for tool windows and as a base for mdi windows.
13437         * MdiWindowManager.cs: New class that acts as a window manager for
13438         mdi windows.
13439
13440 2005-12-12  Jackson Harper  <jackson@ximian.com>
13441
13442         * Control.cs: Updates so we match behavoir for for implicit
13443         controls. Fixes explosions in MDI.
13444
13445 2005-12-12  Jackson Harper  <jackson@ximian.com>
13446
13447         * Control.cs: Implement Invalidate (Region).
13448
13449 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13450
13451         * Control.cs: 
13452           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13453             the same events as MS does. MS fires events for each property 
13454             except, for unknown reasons, Cursor, when the control is reparented. 
13455             I can't seem to totally match add/remove since MS also fires some 
13456             VisibleChanged events, which makes no sense. Consolidated the
13457             parenting code into a separate method so it can be called from
13458             both Add and Remove. set_Parent no longer needs any special logic
13459             as it calls the parent's add method which implicitly fires
13460             all events
13461           - Removed some obsolete code and debug output
13462           - Enabled state is inherited from parents, if this is enabled
13463
13464 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13465
13466         * Form.cs: Removed commented out code
13467
13468 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13469
13470         * Control.cs:
13471           - Added internal version of Invoke, with additional argument 
13472             indicating if we're calling it from a Dispose() handler. That
13473             way we can avoid BeginInvoke throwing an exception if we're
13474             calling for an already destroyed window.
13475           - Added a dispose argument to BeginInvokeInternal, and made the
13476             check if a valid window handle chain exists conditional on
13477             it not being a dispose call
13478           - Removed code in DestroyHandle to destroy our children. Since we
13479             now handle the WM_DESTROY message we will catch all our children
13480             being destroyed.
13481           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13482         * Form.cs:
13483           - Added a field to track the application context of the form.
13484           - No need to set closing variable as response to WM_CLOSE, instead
13485             we destroy the window. We also call PostQuitMessage if the form
13486             has an application context (which makes it the main app form,
13487             which, when closed terminates the app)
13488         * XplatUI.cs:
13489           - Dropped Exit() method, it's naming was confusing
13490           - Added PostQuitMessage() which causes GetMessage to return false
13491             once the message queue is empty
13492         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13493           PostQuitMessage()
13494         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13495           no longer a valid XplatUI method, but left it in since it's used
13496           internally. Added empty PostQuitMessage() method.
13497         * MenuAPI.cs: Replaced call to Exit() with call to
13498           PostQuitMessage, even though this is probably no longer needed.
13499         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13500         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13501         * Application.cs:
13502           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13503           - Removed old debug code that would call XplatUI for exception
13504             display, enabled standard exception handling (Still not enabled
13505             though, until NativeWindow's ExternalExceptionHandler define
13506             is removed
13507         * NativeWindow.cs:
13508           - Added internal method to allow control to update NativeWindow
13509             after a window has been destroyed
13510           - Added handling of already destroyed windows when calling i
13511             DestroyWindow
13512           - Added removal of handle from list on ReleaseHandle
13513         * XplatUIX11.cs:
13514           - Dropped GetMessageResult var and related code
13515           - Added PostQuitState to field to track if PostQuitMessage has been
13516             called
13517           - Dropped Exit() method
13518           - Added PostQuitMessage() method
13519           - GetMessage now will return false if PostQuitState is set and no
13520             more messages are in the queue.
13521           - Expose handler will no longer generate WM_PAINT messages if we are
13522             in PostQuitState since it's very likely any windows have already
13523             been destroyed, and since Hwnd won't get updated until we have
13524             processed the DestroyNotify we'd be causing X errors.
13525         
13526 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13527
13528         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13529           Thanks to Mike for pointing out the err of my ways.
13530
13531 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13532
13533         * Control.cs(PreProcessMessage): Moved menu handling back, but
13534           after all other key handling, to match MS (who handles Menu in
13535           DefWndProc)
13536         * Menu.cs (WndProc): Removed my brainfart
13537
13538 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13539
13540         * Control.cs(PreProcessMessage): Removed special menu handling 
13541         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13542
13543 2005-12-07  Mike Kestner  <mkestner@novell.com>
13544
13545         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13546         state according in tracker.
13547         * Menu.cs : promote tracker field to base class and provide a tracker
13548         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13549         has a tracker. Unparent items that are removed from the collection.
13550         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13551         * Theme*.cs: add always_show_hotkeys field to support configurability
13552         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13553         pressed.
13554
13555 2005-12-07  Jackson Harper  <jackson@ximian.com>
13556
13557         * MdiChildContext.cs: Use Control.ResetCursor.
13558         * Control.cs: ResetCursor needs to set the property so that the
13559         correct XplatUI call gets made.
13560
13561 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13562
13563         * Control.cs: More fixes to make our key events match MS. We
13564           were not setting the modifier state on KeyData, and we were
13565           not generating any events when Alt was pressed with a key
13566           since handling of WM_SYSxxx was missing for the OnKey methods.
13567
13568 2005-12-07  Jackson Harper  <jackson@ximian.com>
13569
13570         * MdiChildContext.cs: reenable the sizing code.
13571         - When the mouse leaves a window reset its cursor.
13572
13573 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13574
13575         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13576
13577 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13578
13579         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13580           widths of Fixed3D borders
13581
13582 2005-12-07  Jackson Harper  <jackson@ximian.com>
13583
13584         * MdiClient.cs: Fix warnings. Earn Mike's love.
13585
13586 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13587
13588         * ThemeClearlooks.cs:
13589           - Adjusted mouse over button color
13590           - Added first parts of CheckBox drawing
13591           - Added correct color for selected text background
13592           - Fixed ComboBox drawing
13593           - Added CPDrawBorder3D and CPDrawBorder
13594
13595 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13596
13597         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13598
13599 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13600
13601         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13602           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13603           alert users via sound. We could add an enum arg with different
13604           types of alerts in the future
13605
13606 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13607
13608         * Control.cs: Fix behaviour problems pointed out by Mike
13609
13610 2005-12-05  Mike Kestner  <mkestner@novell.com>
13611
13612         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13613         prop setters.  Calls parent.Refresh for now, but could be maybe be
13614         optimized with an internal method on StatusBar at some point.
13615         [Fixes #76513]
13616
13617 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13618
13619         * RichTextBox.cs: Implemented get_SelectionColor
13620
13621 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13622
13623         * ThemeClearlooks.cs:
13624           - Removed dead code
13625           - Draw black button border only if button is Form.AcceptButton
13626           - Draw correct button color for pressed RadioButton if the mouse 
13627             has entered the button
13628           - Updated ProgressBar drawing!
13629           - Updated CPDrawSizeGrip drawing
13630           - Updated StatusBarPanel drawing
13631
13632 2005-12-05  Mike Kestner  <mkestner@novell.com>
13633
13634         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13635         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13636
13637 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13638
13639         * ThemeClearlooks.cs: Initial check-in, activate with
13640           export MONO_THEME=clearlooks
13641         * ThemeEngine.cs: Added ThemeClearlooks
13642
13643 2005-12-03  Mike Kestner  <mkestner@novell.com>
13644
13645         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13646         [Fixes #76897]
13647
13648 2005-12-02  Jackson Harper  <jackson@ximian.com>
13649
13650         * Form.cs: If the child form has no menu the default main menu is
13651         used as the active menu.
13652
13653 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13654
13655         * ListBox.cs: Check if any items exist before trying to resolve 
13656           coordinates into items
13657
13658 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13659
13660         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13661           as the second color for the background hatch
13662
13663 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13664
13665         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13666         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13667           sure that what we pass to FormatText is always 1-based. Fixes #76885
13668
13669 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13670
13671         * NumericUpDown.cs (EndInit): When we are done initializing,
13672         reflect any updates on the UI.
13673
13674 2005-12-02  Jackson Harper  <jackson@ximian.com>
13675
13676         * ImplicitHScrollBar.cs:
13677         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13678         their container controls.
13679         * TreeView.cs: Use the new implicit scrollbars.
13680
13681 2005-12-02  Jackson Harper  <jackson@ximian.com>
13682
13683         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13684         can play with it.
13685         * TreeNodeCollection.cs: If we remove the topnode we need to
13686         update topnode to the next node in line.
13687         - When clearing nodes go through the same process as removing
13688         them, so they get depareneted and checked if they are top node.
13689
13690 2005-12-01  Jackson Harper  <jackson@ximian.com>
13691
13692         * TreeView.cs: When imagelists are used the image area is
13693         selectable as well as the text.
13694         - If there are no selected nodes select the first one.
13695         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13696         so don't do it more then we need to.
13697
13698 2005-12-01  Jackson Harper  <jackson@ximian.com>
13699
13700         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13701         that arrows can be scaled.
13702
13703 2005-12-01  Jackson Harper  <jackson@ximian.com>
13704
13705         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13706         fail. Patch by Dieter Bremes
13707
13708 2005-11-30  Jackson Harper  <jackson@ximian.com>
13709
13710         * Form.cs: Property is 2.0 only
13711         * PrintDialog.cs: Signature fix.
13712
13713 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13714
13715         * TextControl.cs: 
13716           - No longer artificially moves text 2 pixels down (now that we have
13717             borders this is no longer needed)
13718           - Added calcs for left, hanging and right indent
13719
13720 2005-11-23  Mike Kestner  <mkestner@novell.com>
13721
13722         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13723
13724 2005-11-30  Jackson Harper  <jackson@ximian.com>
13725
13726         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13727         get cloned as part of CloneMenu ().
13728         * Menu.cs: Make sure the parent of the items get set correctly
13729         when they are added.  And the owners are notified of the changes.
13730         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13731         we can change the menu being displayed/handled by the form without
13732         changing the menu assosciated with the form.
13733         - Don't let Mdi children draw/handle menus.
13734         
13735 2005-11-30  Jackson Harper  <jackson@ximian.com>
13736
13737         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13738         a MenuChanged event. Just to make the API a little more
13739         consistent.
13740         * MainMenu.cs:
13741         * MenuItem.cs: Use the new OnMenuChanged
13742         * MdiChildContext.cs: Handle menu merging.
13743         * Form.cs: Implement MergedMenu.
13744         
13745 2005-11-30  Jackson Harper  <jackson@ximian.com>
13746
13747         * Menu.cs: We were misusing Add. Add goes behind the specified
13748         index according to the docs, and does not replace the specified
13749         index. So I added an Insert method.
13750
13751 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13752
13753         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13754           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13755           is for Jackson
13756         * RichTextBox.cs: Added calls to base for DnD events
13757
13758 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13759
13760         * TextControl.cs:
13761           - Fixed drag-selection related crash; style fixes
13762           - Implemented undo class
13763             o Implemented method to capture document state for specified
13764               range in document tree
13765             o Implemented method to restore captured document state
13766             o Implemented cursor tracking
13767             o Implemented basic undo stack
13768           - Added undo cursor tracking to methods altering cursor location
13769           - Added undo tracking to selection deletion (still missing
13770             other text-altering hookups)
13771         * RichTextBox.cs:
13772           - Added SelectionLength property
13773           - Implemented CanPaste()
13774           - Implemented Paste()
13775           - Added missing protected methods
13776           - Fixed RTF->Document conversion; now uses font index 0 and color 
13777             index 0 as the default font for the parsed text
13778           - Fixed RTF<->Document font size translation
13779           - Fixed RTF generation, now properly handles cross-tag boundaries
13780             for single line selection
13781           - No longer always appends blank line to generated RTF
13782           - Removed TODOs
13783           - Added missing attributes
13784           - Hooked up undo-related methods
13785         * TextBoxBase.cs:
13786           - Implemented Copy()
13787           - Implemented Paste()
13788           - Implemented Cut()
13789           - Fixed caret mis-behaviour on backspace across line-boundaries
13790
13791 2005-11-29  Jackson Harper  <jackson@ximian.com>
13792
13793         * MdiClient.cs: Add a method for activating mdi children. Very
13794         basic right now. I imagine someday it might need more girth.
13795         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13796         children windows names are added to the menu item.
13797         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13798         mdilist. This happens regardless of whether or not there are any
13799         mdi windows to see in the list, and according to my tests happens
13800         before the items are even added. Also happens if there isn't even
13801         an mdi client to get windows from.
13802
13803 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13804
13805         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13806         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13807
13808 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13809
13810         * DataGridTableStyle.cs:
13811           - Create always the styles for the missing columns even if they are
13812             provided by the user (not default table style)
13813         * DataGrid.cs:
13814           - Fixes bug 76770
13815           - Fixes SetDataBinding (always re-attach source)
13816           - Fixes SetNewDataSource (only clear styles if they are not for 
13817             this source)
13818          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13819             and remove properly
13820
13821 2005-11-29  Jackson Harper  <jackson@ximian.com>
13822
13823         * FileDialog.cs: Implement missing bits, remove some dead
13824         code.
13825         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13826         creation of the panel so that the options set on the dialog are
13827         seen when the panel is created.
13828         * TreeView.cs: raise a click when items are clicked.
13829         
13830 2005-11-29  Jackson Harper  <jackson@ximian.com>
13831
13832         * MdiClient.cs: Pass some signature methods through to base.
13833
13834 2005-11-28  Jackson Harper  <jackson@ximian.com>
13835
13836         * ListView.cs: Raise the click event when items are clicked.
13837
13838 2005-11-28  Jackson Harper  <jackson@ximian.com>
13839
13840         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13841         a nullref.
13842
13843 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13844
13845         * ThemeNice.cs: - Removed 1 pixel bitmaps
13846           - Use SmoothingMode.AntiAlias where it makes sense
13847             (ScrollButton arrow for example)
13848           - Enhanced Button focus drawing
13849           - Fixed ComboBox drawing (no artefacts anymore, focus
13850             rectangle is back again, reduced size of ComboButton, etc.)
13851           - Fixed RadioButton focus drawing for Appearence.Button
13852           - Slight ScrollButton redesign
13853           - Some LinearGradientBrush size fixes
13854           - GroupBoxes have now rounded edges
13855           - Fixed StatusBar drawing
13856
13857 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13858
13859         * ThemeNice.cs: - Remove dead code
13860           - use correct background colors for menus, etc.
13861           - Fake pixel drawing with 1 pixel bitmaps
13862
13863 2005-11-24  Jackson Harper  <jackson@ximian.com>
13864
13865         * MdiClient.cs: Size the scrollbars when resizing the window.
13866         - Resize the maximized windows when the client is resized
13867         * Form.cs: Make the child context available
13868         
13869 2005-11-23  Jackson Harper  <jackson@ximian.com>
13870
13871         * MdiChildContext.cs: Don't size windows if they are maximized.
13872
13873 2005-11-23  Mike Kestner  <mkestner@novell.com>
13874
13875         * ContextMenu.cs: use MenuTracker.
13876         * Control.cs: remove menu handle usage.
13877         * Form.cs: remove menu handle usage.
13878         * Hwnd.cs: remove menu handle usage.
13879         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13880         motion and clicks to the new Tracker handlers.
13881         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13882         and handle usage.
13883         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13884         Killed the MENU and MENUITEM data types and associated collections
13885         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13886         MenuTracker class that exposes the leftovers from the old MenuAPI
13887         static methods. Restructured Capture handling so that only one grab is
13888         done for the entire menu hierarchy instead of handing off grabs to
13889         submenus. Tracker now has an invisible control to Capture when active.
13890         * MenuItem.cs: add sizing accessors, kill Create
13891         and handle usage.
13892         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13893         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13894         MENU(ITEM). remove menu handle usage, use Menu directly.
13895         * XplatUIDriver.cs: remove menu handle usage.
13896         * XplatUIOSX.cs: remove menu handle usage.
13897         * XplatUIWin32.cs: remove menu handle usage.
13898         * XplatUIX11.cs: remove menu handle usage.
13899
13900 2005-11-22  Jackson Harper  <jackson@ximian.com>
13901
13902         * Hwnd.cs: Don't compute the menu size for
13903         DefaultClientRectangle.
13904         - Reenable menu sizes being computed for GetClienRectangle.
13905         * Form.cs: Remove comment of trechery
13906         
13907 2005-11-22  Jackson Harper  <jackson@ximian.com>
13908
13909         * Hwnd.cs: The adjustments for the menu bar are made when it is
13910         attached to the form.
13911
13912 2005-11-19  Jackson Harper  <jackson@ximian.com>
13913
13914         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13915         (just like on windows).
13916
13917 2005-11-19  Jackson Harper  <jackson@ximian.com>
13918
13919         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13920         use real buttons anymore because they are in non client area. The
13921         one TODO here is that I need to somehow invalidate a section of
13922         the non client area.
13923
13924 2005-11-18  Jackson Harper  <jackson@ximian.com>
13925
13926         * Control.cs: Put the enum check back in now that MDI doesnt have
13927         to use this to set border styles.
13928         * Form.cs: Only set mdi child windows borders if the handle has
13929         been created.
13930         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
13931         this directly on to the driver.
13932         - Get the move start position before adjusting for the titlebar
13933         height, this fixes the windows "skipping" when they are first
13934         moved.
13935
13936 2005-11-18  Jackson Harper  <jackson@ximian.com>
13937
13938         * XplatUIX11.cs: Just compute the mdi borders separately as they
13939         don't totally match up with normal form borders.
13940
13941 2005-11-18  Jackson Harper  <jackson@ximian.com>
13942
13943         * Control.cs: Set WS_ styles for borders, so that the driver does
13944         not have to retrieve the control instance to figure out what kind
13945         of borders it should have.
13946         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
13947         driver can know its an mdi child easily.
13948         * XplatUIX11.cs: Get the border styles and whether the window is
13949         MDI from the Styles and ExStyles params instead of having to get a
13950         control. This prevents a chicken and egg problem.       
13951
13952 2005-11-18  Jackson Harper  <jackson@ximian.com>
13953
13954         * MdiClient.cs: Fix typo so scrollbars show up correctly.
13955
13956 2005-11-18  Jackson Harper  <jackson@ximian.com>
13957
13958         * MdiClient.cs: Calculate when to add and remove scrollbars
13959         correctly.
13960         * MdiChildContext.cs: Adjust the y position to take the titlebar
13961         into account.
13962         - No height for FormBorderStyle.None
13963
13964 2005-11-18  Jackson Harper  <jackson@ximian.com>
13965
13966         * Control.cs: Allow non enum values to be used for
13967         InternalBorderStyle.  MDI does this to set a special border style.
13968         - New utility methods for converting points to/from client coords
13969         - Add the newly created control to the Controls collection before
13970         updating its style. This way UpdateStyle can walk the control
13971         heirarchy to find the control if needed.
13972         so I don't need to create a new Point object all the time.
13973         * Form.cs: Let MDI windows handle their border styles.
13974         - Set styles on MDI windows so the correct title style is derived.
13975         * MdiChildContext.cs: Move all the painting and window handling
13976         into the non client area.
13977         - Use correct sizing and put correct buttons on frames based on
13978         the FormBorderStyle.
13979         - Notify the mdi client about scrolling
13980         - Need to handle the buttons ourselves now, because they are all
13981         in non client areas and we can't add controls there.
13982         * MdiClient.cs: Halfway to scrolling, this implementation is
13983         somewhat broken though, we need to check to make sure other
13984         windows aren't causing scrolling before removing the bars. Also
13985         the bars need to be drawn on top, maybe I can switch implicit
13986         controls to be on top.
13987         * Hwnd.cs: caption_height and tool_caption_height are now
13988         properties of an hwnd, this way they can be set by the driver
13989         based on the type of window they are.  In X11 the window manager
13990         handles the decorations so caption_height is zero unless its an
13991         MDI window.
13992         - Add 3 pixel borders for MDI windows (0xFFFF).
13993         - Get rid of some code duplication, have DefaultClientRectanle
13994         just call GetClientRectangle.
13995         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
13996         Hwnd now.
13997         - Set border styles differently for mdi windows.
13998         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
13999         Hwnd now.
14000         
14001 2005-11-15  Mike Kestner  <mkestner@novell.com>
14002
14003         * Menu.cs: when adding an item to the collection, if item is already 
14004         parented, remove it from the parent.
14005
14006 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14007
14008         * X11DesktopColors.cs: Added KDE support
14009
14010 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14011
14012         * XplatUIWin32.cs: 
14013           - Clipboard methods now can translate Rtf format
14014           - No longer removes clipboard contents whenever a new format is added
14015             to allow placing multiple formats on the clipboard
14016         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14017           will place all formats contained in it onto the clipboard. Also
14018           now cleans the clipboard before placing a new object onto it
14019         * RichTextBox.cs:
14020           - Implemented set_Rtf
14021           - Implemented set_SelectedRtf
14022           - Created InsertRTFFromStream() method to allow single code base
14023             for all properties and methods that insert RTF into document
14024           - Removed debug output
14025         * TextControl.cs:
14026           - Fixed Delete(int) to fix up line numbers
14027           - Fixed ReplaceSelection to combine start and end line
14028           - Fixed serious DeleteChars bug that would leave the document tree
14029             broken
14030           - Improved DumpTree with several logic checks to detect broken
14031             document trees
14032           - Removed debug lines
14033           - Fixed Caret.WordForward/WordBack moving code, now always also 
14034             updates caret.tag (fixes crash when word-selecting across tag
14035             boundaries via keyboard)
14036           - Added Insert() method for inserting multiline text into documents
14037           - Fixed DeleteChars() calculation errors that would cause a broken
14038             tag chain with multiple tag lines
14039           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14040           - Split() no longer moves caret if split is at caret location
14041           - ReplaceSelection() now updates the cursor and re-displays it
14042           - ReplaceSelection() now uses new Insert() method to avoid code
14043             duplication
14044           - FormatText() can now handle formatting partial lines
14045         * TextBoxBase.cs:
14046           - Append now uses new TextControl.Insert() method (this avoids 
14047             duplicate code)
14048           - Implemented Ctrl-X (Cut) (
14049           - Implemented Ctrl-C (Copy)
14050           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14051             regeneration when pasting text; roundtripping Copy&Paste within
14052             edit control still fails due to some calculation bugs in GenerateRTF)
14053           - The Delete key will now remove the current selection if it is visible
14054         * TextBox.cs: Removed debug lines
14055         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14056           driver to be initialized and can't therefore be done via a static ctor)
14057
14058 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14059
14060         * TextControl.cs: Added backend code for finding char arrays and strings
14061         * TextBoxBase.cs:
14062           - Added mouse wheel scroll support
14063           - Added support for VScroll and HScroll events
14064         * RichTextBox.cs:
14065           - Implemented all seven Find() variants
14066           - Implemented GetCharFromPosition()
14067           - Implemented GetCharIndexFromPosition()
14068           - Implemented GetLineFromIndex()
14069           - Implemented GetPositionFromCharIndex();
14070           - Implemented SaveFile for PlainText and UnicodeText
14071           - Fixed set_Font, now setting a new font applies that font to
14072             the whole document
14073           - Implemented generic Document to RTF converter
14074           - Implemented SaveFile for RichText format (still missing unicode
14075             conversion for non-ansi chars)
14076           - Implemented get_Rtf
14077           - Implemented get_SelectedRtf
14078
14079 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14080
14081         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14082           to allow any captures to be released before triggering OnClick. This
14083           way a click handler may capture the mouse without interference.
14084         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14085           This way we send them even though X may not allow a grab (if the window
14086           isn't visible, for example)
14087
14088 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14089
14090         * DataGridViewRowEventArgs.cs: DataGridView implementation
14091         * DataGridViewElement.cs: DataGridView implementation
14092         * DataGridViewComboBoxCell.cs: DataGridView implementation
14093         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14094         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14095         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14096         * ImageLayout.cs: DataGridView implementation
14097         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14098         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14099         * DataGridViewSelectionMode.cs: DataGridView implementation
14100         * IDataGridViewEditingControl.cs: DataGridView implementation
14101         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14102         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14103         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14104         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14105         * DataGridViewColumnSortMode.cs: DataGridView implementation
14106         * DataGridView.cs: DataGridView implementation
14107         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14108         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14109         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14110         * Padding.cs: DataGridView implementation
14111         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14112         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14113         * DataGridViewRowEventHandler.cs: DataGridView implementation
14114         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14115         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14116         * DataGridViewButtonCell.cs: DataGridView implementation
14117         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14118         * DataGridViewEditMode.cs: DataGridView implementation
14119         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14120         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14121         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14122         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14123         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14124         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14125         * DataGridViewCellEventHandler.cs: DataGridView implementation
14126         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14127         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14128         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14129         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14130         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14131         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14132         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14133         * QuestionEventArgs.cs: DataGridView implementation
14134         * IDataGridViewEditingCell.cs: DataGridView implementation
14135         * DataGridViewTriState.cs: DataGridView implementation
14136         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14137         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14138         * DataGridViewColumnCollection.cs: DataGridView implementation
14139         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14140         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14141         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14142         * DataGridViewColumn.cs: DataGridView implementation
14143         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14144         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14145         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14146         * DataGridViewRow.cs: DataGridView implementation
14147         * DataGridViewImageCellLayout.cs: DataGridView implementation
14148         * DataGridViewImageCell.cs: DataGridView implementation
14149         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14150         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14151         * DataGridViewHeaderCell.cs: DataGridView implementation
14152         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14153         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14154         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14155         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14156         * QuestionEventHandler.cs: DataGridView implementation
14157         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14158         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14159         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14160         * DataGridViewCell.cs: DataGridView implementation
14161         * DataGridViewCellEventArgs.cs: DataGridView implementation
14162         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14163         * DataGridViewCellStyle.cs: DataGridView implementation
14164         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14165         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14166         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14167         * TextFormatFlags.cs: DataGridView implementation
14168         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14169         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14170         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14171         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14172         * DataGridViewButtonColumn.cs: DataGridView implementation
14173         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14174         * HandledMouseEventArgs.cs: DataGridView implementation
14175         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14176         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14177         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14178         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14179         * DataGridViewRowCollection.cs: DataGridView implementation
14180         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14181         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14182         * DataGridViewHitTestType.cs: DataGridView implementation
14183         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14184         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14185         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14186         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14187         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14188         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14189         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14190         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14191         * DataGridViewContentAlignment.cs: DataGridView implementation
14192         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14193         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14194         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14195         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14196         * DataGridViewPaintParts.cs: DataGridView implementation
14197         * DataGridViewCellCollection.cs: DataGridView implementation
14198         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14199         * DataGridViewImageColumn.cs: DataGridView implementation
14200         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14201         * DataGridViewElementStates.cs: DataGridView implementation
14202         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14203         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14204         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14205         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14206         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14207         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14208         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14209         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14210         * DataGridViewTextBoxCell.cs: DataGridView implementation
14211         * DataGridViewBand.cs: DataGridView implementation
14212         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14213         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14214         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14215         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14216         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14217         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14218         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14219         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14220         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14221         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14222         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14223
14224 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14225
14226         * ThemeWin32Classic.cs: 
14227           - Draw the outside focus rectangle around buttons
14228           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14229             doesn't use end caps for every dash of a line anymore. This
14230             workaround ignores the forecolor.
14231
14232 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14233
14234         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14235           endian safe.
14236
14237 2005-11-07  Jackson Harper  <jackson@ximian.com>
14238
14239         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14240
14241 2005-11-07  Jackson Harper  <jackson@ximian.com>
14242
14243         * ScrollableControl.cs: Calculate the maximum and change vars
14244         (more) correctly so that scrollbars appear as a sensible size.
14245
14246 2005-11-04  Jackson Harper  <jackson@ximian.com>
14247
14248         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14249         collection.
14250         * TreeView.cs: When the tree is sorted null out the top_node so
14251         that it is recalculated.
14252         - Use dotted lines instead of dashed lines to match MS better.
14253
14254 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14255
14256         * ListView.cs: 
14257           - Implements key search for items. Useful when browsing files with FileDialog
14258           - When changing view mode or when clear the items reset scrollbar positions
14259
14260 2005-11-04  Jackson Harper  <jackson@ximian.com>
14261
14262         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14263         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14264         as to what the method may do as there is no real way of creating a
14265         derived CurrencyManager and calling the method. 
14266
14267 2005-11-03  Jackson Harper  <jackson@ximian.com>
14268
14269         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14270         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14271         method which seems to just be used internally to refresh the tabs.
14272
14273 2005-11-03  Jackson Harper  <jackson@ximian.com>
14274
14275         * TabControl.cs: Implement the remove method. Fix some broken
14276         comments.
14277
14278 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14279
14280         * DateTimePicker.cs:
14281           - Added missing DateTimePickerAccessibleObject class
14282           - Added missing events
14283           - Added OnFontChanged method
14284         * Form.cs: Added missing attributes
14285         * TreeView.cs: Added missing attributes
14286
14287 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14288
14289         * GridItemCollection.cs: Fix signatures
14290
14291 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14292
14293         * XplatUI.cs: Updated build rev/date
14294         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14295           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14296         * Application.cs: Trigger context-specific ExitThread events
14297
14298 2005-11-03  Jackson Harper  <jackson@ximian.com>
14299
14300         * Menu.cs:
14301         * MainMenu.cs:
14302         * GridTableStylesCollection.cs:
14303         * Timer.cs:
14304         * TabPage.cs:
14305         * HelpProvider.cs:
14306         * StatusBar.cs:
14307         * MonthCalendar.cs: Signature fixes
14308
14309 2005-11-03  Jackson Harper  <jackson@ximian.com>
14310
14311         * TreeNodeCollection.cs: Remove should not be virtual.
14312         * TreeView.cs: Implement the last of the missing methods.
14313
14314 2005-11-03  Jackson Harper  <jackson@ximian.com>
14315
14316         * TreeNodeConverter.cs: Implement to get off my class-status back.
14317
14318 2005-11-03  Jackson Harper  <jackson@ximian.com>
14319
14320         * TreeView.cs: Hookup the bits for drag and drop.
14321         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14322         that nodes can be moved from tree to tree easily this just causes
14323         all sorts of problems.
14324         * TreeNodeCollection: Don't need to give treenodes an index and
14325         treeview anymore when they are added, these are computed on the
14326         fly. Also make sure to remove a node before its added.
14327
14328 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14329
14330         * TextControl.cs:
14331           - Added CaretSelection enum
14332           - Added comparison methods to Marker struct, makes selection code
14333             more readable
14334           - Added SelectionStart and SelectionEnd as 'moveable' location for
14335             the CaretDirection enum and handler
14336           - Added selection_prev variable to track optimized invalidation for
14337             word and line selection
14338           - Added SelectionVisible property (returns true if there is a valid 
14339             selection)
14340           - Switched CaretHasFocus to only display the caret if there is no
14341             visible selection
14342           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14343             using the direct character index; should be much faster
14344           - Added various conditional debug statements
14345           - Fixed invalidation calculation for selection ranges
14346           - Added ExpandSelection() method to support word and line selection
14347           - Switched SetSelectionToCaret to use new Marker compare overloads
14348           - Added central IsWordSeparator() method to determine word 
14349             separators/whitespace and FindWordSeparator() to streamline common
14350             usage of IsWordSeparator()
14351         * TextBoxBase.cs:
14352           - Removed unneeded grabbed variable, it was just mirroring
14353             Control.Capture
14354           - No longer firing OnTextChanged event when Text setter is called,
14355             since the base will fire the event for us
14356           - Added handling of Ctrl-Up/Down selection
14357           - Added handling of Shift-Cursorkey selection
14358           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14359             words
14360           - Added handling of Shift and Ctrl-Shift-Home/End selection
14361           - Removed some debug output
14362           - Added handling for single/double/tripple-click to place caret/
14363             select word/select line respectively (Fixes bug #76031)
14364           - Added support for drag expansion of word/line selection
14365         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14366           current selection
14367
14368 2005-11-02  Jackson Harper  <jackson@ximian.com>
14369
14370         * X11Dnd.cs: If the drag is going to and from a MWF window just
14371         copy the data instead of sending it out through the X Selection
14372         mechanism.
14373
14374 2005-11-02  Jackson Harper  <jackson@ximian.com>
14375
14376         * X11Dnd.cs:
14377         * XplatUIX11.cs: When in a drag we don't want motion notify
14378         messages to get passed on to the other controls. This prevents
14379         mouse move messages from showing up in the drag source.
14380
14381 2005-11-02  Jackson Harper  <jackson@ximian.com>
14382
14383         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14384         the correct button is release to end a drag.
14385         * XplatUIX11.cs: Make the button state internal so the drag system
14386         can access it.  Dragging needs to know about all button releases,
14387         not just left button.
14388
14389 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14390
14391         * Form.cs (Icon): If the icon is null, reset the icon to the
14392         default value. 
14393
14394         * Cursor.cs: When writing the AND-mask bitmap do not include the
14395         number of colors, but hardcode those to two (black and white),
14396         fixes the loading of color cursors (Paint Dot Net).
14397
14398         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14399         turn off autoscaling.
14400
14401         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14402
14403 2005-11-02  Jackson Harper  <jackson@ximian.com>
14404
14405         * X11Dnd.cs: Make sure to send a status message if the pointer
14406         enters a control that can not accept a drop, otherwise the cursor
14407         isn't updated correctly. Also tried to compress the lines of code
14408         a bit.
14409
14410 2005-11-02  Jackson Harper  <jackson@ximian.com>
14411
14412         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14413         set actions correctly.  This isn't perfect as XDND and win32 have
14414         some differences on how you allow actions. I'll clear this up by
14415         adding a path for drag from MWF to MWF windows.
14416         * XplatUIX11.cs: Hook into the dnd system.
14417
14418 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14419
14420         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14421         previously shown but they are no longer need it. Very obvious when 
14422         browsing files with FileDialog.
14423
14424 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14425
14426         * Control.cs: We always need to call OnPaintBackground. We pretty much
14427           ignore AllPaintingInWmPaint and always do the painting there, whether 
14428           it's set or not, since we always ignore the WM_ERASEBKGND message 
14429           (which we don't generate on X11). This fixes #76616.
14430         * Panel.cs: Removed unneeded background painting. This happens properly
14431           in Control.cs already
14432
14433 2005-10-31  Mike Kestner  <mkestner@novell.com>
14434
14435         * Menu.cs: Add items to collection before setting their index.
14436         * MenuItem.cs : add range checking with ArgumentException like MS.
14437         [Fixes #76510]
14438
14439 2005-10-31  Jackson Harper  <jackson@ximian.com>
14440
14441         * ListBox.cs: Invalidate if the area is visible at all not just
14442         contained in the visible rect. Fixes unselection of semi visible
14443         items.
14444
14445 2005-10-31  Jackson Harper  <jackson@ximian.com>
14446
14447         * Control.cs: Consistently name the dnd methods. Make them
14448         internal so we can override them to match some MS behavoir
14449         internally.
14450         * Win32DnD.cs: Use the new consistent names.
14451
14452 2005-10-31  Jackson Harper  <jackson@ximian.com>
14453
14454         * TreeView.cs: Don't draw the selected node when we lose focus.
14455
14456 2005-10-31  Jackson Harper  <jackson@ximian.com>
14457
14458         * X11Dnd.cs: We still need to reset the state even though a full
14459         reset isn't being done, otherwise status's still get sent all over
14460         the place.
14461
14462 2005-10-31  Jackson Harper  <jackson@ximian.com>
14463
14464         * Control.cs: Make the dnd_aware flag internal so the dnd
14465         subsystem can check it. Catch exceptions thrown in dnd handlers to
14466         match MS behavoir.
14467         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14468         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14469         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14470         flags to reduce the number of dnd enters/status's sent.
14471
14472 2005-10-31  Jackson Harper  <jackson@ximian.com>
14473
14474         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14475
14476 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14477
14478         * PictureBox.cs: Fixes 76512
14479
14480 2005-10-28  Jackson Harper  <jackson@ximian.com>
14481
14482         * X11Dnd.cs: Early implementation to support winforms being a drag
14483         source for data on X11. Also restructured the converters so they
14484         can go both ways now.
14485         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14486         
14487 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14488
14489         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14490           clipboard requests
14491
14492 2005-10-27  Jackson Harper  <jackson@ximian.com>
14493
14494         * TreeNode.cs: Implement serialization so my DnD examples will work.
14495
14496 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14497
14498         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14499           TreeView.cs: Don't dispose objects that are not owned.
14500           
14501 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14502
14503         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14504           should retrieve the current cursor and report that, but XplatUI
14505           doesn't (yet) have an interface for that (and I'm not sure I even
14506           can, on X11)
14507         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14508           until any message loop processing is done (and the WM_SETCURSOR
14509           replaces the cursor to the proper one)
14510         * XplatUIX11.cs: 
14511           - Fixed override behaviour, we can't set the cursor globally on X11, 
14512             just for our windows.
14513           - Invalidating the System.Drawing X11 display handle when we are
14514             shutting down
14515         * Control.cs: Fix to make csc happy
14516
14517 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14518
14519         * TextBoxBase.cs: 
14520           - get_Text: Add last line (without trailing newline) to returned
14521             value (Fixes 76212)
14522           - get_TextLength: Count last line in returned length
14523           - ToString: Call Text property instead of duplicating code
14524
14525 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14526
14527         * ImageList.cs: Dispose ImageAttributes objects.
14528
14529 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14530
14531         * ImageList.cs: Use attribute constructors with less arguments where
14532           possible.
14533
14534 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14535
14536         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14537           Use typeof instead of strings when assembly is referenced. Added
14538           some more comments.
14539
14540 2005-10-21  Jackson Harper  <jackson@ximian.com>
14541
14542         * ListView.cs: Raise a double click event. Also tried to somewhat
14543         fix when the selectedindexchanged event is raised. Its still
14544         broken though.
14545
14546 2005-10-21  Jackson Harper  <jackson@ximian.com>
14547
14548         * TreeView.cs: New method to invalidate the plus minus area of a
14549         node without invalidating the whole node (maybe this can be used
14550         in some more places).
14551         * TreeNodeCollection.cs: When adding to an empty node we need to
14552         invalidate its plus minus area so the little block shows up.
14553         
14554 2005-10-21  Jackson Harper  <jackson@ximian.com>
14555
14556         * TreeView.cs: Make sure that when we invalidate a node the bounds
14557         are big enough to cover the selected box and the focus
14558         rectangle. Use a different colour for the lines connecting nodes
14559         so they show up with all themes.
14560
14561 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14562
14563         * NativeWindow.cs: Don't call anything that could call into the driver,
14564           we might be on a different thread.
14565
14566 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14567
14568         * Control.cs(Dispose): Since Dispose might run on a different thread,
14569           make sure that we call methods that could call into the driver via
14570           invoke, to avoid thread issues
14571
14572 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14573
14574         * XplatUI.cs: Removed finalizer
14575         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14576           not allowing to be called on the finalizer thread.
14577
14578 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14579
14580         * ImageList.cs:
14581           - Reverted r51889 and r51891.
14582           - Added ImageListItem class that stores unmodified image items and image
14583             properties required to create list images until handle is created.
14584           - Added AddItem and moved image creation logic to AddItemInternal.
14585           - Added CreateHandle method that creates images based on unmodified items.
14586           - Added DestroyHandle that changes state to store unmodified items.
14587           - Add and AddStrip methods no more create handle.
14588           - ReduceColorDepth has no return value.
14589           - Dispose destroys handle.
14590           - Modified other methods to reflect the above changes.
14591           - Implemented key support.
14592           - Added profile 2.0 members and attributes.
14593           - Added private Reset and ShouldSerialize methods that provide the same
14594             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14595             them as they are private.
14596           - Added some more comments about implementation details.
14597
14598 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14599
14600         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14601
14602 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14603
14604         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14605
14606 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14607
14608         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14609         * DataGridColumnStyle.cs: Remove debug message
14610
14611 2005-10-20  Jackson Harper  <jackson@ximian.com>
14612
14613         * TreeView.cs: We can always get input keys regardless of whether
14614         or not editing is enabled. They are used for navigation.
14615
14616 2005-10-20  Jackson Harper  <jackson@ximian.com>
14617
14618         * TreeNode.cs: Use the viewport rect for determining if a node
14619         needs to be moved for visibility. Don't use Begin/End edit. This
14620         calls a full refresh when its done.
14621         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14622         rect property internal so the treenodes can see it. When clicking
14623         on a node we need to ensure that its visible because it might just
14624         be partly visible when clicked.
14625
14626 2005-10-20  Jackson Harper  <jackson@ximian.com>
14627
14628         * TreeNodeCollection.cs: Remove debug code.
14629
14630 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14631
14632         * Datagrid.cs: Implements column sorting in Datagrid
14633         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14634
14635 2005-10-20  Jackson Harper  <jackson@ximian.com>
14636
14637         * TreeNodeCollection.cs: Remove items properly. Update the correct
14638         area after removing them.
14639
14640 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14641
14642         * Datagrid.cs: Should not call base.OnPaintBackground
14643
14644 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14645
14646         * XplatUIX11.cs (GetMessage):
14647           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14648             window instead of client window
14649           - Now properly calculates NC_xBUTTONUP message coordinates
14650           - ScreenToMenu now properly calculates it's coordinates of whole 
14651             window, since menus are in the whole window, not in the client
14652             window
14653           - Added WholeToScreen coordinate translation method
14654
14655 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14656
14657         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14658           want to return a message, loop back to the beginning of the function
14659           and grab the next real message to process instead.
14660
14661 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14662
14663         * Splitter.cs: Properly set limits if no filler control is used
14664
14665 2005-10-19  Jackson Harper  <jackson@ximian.com>
14666
14667         * ColorDialog.cs: Don't show the help button if it is not enabled
14668         instead of disabling it (this is what MS does). Don't create the
14669         panel until the dialog is run, otherwise the vars (such as
14670         ShowHelp) are not set yet.
14671
14672 2005-10-19  Jackson Harper  <jackson@ximian.com>
14673
14674         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14675         are reduced when adding nodes.
14676         * TreeNode.cs:
14677         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14678         tree.
14679         
14680 2005-10-19  Jackson Harper  <jackson@ximian.com>
14681
14682         * FolderBrowserDialog.cs: End editing our treeview so the window
14683         actually gets refreshed.
14684
14685 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14686
14687         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14688           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14689           inside of WM_PAINT
14690
14691 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14692
14693         * MenuAPI.cs: Returns after Hidding window
14694         * XplatUIX11.cs: Added TODO found while debugging menu issues
14695
14696 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14697
14698         * XplatUIX11.cs: Do not re-map the whole window when it's size
14699           becomes non-zero unless it's supposed to be actually visible
14700
14701 2005-10-18  Jackson Harper  <jackson@ximian.com>
14702
14703         * TreeView.cs: We don't need to keep a count anymore.
14704         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14705         use the Grow method.
14706
14707 2005-10-18  Jackson Harper  <jackson@ximian.com>
14708
14709         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14710         implement it manually here.
14711
14712 2005-10-18  Jackson Harper  <jackson@ximian.com>
14713
14714         * ImageList.cs: Dont kill the list when the colour depth is
14715         changed, just change the colour depth of all the images.
14716         - Same goes for setting the image size. Just resize them all
14717         instead of killing the list softly.
14718
14719 2005-10-18  Jackson Harper  <jackson@ximian.com>
14720
14721         * Control.cs: Don't invalidate empty rectangles.
14722
14723 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14724
14725         * ListViewItem.cs:
14726           - Adds checked item to the Checked/Item lists (where empty before)
14727           - Do not add items to the Selected lists if they are already present
14728         * ListView.cs:
14729           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14730           - When deleting items make sure that we delete them for the Selected
14731           and Checked list also.
14732
14733 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14734
14735         * Label.cs: Dispose objects no longer used
14736         * ThemeWin32Classic.cs: Dispose objects no longer used
14737
14738 2005-10-18  Jackson Harper  <jackson@ximian.com>
14739
14740         * TabControl.cs: Don't refresh the whole control when the tabs are
14741         scrolled, we just need to refresh the tab area.
14742
14743 2005-10-17  Jackson Harper  <jackson@ximian.com>
14744
14745         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14746         after handle when we need it.
14747
14748 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14749
14750         * Control.cs: When the parent size changes, recalculate anchor 
14751           positions. Partial fix for #76462
14752
14753 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14754
14755         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14756           drawn. Fixes #76462
14757
14758 2005-10-17  Jackson Harper  <jackson@ximian.com>
14759
14760         * MonthCalendar.cs: Don't create the numeric up down until our
14761         handle is created. Otherwise our handle is created in the
14762         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14763         yet.
14764
14765 2005-10-17  Jackson Harper  <jackson@ximian.com>
14766
14767         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14768         correctly.
14769
14770 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14771         * TreeNode.cs : small logical fix (was using local var instead of field)
14772         
14773 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14774
14775         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14776
14777 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14778
14779         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14780
14781 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14782
14783         * Control.cs: 
14784           - Re-implemented anchoring code. My first version was really broken.
14785             This fixes bug #76033. Unlike the previous implementation we will
14786             no longer have round errors since all numbers are calculated from
14787             scratch every time. Removed various anchor-related obsolete vars.
14788           - InitLayout no longer causes layout event firing and layout to be 
14789             performed
14790
14791 2005-10-16  Jackson Harper  <jackson@ximian.com>
14792
14793         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14794         which was broken).
14795
14796 2005-10-16  Jackson Harper  <jackson@ximian.com>
14797
14798         * TabControl.cs: Remove debug code.
14799
14800 2005-10-16  Jackson Harper  <jackson@ximian.com>
14801
14802         * XEventQueue.cs: Increase the default queue size (very simple
14803         apps needed to grow the queue).
14804         * Hwnd.cs: No finalizer so we don't need to suppress
14805         finalization. Compute the invalid area manually so a new rectangle
14806         does not newto be created.
14807         * ScrollableControl.cs: Don't set any params (otherwise visibility
14808         isn't set correctly).
14809         * MdiChildContext.cs: New constructor takes the mdi parent so it
14810         doesn't have to be computed and avoids a crash on windows. Draw
14811         the window icon properly, and allow the text to be seen.
14812         * Form.cs: Use new MdiChildContext constructor. Make sure the
14813         child context isn't null in wndproc.
14814         * TabControl.cs: Don't set focus, this is muddling keyboard
14815         behavoir. Expand the tab rows when a window size increase will
14816         allow extra tabs to be seen. Don't allow tabs smaller than the
14817         width of a window to be scrolled out of view.
14818         * TreeNode.cs:
14819         * TreeView.cs: Use measure string to calculate a nodes width, the
14820         width is cached and only updated when the text or the font is
14821         changed. Don't check for expand/collapse clicks on the first level
14822         nodes if root lines are disabled.
14823         
14824 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14825
14826         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14827
14828 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14829
14830         * DataGridBoolColumn.cs: fixes warning
14831
14832 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14833
14834         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14835         to match more to match more precisely the MS Net behavior
14836
14837 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14838
14839         * Hwnd.cs: Added field to track if window is mapped
14840         * XplatUIX11.cs: 
14841           - Unmap windows if they become 0-size, re-map when 
14842             they are >0 again; fixes #76035
14843           - Re-set our error handler after initializing X11Desktop
14844             to override any error handlers Gtk or whatever was called
14845             may have set.
14846
14847 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14848
14849         * CheckedListBox.cs: Removed unused vars
14850         * ListView.cs: Fixed signatures
14851         * RichTextBox.cs: Removed unused vars
14852         * TextBoxBase.cs: Removed unused vars
14853         * XplatUIWin32.cs: Removed unused vars
14854         * XplatUIX11.cs: Removed unused vars
14855         * XplatUI.cs: Updated version and date to latest published
14856
14857 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14858
14859         * Cursor.cs: Added private .ctor to work around a bug in
14860           resourceset (Thanks to Geoff Norton for the help on this)
14861         * SplitterEventArgs.cs: Made fields accessible so we don't
14862           waste boatloads of objects and can reuse the same one
14863           in Splitter
14864         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14865           any captions and borders when generating screen coordinates
14866         * Splitter.cs: Reimplemented control, now fully complete, uses
14867           rubberband drawing, supports and obeys all properties, has
14868           proper cursors
14869
14870 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14871
14872         * Form.cs (Form): Setup default values for autoscale and
14873         autoscale_base_size;  Make these instance variables, not static
14874         variables. 
14875
14876         (OnLoad): on the first load, adjust the size of the form.
14877
14878 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14879
14880         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14881           width argument to DrawReversibleRectangle()
14882         * XplatUIWin32.cs, XplatUIX11.cs: 
14883           - Implemented width for DrawReversibleRectangle()
14884           - Added logic to DrawReversibleRectangle that recognizes a zero
14885             width or height and only draws a line in that situation
14886         
14887 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14888
14889         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14890         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14891         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14892           method (it uses our FosterParent window to get a graphics context)
14893
14894 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14895
14896         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14897           and SetWindowBackground methods
14898         * Control.cs:
14899           - Setting proper ControlStyles
14900           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14901             EraseWindowBackground, instead we draw the window background
14902             ourselves in PaintControlBackground. This behaviour is
14903             required to match MS, where, when OnPaintBackground is not
14904             called, the background is not drawn.
14905           - Removed unneeded Refresh() in set_Text
14906         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14907         * XplatUIX11.cs:
14908           - Created DeriveStyles method to translate from CreateParams to
14909             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14910             matches FormBorderStyle enum values)
14911           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14912             style calculations into single DeriveStyles method
14913           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14914             from redrawing the whole window on any resize or expose.
14915           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14916             all styles were applied to our whole/client window appropriately
14917           - Removed EraseWindowBackground() and SetWindowBackground() methods
14918           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14919             no longer clear/redraw the background through X
14920           - Removed handling of erase_pending bit, we have no use for it (or
14921             so it seems)
14922         * XplatUIOSX.cs:
14923           - Removed generation and handling of WM_ERASEBKGND message
14924           - Removed EraseWindowBackground() and SetWindowBackground() methods
14925           - Removed handling of hwnd.ErasePending flag
14926         * XplatUIWin32.cs:
14927           - Removed EraseWindowBackground() and SetWindowBackground() methods
14928           - We no longer call EraseWindowBackground on PaintEventStart, we 
14929             ignore the fErase flag, erasing is handled in Control in the
14930             background handler
14931         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
14932           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
14933           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
14934           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
14935           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
14936           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
14937           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
14938
14939 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
14940
14941         * PropertyGrids.cs: Get sub properties
14942         * PropertyGridView.cs: Fix drawing code
14943
14944 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14945
14946         * ListBox.cs: Fixes 76383
14947
14948 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14949
14950         * DataGridTextBoxColumn.cs: Sets location and size before attachment
14951         * ThemeWin32Classic.cs: Fixes border drawing and calculations
14952         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
14953
14954
14955 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14956
14957         * ComboBox.cs: Fixes border drawing
14958
14959 2005-10-10  Miguel de Icaza  <miguel@novell.com>
14960
14961         * MimeIcon.cs: Ignore errors if the file can not be read.
14962
14963 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14964
14965         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
14966          - Fixed border calculations
14967          - Fixed horizontal scrolling in single column listboxes
14968          - Fixed drawing issues
14969
14970 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
14971
14972         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
14973           FormBorderStyle enum
14974         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
14975           code to determine FormBorderStyles from CreateParams
14976         * Form.cs:
14977           - Fixed bug where we'd set the wrong window styles if we were
14978             not creating an MDI window
14979           - Added call to XplatUI.SetBorderStyle when form borders are set
14980         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
14981         * Hwnd.cs:
14982           - Removed obsolete edge style
14983           - Switched from BorderStyle to FormBorderStyle
14984         
14985 2005-10-10  Jackson Harper  <jackson@ximian.com>
14986
14987         * Form.cs: Use the property to get the window handle instead of
14988         accessing it directly. Prevents a null reference exception.
14989
14990 2005-10-10  Jackson Harper  <jackson@ximian.com>
14991
14992         * TreeView.cs: Don't adjust the rect given to DrawString now that
14993         our libgdiplus draws correctly.
14994
14995 2005-10-08  Jackson Harper  <jackson@ximian.com>
14996
14997         * TreeView.cs: Don't try to find the clicked on node if there are
14998         no nodes in the tree.
14999
15000 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15001
15002         * RichTextBox.cs:
15003
15004           restore
15005
15006 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15007
15008         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15009           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15010           ErrorProvider.cs:
15011           Use ResPool for brushes and dispose System.Drawing objects that
15012           are not used anymore.
15013
15014 2005-10-07  Jackson Harper  <jackson@ximian.com>
15015
15016         * MdiChildContext.cs: Use the new borders instead of drawing them
15017         ourselves.
15018
15019 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15020
15021         * Calling UpdateBounds after changing the window's BorderStyle 
15022         since the style can change the ClientSize
15023
15024 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15025
15026         * Control.cs: Made PaintControlBackground virtual
15027         * Panel.cs: Overriding PaintControlBackground instead of using paint
15028           event; paint event method was interfering with 'real' users of the
15029           event.
15030
15031 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15032
15033         * ThemeWin32Classic.cs: remove border drawing since it is handled
15034         by the base control class now and was causing double border drawing.
15035
15036 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15037
15038         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15039           but it does seem to match MS behaviour. This fixes bug #75324
15040
15041 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15042
15043         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15044           somewhat hackish looking
15045
15046 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15047
15048         * TextBoxBase.cs:
15049           - We now accept Enter even if AcceptEnter is false, if the containing
15050             form does not have an AcceptButton configured (fixes bug #76355)
15051           - Calculations are now fixed to no longer use Width/Height, but
15052             ClientSize.Width/Height, since we now support borders (this was
15053             a result of fixing borders and therefore bug #76166)
15054           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15055             true (fixes bug #76354)
15056         
15057 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15058
15059         * Control.cs: 
15060           - Defaulting BorderStyle and setting it in XplatUI when our window 
15061             is created
15062           - Added enum check to InternalBorderStyle setter
15063         * XplatUIX11.cs: 
15064           - Added drawing of window borders
15065           - Now properly calculates WM decorations offset for toplevel 
15066             windows (fixes bug #74763)
15067         * XplatUIWin32.cs: 
15068           - Implemented BorderStyles for windows (we're letting win32 draw 
15069             the border for us)
15070           - Fixed the signature for SetWindowLong
15071         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15072           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15073           setting borders
15074         * UpDownBase.cs: Remove drawing of borders, this is handled by
15075           the driver, outside the client area
15076         * ListView.cs: Removed bogus border calculations. The control should
15077           be oblivious to borders, since those are not part of the client
15078           area. 
15079         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15080         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15081           drawing code
15082
15083 2005-10-06  Jackson Harper  <jackson@ximian.com>
15084
15085         * MdiChildContext.cs: Clear out the old virtual position remove
15086         all the unneeded calls to CreateGraphics.
15087
15088 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15089
15090         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15091
15092 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15093
15094         * Form.cs: 
15095           - Added loading and setting of our new default icon
15096           - Only set icon if window is already created
15097
15098 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15099
15100         * Label.cs:
15101           - Do not explicitly set the foreground and background colors, to
15102             allow inheriting from parents (fixes #76302)
15103           - Use Control's InternalBorderStyle property to deal with borders
15104
15105 2005-10-06  Jackson Harper  <jackson@ximian.com>
15106
15107         * MdiChildContext.cs: Use the new xplatui function to draw a
15108         reversible rect.
15109
15110 2005-10-06  Jackson Harper  <jackson@ximian.com>
15111
15112         * Form.cs: Add the parent before creating the child context cause
15113         we need the parent when setting up the child.
15114
15115 2005-10-06  Jackson Harper  <jackson@ximian.com>
15116
15117         * FolderBrowserDialog.cs: redo the tree population code so a
15118         second thread isn't used. Should be a lot faster and more stable
15119         now.
15120
15121 2005-10-05  Jackson Harper  <jackson@ximian.com>
15122
15123         * TreeView.cs: There are no expand/collapse boxes if the node has
15124         no children.
15125
15126 2005-10-05  Jackson Harper  <jackson@ximian.com>
15127
15128         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15129
15130 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15131
15132         * FileDialog.cs: Fix InitialDirectory
15133
15134 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15135
15136         * ComboBox.cs:
15137                 - Fixes changing between styles
15138                 - Fixes simple mode
15139                 - Fixes last item crashing when navigating with keyboard
15140
15141 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15142
15143         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15144
15145 2005-10-05  Jackson Harper  <jackson@ximian.com>
15146
15147         * TreeView.cs: If updating the root node do a full refresh.
15148         * TreeNode.cs: The root node should be expanded by default. Also
15149         added a utility prop to tell if we are the root node.
15150         * TreeNodeCollection.cs: Only refresh if the node we are being
15151         added to is expanded. Also added a comment on a potential
15152         optimization.
15153         
15154 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15155
15156         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15157           in dispose method. Fixes #76330
15158
15159 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15160
15161         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15162
15163                 - Implements vertical and horizontal scrolling using XplatUI
15164                 - Fixes keyboard navagation
15165                 - Fixes EnsureVisible
15166                 - Drawing fixes
15167                 - Handles and draws focus properly
15168
15169
15170 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15171
15172         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15173           Create handle. NET_2_0: Destroy handle when value is null.
15174
15175 2005-10-03  Jackson Harper  <jackson@ximian.com>
15176
15177         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15178         revert and a new patch to prevent the thumb from refreshing so
15179         much.
15180
15181 2005-10-02  Jackson Harper  <jackson@ximian.com>
15182
15183         * ScrollBar.cs: Don't update position if it hasn't actually
15184         changed. This occurs when you hold down the increment/decrement
15185         buttons and the thumb gets to the max/min.
15186
15187 2005-10-01  Jackson Harper  <jackson@ximian.com>
15188
15189         * Form.cs:
15190         * MdiChildContext.cs:
15191         * MdiClient.cs: Implement ActiveMdiChild in Form.
15192
15193 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15194
15195         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15196
15197 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15198
15199         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15200           be found
15201
15202 2005-09-30  Jackson Harper  <jackson@ximian.com>
15203
15204         * ListBox.cs: Don't do a full refresh unless some data has
15205         actually changed.
15206
15207 2005-09-30  Jackson Harper  <jackson@ximian.com>
15208
15209         * TreeView.cs: Make sure that the checkboxes size is factored in
15210         even when not visible.
15211
15212 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15213
15214         * FileDialog.cs: Fix Jordi's build break
15215
15216 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15217
15218         * FileDialog.cs: 
15219                 - Use standard the Windows colours for the combobox as espected
15220                 - Dispose objects that use resouces when no longer need them
15221
15222 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15223
15224         * X11DesktopColors.cs: Initial incomplete implementation
15225         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15226
15227 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15228
15229         * Theme.cs: 
15230           - Switched Theme color names to match the names defined in 
15231             System.Drawing.KnownColors. Life's hard enough, no need to make 
15232             it harder.
15233           - Added setters to all theme color properties so themes can set
15234             their color schemes. The setters also propagate the color changes
15235             to System.Drawing.KnownColors via reflection
15236         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15237           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15238           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15239           use the new, more logical theme color names
15240         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15241           post-NT colors
15242         * ThemeWin32Classic.cs:
15243           - Removed code to set the old classic Windows colors. Instead it
15244             now relies on the colors returned by System.Drawing.KnownColors
15245             which will be either modern static colors (Unix) or colors
15246             read from the user's configuration (Win32)
15247           - Updated to use the new, more logical theme color names
15248           - Switched DataGrid drawing code to use only Theme colors instead of
15249             a mix of System.Drawing.KnownColors and Theme colors
15250           - DrawFrameControl(): Removed code that fills the button area, the
15251             fill would overwrite any previous fill done by a control. This
15252             fixes bug #75338 
15253           - Added DrawReversibleRectangle() stub
15254         * ScrollableControl.cs: Set visible state to false when scrollbars
15255           are removed (pdn fix)
15256         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15257           DrawReversibleRectangle() method to allow drawing primitive 
15258           'rubber bands'
15259         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15260
15261 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15262
15263         * ImageList.cs: Add(Icon): Create handle.
15264
15265 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15266
15267         * ListView.cs:
15268         * ThemeWin32Classic.cs:
15269                 - Fixes detail mode
15270                 - Sets clippings
15271                 - Issues with drawing
15272
15273 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15274
15275         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15276           source has to be the ImageList.
15277
15278 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15279
15280         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15281
15282 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15283
15284         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15285
15286 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15287
15288         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15289
15290 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15291         * GridItem.cs: Fixed TODOs
15292         * GridItemCollection.cs: Added ICollection interface
15293
15294 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15295
15296         * ImageList.cs: Resize icons when needed.
15297
15298 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15299
15300         * ListViewItem.cs
15301                 - Fixes GetBounds and returns on screen rects
15302         * ListView.cs:
15303                 - Fixes vertical and horzintal scrolling of items
15304         * ThemeWin32Classic.cs:
15305                 - Fixes drawing
15306                 
15307 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15308
15309         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15310
15311 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15312
15313         * ImageList.cs: Added comments about handle creation. Moved Handle,
15314           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15315           Handle is created in Add methods.
15316
15317 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15318          
15319         * DataGridDrawingLogic.cs: 
15320                 - Takes rows into account on Colum calculations
15321                 - Returns the column when clickig
15322         * DataGrid.cs:
15323                 - Fixes default HitTestInfo values
15324                 - Fixes HitTestInfo.ToString
15325                 - Fixes ResetBackColor          
15326         
15327 2005-09-28  Jackson Harper  <jackson@ximian.com>
15328
15329         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15330         sizing or cursor changes). Also added some temp code to draw the
15331         titlebars text (Makes dev a little easier).
15332
15333 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15334
15335         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15336
15337 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15338          
15339         * ListBox.cs: Fixes bug 76253
15340
15341 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15342
15343         * ImageList.cs: Added comments about the current implementation. Added
15344           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15345           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15346           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15347           with Bitmap.LockBits for better performance. Revised the whole file to
15348           match MS.NET behaviour and provide better performance. Non-public
15349           interface members are calling public members even when they throw
15350           NotSupportedException for better maintainability. Moved ColorDepth,
15351           ImageSize, ImageStream and TransparentColor implementations to
15352           ImageCollection for better performance as these properties are not used
15353           by ImageList.
15354         * ImageListStreamer.cs: Added a new internal constructor that takes an
15355           ImageList.ImageCollection and serializes Images based on
15356           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15357           match ImageList property name.
15358
15359 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15360
15361         * ListBox.cs: Fixes IndexFromPoint for last item
15362
15363 2005-09-27  Jackson Harper  <jackson@ximian.com>
15364
15365         * Form.cs: Set the position of new mdi children correctly.
15366
15367 2005-09-27  Jackson Harper  <jackson@ximian.com>
15368
15369         * MdiClient.cs: New mdi children need to be added to the back of
15370         the controls collection so the zorder is set correctly. Also add a
15371         count of all the child windows that have been created.
15372
15373 2005-09-27  Jackson Harper  <jackson@ximian.com>
15374
15375         * Form.cs (CreateParams): Setup MDI forms correctly.
15376
15377 2005-09-27  Jackson Harper  <jackson@ximian.com>
15378
15379         * MdiChildContext.cs:
15380         * MonthCalendar.cs:
15381         * UpDownBase.cs:
15382         * ListBox.cs:
15383         * ListView.cs:
15384         * TextBoxBase.cs:
15385         * TreeView.cs:
15386         * ScrollableControl.cs:
15387         * ComboBox.cs: Add implicit controls using the new implict control
15388         functionality in ControlCollection. Also try to block multiple
15389         control add in a suspend/resume layout to save some cycles.
15390         
15391 2005-09-27  Jackson Harper  <jackson@ximian.com>
15392
15393         * Control.cs: Add functionality to the controls collection to add
15394         'implicit controls' these are controls that are created by the
15395         containing control but should not be exposed to the user. Such as
15396         scrollbars in the treeview.
15397         * Form.cs: The list var of the ControlsCollection is no longer
15398         available because of the potential of implicit controls getting
15399         ignored by someone accessing the list directly.
15400
15401 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15402
15403         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15404           loose it's parent. (Fixed bug introduced in r49103 when we added
15405           setting the child parent to null on Remove)
15406
15407 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15408
15409         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15410         * Splitter.cs: Added missing attributes for BorderStyle property.
15411         * TextBoxBase.cs: Marked Calculate* methods internal.
15412         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15413         MS.NET.
15414
15415 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15416          
15417         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15418
15419 2005-09-25  Jackson Harper  <jackson@ximian.com>
15420
15421         * TreeView.cs: Update the node bounds correctly regardless of
15422         whether the node is visible.
15423
15424 2005-09-25  Jackson Harper  <jackson@ximian.com>
15425
15426         * ImageList.cs: Don't dispose the image after it is added to the
15427         image list. Only reformat images that need to be resized.
15428
15429 2005-09-25  Jackson Harper  <jackson@ximian.com>
15430
15431         * ImageList.cs: Don't set the format when changing the image.
15432
15433 2005-09-25  Jackson Harper  <jackson@ximian.com>
15434
15435         * TreeView.cs: We can't just assume the node has a font. Use the
15436         treeviews font if no node font is available.
15437
15438 2005-09-25  Jackson Harper  <jackson@ximian.com>
15439
15440         * TreeView.cs: Allow the scrollbars to be reset with negative
15441         values.
15442         - Don't add scrollbars to negative sized windows.
15443
15444 2005-09-23  Jackson Harper  <jackson@ximian.com>
15445
15446         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15447         old Mono.Posix. Also remove some stray code that shouldn't have
15448         been committed.
15449
15450 2005-09-23  Jackson Harper  <jackson@ximian.com>
15451
15452         * TreeView.cs: Attempt at proper sizing of the horizontal
15453         scrollbar. Also don't resize the scrollbars unless they are
15454         visible.
15455
15456 2005-09-23  Jackson Harper  <jackson@ximian.com>
15457
15458         * TreeView.cs: We don't need to expand the invalid area when the
15459         selection changes, as this is all drawn in the node's bounding
15460         box. The area needs to be expanded (previous typo was contracting
15461         it) when the focus rect moves.
15462
15463 2005-09-23  Jackson Harper  <jackson@ximian.com>
15464
15465         * TreeView.cs: Display the selection box under the correct
15466         circumstances. We were rendering white text with no selection box
15467         before.
15468
15469 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15470
15471         * TextControl.cs(Split): Now updates selection start/end if it points 
15472           into a line that's being split. Fixes a FIXME and bug #75258
15473
15474 2005-09-23  Jackson Harper  <jackson@ximian.com>
15475
15476         * Binding.cs:
15477         * ListControl.cs: Don't use the path when retrieving binding
15478         managers from the binding context. My bat sense tells me that the
15479         path is only used on insertion.
15480
15481 2005-09-22  Jackson Harper  <jackson@ximian.com>
15482
15483         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15484
15485 2005-09-22  Jackson Harper  <jackson@ximian.com>
15486
15487         * Splitter.cs: There are special cursors used for splitting.
15488         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15489
15490 2005-09-22  Jackson Harper  <jackson@ximian.com>
15491
15492         * Splitter.cs: Change the cursor appropriately when the splitter
15493         is moused over, so the user actually knows there is a splitter
15494         there.
15495
15496 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15497
15498        * Label.cs : Fix ToString method to give same output as MS.NET
15499
15500 2005-09-22  Jackson Harper  <jackson@ximian.com>
15501
15502         * TreeView.cs: Create the scrollbars when the handle is created
15503         and add them right away, just make them invisble. Also account for
15504         the window being shrunk vertically to the point that the vert
15505         scrollbar needs to be added.
15506         - Remove some 0.5 adjustments to get around anti aliasing issues.
15507         
15508 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15509          
15510         * MainMenu.cs: Fixes default value
15511         * MenuItem.cs: Fixes default value
15512
15513 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15514
15515         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15516
15517 2005-09-21  Jackson Harper  <jackson@ximian.com>
15518
15519         * Control.cs: Don't try to set the border style on the window if
15520         it hasn't been created. When the window is created the border
15521         style will be used.
15522
15523 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15524
15525         * Control.cs (Update): Don't call XplatUI if we don't have a
15526           window handle yet
15527
15528 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15529
15530         * ContainerControl.cs: Instead of throwing an exception, print
15531           a one-time warning about Validate not being implemented
15532         * XplatUIWin32.cs: Removed debug output
15533
15534 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15535
15536         * Control.cs: Only set XplatUI background if we expect the windowing
15537           system to handle the background. This stops controls that draw their
15538           own background from flickering
15539
15540         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15541           creation. This allows, amongst other things, using MWF X11 windows 
15542           with OpenGL.
15543
15544 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15545
15546         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15547           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15548           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15549           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15550           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15551           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15552           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15553           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15554           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15555           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15556           GridColumnStylesCollection.cs, 
15557           IDataGridColumnStyleEditingNotificationService.cs,
15558           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15559           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15560           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15561           TreeNodeCollection.cs, AmbientProperties.cs, 
15562           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15563           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15564           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15565           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15566           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15567           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15568           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15569           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15570           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15571           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15572           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15573           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15574           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15575           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15576           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15577           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15578           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15579           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15580           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15581           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15582           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15583           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15584           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15585           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15586           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15587           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15588           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15589           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15590           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15591           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15592           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15593           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15594           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15595           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15596           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15597           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15598           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15599
15600 2005-09-21  Jackson Harper  <jackson@ximian.com>
15601
15602         * TreeNode.cs: Call Before/After Expand not Collapse when
15603         expanding.
15604
15605 2005-09-20  Jackson Harper  <jackson@ximian.com>
15606         
15607         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15608
15609 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15610          
15611         * ListViewItem.cs:
15612                 - Fixes bug 76120
15613                 - Fixes proper storing of subitems
15614                 - Fixes not updated items
15615
15616 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15617
15618         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15619           things if our window handle isn't created yet. Also disabled 
15620           debug for TextBoxBase
15621
15622 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15623
15624         * MenuAPI.cs: Remove filtering of events to allow menu usage
15625
15626 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15627
15628         * Cursor.cs: Allow null to be passed to Cursor.Current.
15629
15630 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15631
15632         * ThemeWin32Classic.cs:
15633           - Change some private methods/fields to protected virtual so that 
15634             they can be accessed and overriden in derived classes
15635           - First refactoring of some methods. Derived themes now don't 
15636             need to duplicate the complete code from ThemeWin32Classic
15637         * ThemeNice.cs:
15638           - Added nice StatusBar
15639           - Derive from ThemeWin32Classic and not Theme
15640           - Removed duplicate ThemeWin32Classic code
15641
15642 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15643
15644         * Control.cs (ControlCollection.Add): If the value null is passed
15645         the control is ignored. 
15646
15647         Optimize this loop.
15648
15649 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15650
15651         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15652           PostQuitMessage state.
15653         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15654
15655 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15656
15657         * Application.cs: Our constructor will never get called, move 
15658           initialization to fields; fixes bug #75933
15659
15660 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15661
15662         * FileDialog.cs :
15663                 - Allow files to be selected properly using file name
15664                 combo box.
15665                 - Add ability to change diretory (absolute / relative)
15666                 using file name combo box.
15667
15668 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15669          
15670         * ListBox.cs: 
15671                 - Fixes Multicolumn listboxes item wrong calculations
15672                 - Allows to click when only one item is in the listbox
15673                 - Fixes crash when no items using keyboard navigation
15674
15675 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15676
15677         * ComboBox.cs: Reverted almost everything from the latest patch which
15678           broke ComboBox
15679
15680 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15681         
15682         * ToolTip.cs:
15683                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15684         * ComboBox.cs:
15685                 - When DropDownStyle is Simple, it does not show scrollbar 
15686                 to the last item of the list.
15687                 - When DropDownStyle is Simple, it crashed when the list was 
15688                 scrolled down with the down cursor key.
15689                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15690                 selected item was not shown.
15691                 - The position of the selected item was not preserved when 
15692                 the next dropdown happened.
15693         * ThemeWin32Classic.cs:
15694                 - Items were wrapped at the right end.
15695         * CheckedListBox.cs:
15696                 - Fixed Add method
15697         * ListBox.cs:
15698                 - Items should be fully shown.
15699                 - When resizing and vertical scrollbar disappeared, the item 
15700                 of index 0 should be on the top of the list.
15701                 - GetItemRectangle should consider the size of ver. scrollbar
15702         * StatusBar.cs:
15703                 - SizingGrip area should not be allocated when it is not 
15704                 displayed.
15705                 - Now it reflects MinWidth of the containing panel and 
15706                 fixed a crash that happens when its width becomes so small.
15707
15708 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15709
15710         * CheckedListBox.cs: Fixes bug 76028
15711         * ListBox.cs: Fixes bug 76028
15712
15713 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15714
15715         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15716         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15717
15718 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15719
15720         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15721
15722 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15723
15724         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15725
15726 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15727
15728         * IRootGridEntry.cs: Added
15729         * PropertyGridCommands.cs: Added
15730         * PropertiesTab.cs: Added missing methods and property
15731         * PropertyGridView.cs: Made class internal
15732         * PropertyGridTextBox.cs: Made class internal
15733
15734 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15735
15736         * MimeIcon.cs: Try to check some other environment variables
15737           if "DESKTOP_SESSION" returns "default"
15738
15739 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15740
15741         * ThemeNice.cs: Corrected background colors (e.g. menus)
15742         * ColorDialog.cs: Use correct background colors for controls
15743
15744 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15745
15746         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15747
15748 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15749
15750         * RichTextBox.cs: Added initial implementation
15751         * lang.cs: Removed. Was accidentally checked in long time ago
15752         * TODO: Removed. Contents were obsolete
15753
15754 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15755                                                                                 
15756         * PropertiesTab.cs : Added
15757
15758 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15759                                                                                 
15760         * PropertyGrid.cs : Update
15761         * PropertyGridView.cs : Update
15762         * System.Windows.Forms.resx : Added images and strings
15763
15764 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15765
15766         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15767  
15768 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15769
15770         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15771           a busy loop right after the Ungrab the X11 display is otherwise 
15772           blocked
15773
15774 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15775
15776         * ThemeWin32Classic.cs: Optimise the use of clipping
15777
15778 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15779
15780         * DataGrid.cs: fixes recursion bug
15781
15782 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15783
15784         * ThemeNice.cs: 
15785           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15786           - Cleanup
15787
15788 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15789
15790         * ThemeNice.cs: Draw nice ProgressBars
15791
15792 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15793
15794         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15795
15796         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15797         bug finder.
15798
15799 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15800
15801         * ThemeNice.cs:
15802           - Added nicer menu drawing
15803           - Updated DrawTab
15804           - some refactoring
15805
15806 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15807
15808         * CreateParams.cs (ToString): Made output match MS
15809         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15810             handle is already created (to avoid forcing window creation)
15811         * XplatUIX11.cs: Set window text to caption after creating window,
15812           in case Text was set before window was created
15813         * Form.cs: Use this.Text instead of a static string as caption
15814
15815 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15816
15817         * NotifyIcon.cs: Don't set the window to visible; this screws
15818           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15819           OnPaint without a bitmap)
15820         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15821           happen very often anyway; we could add the check to the WM_PAINT 
15822           event generation code
15823
15824 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15825
15826         * NotifyIcon.cs: Fill the icon area with a background color, to 
15827           avoid 'residue' when transparent icons are drawn
15828         * XplatUIX11.cs:
15829           - Handle whole_window == client_window when destroying windows
15830           - SystrayAdd(): Set client_window to whole_window value to
15831             get mouse and other events passed to NotifyIcon
15832
15833 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15834
15835         * Form.cs: Set proper default for Opacity property
15836         * NotifyIcon.cs:
15837           - ShowSystray(): Don't bother creating telling the OS
15838             about the systray item if no icon is provided
15839           - Now handles WM_NCPAINT message to deal with whole/client window
15840             split
15841           - Create window as visible to not get caught by Expose optimization
15842         * Hwnd.cs: Removed debug message
15843         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15844           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15845             PaintEventStart/End to use new client argument
15846         * TextBoxBase.cs:
15847           - Commented out debug messages
15848           - Switched PaintEventStart/End to use new client argument
15849         * XplatUI.cs: Added client window bool to PaintEventStart()/
15850           PaintEventEnd() calls, to support drawing in non-client areas
15851         * XplatUIDriver.cs: 
15852           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15853             calls, to support drawing in non-client areas
15854           - Added conditional compile to allow using MWF BeginInvoke 
15855             on MS runtime
15856         * XplatUIX11.cs:
15857           - Added some conditional debug output
15858           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15859             whole/client window split
15860           - Implemented handling of client argument to PaintEventStart()/End()
15861         * Control.cs:
15862           - Throw exception if BeginInvoke() is called and the window handle
15863             or one of the window's parent handles is not created
15864           - Added conditional compile to allow using MWF BeginInvoke on
15865             MS runtime
15866           - get_Parent(): Only sets parent if handle is created. This avoids
15867             forcing window handle creation when parent is set.
15868           - Now fires Layout and Parent changed events in proper order
15869           - Switched to use Handle instead of window.Handle for Z-Order setting,
15870             the get_Parent() patch above causes us to possibly get null for 'window'
15871           - Implemented handling of client argument to PaintEventStart()/End()
15872           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15873             default handling)
15874           - Now sends a Refresh() to all child windows when Refresh() is called
15875
15876 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15877
15878         * Form.cs: Added (non-functional) Opacity property
15879         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15880
15881 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15882         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15883           use export MONO_THEME=nice to activate it.
15884           Currently supported controls:
15885           - Button
15886           - ComboBox
15887           - ScrollBar
15888           - TabControl (TabAlignment.Top only, other will follow)
15889         * ThemeEngine.cs: Add theme nice
15890         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15891           if enabled
15892
15893 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15894
15895         * Splitter.cs: Resize docked control and its neighbor.
15896
15897 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15898         -- Making Windows with Menus layout correctly --
15899         * Form.cs : The first leg of the fix
15900                 Menu setter - adjust Client Size as needed to make space for the menu
15901                 SetClientSizeCore - doesn't call base version to be able to pass the 
15902                         menu handle to XplatUI.CalculateWindowRect
15903         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15904         * XplatUIX11.cs: The critical second leg of the fix
15905                 GetWindowPos needs to use a recalculated client_rect
15906                 so that resizing the window doesn't break layout of child controls. 
15907                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15908                 Lots of \t\n killed
15909
15910 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15911
15912         * Label.cs: Now properly recalculates width and height on Font and Text
15913           changes if AutoSize is set
15914
15915 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15916         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15917
15918 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15919
15920         * ImageList.cs: Makes ToString method compatible with MS
15921
15922 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
15923
15924         * MenuAPI.cs: fixes bug 75716
15925
15926 2005-08-11 Umadevi S <sumadevi@novell.com>
15927         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
15928
15929 2005-08-11 Umadevi S <sumadevi@novell.com>
15930         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
15931
15932 2005-08-10  Umadevi S <sumadevi@novell.com>
15933         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
15934
15935 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
15936
15937         * Menu.cs: fixes bug 75700
15938         * MenuAPI.cs: fixes navigation issues
15939
15940 2005-08-09  Umadevi S <sumadevi@novell.com>
15941         * CheckedListBox.cs - simple fix for GetItemChecked.
15942
15943 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
15944
15945         * ComboBox.cs: Serveral fixes
15946         * ListBox.cs: Serveral fixes
15947
15948 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15949
15950         * ComboBox.cs: Fixes FindString methods and GetItemHeight
15951         * ListBox.cs: Fixes FindString methods
15952
15953 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15954
15955         * DataGrid.cs: fixes bugs exposed by new tests
15956
15957 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
15958
15959         * Mime.cs: Compile Mono assembly references only if compiling
15960           with Mono (Allows to build with VS.Net again)
15961
15962 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
15963
15964         * Control.cs (PaintControlBackground): Draw background image
15965         corrrectly.
15966         (CheckForIllegalCrossThreadCalls): Stubbed.
15967         
15968         * Form.cs (OnCreateControl): Center when should be centered.
15969         
15970         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
15971
15972 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
15973
15974         * Binding.cs: Binding to properties should be case unsensitive
15975
15976 2005-07-18 vlindos@nucleusys.com
15977
15978         * DataGrid.cs: fixes setmember order
15979
15980 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
15981
15982         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
15983         * FileDialog.cs: FileDialog is now resizable and uses the new
15984           MimeIconEngine
15985
15986 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
15987
15988         * DataGridTextBoxColumn.cs: default value
15989         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
15990         * GridTableStylesCollection.cs: fixes checking MappingName
15991         * DataGridDrawingLogic.cs: fixes drawing logic issues
15992         * DataSourceHelper.cs: rewritten to make compatible with more data sources
15993         * DataGrid.cs: fixes    
15994
15995 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
15996
15997         * MimeGenerated.cs: Use case sensitive comparer for
15998           NameValueCollections
15999
16000 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16001
16002         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16003         * ThemeWin32Classic.cs: bug fixes, code refactoring
16004         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16005         * DataGrid.cs: bug fixes, code refactoring
16006         * DataGridTextBox.cs: bug fixes, code refactoring
16007         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16008         * Theme.cs:  bug fixes, code refactoring
16009
16010 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16011
16012         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16013           and other text box usage
16014
16015 2005-07-01  Jackson Harper  <jackson@ximian.com>
16016
16017         * TabControl.cs: Make sure the bottom of the tab covers the pages
16018         border.
16019
16020 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16021
16022         * Form.cs (ShowDialog): Assign owner of the dialog
16023         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16024           might have been moved to a tag with different height
16025
16026 2005-06-30  Jackson Harper  <jackson@ximian.com>
16027
16028         * Form.cs: Don't create an infinite loop when setting focus
16029         * MenuItem.cs: Don't dirty the parents if we don't have any
16030
16031 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16032
16033         * LibSupport.cs: Rename
16034
16035 2005-06-29  Peter Bartok  <pbartok@novell.com>
16036
16037         * TextBoxBase.cs: Re-align caret after deleting a character
16038         * TextControl.cs:
16039           - DeleteChars(): Ensure that tag covers the provided position
16040           - StreamLine(): Drop reference for dropped tag
16041
16042 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16043
16044         * TextControl.cs: 
16045           - Selections now work properly, anchoring at the initial location
16046             and properly extending in either direction (SetSelectionToCaret(),
16047             SetSelectionStart() and SetSelectionEnd())
16048           - No longer redraws the whole control on selection change, now
16049             calculates delta between previous and new selection and only
16050             invalidates/redraws that area
16051           - Fixed FindPos() math off-by-one errors
16052           - Changed DeleteChars() to verify the provided tag covers the
16053             provided position, selections may have a tag that doesn't cover
16054             the position if the selection is at a tag border
16055           - Fixed off-by-one errors in DeleteChars()
16056           - Added missing streamlining check in DeleteChars() to remove
16057             zero-length tags
16058           - Implemented Invalidate() method, now properly calculates exposures
16059             between two given lines/positions
16060           - Implemented SetSelection()
16061           - Obsoleted and removed FixupSelection()
16062           - Improved RecalculateDocument() logic, removing code duplication
16063
16064 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16065
16066         * LibSupport.cs: changes to match different input/output arguments.
16067
16068 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16069
16070         * LibSupport.cs: added libsupport.so init routine.
16071
16072 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16073         
16074         * ControlBindingsCollection.cs
16075                 - Throws an exception on null datasource when adding
16076                 - Checks for duplicated bindings when adding
16077
16078 2005-06-28  Jackson Harper  <jackson@ximian.com>
16079
16080         * TreeView.cs (OnKeyDown): Support left and right properly
16081         (navigates as well as expanding and collapsing.
16082         - Add support for Multiply, this expands all the selected nodes
16083         children.
16084         - Fix some tabbing.
16085
16086 2005-06-28  Jackson Harper  <jackson@ximian.com>
16087
16088         * TreeView.cs: Implement keyboard navigation, currently supports,
16089         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16090         support for toggling checkboxes with the space bar.
16091
16092 2005-06-28  Jackson Harper  <jackson@ximian.com>
16093
16094         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16095         tree.
16096
16097 2005-06-28  Jackson Harper  <jackson@ximian.com>
16098
16099         * TreeView.cs: Add missing event.
16100
16101 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16102
16103         * TextControl.cs:
16104           - Made line ending size configurable (now allows for counting 
16105             lineendings as \n or \r\n)
16106           - Added margin to viewport to keep caret visible on right side
16107           - Fixed translation routines for line/pos to documentpos to consider
16108             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16109           - Fixed some line-endings to be unix style
16110           - Fixed Document.FormatText to perform it's calculations 1-based
16111           - Added descriptions for a few methods that might otherwise get 
16112             used wrong
16113           - Added NOTE section with some basic conventions to remember at 
16114             the top of the file
16115           - Major fixup for RichTextBox selection drawing:
16116             * Fixed crashes when multiple tags on a single line were selected
16117             * fixed selection box drawing not overlaying text
16118             * fixed bogus offset calculation for tags not starting at index 1
16119             * Switched behaviour from using multiple Substrings of a 
16120               StringBuilder.ToString() to using multiple 
16121               StringBuilder.ToString(start, length) statements, hoping this is
16122               faster (kept original version commented out in the code, in case
16123               original version was faster)
16124         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16125           alignment != Left
16126         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16127           call it as well
16128
16129 2005-06-27  Jackson Harper  <jackson@ximian.com>
16130
16131         * TabControl.cs: Move to the left and right with the arrow
16132         keys. These keys don't cycle beyond first and last like
16133         tab. Refresh all the tabs when scrolling them to the left or
16134         right.
16135
16136 2005-06-27  Jackson Harper  <jackson@ximian.com>
16137
16138         * TabControl.cs:
16139           - ToString: Added method
16140           - CreateParams: Remove TODO and comment
16141           - OnKeyDown: Cycle through bounds properly.
16142           - SelectedIndex: Scroll to the right or left if we need to
16143           display the newly selected tab.
16144
16145 2005-06-23  Jackson Harper  <jackson@ximian.com>
16146
16147         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16148         set.
16149
16150 2005-06-23  Jackson Harper  <jackson@ximian.com>
16151
16152         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16153         CTRL-SHIFT-TAB, and HOME, END are there any others?
16154
16155 2005-06-23  Jackson Harper  <jackson@ximian.com>
16156
16157         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16158
16159 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16160         
16161         * DataGridTextBoxColumn.cs: fixes and enhancements
16162         * ThemeWin32Classic.cs: fixes and enhancements
16163         * DataGridBoolColumn.cs:  fixes and enhancements
16164         * DataGridDrawingLogic.cs:  fixes and enhancements
16165         * CurrencyManager.cs: fixes and enhancements
16166         * DataGrid.cs: fixes and enhancements
16167         * DataGridColumnStyle.cs:  fixes and enhancements
16168
16169 2005-06-22  Jackson Harper  <jackson@ximian.com>
16170
16171         * TabControl.cs: Add some missing methods that just call into the
16172         base. Make the TabPageCollection's IList interface behave in the
16173         same manner as the MS implementation.
16174
16175 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16176
16177         * TextControl.cs: Added sanity check
16178         * TextBoxBase.cs: 
16179           - Fixed wrapping behaviour, don't set wrap on single line controls
16180             (this fixes the breakage of colordialog introduced in an earlier
16181              checkin)
16182           - Added rudimentary support for autoscrolling right-aligned controls
16183             (still needs fixing, also, center alignment scroll is missing)
16184
16185 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16186         
16187         * ScrollBar.cs: Fixes thumbpos on Maximum values
16188
16189 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16190         
16191         * PropertyGridView.cs: Pass context information to UITypeEditors 
16192
16193 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16194
16195         * TextBoxBase.cs:
16196           - Now calling PositionCaret with absolute space coordinates
16197           - Enabled vertical scrolling
16198           - Better tracking of scrollbar changes, tied into WidthChange
16199             event
16200           - Improved cursor tracking
16201           - Removed debug output
16202         * TextControl.cs:
16203           - PositionCaret coordinates are now works in absolute space, not 
16204             the canvas
16205           - Improved tracking of document size
16206           - Added events for width and height changes
16207
16208 2005-06-21  Peter Bartok  <pbartok@novell.com>
16209
16210         * Form.cs: Set focus to active control when form is activated
16211         * TextControl.cs: 
16212           - Added word-wrap functionality to RecalculateLine() 
16213           - Added some short function descriptions for VS.Net to aid in
16214             writing dependent controls
16215           - Added Caret property, returning the current coords of the caret
16216           - Added ViewPortWidth and ViewPortHeight properties
16217           - Added Wrap property
16218           - Added CaretMoved event
16219           - Removed some old debug code
16220           - Split() can now create soft splits
16221           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16222           - Added method to format existing text
16223           - Fixed size/alignment calculations to use viewport
16224           - RecalculateDocument now can handle changing line-numbers while
16225             calculating lines
16226
16227         * TextBox.cs:
16228           - Added some wrap logic, we don't wrap if alignment is not left
16229           - Added casts for scrollbar var, base class switched types to
16230             also support RichTextBoxA
16231           - Implemented handling of scrollbar visibility flags
16232
16233         * TextBoxBase.cs:
16234           - Switched scrollbars type to RichTextBoxScrollBars to support
16235             RichTextBox
16236           - Added tracking of canvas width/height
16237           - Switched scrollbars to be not selectable (to keep focus on text)
16238           - Added central CalculateDocument() method to handle all redraw
16239             requirements
16240           - Added ReadOnly support
16241           - Added WordWrap support
16242           - Fixed handling of Enter key (we now treat it as a DialogKey)
16243           - Fixed caret positioning when h or v scroll is not zero
16244           - Fixed placing/generation of vertical scrollbar
16245           - Added CalculateScrollBars() method to allow updating scrollbar
16246             limits and visibility
16247           - Fixed handling of horizontal scroll
16248           - Added handling of vertical scroll
16249           - Implemented auto-'jump' when caret moves to close to a left or
16250             right border and there is text to be scrolled into view (currently
16251             there's the potential for a stack overflow, until a bug in
16252             scrollbar is fixed)
16253
16254 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16255         
16256         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16257
16258 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16259
16260         * Mime.cs:
16261         - added inodes.
16262         - return application/x-zerosize for files with size zero
16263           (if no extension pattern matches).
16264         - check matches collection for strings too.
16265         - return only the first mime type if the name value
16266           collection has more than one mime type.
16267
16268 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16269         
16270         * PropertyGrid.cs: Cleaned up some TODOs
16271         * PropertyGridView.cs: Added support for UITypeEditors
16272
16273 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16274         
16275         * DataGrid.cs: clears cached value
16276
16277 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16278
16279         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16280         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16281         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16282         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16283         
16284 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16285
16286         * ThemeWin32Classic.cs: fixes colour
16287
16288 2005-06-15  Peter Bartok  <pbartok@novell.com>
16289
16290         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16291         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16292         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16293         * Control.cs: Added some MWFCategory and MWFDescription attributes
16294         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16295
16296 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16297
16298         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16299         usage
16300
16301 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16302
16303         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16304         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16305         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16306         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16307         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16308         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16309
16310 2005-06-13  Jackson Harper  <jackson@ximian.com>
16311
16312         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16313         isn't printed when the user enables dropping. (X11 does accept
16314         drops).
16315         
16316 2005-06-13  Jackson Harper  <jackson@ximian.com>
16317
16318         * TreeView.cs: Remove some TODOS.
16319
16320 2005-06-13  Jackson Harper  <jackson@ximian.com>
16321
16322         * Form.cs: Hook into the mdi framework.
16323         * MdiClient.cs: Use the base control collections add method so
16324         parents get setup correctly. Set the default back colour and dock
16325         style.
16326         * MdiChildContext.cs: New class, this bad actor handles an
16327         instance of an MDI window. Right now there is only basic
16328         support. You can drag, close, and resize windows. Minimize and
16329         Maximize are partially implemented.
16330
16331 2005-06-13  Jackson Harper  <jackson@ximian.com>
16332
16333         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16334         freaky when both vals are negative. NOTE: There are probably other
16335         places in XplatUIX11 that this needs to be done.
16336
16337 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16338
16339         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16340         * DataGridColumnStyle.cs: fixes signature
16341
16342 2005-06-12  Jackson Harper  <jackson@ximian.com>
16343
16344         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16345         windows.
16346
16347 2005-06-11  Jackson Harper  <jackson@ximian.com>
16348
16349         * StatusBarPanel.cs: Signature cleanups. Implement
16350         BeginInit/EndInit.
16351
16352 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16353
16354         * DataGridTextBoxColumn.cs: Honors aligment
16355         * GridColumnStylesCollection.cs: Contains is case unsensitive
16356         * GridTableStylesCollection.cs: several fixes
16357         * DataGridTableStyle.cs: default column creation
16358         * DataGridDrawingLogic.cs: fixes
16359         * CurrencyManager.cs: ListName property
16360         * DataGrid.cs: multiple styles support
16361         * DataGridColumnStyle.cs: fixes
16362         
16363
16364 2005-06-10  Peter Bartok  <pbartok@novell.com>
16365
16366         * Control.cs(Select): Moved SetFocus call to avoid potential
16367           loops if controls change the active control when getting focus
16368         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16369           the up/down buttons
16370
16371 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16372
16373         * ImageListConverter.cs: Implemented
16374
16375 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16376
16377         * MonthCalendar.cs: Wired in NumericUpDown control for year
16378
16379 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16380
16381         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16382           DoubleClick events, since they are not meant to be fired.
16383
16384 2005-06-09  Peter Bartok  <pbartok@novell.com>
16385
16386         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16387           Jonathan's standalone controls into MWF, implemented missing
16388           events, attributes and methods; added xxxAccessible classes
16389         * AccessibleObject.cs: Made fields internal so other classes
16390           can change them if needed
16391
16392 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16393
16394         * UpDownBase.cs: Complete implementation
16395         * NumericUpDown.cs: Complete implementation
16396         * DomainUpDown.cs: Complete implementation
16397
16398 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16399
16400         * DataGridTextBoxColumn.cs: drawing fixes
16401         * DataGridCell.cs: fixes ToString method to match MSNet
16402         * DataGridTableStyle.cs: fixes
16403         * DataGridBoolColumn.cs: fixes, drawing
16404         * DataGridDrawingLogic.cs: fixes, new methods
16405         * DataGridTextBox.cs: Keyboard and fixes
16406         * DataGrid.cs:
16407                 - Keyboard navigation
16408                 - Scrolling fixes
16409                 - Row selection (single, multiple, deletion, etc)
16410                 - Lots of fixes
16411         
16412 2005-06-07  Jackson Harper  <jackson@ximian.com>
16413
16414         * ThemeWin32Classic.cs: Clear the background area when drawing
16415         buttons.
16416
16417 2005-06-06  Peter Bartok  <pbartok@novell.com>
16418
16419         * ImageListStreamer.cs: Fixed signature for GetData
16420         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16421         * ComboBox.cs:
16422           - Added missing ChildAccessibleObject class
16423           - Added missing OnXXXFocus overrides, switched to using those
16424             instead of the event handler
16425         * Control.cs:
16426           - Added Parent property for ControlAccessibleObject
16427           - Fixed signatures
16428           - Fixed attributes
16429           - Added ResetBindings()
16430         * ListBindingConverter.cs: Implemented some methods
16431         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16432         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16433         * ContainerControl.cs: Fixed signature, now subscribing to the
16434           ControlRemoved event instead of overriding the handler, LAMESPEC
16435         * CurrencyManager.cs: Added missing attribute
16436         * MonthCalendar.cs: Added missing properties
16437
16438 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16439
16440         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16441         
16442 2005-06-06  Gaurav Vaish and Ankit Jain
16443
16444         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16445         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16446         
16447 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16448
16449         * Control.cs: fixes CreateParams Width / Height.
16450
16451 2005-06-05  Peter Bartok  <pbartok@novell.com>
16452
16453         * Win32DnD.cs: Removed compilation warnings
16454
16455 2005-06-05  Peter Bartok  <pbartok@novell.com>
16456
16457         * Control.cs (CreateParams): Since we don't know if one of the
16458           properties we use is overridden, lets make sure if we fail accessing
16459           we continue with a backup plan
16460
16461 2005-06-05  Peter Bartok  <pbartok@novell.com>
16462
16463         * Win32DnD.cs:
16464           - Removed debug output
16465           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16466             struct
16467           - Plugged resource leak
16468         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16469           MS size
16470
16471 2005-06-05  Peter Bartok  <pbartok@novell.com>
16472
16473         * XplatUIWin32.cs: Removed DnD code
16474         * Win32DnD.cs: Implemented drop source and drop target functionality
16475
16476 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16477
16478         * UpDownBase.cs: remove duplicate addition of event, enable some code
16479         that was commented out.
16480         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16481         Validate input when a key is pressed. It works fine now for every
16482         combination of Hexadecimal. Only missing some drawing love when sharing
16483         space with other controls.
16484
16485 2005-06-04  Peter Bartok  <pbartok@novell.com>
16486
16487         * Control.cs:
16488           - We need to pass a window for DragDrop, so enable callback events
16489           - Added DnD callback events when being a DragSource
16490         * XplatUI.cs (StartDrag): Added window handle argument
16491         * XplatUIDriver.cs (StartDrag): Added window handle argument
16492         * QueryContinueDragEventArgs: Made fields internally accessible so
16493           drivers can set them
16494         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16495           can set them
16496
16497 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16498
16499         * DataGridTextBoxColumn.cs: column text editing
16500         * DataGridTableStyle.cs: Respect columns styles created by the user
16501         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16502         * DataGridBoolColumn.cs: bool column editing
16503         * DataGrid.cs: fixes to scrolling, properties, etc
16504         * DataGridTextBox.cs: handle keyboard
16505         * DataGridColumnStyle.cs: fixes
16506
16507 2005-06-02  Jackson Harper  <jackson@ximian.com>
16508
16509         * ImageListStreamer.cs: Somewhat broken implementation of
16510         GetObjectData. The RLE needs some work to match MS properly.
16511
16512 2005-06-02  Jackson Harper  <jackson@ximian.com>
16513
16514         * X11Dnd.cs: Attempting to keep at least one file in MWF
16515         monostyled.
16516
16517 2005-06-02  Peter Bartok  <pbartok@novell.com>
16518
16519         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16520           that way
16521
16522 2005-06-02  Peter Bartok  <pbartok@novell.com>
16523
16524         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16525         * XplatUI.cs: Added DoDragDrop() method
16526         * XplatUIDriver.cs: Added DoDragDrop() method
16527
16528 2005-06-02  Jackson Harper  <jackson@ximian.com>
16529
16530         * Splitter.cs: Implement BorderStyle.
16531
16532 2005-06-02  Jackson Harper  <jackson@ximian.com>
16533
16534         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16535         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16536         X11 using XDND.
16537
16538 2005-06-02  Peter Bartok  <pbartok@novell.com>
16539
16540         * DataObject.cs:
16541           - Added Data setter
16542           - Fixed broken insertion code for SetData, now also
16543             overwrites any existing entry of the same format name
16544         * Hwnd.cs: Added list of pointers that automatically gets
16545           freed when the window is disposed
16546         * XplatUI.cs: Call driver initialization method when loading
16547           a driver
16548         * Control.cs:
16549           - OnDragLeave takes EventArgs, not DragEventArgs
16550           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16551             supported
16552           - Forces style update when drop state changes
16553         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16554           not perfect since we cannot (yet) call the IDataObject.GetData()
16555           method, we keep getting 0x80004005 error, dunno why)
16556
16557 2005-06-02  Peter Bartok  <pbartok@novell.com>
16558
16559         * DragEventArgs.cs: Make fields internal so we can cache the
16560           object and re-set the fields from XplatUI
16561
16562 2005-06-02  Jackson Harper  <jackson@ximian.com>
16563
16564         * Control.cs: Add some internal methods so the DnD subsystem can
16565         raise DnD events. Also call into the driver when AllowDrop is set.
16566         * XplatUI.cs:
16567         * XplatUIDriver.cs: New method for setting whether or not a window
16568         is allowed to accept drag and drop messages.
16569                 
16570 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16571         
16572         * ScrollBar.cs: Make sure that values sent in Scroll events
16573         are always between Maximum and Minimum.
16574
16575 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16576
16577         * Menu.cs: Call MenuChanged when menuitem visibility has been
16578         changed.
16579         * MenuItem.cs: Rebuild menu when item is (not) visible.
16580         * MainMenu.cs: MainMenu has special MenuChanged.
16581         * Theme.cs: Caption and FrameBorderSize are not fixed.
16582         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16583         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16584         * XplatUIX11.cs,
16585         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16586         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16587
16588 2005-05-30  Jackson Harper  <jackson@ximian.com>
16589
16590         * DataFormat.cs: We can't statically initialize this stuff because
16591         it calls into the xplatui and could create a loop. So we lazy init
16592         it.
16593
16594 2005-05-28  Jackson Harper  <jackson@ximian.com>
16595
16596         * Control.cs: Proper implementation of Product(Name/Version).
16597
16598 2005-05-27  Jackson Harper  <jackson@ximian.com>
16599
16600         * DataObject.cs: Dont crash if no data is found.
16601
16602 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16603         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16604                 as per status page, guessing it should be set to true
16605
16606 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16607
16608         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16609         * DataGridTableStyle.cs: set proper formatting text, def header text
16610         * ThemeWin32Classic.cs: new themable paramaters
16611         * DataGridBoolColumn.cs: paint check box, get data, fixes
16612         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16613         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16614         * DataGridColumnStyle.cs: fixes
16615         * Theme.cs: new themable paramaters
16616                 
16617 2005-05-26  Peter Bartok  <pbartok@novell.com>
16618
16619         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16620
16621 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16622         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16623
16624 2005-05-24  Peter Bartok  <pbartok@novell.com>
16625
16626         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16627           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16628           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16629           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16630           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16631           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16632           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16633           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16634           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16635           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16636           missing attributes, etc
16637         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16638
16639 2005-05-24  Peter Bartok  <pbartok@novell.com>
16640
16641         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16642           when user tries to get help
16643         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16644           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16645           to suppress warnings
16646         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16647           avoid unreachable code warning
16648
16649 2005-05-20  Peter Bartok  <pbartok@novell.com>
16650
16651         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16652
16653 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16654
16655         * DataGridTextBoxColumn.cs: Basic painting methods
16656         * DataGridTableStyle.cs: Set table style in the column
16657         * ThemeWin32Classic.cs: Use Theme for colors
16658         * DataGridDrawingLogic.cs: Implement more drawing
16659         * DataGrid.cs: drawing, theming, enhacements, fixes
16660         * DataGridColumnStyle.cs: fixes, drawing
16661         * Theme.cs: theming for Datagrid
16662
16663 2005-05-20  Peter Bartok  <pbartok@novell.com>
16664
16665         * Cursor.cs: Implemented GetObjectData() method
16666
16667 2005-05-20  Peter Bartok  <pbartok@novell.com>
16668
16669         * Cursors.cs: Added setting of cursor name
16670         * Cursor.cs:
16671           - Implemented constructors
16672           - Implemented Draw and DrawStretched
16673           - Implemented Current property
16674           - Implemented == and != operators
16675           - Implemented Dispose()
16676           - Implemented ToString
16677           - Added missing attributes
16678         * XplatUIX11.cs:
16679           - Added missing reset for OverrideCursor when DoEvents is called
16680           - Fixed creation of cursor, logic was wrong
16681         * XplatUIWin32.cs:
16682           - Added missing reset for OverrideCursor when DoEvents is called
16683           - Fixed creation of cursor, bit arrays were swapped
16684         * Clipboard.cs: Removed obsolete MonoTODO attribute
16685
16686 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16687
16688         * ComboBox.cs: fixes OnSelectedItemChanged
16689         * ControlBindingsCollection.cs: fixes item range check
16690
16691 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16692
16693         * UpDownBase.cs:
16694                 - Calc preferred height properly
16695                 - Implement missing properties
16696                 
16697         * NumericUpDown.cs: Implement missing events
16698
16699 2005-05-19  Jackson Harper  <jackson@ximian.com>
16700
16701         * TabControl.cs: New method that resizes the tab pages before
16702         redrawing them. This as needed as the control is double buffered
16703         and sizing will not be recalculated unless ResizeTabPages is
16704         called.
16705         * TabPage.cs: Set base.Text instead of Text in the constructor so
16706         that UpdateOwner does not get called. Use the new Redraw method of
16707         TabControl instead of Refresh so the sizing is recalculated.
16708         * ThemeWin32Classic.cs: Draw the text for button tabs.
16709
16710 2005-05-19  Jackson Harper  <jackson@ximian.com>
16711
16712         * Control.cs: Paint control background images. Fix typo where
16713         PaintControlBackground was not getting called correctly.
16714
16715 2005-05-19  Peter Bartok  <pbartok@novell.com>
16716
16717         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16718           I can investigate, apparently I broke FileDialog
16719
16720 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16721
16722         * AxHost.cs: Some simple properties.
16723         * Control.cs: window must be accessible after ctor.
16724         * Form.cs: Added TransparencyKey property.
16725         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16726         * XplatUIWin32.cs: SetBorderStyle implemented.
16727
16728 2005-05-18  Peter Bartok  <pbartok@novell.com>
16729
16730         * DataObject.cs: Entries are not global but particular to the
16731           DataObject, now it behaves that way
16732         * XplatUIWin32.cs: Implemented Clipboard methods
16733         * Clipboard.cs: Implemented
16734         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16735         * XplatUIOSX.cs: Updated to final clipboard prototypes
16736         * XplatUIX11.cs: Implemented Clipboard methods
16737         * XplatUIDriver.cs: Updated to final clipboard prototypes
16738         * XplatUIStructs.cs:
16739           - Added BITMAPINFOHEADER struct
16740           - Added ClipboardFormats enum
16741         * X11Structs.cs:
16742           - Added ClipboardStruct
16743           - Added Atom enum items for clipboard types
16744           - Fixed atom types for Selection event structures
16745         * DataFormats.cs:
16746           - Added internal properties and methods for drivers to enumerate
16747             all known formats
16748           - Switched initialization method to allow drivers to assign their
16749             own IDs even for the MS predefined clipboard IDs
16750         * XplatUI.cs: Updated to final clipboard interface
16751
16752 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16753         * PropertyGridView.cs: Fixed compiler warnings.
16754
16755 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16756         * PropertyGrid.cs: Added some event calls
16757         * PropertyGridView.cs: Change drawing code to use double buffering
16758         * PropertyGridTextBox.cs: Changed Text property name
16759         * GridItem.cs: Added Bounds property.
16760         * GridEntry.cs: Added Bounds property.
16761
16762 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16763
16764         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16765         since GetType() may not return the correct type if the object is
16766         a remoting proxy.
16767
16768 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16769
16770         * TreeNodeCollection.cs: fixes get/set item ranges
16771         
16772 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16773
16774         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16775                 
16776 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16777
16778         * ComboBox.cs: Fix item range comparation
16779         * ListView.cs: Fix item range comparation
16780
16781 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16782
16783         * FontDialog.cs:
16784           - Clear example panel when OnPaint is called
16785           - Better solution for displaying the example panel text
16786           - Select default indexes in the ListBoxes
16787
16788 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16789
16790         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16791
16792 2005-05-11  Peter Bartok  <pbartok@novell.com>
16793
16794         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16795         * SelectionRangeConverter.cs: Implemented
16796         * PropertyGrid.cs: Fixed attribute value
16797         * Control.cs:
16798           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16799           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16800         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16801           that's common to all drivers. First methods to go there are
16802           Sebastien Pouliot's CAS Stack Propagation helper methods
16803         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16804           Sebastien Pouliot for CAS Stack Propagation
16805
16806 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16807
16808         * OSXStructs.cs:
16809           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16810
16811 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16812
16813         * DataGridTextBoxColumn.cs: fixed some members
16814         * GridColumnStylesCollection.cs: indexed column is case insensitive
16815         * DataGridTableStyle.cs: fixes
16816         * ThemeWin32Classic.cs: add new theme parameter
16817         * Theme.cs: add new theme parameter
16818         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16819         * DataGrid.cs: fixes, new internal properties, etc.
16820         * DataGridColumnStyle.cs: allows to set grid value
16821         *
16822
16823 2005-05-10  Peter Bartok  <pbartok@novell.com>
16824
16825         * AccessibleObject.cs:
16826           - Removed MonoTODO attribute on help, method is correct
16827           - Fixed Bounds property
16828         * AxHost.cs: Moved MonoTODO
16829         * ButtonBase.cs: Now setting AccessibleObject properties
16830         * RadioButton.cs: Setting proper AccessibleObject role
16831         * CheckBox.cs: Setting proper AccessibleObject role
16832         * ControlBindingsCollection.cs: Added properties, methods and attributes
16833         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16834           userdefined DataFormats.Format items as well
16835         * ListControl.cs: Removed data_member from the public eye
16836         * OpenFileDialog.cs:
16837           - Made class sealed
16838           - Added missing attributes
16839         * SaveFileDialog.cs: Added missing attributes
16840         * ImageListStreamer.cs: Fixed code that caused warnings
16841         * LinkLabel.cs: Removed unreachable code
16842         * TreeView.cs: Fixed code that caused warnings
16843         * PropertyGridView.cs: Fixed code that caused warnings
16844         * GridColumnStylesCollection.cs: Added missing attributes
16845         * GridTableStylesCollection: Added missing attribute
16846         * PropertyManager: Added .ctor
16847         * SecurityIDType: Added
16848         * DataObject.cs: Implemented class
16849         * LinkArea.cs: Added missing attribute
16850
16851 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16852
16853         * RadioButton.cs: call base method to allow to fire OnClick event
16854         * UpDownBase.cs: OnMouseUp call base method
16855         * CheckedListBox.cs: call base method before returning
16856         * TrackBar.cs: call base method before returning
16857         
16858
16859 2005-05-10  Peter Bartok  <pbartok@novell.com>
16860
16861         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16862           for messages
16863
16864 2005-05-10  Peter Bartok  <pbartok@novell.com>
16865
16866         * DataFormats.cs: Implemented
16867         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16868           XplatUIX11.cs: Added Clipboard APIs
16869         * XplatUIWin32.cs: Implemented Clipboard APIs
16870         * FolderBrowserDialog.cs: Added missing event, attributes
16871
16872 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16873
16874         * CheckBox.cs: call base method to allow to fire OnClick event
16875
16876 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16877
16878         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16879
16880 2005-05-06  Peter Bartok  <pbartok@novell.com>
16881
16882         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16883         * Screen.cs: Implemented
16884         * HelpNavigator.cs: Added
16885         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16886           property
16887         * HelpProvider.cs: Implemented all we can do until we have a CHM
16888           help library (which means that "What's This" does work now)
16889
16890 2005-05-06  Jackson Harper  <jackson@ximian.com>
16891
16892         * XplatUIX11.cs: Fix waking up the main loop.
16893                 
16894 2005-05-05  Peter Bartok  <pbartok@novell.com>
16895
16896         * XplatUI.cs: Updated revision
16897         * Form.cs: Removed enless loop
16898         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16899         * Label.cs (OnPaint): Added call to base.OnPaint()
16900         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16901         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16902         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16903         * AxHost.cs: Added
16904         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16905         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16906           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16907           reuse of ToolTipWindow by other controls
16908         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16909         * XplatUIX11.cs: Now clipping drawing area (experimental)
16910         * PictureBox.cs: Moved base.OnPaint() call to end of method
16911         * Theme.cs: Fixed ToolTip abstracts to match new format
16912         * ErrorProvider.cs: Implemented
16913
16914 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16915
16916         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16917         * LinkLabel.cs:
16918                 - Adds cursors
16919                 - Handles focus
16920                 - Implements LinkBehavior
16921                 - Fixes many issues
16922
16923 2005-05-03  Jackson Harper  <jackson@ximian.com>
16924
16925         * ListView.cs: Calculate the scrollbar positioning on resize and
16926         paint, so they get put in the correct place.
16927
16928 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16929
16930         * ColorDialogs.cs: The small color panels are now handled by
16931           SmallColorControl. This fixes drawing of the focus rectangle
16932           and adds a 3D border.
16933
16934 2005-05-03  Peter Bartok  <pbartok@novell.com>
16935
16936         * Control.cs: Modified version of Jonathan Chamber's fix for
16937           double-buffering
16938
16939 2005-05-03  Jackson Harper  <jackson@ximian.com>
16940
16941         * ListView.cs: Remove redraw variable. Control now handles whether
16942         or not a redraw needs to be done, and will only raise the paint
16943         event if redrawing is needed.
16944
16945 2005-05-03  Jackson Harper  <jackson@ximian.com>
16946
16947         * Splitter.cs: No decorations for the splitter form. Cache the
16948         hatch brush.
16949
16950 2005-05-03  Jackson Harper  <jackson@ximian.com>
16951
16952         * TreeView.cs: Use dashed lines to connect nodes. Use the
16953         ControlPaint method for drawing the focus rect instead of doing
16954         that in treeview.
16955
16956 2005-05-02  Peter Bartok  <pbartok@novell.com>
16957
16958         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
16959
16960 2005-04-29  Jackson Harper  <jackson@ximian.com>
16961
16962         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
16963         entire image buffer. Just clear the clipping rectangle.
16964
16965 2005-04-29  Jackson Harper  <jackson@ximian.com>
16966
16967         * ThemeWin32Classic.cs: Don't draw list view items that are
16968         outside the clipping rectangle.
16969
16970 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
16971
16972         * ListBox.cs: added horizontal item scroll
16973
16974 2005-04-29  Jackson Harper  <jackson@ximian.com>
16975
16976         * ThemeWin32Classic.cs: Remove some old debug code that was
16977         causing flicker with the new double buffering code.
16978
16979 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
16980
16981         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
16982         behave like combobox and comboboxlist (still not sure if this is
16983         correct though).
16984
16985 2005-04-28  Jackson Harper  <jackson@ximian.com>
16986
16987         * ThemeWin32Classic.cs: Don't fill the middle of progress
16988         bars. This fills areas outside of the clip bounds that don't need
16989         to be filled.
16990
16991 2005-04-28  Jackson Harper  <jackson@ximian.com>
16992
16993         * Control.cs: Don't expose functionality to touch the image buffers.
16994         * ProgressBar.cs:
16995         * ListView.cs: We do not need to (and no longer can) manipulate
16996         the image buffers directly. All of this is handled by Control.
16997
16998 2005-04-28  Peter Bartok  <pbartok@novell.com>
16999
17000         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17001           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17002           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17003
17004 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17005
17006         * Combobox:
17007                 - Adjust control's height for non-simple comboboxes (bug fix)
17008                 - Remove dead code
17009         * MenuAPI.cs: remove unused var
17010         * ScrollBar.cs: remove unsed var
17011                  
17012         * ListBox.cs: unselect items when clearing
17013
17014 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17015
17016         * ListControl.cs: honors OnPositionChanged and default Selected Item
17017         * ListBox.cs: unselect items when clearing
17018
17019 2005-04-27  Jackson Harper  <jackson@ximian.com>
17020
17021         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17022         if a "correct" keyboard is not found. This will make us not crash,
17023         but might give some users bad keyboard layouts...seems to be the
17024         same thing rewind does.
17025
17026 2005-04-27  Jackson Harper  <jackson@ximian.com>
17027
17028         * BindingManagerBase.cs: Attach the current/position changed
17029         handlers to their respective events.
17030
17031 2005-04-27  Jackson Harper  <jackson@ximian.com>
17032
17033         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17034         not just a blit.
17035         * ThemeWin32Classic.cs: Don't fill the background for picture
17036         boxes. This could overright user drawing.
17037         * ComboBox.cs: Just fill the clipping rect not the entire client
17038         rect when drawing the background. This prevents pieces of the
17039         image buffer from getting overwritten and is theoretically faster.
17040
17041 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17042
17043         * ComboBox.cs: Databinding support fixes, fire missing events
17044         * ListControl.cs: implement missing methods and properties, fixes
17045         * ThemeWin32Classic.cs: Databiding support on Drawing
17046         * CheckedListBox.cs: Databinding support fixes, fire missing events
17047         * ListBox.cs: Databinding support fixes, fire missing events
17048         
17049 2005-04-25  Peter Bartok  <pbartok@novell.com>
17050
17051         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17052
17053 2005-04-25  Jackson Harper  <jackson@ximian.com>
17054
17055         * TreeView.cs: Use the horizontal scrollbars height not width when
17056         determining how much of the client area is available.
17057
17058 2005-04-25  Jackson Harper  <jackson@ximian.com>
17059
17060         * Control.cs: Double buffering is handled differently now. As per
17061         the spec, the extra buffer is created in the WM_PAINT message and
17062         passed down to the control's drawing code.
17063         * GroupBox.cs:
17064         * Label.cs:
17065         * CheckBox.cs:
17066         * ProgressBar.cs:
17067         * RadioButton.cs:
17068         * ColorDialog.cs:
17069         * ComboBox.cs:
17070         * PropertyGridView.cs:
17071         * UpDownBase.cs:
17072         * MessageBox.cs:
17073         * MenuAPI.cs:
17074         * ListView.cs:
17075         * ButtonBase.cs:
17076         * SizeGrip.cs:
17077         * ScrollBar.cs:
17078         * ListBox.cs:
17079         * TrackBar.cs:
17080         * ToolBar.cs:
17081         * PictureBox.cs:
17082         * DateTimePicker.cs:
17083         * StatusBar.cs:
17084         * TreeView.cs: Update to new double buffering system.
17085         * MonthCalendar.cs: Uncomment block, as Capture is now
17086         working. Update to new double buffering
17087         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17088         * PaintEventArgs.cs: New internal method allows us to set the
17089         graphics object. This is used for double buffering.
17090         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17091         rectangle. The internal paint_area var has been removed from
17092         StatusBar. The clipping rect should be used instead.
17093         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17094         * TabPage.cs: The RefreshTabs method was removed, so just call the
17095         tab controls Refresh method now.
17096         * TabControl.cs: Update to new double buffering. Make sure the
17097         handle is created before sizing the tab pages, otherwise we will
17098         get stuck in a loop.
17099
17100 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17101
17102         * LinkLabel.cs: Fix typo, bug #74719; patch
17103           from Borja Sanchez Zamorano
17104
17105 2005-04-22  Jackson Harper  <jackson@ximian.com>
17106
17107         * TreeNode.cs: Implement Handle stuff.
17108         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17109
17110 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17111
17112         * DataGridTextBoxColumn.cs: call base constructors, fixes
17113         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17114         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17115         * DataGridTableStyle.cs: implements create default column styles
17116         * DataGridBoolColumn.cs: which types can handle
17117         * DataGrid.cs: missing methods, fixes, new functionality
17118         * DataGridColumnStyle.cs: fixes
17119
17120 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17121         * FolderBrowserDialog.cs:
17122         - Use a thread to fill the TreeView
17123         - Adjusted some sizes
17124
17125 2005-04-19  Peter Bartok  <pbartok@novell.com>
17126
17127         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17128           property. Fixes #74360.
17129
17130 2005-04-19  Jackson Harper  <jackson@ximian.com>
17131
17132         * XEventQueue.cs: Lock when getting the lockqueue size.
17133         * PictureBox.cs: Call base OnPaint
17134         
17135 2005-04-19  Peter Bartok  <pbartok@novell.com>
17136
17137         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17138           messages were no longer being processed (this broke BeginInvoke)
17139
17140           
17141 2005-04-18  Jackson Harper  <jackson@ximian.com>
17142
17143         * TreeView.cs: buglet that caused node images to get drawn
17144         regardless of whether or not they were in the clipping rectangle.
17145
17146 2005-04-18  Jackson Harper  <jackson@ximian.com>
17147
17148         * CurrencyManager.cs: There are four rules for GetItemProperties:
17149         - If the type is an array use the element type of the array
17150         - If the type is a typed list, use the type
17151         - If the list contains an Item property that is not an object, use
17152         that property
17153         - use the first element of the list if there are any elements in
17154         the list.
17155         
17156 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17157
17158         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17159         click. This handles offsets for scrolling properly and reduces
17160         memory. Also fixed GetNode to not offset now that TopNode works
17161         properly.
17162         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17163         
17164 2005-04-17  Jackson Harper  <jackson@ximian.com>
17165
17166         * CursorConverter.cs: Initial implementation.
17167
17168 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17169
17170         * ListControl.cs: work towards complex data binding support on ListControl
17171         * CurrencyManager.cs: work towards complex data binding support on ListControl
17172         * ListBox.cs: work towards complex data binding support on ListControl
17173
17174
17175 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17176
17177         * GridTableStylesCollection.cs: fixes name and constructor
17178         * DataGridTableStyle.cs: fixes
17179         * DataGridBoolColumn.cs: fixes names and constructors
17180         * DataGrid.cs: define methods and properties. Some init implementations
17181         * DataGridCell.cs: define methods and properties. Some init implementations
17182         * GridTablesFactory.cs: Define methods and properties
17183
17184 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17185
17186         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17187         graphics port changes.  We still want the coordinates in global screen
17188         coordinates.
17189
17190 2005-04-14  Jackson Harper  <jackson@ximian.com>
17191
17192         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17193         check plus minus or checkbox clicks unless those features are enabled.
17194
17195 2005-04-14  Jackson Harper  <jackson@ximian.com>
17196
17197         * TreeView.cs: Add methods for setting the top and bottom visible
17198         nodes. TreeNode::EnsureVisible uses these methods.
17199         * TreeNode.cs: Implement EnsureVisible
17200
17201 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17202
17203         * Form.cs: Pospone menu assignation if the window has not been created yet
17204         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17205         size and position
17206
17207 2005-04-12  Jackson Harper  <jackson@ximian.com>
17208
17209         * TreeView.cs: Set the TopNode properly when scrolling
17210         occurs. This has the added benifit of reducing the amount of
17211         walking that needs to be done when drawing. Also removed an old
17212         misleading TODO.
17213         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17214         
17215 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17216
17217         * Timer.cs: fixes interval setting when the timer is already enabled
17218         
17219 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17220
17221         * FolderBrowserDialog.cs: First approach
17222
17223 2005-04-09  Peter Bartok  <pbartok@novell.com>
17224
17225         * FolderBrowserDialog: Added
17226
17227 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17228
17229         * LinkLabel.cs: move drawing code into the theme
17230         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17231         * Theme.cs: define DrawLinkLabel method
17232
17233 2005-04-05  Jackson Harper  <jackson@ximian.com>
17234
17235         * BindingContext.cs: Use weak references so these bad actors don't
17236         stay alive longer then they need to.
17237
17238 2005-04-05  Jackson Harper  <jackson@ximian.com>
17239
17240         * ListControl.cs: Basic implementation of complex databinding.
17241         * ComboBox.cs:
17242         * ListBox.cs: Add calls to ListControl databinding methods.
17243
17244 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17245
17246         * FileDialog.cs:
17247           - Don't change PopupButtonState to Normal when the
17248             PopupButton gets pressed several times.
17249           - Renamed ButtonPanel to PopupButtonPanel
17250
17251 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17252
17253         * ColorDialog.cs: Use cached objects instead of creating them
17254         * LinkLabel.cs: Use cached objects instead of creating them
17255         * Splitter.cs: Use cached objects instead of creating them
17256         * FontDialog.cs: Use cached objects instead of creating them
17257         * PropertyGridView.cs: Use cached objects instead of creating them
17258         * MessageBox.cs: Use cached objects instead of creating them
17259         * FileDialog.cs: Use cached objects instead of creating them
17260         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17261         * TreeView.cs: Use cached objects instead of creating them
17262         
17263 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17264
17265         * Control.cs: use Equals to compare the font since no == op
17266         * ScrollBar.cs: use Equals to compare the font since no == op
17267
17268 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17269
17270         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17271
17272 2005-04-01  Jackson Harper  <jackson@ximian.com>
17273
17274         * Binding.cs: Implement IsBinding.
17275         * BindingManagerBase.cs:
17276         * PropertyManager.cs:
17277         * CurrencyManager.cs: Add IsSuspended property.
17278
17279 2005-04-01  Jackson Harper  <jackson@ximian.com>
17280
17281         * Binding.cs: Had some IsAssignableFrom calls backwards.
17282
17283 2005-04-01  Jackson Harper  <jackson@ximian.com>
17284
17285         * Binding.cs: Handle null data members when pulling data.
17286         * PropertyManager.cs: Handle the data member being a property that
17287         does not exist.
17288
17289 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17290
17291         * DataGridTextBoxColumn.cs: fixes signature
17292         * DataGrid.cs: calls right constructor
17293
17294 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17295
17296         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17297         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17298         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17299         * DataGridTableStyle.cs: implements DataGridTableStyle
17300         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17301         * DataGridTextBox.cs: implements DataGridTextBox
17302         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17303
17304 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17305
17306         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17307
17308 2005-03-29  Peter Bartok  <pbartok@novell.com>
17309
17310         * Application.cs:
17311           - Properly implemented CompanyName property
17312           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17313             returns a path that includes CompanyName, ProductName and
17314             Version (fixes bug #70330)
17315
17316 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17317
17318         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17319           fixes bug #72588.
17320
17321 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17322
17323         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17324         
17325           - Added ReadOnly CheckBox
17326           - Further refactoring: moved some code from Open-/SaveFileDialog
17327             to FileDialog
17328
17329 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17330
17331         * OpenFileDialog.cs: Fixed CheckFileExists
17332         * FileDialog.cs:
17333           Moved FileView and DirComboBox outside FileDialog class.
17334           They can now be used outside FileDialog
17335
17336 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17337
17338         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17339         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17340
17341 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17342
17343         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17344           - Added missing CreatePrompt property in SaveDialog
17345           - Overall SaveDialog handling should be better now
17346           - Added non standard ShowHiddenFiles property
17347           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17348           - Added InitialDirectory and RestoreDirectory support
17349
17350 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17351
17352         * FileDialog.cs: Made dirComboBox usable
17353
17354 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17355
17356         * FileDialog.cs: Added Filter support (case sensitiv)
17357
17358 2005-03-24  Jackson Harper  <jackson@ximian.com>
17359
17360         * TabControl.cs: Need a couple more pixels for the lines.
17361
17362 2005-03-23  Jackson Harper  <jackson@ximian.com>
17363
17364         * TabControl.cs: Give the tab page focus when it is selected.
17365
17366 2005-03-23  Jackson Harper  <jackson@ximian.com>
17367
17368         * TabControl.cs: Account for the drawing of tabs borders when
17369         invalidating. If the slider was clicked dont do click detection on
17370         the tabs.
17371
17372 2005-03-23  Jackson Harper  <jackson@ximian.com>
17373
17374         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17375
17376 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17377
17378         * CategoryGridEntry.cs: Added
17379         * GridItem.cs: Added helper properties
17380         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17381         * GridEntry.cs: Updated code for collection
17382         * PropertyGrid.cs: Cleaned up some formatting
17383         * PropertyGridView.cs: Added drop down functionality for enums.
17384         * GridItemCollection.cs: Added enumerator logic
17385         * PropertyGridEntry.cs: Added
17386
17387 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17388
17389         * FileDialog.cs:
17390           - Removed unnecessary commented code
17391           - Fixed handling for entering the filename manually in the combobox
17392
17393 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17394
17395         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17396
17397 2005-03-18  Peter Bartok  <pbartok@novell.com>
17398
17399         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17400           them being touching the border
17401
17402 2005-03-18  Peter Bartok  <pbartok@novell.com>
17403
17404         * TextControl.cs: Quick hack to center text better
17405
17406 2005-03-18  Peter Bartok  <pbartok@novell.com>
17407
17408         * ControlPaint.cs:
17409           - Don't throw NotImplemented exceptions, just print a notice once
17410             instead (requested by Miguel). This makes running existing SWF
17411             apps a bit easier
17412         * Control.cs:
17413           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17414           - Added context menu trigger on right click
17415         * Panel.cs: Trigger invalidate on resize
17416         * StatusBar.cs:
17417           - Removed old double-buffer drawing
17418           - Added ResizeRedraw style to force proper update of statusbar
17419         * ListView.cs:
17420           - Removed debug output
17421         * ThemeWin32Classic.cs:
17422           - Fixed drawing of status bar, now draws Text property if there
17423             are no defined panels
17424
17425 2005-03-18  Jackson Harper  <jackson@ximian.com>
17426
17427         * ImageList.cs: When the image stream is set pull all the images
17428         from it.
17429         * ImageListStreamer.cs: Implement reading image list streams.
17430
17431 2005-03-18  Peter Bartok  <pbartok@novell.com>
17432
17433         * ThemeWin32Classic.cs (DrawPictureBox):
17434           - Fixed calculations for centered drawing
17435           - Fixed drawing for normal mode, not scaling the image on normal
17436
17437 2005-03-18  Peter Bartok  <pbartok@novell.com>
17438
17439         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17440           textbox
17441         * FileDialog.cs:
17442           - Made Open/Save button the accept button for FileDialog
17443           - Tied the cancel button to the IButtonControl cancel button
17444           - Save/Open now properly builds the pathname
17445           - Now handles user-entered text
17446           - Preventing crash on right-click if no item is selected
17447           - Fixed Text property, now uses contents of textbox
17448           - Fixed SelectedText property, now just returns the text part that
17449             is selected in the text box
17450
17451 2005-03-18  Jackson Harper  <jackson@ximian.com>
17452
17453         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17454         rect, make sure to de-adjust the interior rect after drawing the
17455         tab text.
17456
17457 2005-03-18  Peter Bartok  <pbartok@novell.com>
17458
17459         * MenuAPI.cs: Remove menu *before* executing selected action to
17460           prevent the menu from 'hanging around'
17461           
17462 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17463
17464         * XplatUIOSX.cs: Implemented WorkingArea property
17465
17466 2005-03-17  Peter Bartok  <pbartok@novell.com>
17467
17468         * XplatUIX11.cs: Fixed menu coord calculations
17469         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17470           for calculating offsets
17471
17472 2005-03-17  Peter Bartok  <pbartok@novell.com>
17473
17474         * Hwnd.cs: Do not consider menu presence for default client
17475           rectangle location/size
17476         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17477           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17478           translation functions
17479         * FileDialog.cs: Fixed (what I presume is a) typo
17480
17481 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17482
17483         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17484           X access (avoids X-Async errors)
17485
17486 2005-03-16  Jackson Harper  <jackson@ximian.com>
17487
17488         * TabControl.cs: Raise the SelectedIndexChanged event.
17489
17490 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17491
17492         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17493           - Removed vertical ToolBar and replaced it with a custom panel
17494             (desktop and home button already work)
17495           - Added Help button (some controls get resized or relocated then)
17496           - Draw correct text depending on Open or Save.
17497           - Fixed some typos...
17498
17499 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17500
17501         * ScrollBar.cs:
17502           - Only change Maximum and Minimum when need it (bug fix)
17503
17504 2005-03-15  Peter Bartok  <pbartok@novell.com>
17505
17506         * Form.cs: Use Handle for icon, to trigger creation if
17507           the window does not yet exist
17508         * Control.cs:
17509           - CanSelect: Slight performance improvement
17510           - Focus(): Preventing possible recursion
17511           - Invalidate(): Removed ControlStyle based clear flag setting
17512           - WM_PAINT: fixed logic for calling OnPaintBackground
17513           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17514             EraseWindowBackground if the control doesn't paint background
17515         * XplatUIWin32.cs:
17516           - Moved EraseWindowBackground() method to internal methods
17517           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17518             is sent via SendMessage on BeginPaint call on Win32
17519         * XplatUIX11.cs:
17520           - Added EraseWindowBackground() method
17521           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17522             PaintEventStart, which more closely matches Win32 behaviour
17523           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17524           - Fixed SetFocus() to properly deal with client and whole windows
17525         * Hwnd.cs: Added ErasePending property
17526         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17527         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17528
17529 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17530
17531         * XplatUIOSX.cs:
17532           - Fix hard loop when timers exist.
17533           - Fix bugs with middle and right click for 3 button mice.
17534
17535 2005-03-11  Peter Bartok  <pbartok@novell.com>
17536
17537         * XplatUIX11.cs:
17538           - get_WorkingArea: Need to call X directly, GetWindowPos only
17539             returns cached data now
17540           - Added sanity check to GetWindowPos hwnd usage
17541
17542 2005-03-11  Jackson Harper  <jackson@ximian.com>
17543
17544         * BindingManagerBase.cs: This method isn't used anymore as
17545         PullData now updates the data in the control.
17546
17547 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17548
17549         * Form.cs: fixes menu drawing on X11
17550         * MenuAPI.cs:  fixes menu drawing on X11
17551
17552 2005-03-11  Peter Bartok  <pbartok@novell.com>
17553
17554         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17555           from Jonathan Gilbert; should fix bug #73606
17556         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17557           in Screen coordinates. Thanks, Jordi.
17558         * Form.cs: Added missing attribute
17559
17560 2005-03-11  Peter Bartok  <pbartok@novell.com>
17561
17562         * Form.cs:
17563           - Rudimentary Mdi support
17564           - Removed outdated FormParent code
17565           - Implemented lots of missing properties and methods, still missing
17566             transparency support
17567           - Added missing attributes
17568           - Implemented support for MaximumBounds
17569           - Added firing of various events
17570         * XplatUI.cs: Added SetIcon() method
17571         * XplatUIDriver.cs: Added SetIcon() abstract
17572         * XplatUIOSX.cs: Stubbed out SetIcon() method
17573         * XplatUIX11.cs:
17574           - Implemented SetIcon() support
17575           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17576           - Switched to unix line endings
17577         * XplatUIWin32.cs:
17578           - Made POINT internal so for can access it as part of MINMAX
17579           - Implemented SetIcon() support
17580           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17581             native Mdi support again, might have to go managed)
17582         * Control.cs: Now fires the StyleChanged event
17583         * MdiClient.cs: Added; still mostly empty
17584
17585 2005-03-10  Peter Bartok  <pbartok@novell.com>
17586
17587         * SaveFileDialog.cs: Added emtpy file
17588
17589 2005-03-08  Peter Bartok  <pbartok@novell.com>
17590
17591         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17592           in turn triggers OnCreateContro) when creating a handle for the
17593           first time.
17594         * TextControl.cs: Fixed endless loop in certain cases when
17595           replacing the current selection
17596
17597 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17598
17599         * ScrollBar.cs:
17600           - Honors NewValue changes in Scroll events allowing apps to change it
17601           - Adds First and Last Scroll events
17602           - Fixes Thumb events
17603
17604 2005-03-07  Peter Bartok  <pbartok@novell.com>
17605
17606         * Hwnd.cs: Added DefaultClientRectangle property
17607         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17608           more detailed debug information
17609         * XplatUIX11.cs:
17610           - Fixed size-change feedback loop, where we would pull an old size
17611             off the queue and mistakenly change our window's size to an
17612             earlier value
17613           - Now compressing ConfigureNotify events, to reduce looping and
17614             redraw issues
17615         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17616           is called
17617
17618 2005-03-07  Jackson Harper  <jackson@ximian.com>
17619
17620         * Binding.cs: Push data pushes from data -> property. Check if the
17621         property is readonly when attempting to set it.
17622
17623 2005-03-07  Jackson Harper  <jackson@ximian.com>
17624
17625         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17626         instead of IsSubclassOf. Pulling data now sets the value on the
17627         control.
17628         * PropertyManager.cs:
17629         * CurrencyManager.cs: Just need to pull data when updating now,
17630         because PullData will set the value on the control.
17631
17632 2005-03-04  Jackson Harper  <jackson@ximian.com>
17633
17634         * Binding.cs: Implement data type parsing and converting on pulled
17635         data. TODO: Are there more ways the data can be converted?
17636
17637 2005-03-04  Jackson Harper  <jackson@ximian.com>
17638
17639         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17640         controls Validating method so we can repull the data when the
17641         control loses focus.
17642
17643 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17644
17645         * ColumnHeader.cs:
17646           - Fixes null string format
17647           
17648         * ListView.cs:
17649           - Adds enum type checks
17650           - Fixes redrawing and recalc need after changing some properties
17651           - Fixes on focus_item set after the event
17652           - Fixes adding columns after the control has been created
17653           
17654         * ThemeWin32Classic.cs:
17655           - Fixes CheckBox focus rectangle
17656           - Fixes ColumnHeader drawing
17657
17658
17659 2005-03-03  Jackson Harper  <jackson@ximian.com>
17660
17661         * Binding.cs: Bind to <Property>Changed events so we can detect
17662         when properties are changed and update the data.
17663
17664 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17665
17666         * ImageList.cs:
17667           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17668           - Fixes ImageList constructor with ImageList container
17669           - Fixes image scaling (wrong parameters at DrawImage)
17670
17671 2005-02-02  Jackson Harper  <jackson@ximian.com>
17672
17673         * Binding.cs: Make property searches case-insensitive. Eliminate
17674         some duplicated code.
17675
17676 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17677
17678         * ComboBox.cs:
17679                 - Handle focus event
17680                 - Fix scrollbar events
17681                 - Discard highlighted item if remove it
17682                 - Fixes SelectedItem with strings
17683
17684 2005-03-01  Peter Bartok  <pbartok@novell.com>
17685
17686         * Control.cs:
17687           - Fixed Visible property, now follows (once again) parent chain
17688             to return false if any control in the chain is visible=false
17689           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17690           - Fixed several places where is_visible instead of Visible was used
17691           - Implemented FIXME related to focus selection when setting focused
17692             control to be invisible
17693
17694         * XplatUIWin32.cs: Now using proper method to find out if window is
17695           visible. Thanks to Jordi for pointing it out
17696
17697 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17698
17699         * ComboBox.cs: show/hide scrollbar instead of creating it
17700
17701 2005-02-27  Jackson Harper  <jackson@ximian.com>
17702
17703         * CurrencyManager.cs: Add PositionChanged stuff.
17704
17705 2005-02-27  Peter Bartok  <pbartok@novell.com>
17706
17707         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17708         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17709         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17710         * XplatUIX11.cs:
17711           - Implemented GetMenuDC()
17712           - Implemented GetMenuOrigin()
17713           - Implemented ReleaseMenuDC()
17714           - Implemented generation of WM_NCPAINT message
17715           - Implemented generation and handling of WM_NCCALCSIZE message
17716         * Form.cs: Added debug helper message for Jordi's menu work
17717         * Hwnd.cs:
17718           - Modified ClientRect property; added setter, fixed getter to handle
17719             setting of ClientRect
17720           - Added MenuOrigin property
17721
17722 2005-02-26  Peter Bartok  <pbartok@novell.com>
17723
17724         * XplatUIX11.cs:
17725           - Destroys the caret if a window that's being destroyed contains it
17726           - Ignores expose events coming from the X11 queue for windows that
17727             already are destroyed
17728           - Now uses the proper variable for handling DestroyNotify, before we
17729             marked the wrong window as destroyed
17730           - Improved/added some debug output
17731
17732 2005-02-26  Peter Bartok  <pbartok@novell.com>
17733
17734         * X11Keyboard.cs: Fixes to work on 64bit systems
17735
17736 2005-02-26  Peter Bartok  <pbartok@novell.com>
17737
17738         * Control.cs:
17739           - Now calling OnHandleDestroyed from DestroyHandle()
17740             instead of Dispose()
17741           - Removed bogus call to controls.Remove() from DestroyHandle()
17742
17743 2005-02-26  Peter Bartok  <pbartok@novell.com>
17744
17745         * Control.cs: Properly destroy child windows when our handle is
17746           destroyed
17747
17748 2005-02-25  Peter Bartok  <pbartok@novell.com>
17749
17750         * XplatUI.cs:
17751           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17752           - Alphabetized Static Methods and Subclasses
17753
17754         * XplatUIX11.cs:
17755           - Added XException class to allow custom handling of X11 exceptions
17756           - Created custom X11 error handler, tied into XException class
17757           - Added support for MONO_XEXCEPTIONS env var to allow the user
17758             to either throw an exception on X errors or continue running
17759             after displaying the error
17760           - Added handling of DestroyNotify message
17761           - Added handler for CreateNotify message (still disabled)
17762           - Improved (tried to at least) Where method to provide file and lineno
17763         * X11Structs.cs:
17764           - Added XErrorHandler delegate
17765           - Added XRequest enumeration (to suppor translation of errors)
17766
17767 2005-02-25  Jackson Harper  <jackson@ximian.com>
17768
17769         * PropertyManager.cs: Implement editing features
17770         * CurrencyManager.cs:
17771         * Binding.cs: First attempt at UpdateIsBinding
17772         * BindingManagerBase.cs: Call UpdateIsBinding before
17773         pushing/pulling data.
17774
17775 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17776
17777         * MenuAPI.cs: Respect disabled items
17778         * ThemeWin32Classic.cs
17779                 - Caches ImageAttributes creation for DrawImageDisabled
17780                 - Fixes vertical menu line drawing
17781                 - Draws disabled arrows in disable menu items
17782
17783 2005-02-24  Peter Bartok  <pbartok@novell.com>
17784
17785         * Hwnd.cs:
17786           - Added UserData property to allow associating arbitrary objects
17787             with the handle
17788           - Fixed leak; now removing Hwnd references from static windows array
17789         * XplatUIWin32.cs:
17790           - Fixed Graphics leak in PaintEventEnd
17791           - Removed usage of HandleData, switched over to Hwnd class
17792         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17793
17794 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17795
17796         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17797         * ScrollBar.cs: Fixes bug
17798         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17799          keyboard navigation enhancements
17800
17801 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17802
17803         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17804         * GroupBox.cs: Add control styles
17805         * Label.cs: Add control styles
17806         * UpDownBase.cs: Add control styles
17807         * ListBox.cs: Add control styles
17808         * XplatUIWin32.cs: Fixes wrong parameter order
17809
17810
17811 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17812
17813         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17814
17815 2005-02-23  Jackson Harper  <jackson@ximian.com>
17816
17817         * PropertyManager.cs: Implement property binding. This doesn't
17818         seem to work yet though as (I think) there are some bugs in
17819         System.ComponentModel.PropertyDescriptor.
17820         * BindingContext.cs: Use new PropertyManager constructor.
17821
17822 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17823
17824         * ProgressBar.cs: use clip region in ProgressBar
17825         * ThemeWin32Classic.cs: use clip region in ProgressBar
17826
17827 2004-02-22  Jackson Harper  <jackson@ximian.com>
17828
17829         * BindingsCollection.cs: Remove some debug code.
17830
17831 2005-02-22  Jackson Harper  <jackson@ximian.com>
17832
17833         * BindingContext.cs:
17834         * ControlBindingsCollection.cs:
17835         * CurrencyManager.cs:
17836         * Binding.cs:
17837         * BindingManagerBase.cs: Initial implementation
17838         * BindingsCollection.cs: Add an internal contains method that the
17839         BindingManagerBase uses to ensure bindings aren't added twice to
17840         the collection.
17841         * PropertyManager.cs: Stubbed out.
17842         * Control.cs:
17843         * ContainerControl.cs: Hook up databinding
17844         
17845 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17846
17847         * XplatUIOSX.cs:
17848           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17849           Fixed Invalidate/Update chain.
17850           Fixed tons of other minor bugs (this is almost a complete rewrite).
17851
17852 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17853
17854         * ComboBox.cs: do subcontrol creation when the control is created
17855
17856 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17857
17858         * Label.cs: fixes image drawing (image and imagelist)
17859         * ThemeWin32Classic.cs: cache brushes
17860         
17861 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17862
17863         * Form.cs: Move menu drawing code to Theme class
17864         * ComboBox.cs: Move ComboBox drawing code to Theme class
17865         * MenuItem.cs: Move menu drawing code to Theme class
17866         * MenuAPI.cs: Move menu drawing code to Theme class
17867         * ThemeWin32Classic.cs: New methods
17868         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17869         * ListBox.cs: Move Listbox drawing code to Theme class
17870         * Theme.cs: New methods
17871
17872 2005-02-20  Peter Bartok  <pbartok@novell.com>
17873
17874         * Control.cs:
17875           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17876             only process mnemonics on those)
17877           - Fixed event sequence for key handling; first calling
17878             ProcessKeyEventArgs now
17879         * TextBoxBase.cs:
17880           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17881             for processing non-character keys
17882           - Fixed WM_CHAR to generate proper event sequence before processing
17883         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17884           generation
17885
17886 2005-02-19  Peter Bartok  <pbartok@novell.com>
17887
17888         * UserControl.cs: Added TextChanged event; added attributes
17889         * SizeGrip.cs: Implemented resizing and optional display of grip
17890         * Form.cs: Fixed attribute
17891         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17892           Changed meaning of ScrollWindow bool argument; instead of the
17893           clear attribute (which will be true usually anyway), it gives the
17894           option of moving child controls as well.
17895         * XplatUIX11.cs:
17896           - Changed to match new ScrollWindow argument
17897           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17898             now handles the implicit parent window a WM puts around us
17899         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17900           to work)
17901         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17902         * TreeView.cs: Adjusted to new ScrollWindow arguments
17903
17904 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17905
17906         * Form.cs: Menu integration with non-client area
17907         * MenuItem.cs: Menu integration with non-client area
17908         * MenuAPI.cs: Menu integration with non-client area
17909
17910 2005-02-18  Peter Bartok  <pbartok@novell.com>
17911
17912         * MethodInvoker.cs: Added
17913         * MdiLayout.cs: Added
17914         * SendKeys.cs: Started implementation
17915         * ErrorIconAlignment.cs: Added
17916
17917 2005-02-18  Peter Bartok  <pbartok@novell.com>
17918
17919         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17920         * Form.cs: Added handling for Menu-related Non-client messages
17921
17922 2005-02-17  Peter Bartok  <pbartok@novell.com>
17923
17924         * UpDownBase.cs: Fixed typo, compilation errors
17925         * DomainUpDown.cs: Fixed attribute value
17926
17927 2005-02-16  Miguel de Icaza  <miguel@novell.com>
17928
17929         * UpDownBase.cs: Attach entry events.
17930         Propagate events.
17931         Add ForeColor property, Focused, InterceptArrowKeys (interception
17932         does not work yet).
17933
17934 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
17935
17936         * Form.cs:
17937                 - Redraw non client are on Setmenu
17938                 - Calc proper menu starting point
17939
17940 2005-02-17  Peter Bartok  <pbartok@novell.com>
17941
17942         * Application.cs: Fixed message_filter check
17943
17944 2005-02-17  Peter Bartok  <pbartok@novell.com>
17945
17946         * Application.cs: Now calls registered message filters
17947         * DockStyle.cs: Fixed attribute
17948         * Form.cs: Fixed attribute
17949         * Menu.cs: Fixed attribute
17950         * ToolTip.cs: Fixed attribute
17951         * TreeNode.cs: Added missing attributes and arranged in regions
17952         * PropertyGrid.cs: Fixed signatures
17953         * TreeNodeCollection.cs: Added attributes
17954         * Splitter.cs: Added missing attributes; arranged into regions
17955         * TabPage.cs: Added missing attributes; arranged into regions
17956         * TextBoxBase.cs: Added missing attributes
17957         * TextBox.cs: Added missing attributes
17958         * ArrangeDirection.cs: Added missing attributes
17959         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
17960         * ToolBarButton.cs: Fixed attributes
17961         * AnchorStyles.cs: Fixed attribute
17962         * TrackBar.cs: Fixed attributes
17963         * TabControl.cs: Added missing attributes and arranged into regions
17964         * ToolBar.cs: Fixed attribute
17965         * StatusBar.cs: Fixed signature, organized into regions and added
17966           attributes
17967         * StatusBarPanel.cs: Fixed attributes
17968         * ContentsResizedEventArgs.cs: Implemented
17969         * ContentsResizedEventHandler.cs: Implemented
17970         * DateBoldEventArgs.cs: Implemented
17971         * DateBoldEventHandler.cs: Implemented
17972         * UpDownEventArgs.cs: Implemented
17973         * UpDownEventHandler.cs: Implemented
17974         
17975 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
17976
17977         * Form.cs: first Menu NC refactoring
17978         * MenuAPI.cs: first Menu NC refactoring
17979         
17980 2005-02-16  Peter Bartok  <pbartok@novell.com>
17981
17982         * ImeMode.cs: Added missing attributes
17983         * Menu.cs: Fixed attribute
17984         * GroupBox.cs: Fixed attribute
17985         * Label.cs: Fixed attribute
17986         * ColorDialog.cs (RunDialog): Removed TODO attribute
17987         * ComboBox.cs: Fixed attributes
17988         * ListControl.cs: Added missing attributes
17989         * PropertyGrid.cs: Fixed attributes
17990         * Control.cs: Fixed attributes
17991         * ListViewItem.cs: Added TypeConverter attribute
17992         * NotifyIcon.cs: Fixed attributes
17993         * ListView.cs: Fixed attributes
17994         * ButtonBase.cs: Fixed attribute
17995         * ImageList.cs: Added missing attributes
17996         * ContainerControl.cs: Fixed signature
17997         * CheckedListBox.cs: Fixed attribute; added missing attributes
17998         * Panel.cs: Fixed attributes
17999         * PropertyTabChangedEventArgs.cs: Added missing attribute
18000         * PropertyValueChangedEventArgs.cs: Added missing attribute
18001         * Binding.cs: Fixed attribute
18002         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18003         * ListBox.cs: Fixed attribute; added missing attributes;
18004         * ScrollableControl.cs: Added missing attributes
18005         * PictureBox.cs: Added missing attributes; implemented missing property
18006         * DateTimePicker.cs: Added missing attributes
18007         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18008         * MonthCalendar.cs: Fixed attributes
18009         * StatusBarPanel.cs: Added missing attributes
18010         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18011
18012 2005-02-16  Peter Bartok  <pbartok@novell.com>
18013
18014         * TextBoxBase.cs: The previous method to enforce height yet remember
18015           the requested high was less than ideal, this is an attempt to do
18016           it better.
18017         * Control.cs: Added comment about possible problem
18018         * Copyright: Updated format
18019         * GridItemType.cs: Fixed swapped values
18020
18021 2005-02-15  Jackson Harper  <jackson@ximian.com>
18022
18023         * BaseCollection.cs: Use property so we never access an
18024         uninitialized list. Also initialize the list in the property.
18025
18026 2005-02-15  Peter Bartok  <pbartok@novell.com>
18027
18028         * GroupBox.cs (ProcessMnemonic): Implemented
18029         * Label.cs (ProcessMnemonic): Implemented
18030         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18031           hotkeys
18032
18033 2005-02-15  Peter Bartok  <pbartok@novell.com>
18034
18035         * RadioButton.cs (ProcessMnemonic): Implemented
18036         * CheckBox.cs (ProcessMnemonic): Implemented
18037         * Control.cs:
18038           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18039             handling
18040           - Added internal method to allow calling ProcessMnemonic from other
18041             controls
18042         * ContainerControl.cs:
18043           - Started support for handling validation chain handling
18044           - Implemented ProcessMnemonic support
18045           - Added Select() call to Active, to make sure the active control
18046             receives focus
18047         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18048           FormParent rewrite)
18049         * ThemeWin32Classic.cs:
18050           - DrawCheckBox(): Fixed stringformat to show hotkeys
18051           - DrawRadioButton(): Fixed stringformat to show hotkeys
18052         * CommonDialog.cs: Removed WndProc override, not needed
18053
18054 2005-02-14  Peter Bartok  <pbartok@novell.com>
18055
18056         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18057           missed those in the rewrite
18058
18059 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18060
18061         * NumericUpDown.cs (Increment, ToString): Add.
18062         (DecimalPlaces): implement.
18063         
18064         Add attributes.
18065         
18066         * UpDownBase.cs: Add the designer attributes.
18067
18068 2005-02-13  Peter Bartok  <pbartok@novell.com>
18069
18070         * Panel.cs: Removed border_style, now in Control
18071         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18072           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18073
18074 2005-02-13  Peter Bartok  <pbartok@novell.com>
18075
18076         * MouseButtons.cs: Added missing attributes
18077         * XplatUIStructs.cs: Added enumeration for title styles
18078         * LeftRightAlignment.cs: Added missing attributes
18079         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18080           it compatible with Graphics.FromHwnd()
18081         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18082         * Keys.cs: Added missing attributes
18083         * SelectionRange.cs: Added missing attributes
18084         * SelectionRangeConverter.cs: Added
18085         * XplatUI.cs:
18086           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18087             ReleaseMenuDC methods
18088           - Renamed ReleaseWindow to UngrabWindow
18089           - Added proper startup notice to allow version identification
18090         * Form.cs:
18091           - Added missing attributes
18092           - Removed FormParent concept
18093         * Label.cs: Removed border_style field, now in Control
18094         * RadioButton.cs: Now properly selects RadioButton when focus is
18095           received
18096         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18097         * Control.cs:
18098           - Added missing attributes
18099           - Added borderstyle handling
18100           - Removed FormParent concept support
18101           - Fixed calls to XplatUI to match changed APIs
18102           - Fixed bug that would case us to use disposed Graphics objects
18103           - Removed unneeded internal methods
18104           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18105           - SelectNextControl(): Fixed to properly check common parents
18106         * TextBoxBase.cs: Removed border_style field (now in Control)
18107         * MessageBox.cs:
18108           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18109             fixed calculations for form size
18110           - Added support for localized strings and icons
18111           - Improved form size calculations, added border
18112         * ListView.cs: Removed border_style field (now in Control)
18113         * X11Structs.cs: Moved several structs from X11 driver here
18114         * X11Keyboard.cs: Changed debug message
18115         * Application.cs: Removed FormParent concept support
18116         * CommonDialog.cs:
18117           - Resetting end_modal flag
18118           - Removed FormParent concept support
18119         * NativeWindow.cs: Removed FormParent concept support
18120         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18121           Client area and Non-Client whole window to allow support for WM_NC
18122           messages
18123         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18124           prevent using it until it supports Hwnd as per Geoff Norton's request
18125         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18126         * PictureBox.cs: Removed border_style field, now in Control
18127         * XplatUIWin32.cs: Added new driver methods
18128
18129 2005-02-12  Peter Bartok  <pbartok@novell.com>
18130
18131         * OpacityConverter.cs: Implemented
18132         * Hwnd.cs: Internal class to support drivers that need to emulate
18133           client area/non-client area window behaviour
18134
18135 2005-02-11  Peter Bartok  <pbartok@novell.com>
18136
18137         * KeysConverter.cs: Implemented
18138
18139 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18140
18141         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18142         * LinkLabel: Added missing attributes
18143         * MainMenu.cs: fixes ToString
18144         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18145         * ListBox.cs: fixes event position
18146         * TrackBar.cs: adds missing attributes and events
18147         
18148 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18149
18150         * MenuItem.cs: Use SystemInformation and bug fixes
18151         * MenuAPI.cs: Use SystemInformation and bug fixes
18152
18153 2005-02-09  Jackson Harper  <jackson@ximian.com>
18154
18155         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18156         their keystate otherwise things like VK_MENU get stuck "on".
18157
18158 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18159
18160         * ListBox.cs: Fixes AddRange bug
18161         
18162 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18163
18164         * ProgressBar.cs
18165                 - Add missing attributes
18166                 - Add missing method
18167                 
18168         * CheckedListBox.cs: Added missing attributes
18169                 - Add missing attributes
18170                 - Remove extra method
18171         
18172         * ComboBox.cs: Added missing attributes
18173         * VScrollBar.cs: Added missing attributes
18174         * ScrollBar.cs:  Added missing attributes
18175         * ListBox.cs: Fixes signature, add missing consts
18176         * LinkArea.cs:   Added missing attributes
18177         
18178
18179 2005-02-08  Peter Bartok  <pbartok@novell.com>
18180
18181         * Menu.cs: Added missing attributes
18182         * MainMenu.cs: Added missing attributes
18183         * GroupBox.cs: Added missing attributes
18184         * Label.cs: Added missing attributes
18185         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18186         * ColorDialog.cs:
18187           - Added Instance and Options properties
18188           - Added missing attributes
18189         * Cursor.cs: Made Serializable
18190         * NotifyIcon: Added missing attributes
18191         * MenuItem.cs: Added missing attributes
18192         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18193         * Panel.cs: Added Missing attributes
18194         * MonthCalendar.cs: Fixed CreateParams
18195
18196 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18197         
18198         * LinkLabel.cs:
18199                 - Fixes signature
18200                 - Fixes issues with links
18201                 - Adds the class attributes
18202
18203 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18204         
18205         * ComboBox.cs:
18206                 - Fixes button when no items available in dropdown
18207                 - Fixes repainting problems
18208                 - Adds the class attributes
18209                 
18210 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18211
18212         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18213         the current theme.  Cache these on startup.
18214
18215 2005-02-07  Jackson Harper  <jackson@ximian.com>
18216
18217         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18218         the scrollbar buttons when they are depressed.
18219
18220 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18221
18222         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18223         Get the display size from the main displayid.  We currently dont
18224         support multiple display configurations.
18225
18226 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18227
18228         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18229
18230 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18231
18232         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18233
18234 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18235
18236         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18237
18238 2005-02-04  Jackson Harper  <jackson@ximian.com>
18239
18240         * ThemeWin32Classic.cs: Respect the clipping rect when
18241         drawing. Only fill the intersection of clips and rects so there
18242         isn't a lot of large fills.
18243         * ScrollBar.cs: Pass the correct clipping rect to the theme
18244         engine. Remove some debug code.
18245
18246 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18247         
18248         * DateTimePicker.cs:
18249                 - Fixed crash on DateTime.Parse, use Constructor instead
18250
18251 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18252         
18253         * MenuItem.cs:
18254         * MenuAPI.cs:
18255                 - Owner draw support (MeasureItem and DrawItem)
18256
18257 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18258         
18259         *  Menu.cs:
18260                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18261                 - Fixes MenuItems.Add range
18262         * MenuItem.cs:
18263                 - MergeMenu and Clone and CloneMenu functions
18264
18265 2005-02-03  Jackson Harper  <jackson@ximian.com>
18266
18267         * ScrollBar.cs: Make abstract
18268         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18269         is abstract.
18270
18271 2005-02-03  Jackson Harper  <jackson@ximian.com>
18272
18273         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18274         all the unneeded refreshes and uses invalidates with properly
18275         computed rects.
18276
18277 2005-02-03  Peter Bartok  <pbartok@novell.com>
18278
18279         * ComponentModel.cs: Added
18280         * IDataGridEditingService.cs: Added
18281         * Timer.cs: Added missing attributes
18282         * ToolTip.cs: Added missing attributes
18283
18284 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18285
18286         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18287
18288 2005-02-03  Peter Bartok  <pbartok@novell.com>
18289
18290         * ListBox.cs: Added missing attributes
18291
18292 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18293         
18294         * ListBox.cs:
18295                 - Fixes font height after font change
18296                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18297                 
18298 2005-02-02  Peter Bartok  <pbartok@novell.com>
18299
18300         * HandleData.cs: Introduced static methods to allow class
18301           to be more self-contained and track it's own HandleData objects
18302         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18303           HandleData to use new static methods
18304
18305 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18306
18307         * Combobox.cs:
18308                 - Fixes default size and PreferredHeight
18309                 - Missing events
18310                 - ObjectCollection.Insert implementation
18311                 
18312         * ListControl.cs
18313                 - Fixes signature
18314         * ListBox.cs:
18315                 - Several fixes
18316                 - ObjectCollection.Insert implementation
18317                 - No selection after clean
18318                 - Small fixes
18319
18320 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18321
18322         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18323
18324 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18325
18326         * Combobox.cs:
18327                 - Caches ItemHeight calculation for OwnerDrawVariable
18328                 - Handles dropdown properly
18329                 - Fixes several minor bugs
18330
18331 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18332
18333         * ListBox.cs:
18334                 - Fixes 71946 and 71950
18335                 - Fixes changing Multicolumn on the fly
18336                 - Fixes keyboard navigation on Multicolumn listboxes
18337
18338 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18339         
18340         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18341         crash reporter log.
18342
18343 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18344
18345         * XplatUIOSX.cs: Allow applications to actually exit.
18346
18347 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18348
18349         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18350         their parent at creation time rather than lazily later.  Fixes a major
18351         regression we were experiencing.
18352
18353 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18354
18355         * ThemeWin32Classic.cs: more date time picker painting fixes
18356         * DateTimePicker.cs: more monthcalendar drop down fixes
18357         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18358
18359 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18360
18361         * ScrollBar.cs:
18362                 - When moving the thumb going outside the control should stop the moving
18363                 - Adds the firing of missing events
18364                 - Fixes no button show if Size is not specified
18365                 - End / Home keys for keyboard navigation
18366
18367 2005-01-30  Peter Bartok  <pbartok@novell.com>
18368
18369         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18370           sanity check to prevent theoretical loop
18371         * XplatUIWin32.cs (SetVisible): Removed debug output
18372         * XplatUIX11.cs (SystrayChange): Added sanity check
18373         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18374         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18375           behaviour, valid until the X11 client window rewrite is done
18376         * TextBox.cs (ctor): Setting proper default foreground and background
18377           colors
18378
18379 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18380
18381         * Theme: Added DrawDateTimePicker to interface
18382         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18383         * DateTimePicker.cs: Created (still needs keys and painting code)
18384         * DateTimePickerFormat.cs: added
18385         * MonthCalendar.cs: fixed CreateParams for popup window mode
18386           
18387 2005-01-29  Peter Bartok  <pbartok@novell.com>
18388
18389         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18390           this should also the calculations for ligher/darker
18391         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18392
18393 2005-01-29  Peter Bartok  <pbartok@novell.com>
18394
18395         * ArrangeDirection.cs: Added
18396         * ArrangeStartingPositon.cs: Added
18397         * SystemInformation.cs: Implemented
18398         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18399           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18400           used by SystemInformation class
18401         * X11Strucs.cs: Added XSizeHints structure
18402         * MenuAPI.cs:
18403           - Fixed CreateParams to make sure the menu window is always visible
18404           - TrackPopupMenu: Added check to make sure we don't draw the
18405             menu offscreen
18406
18407 2005-01-29  Peter Bartok  <pbartok@novell.com>
18408
18409         * HandleData.cs: Added method for altering invalid area
18410         * TextBoxBase.cs: Implemented TextLength
18411
18412 2005-01-28  Peter Bartok  <pbartok@novell.com>
18413
18414         * XplatUIX11.cs: Improvement over last patch, not sending
18415           the WM_PAINT directly anymore, instead we scroll any pending
18416           exposed areas and let the system pick out the WM_PAINT later
18417
18418 2005-01-28  Peter Bartok  <pbartok@novell.com>
18419
18420         * SWF.csproj: Deleted, no longer used. Instead,
18421           Managed.Windows.Forms/SWF.csproj should be used
18422         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18423           directly, to avoid a potential race condition with the next
18424           scroll
18425
18426 2005-01-28  Peter Bartok  <pbartok@novell.com>
18427
18428         * XplatUI.cs: Made class internal
18429
18430 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18431
18432         * CheckedListBox.cs:
18433                 - Draw focus
18434                 - Fixed Drawing
18435                 - Missing methods and events
18436
18437 2005-01-27  Peter Bartok  <pbartok@novell.com>
18438
18439         * Application.cs (Run): Don't use form if we don't have one
18440
18441 2005-01-27  Peter Bartok  <pbartok@novell.com>
18442
18443         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18444
18445 2005-01-27  Peter Bartok  <pbartok@novell.com>
18446
18447         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18448         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18449         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18450         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18451         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18452         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18453         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18454         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18455         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18456         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18457         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18458         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18459
18460 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18461
18462         * Combobox.cs:
18463                 - Draw focus on Simple Combobox
18464                 - Fixes drawing issues
18465                 - fixes 71834
18466
18467 2005-01-27  Peter Bartok  <pbartok@novell.com>
18468
18469         * Form.cs:
18470           - Place window in default location, instead of hardcoded 0/0
18471           - Send initial LocationChanged event
18472         * Control.cs:
18473           - UpdateBounds after creation to find out where the WM placed us
18474           - Make sure that if the ParentForm changes location the Form
18475             is notified
18476         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18477             to the root, but to whatever the WM placed around us.
18478             Translate to root coordinates before returning toplevel
18479             coordinates
18480         * XplatUIWin32.cs: Removed debug output
18481         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18482           flag to GetWindowPos, to allow translation of coordinates on X11
18483
18484 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18485
18486         * ListBox.cs: connect LostFocus Event
18487
18488 2005-01-27  Peter Bartok  <pbartok@novell.com>
18489
18490         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18491           XplatUIX11.cs: Extended the Systray API
18492         * Form.cs: Removed debug output
18493         * Application.cs: Fixed focus assignment, always need to call
18494           XplatUI.Activate() since Form.Activate() has rules that may
18495           prevent activation
18496         * NotifyIcon.cs: Should be complete now
18497         * ToolTip.cs: Worked around possible timer bug
18498
18499 2005-01-27  Jackson Harper  <jackson@ximian.com>
18500
18501         * TabControl.cs:
18502         - Only invalidate the effected tabs when the
18503         selected index changes. This reduces drawing and gets rid of some
18504         flicker.
18505         - Only refresh if the tabs need to be shifted, otherwise only
18506         invalidate the slider button.
18507         - On windows the tabs are not filled to right if the slider is
18508         visible.
18509         
18510 2005-01-27  Jackson Harper  <jackson@ximian.com>
18511
18512         * TabControl.cs: Only refresh on mouseup if we are showing the
18513         slider. Also only invalidate the button whose state has changed.
18514
18515 2005-01-26  Peter Bartok  <pbartok@novell.com>
18516
18517         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18518         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18519           and SystrayRemove() methods
18520         * XplatUIOSX.cs: Stubbed Systray methods
18521         * XplatUIX11.cs:
18522           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18523             methods
18524           - Fixed broken XChangeProperty calls (marshalling messed up things)
18525         * X11Structs.cs: Added enums and structs required for Size hinting
18526         * NotifyIcon.cs: Added & implemented
18527
18528 2005-01-26  Jackson Harper  <jackson@ximian.com>
18529
18530         * TabControl.cs: Space vertically layed out tabs properly.
18531
18532 2005-01-26  Peter Bartok  <pbartok@novell.com>
18533
18534         * Form.cs (CreateClientParams): Always set the location to 0,0
18535           since we're a child window.
18536
18537         * Control.cs (SetVisibleCore): Always explicitly setting the location
18538           of a toplevel window, apparently X11 doesn't like to move windows
18539           while they're not mapped.
18540
18541 2005-01-26  Jackson Harper  <jackson@ximian.com>
18542
18543         * TabControl.cs: Implement FillToRight size mode with vertically
18544         rendered tabs.
18545
18546 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18547
18548         * ControlPaint.cs, ThemeWin32Classic.cs
18549                 - Fixes DrawFocusRectangle
18550
18551 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18552
18553         * MenuAPI.cs:
18554                 - MenuBar tracking only starts when item is first clicked
18555                 - Fixes menu hidding for multiple subitems
18556                 - Unselect item in MenuBar when item Executed
18557                 - Fixes bug 71495
18558
18559 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18560
18561         * ListControl.cs:
18562                 - IsInputKey for ListBox
18563         * ListBox.cs:
18564                 - Focus item
18565                 - Shift and Control item selection
18566                 - Implement SelectionMode.MultiExtended
18567                 - Fixes RightToLeft
18568         * ComboBox.cs:
18569                 - IsInputKey implemented
18570                 - Do not generate OnTextChangedEdit on internal txt changes
18571                 
18572 2005-01-23  Peter Bartok  <pbartok@novell.com>
18573
18574         * AccessibleObject.cs: Partially implemented Select()
18575         * MonthCalendar.cs: Added missing attributes and events
18576         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18577           form can properly override CreateParams.
18578         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18579           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18580           Control performs Invalidate & Update
18581         * NativeWindow (CreateHandle): Added special handling for Form
18582           and Form.FormParent classes to allow overriding of From.CreateParams
18583         * Control.cs:
18584           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18585             name 'owner'
18586           - ControlNativeWindow: Added Owner property
18587           - Removed usage of Refresh() on property changes, changed into
18588             Invalidate(), we need to wait until the queue is processed for
18589             updates, direct calls might cause problems if not all vars for
18590             Paint are initialized
18591           - Added call to UpdateStyles() when creating the window, to set any
18592             styles that CreateWindow might have ignored.
18593           - Added support for Form CreateParent overrides to UpdateStyles()
18594         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18595           CreateParams are now properly overridable
18596         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18597           CreateParams are now properly overridable
18598
18599 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18600
18601         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18602         OnTextBoxChanged.
18603
18604         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18605         recursive invocation that I have not figured out yet.
18606
18607         Reset the timer when not using (it was accumulating).
18608
18609
18610         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18611         user has made changes that require validation.
18612
18613         Reset changing to avoid loops.
18614
18615 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18616
18617         * NumericUpDown.cs: Display value at startup.
18618
18619         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18620         ValidateEditText.
18621
18622         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18623         filled in.  Added some basic parsing of text.
18624
18625         Still missing the OnXXX method overrides, and figuring out the
18626         events that must be emitted.
18627
18628         * UpDownBase.cs: Handle UserEdit on the Text property.
18629         
18630 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18631
18632         * ComboBox.cs:
18633           - Fixes IntegralHeight
18634           - ToString method
18635
18636 2005-01-21  Jackson Harper  <jackson@ximian.com>
18637
18638         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18639         is set so that the page visibility is updated and the tabs are
18640         sized correctly.
18641
18642 2005-01-21  Jackson Harper  <jackson@ximian.com>
18643
18644         * TabControl.cs: Use cliping rectangle for blitting. Give the
18645         theme the clipping rect so we can do clipping while
18646         drawing. Remove some debug code.
18647
18648 2005-01-21  Jackson Harper  <jackson@ximian.com>
18649
18650         * TabPage.cs: Add a new method so tab pages can force the tab
18651         control to recalculate the tab page sizes.
18652         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18653         sizes.
18654
18655 2005-01-20  Jackson Harper  <jackson@ximian.com>
18656
18657         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18658
18659 2005-01-20  Jackson Harper  <jackson@ximian.com>
18660
18661         * TreeView.cs: Set the bounds for nodes properly. They were
18662         getting screwed up when checkboxes were not enabled, but images
18663         were.
18664
18665 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18666
18667         * ListBox.cs:
18668                 - Owner draw support
18669                 - Fixes
18670                 
18671 2005-01-20  Jackson Harper  <jackson@ximian.com>
18672
18673         * XplatUIStructs.cs: More misc keys
18674         * X11Keyboard.cs: Ignore some control keys.
18675
18676 2005-01-20  Jackson Harper  <jackson@ximian.com>
18677
18678         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18679         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18680
18681 2005-01-19  Peter Bartok  <pbartok@novell.com>
18682
18683         * Control.cs: Un-selecting the control when it is loosing focus
18684
18685 2005-01-19  Jackson Harper  <jackson@ximian.com>
18686
18687         * TreeView.cs: Hook up to the text controls leave event so we can
18688         end editing when the users clicks outside the text box.
18689         
18690 2005-01-19  Jackson Harper  <jackson@ximian.com>
18691
18692         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18693         get set in the conversion array.
18694
18695 2005-01-19  Peter Bartok  <pbartok@novell.com>
18696
18697         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18698           focus is properly set
18699         * Button.cs:
18700           - Added missing attributes
18701           - removed styles, those are already set in the base class
18702         * ButtonBase.cs:
18703           - Added missing attributes
18704           - Added clip window styles
18705         * CheckBox.cs: Added missing attributes
18706         * CommonDialog.cs:
18707           - FormParentWindow.CreateParams: Added required clip styles
18708         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18709           also filters modifier keys
18710         * MessageBox.cs:
18711           - Added assignment of Accept and Cancel button to enable Enter
18712             and Esc keys in MessageBox dialogs
18713           - FormParentWindow.CreateParams: Added required clip styles
18714         * RadioButton.cs: Added missing attributes
18715         * TextControl.cs: No longer draws selection if control does not
18716           have focus
18717         * TextBoxBase.cs:
18718           - Now draws simple rectangle around test area to make it obvious
18719             there's a control. This is a hack until we properly support borders
18720           - A few simple fixes to support selections better, now erases selected
18721             text when typing, and resets selection when using movement keys
18722
18723 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18724
18725         * UpDownBase.cs: Added some new properties.
18726
18727         * DomainUpDown.cs: Implement a lot to get my test working.
18728
18729 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18730
18731         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18732
18733 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18734
18735         * OSXStructs (WindowAttributes): Fixed csc complaints
18736
18737 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18738
18739         * XplayUIOSX.cs:
18740           OSXStructs.cs: Initial refactor to move enums and consts into
18741           OSXStructs and use them in the driver for greater readability.
18742
18743 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18744
18745         * XplatUIOSX.cs: Initial support for Standard Cursors.
18746         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18747
18748 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18749
18750         * ComboBox.cs: ability to change style when the ctrl is already
18751         created, missing methods and events, bug fixes, signature fixes
18752
18753 2005-01-19  Peter Bartok  <pbartok@novell.com>
18754
18755         * Cursors.cs (ctor): Added ctor to fix signature
18756
18757 2005-01-18  Peter Bartok  <pbartok@novell.com>
18758
18759         * Button.cs: Implemented DoubleClick event
18760         * ButtonBase.cs:
18761           - Fixed keyboard handling to behave like MS, where the press of
18762             Spacebar is equivalent to a mousedown, and the key release is
18763             equivalent to mouseup. Now a spacebar push will give the same
18764             visual feedback like a mouse click.
18765           - Added missing attributes
18766           - Added ImeModeChanged event
18767           - Added support for generating DoubleClick event for derived classes
18768         * CheckBox.cs:
18769           - Implemented DoubleClick event
18770           - Added missing attributes
18771         * CommonDialog.cs: Added missing attribute
18772         * ContextMenu.cs: Added missing attributes
18773         * RadioButton.cs:
18774           - AutoChecked buttons do not allow to be unselected when clicked
18775             (otherwise we might end up with no selected buttons in a group)
18776           - Added missing attributes
18777           - Implemented DoubleClickEvent
18778         * ThreadExceptionDialog.cs: Enabled TextBox code
18779
18780 2005-01-18  Peter Bartok  <pbartok@novell.com>
18781
18782         * Form.cs: Removed debug output
18783         * Button.cs: Added support for DoubleClick method
18784
18785 2005-01-18  Peter Bartok  <pbartok@novell.com>
18786
18787         * Form.cs:
18788           - Added method to parent window that allows triggering size
18789             calculations when a menu is added/removed
18790           - set_Menu: Cleaned up mess from early days of Form and Control,
18791             now properly triggers a recalc when a menu is added/removed
18792           - Added case to select form itself as focused form if no child
18793             controls exist
18794           - Added PerformLayout call when showing dialog, to ensure properly
18795             placed controls
18796         * Control.cs:
18797           - Select(): Made internal so Form can access it
18798           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18799             status
18800         * Application.cs (Run): Removed hack and calls PerformLayout instead
18801           to trigger calculation when Form becomes visible
18802
18803 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18804
18805         * ComboBox.cs: fixes for ownerdraw
18806
18807 2005-01-18  Peter Bartok  <pbartok@novell.com>
18808
18809         * TextControl.cs:
18810           - Sentinel is no longer static, each Document gets it's own, this
18811             avoids locking or alternatively overwrite problems when more
18812             than one text control is used simultaneously.
18813           - Switched to use Hilight and HilightText brushes for text selection
18814
18815         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18816
18817 2005-01-18  Peter Bartok  <pbartok@novell.com>
18818
18819         * Control.cs:
18820           - Hooked up the following events:
18821                 o ControlAdded
18822                 o ControlRemoved
18823                 o HandleDestroyed
18824                 o ImeModeChanged
18825                 o ParentChanged
18826                 o TabStopChanged
18827                 o Invalidated
18828                 o SystemColorsChanged
18829                 o ParentFontChanged
18830                 o Move
18831           - Removed debug output
18832           - Added a call to the current theme's ResetDefaults when a color change
18833             is detected
18834         * Form.cs: Now setting the proper ImeMode
18835         * Theme.cs: Defined a method to force recreation of cached resources
18836           and rereading of system defaults (ResetDefaults())
18837         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18838
18839 2005-01-17  Peter Bartok  <pbartok@novell.com>
18840
18841         * Control.cs: Added missing attributes
18842
18843 2005-01-17  Jackson Harper  <jackson@ximian.com>
18844
18845         * TreeNode.cs: Implement editing. Add missing properties selected
18846         and visible.
18847         * TreeView.cs: Implement node editing. Also some fixes to use
18848         Invalidate (invalid area) instead of Refresh when selecting.
18849
18850 2005-01-17  Peter Bartok  <pbartok@novell.com>
18851
18852         * Control.cs:
18853           - Implemented InvokeGotFocus() method
18854           - Implemented InvokeLostFocus() method
18855           - Implemented InvokePaint() method
18856           - Implemented InvokePaintBackground() method
18857           - Implemented InvokeClick() method
18858           - Implemented FindForm() method
18859           - Implemented RectangleToClient() method
18860           - Implemented ClientToRectangle() method
18861           - Implemented ResetBackColor() method
18862           - Implemented ResetCursor() method
18863           - Implemented ResetFont() method
18864           - Implemented ResteForeColor() method
18865           - Implemented ResetImeMode() method
18866           - Implemented ResetLeftToRight() method
18867           - Implemented ResetText() method
18868           - Implemented Scale() methods
18869           - Implemented ScaleCore() method
18870           - Implemented Update() method
18871           - Removed unused variables
18872           - Stubbed AccessibilityNotifyClients and
18873             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18874             with those yet)
18875           - Now setting proper default for RightToLeft property
18876           - Fixed bug in SetClientSizeCore that would cause windows to get
18877             really big
18878           - Now sending Click/DoubleClick events
18879           - Now selecting controls when left mouse button is clicked on
18880             selectable control
18881         * AccessibleEvents.cs: Added
18882         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18883         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18884         * XplatUIWin32.cs: Implemented UpdateWindow() method
18885         * XplatUIX11.cs: Implemented UpdateWindow() method
18886         * Form.cs: Removed stray semicolon causing CS0162 warning
18887         * ThemeWin32Classic.cs: Fixed unused variable warnings
18888         * ScrollableControl.cs: Now calls base method for ScaleCore
18889         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18890           style to avoid interference with internal click handler (which is
18891           different than standard Control click handling)
18892         * RadioButton.cs:
18893           - Now unchecks all sibling radio buttons when control is
18894             selected (Fixes #68756)
18895           - Removed internal tabstop variable, using the one inherited from
18896             Control
18897
18898 2005-01-17  Jackson Harper  <jackson@ximian.com>
18899
18900         * NavigateEventArgs.cs: Fix base type.
18901         * LinkLabel.cs: Sig fix
18902         
18903 2005-01-17  Jackson Harper  <jackson@ximian.com>
18904
18905         * TreeView.cs: Only invalidate the effected nodes bounds when
18906         selecting nodes.
18907
18908 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18909
18910         * XplatUIWin32.cs: fixes Win32 marshaling
18911         * XplatUIX11.cs: fixes method signature
18912
18913 2005-01-17  Peter Bartok  <pbartok@novell.com>
18914
18915         * XplatUIX11.cs: Clean up resources when we no longer need them
18916
18917 2005-01-17  Peter Bartok  <pbartok@novell.com>
18918
18919         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18920           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18921           and DestroyCursor() methods.
18922         * Cursor.cs: Partially implemented, now supports standard cursors;
18923           still contains some debug code
18924         * Cursors.cs: Implemented class
18925         * Control.cs:
18926           - WndProc(): Added handling of WM_SETCURSOR message, setting the
18927             appropriate cursor
18928           - Implemented Cursor property
18929           - Replaced break; with return; more straightforwar and possibly
18930             faster
18931           - Now properly setting the result for WM_HELP
18932         * X11Structs.cs: Added CursorFontShape enum
18933         * XplatUIStructs.cs:
18934           - Added StdCursor enum (to support DefineStdCursor() method)
18935           - Added HitTest enum (to support sending WM_SETCURSOR message)
18936         * XplatUIX11.cs:
18937           - Now sends the WM_SETCURSOR message
18938           - Implemented new cursor methods
18939         * XplatUIOSX.cs: Stubbed new cursor methods
18940         * XplatUIWin32.cs:
18941           - Implemented new cursor methods
18942           - Added GetSystemMetrics function and associated enumeration
18943
18944 2005-01-15  Peter Bartok  <pbartok@novell.com>
18945
18946         * Control.cs:
18947           - WndProc(): Now handles EnableNotifyMessage
18948           - SelectNextControl(): Fixed bug where if no child or sibling
18949             controls exist we looped endlessly
18950
18951 2005-01-14  Jackson Harper  <jackson@ximian.com>
18952
18953         * TreeView.cs: Recalculate the tab pages when a new one is added
18954         so that the proper bounding rects are created.
18955
18956 2005-01-14  Jackson Harper  <jackson@ximian.com>
18957
18958         * TreeView.cs: Draw a gray box instead of a grip in the lower
18959         right hand corner when there are both horizontal and vertical
18960         scroll bars.
18961
18962 2005-01-14  Jackson Harper  <jackson@ximian.com>
18963
18964         * Control.cs: When erasing backgrounds use FromHwnd instead of
18965         FromHdc when there is a NULL wparam. This occurs on the X driver.
18966         * XplatUIX11.cs: Set the wparam to NULL.
18967
18968 2005-01-13  Jackson Harper  <jackson@ximian.com>
18969
18970         * PictureBox.cs: Implement missing methods (except ToString, need
18971         to test that on windows) and events. When visibility is changed we
18972         need to redraw the image because the buffers are killed. When size
18973         is changed refresh if the sizemode needs it.
18974
18975 2005-01-13  Peter Bartok  <pbartok@novell.com>
18976
18977         * Control.cs (SelectNextControl): Was using wrong method to select
18978           a control
18979
18980 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18981
18982         * ComboBox.cs: fixes dropstyle
18983
18984 2005-01-13  Peter Bartok  <pbartok@novell.com>
18985
18986         * Form.cs:
18987           - Implemented Select() override
18988           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
18989           - Now sets keyboard focus on startup
18990         * Control.cs (SelectNextControl): Now properly handles directed=true
18991         * TextBoxBase.cs:
18992           - WndProc: Now passes tab key on to base if AcceptTabChar=false
18993           - Added (really bad) focus rectangle (mostly for testing)
18994         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
18995           to enforce redraw on focus changes
18996         * ContainerControl.cs:
18997           - Fixed detection of Shift-Tab key presses
18998           - Fixed traversal with arrow keys
18999         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19000           gonna keep this or if it's complete yet
19001         
19002 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19003
19004         * ComboBox.cs: missing properties, fixes
19005
19006 2005-01-13  Peter Bartok  <pbartok@novell.com>
19007
19008         * Panel.cs (ctor): Setting Selectable window style to off
19009         * Splitter.cs (ctor): Setting Selectable window style to off
19010         * GroupBox.cs (ctor): Setting Selectable window style to off
19011         * Label.cs (ctor): Setting Selectable window style to off
19012
19013 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19014
19015         * UpDownBase.cs (InitTimer): If the timer has been already
19016         created, enable it.
19017
19018         Use a TextBox instead of a Label.
19019
19020 2005-01-12  Jackson Harper  <jackson@ximian.com>
19021
19022         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19023         draw the connecting node lines (when ShowLines is true).
19024         * TreeNode.cs: The nodes index can now be updated. This is used
19025         when a node collection is sorted.
19026         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19027         insert or an existing unsorted node collection can be sorted.
19028         
19029 2005-01-12  Peter Bartok  <pbartok@novell.com>
19030
19031         * ContainerControl.cs: Implemented ProcessDialogKeys()
19032
19033 2005-01-12  Peter Bartok  <pbartok@novell.com>
19034
19035         * Control.cs:
19036           - Implemented SelectNextControl() method
19037           - Several focus related bug fixes
19038           - Fixed Docking calculations to match MS documentation and
19039             behaviour
19040
19041 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19042
19043         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19044         bug fixes
19045
19046 2005-01-12  Peter Bartok  <pbartok@novell.com>
19047
19048         * Control.cs:
19049           - Fixed broken Contains() method
19050           - Implemented GetNextControl() method. Finally. This is the pre-
19051             requisite for focus handling.
19052
19053 2005-01-12  Peter Bartok  <pbartok@novell.com>
19054
19055         * OSXStrucs.cs: Added
19056
19057 2005-01-12  Peter Bartok  <pbartok@novell.com>
19058
19059         * XplatUIWin32.cs:
19060           - Removed PeekMessageFlags
19061           - Implemented SetWindowStyle() method
19062         * XplatUIStructs.cs: Added PeekMessageFlags
19063         * X11Structs: Added missing border_width field to XWindowChanges struct
19064         * XplatUIX11.cs:
19065           - PeekMessage: Now throws exception if flags which are not yet
19066             supported are passed
19067           - Implemented SetWindowStyle() method
19068           - Fixed SetZOrder to handle AfterHwnd properly
19069         * XplatUI.cs: Added SetWindowStyle() method
19070         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19071         * Control.cs:
19072           - Implemented UpdateStyles() method
19073           - Implemented UpdateZOrder() method
19074         * XplatUIOSX.cs: Added SetWindowStyle() stub
19075
19076 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19077
19078         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19079         button mouse).
19080
19081
19082 2005-01-11  Jackson Harper  <jackson@ximian.com>
19083
19084         * TreeView.cs: Still need to draw lines to siblings even if out of
19085         the current node is out of the clip.
19086
19087 2005-01-11  Jackson Harper  <jackson@ximian.com>
19088
19089         * TreeView.cs: When setting the hbar/vbar/grip position use
19090         SetBounds so that perform layout is only called once. Also suspend
19091         and resume layout so layout is only done once for all controls.
19092         - Removed some debug fluff
19093         * SizeGrip.cs: Call base implmentation in overriding methods.
19094         - When visibility is changed the drawing buffers are killed so we
19095         need to redraw.
19096
19097 2005-01-11  Jackson Harper  <jackson@ximian.com>
19098
19099         * TreeView.cs: Calculate the open node count while drawing. This
19100         saves us an entire tree traversal for every paint operation. Use
19101         a member var for the open node count so less vars are passed around.
19102
19103 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19104
19105         * MonthCalendar.cs:
19106         - fixed selection to use mousemove, not mouse polling on timer
19107         * ThemeWin32Classic.cs
19108         - removed redundant unused variable "no_more_content"
19109         
19110 2005-01-11  Peter Bartok  <pbartok@novell.com>
19111
19112         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19113           are pending, so it now calls PeekMessage instead of GetMessage;
19114           implemented a incomplete version of PeekMessage
19115         
19116 2005-01-11  Peter Bartok  <pbartok@novell.com>
19117
19118         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19119           I18n issues
19120         * TextBoxBase.cs: Added sending of TextChanged event
19121
19122 2005-01-10  Jackson Harper  <jackson@ximian.com>
19123
19124         * TreeView.cs: Try not to draw outside the clipping rectangle on
19125         each node element.
19126
19127 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19128
19129         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19130
19131 2005-01-10  Jackson Harper  <jackson@ximian.com>
19132
19133         * TreeView.cs:
19134         - Implement fast scrolling. Now only the newly
19135         exposed nodes are drawn and the old image is moved using the
19136         XplatUI::ScrollWindow method.
19137         - Factor in height of nodes when calculating whether or not the
19138         node is in the clipping rect.
19139
19140 2005-01-10  Jackson Harper  <jackson@ximian.com>
19141
19142         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19143
19144 2005-01-10  Peter Bartok  <pbartok@novell.com>
19145
19146         * Application.cs: Added temporary hack to resolve all our resize
19147           required issues on startup. This will get fixed properly at
19148           some point in the future
19149
19150 2005-01-10  Jackson Harper  <jackson@ximian.com>
19151
19152         * SizeGrip.cs: New internal class that is used as a sizing
19153         grip control...hence the name.
19154
19155 2005-01-10  Peter Bartok  <pbartok@novell.com>
19156
19157         * Control.cs: Implemented proper TabIndex handling, now assigning
19158           a tabindex when a control is added to a container
19159         * GroupBox.cs (ctor): Now sets the Container style bit, required
19160           for Control.GetNextControl()
19161
19162 2005-01-09  Jackson Harper  <jackson@ximian.com>
19163
19164         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19165
19166 2005-01-09  Peter Bartok <pbartok@novell.com>
19167
19168         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19169           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19170           an overload for ScrollWindow to allow only scrolling a rectangle
19171
19172 2005-01-09  Peter Bartok <pbartok@novell.com>
19173
19174         * Form.cs:
19175           - Implemented SetDesktopBounds method
19176           - Implemented SetDesktopLocation method
19177
19178 2005-01-08  Jackson Harper  <jackson@ximian.com>
19179
19180         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19181         the node count has changed, this removes to VScroll::Refresh calls
19182         when drawing.
19183
19184 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19185
19186         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19187
19188 2005-01-07  Jackson Harper  <jackson@ximian.com>
19189
19190         * TreeNode.cs: Just update the single node when it is
19191         checked. Don't refresh after toggling, the Expand/Collapse already
19192         handles this.
19193         * TreeView.cs: Respect clipping a little more when drawing. Try
19194         not to redraw things that don't need to be redrawn. Just hide the
19195         scrollbars when they are no longer needed instead of removing
19196         them, so they don't have to be created again and again.
19197         
19198 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19199
19200         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19201         coordinates to window space to place the caret properly, FIXED.
19202         Implement GetWindowState & SetWindowState
19203
19204 2005-01-06  Peter Bartok <pbartok@novell.com>
19205
19206         * Form.cs:
19207           - Implemented ClientSize property
19208           - Implemented DesktopBounds property
19209           - Implemented DesktopLocation property
19210           - Implemented IsRestrictedWindow property
19211           - Implemented Size property
19212           - Implemented TopLevel property
19213           - Implemented FormWindowState property
19214         * Control.cs:
19215           - Implemented GetTopLevel() method
19216           - Implemented SetTopLevel() method
19217         * X11Structs.cs (Atom):
19218           - Added AnyPropertyType definition
19219           - Added MapState definiton and updated XWindowAttribute struct
19220         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19221         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19222         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19223         * XplatUIWin32.cs:
19224           - Implemented GetWindowState() and SetWindowState() methods
19225           - Fixed Win32GetWindowLong return type
19226         * XplatUIX11.cs:
19227           - Introduced central function for sending NET_WM messages
19228           - Implemented GetWindowState() and SetWindowState() methods
19229         * TextBoxBase.cs (set_Lines):
19230           - Now uses Foreground color for text added via Text property (Duh!)
19231           - Added code to remember programmatically requested size (fixes
19232             behaviour when Multiline is set after Size)
19233           - Added AutoSize logic
19234
19235 2005-01-06  Jackson Harper  <jackson@ximian.com>
19236
19237         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19238
19239 2005-01-06  Jackson Harper  <jackson@ximian.com>
19240
19241         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19242         set to less then 0.
19243
19244 2005-01-06  Jackson Harper  <jackson@ximian.com>
19245
19246         * ScrollableControl.cs: Lazy init the scrollbars.
19247         
19248 2005-01-06  Jackson Harper  <jackson@ximian.com>
19249
19250         * Theme.cs: Speed up getting pens and solid brushes, by using
19251         their ARGB as a hash instead of tostring and not calling Contains.
19252
19253 2005-01-06  Peter Bartok <pbartok@novell.com>
19254
19255         * Form.cs:
19256           - Implemented OnActivated and OnDeactivate event trigger
19257           - Implemented Activate() method
19258           - Fixed ShowDialog() to activate the form that was active before
19259             the dialog was shown
19260         * XplatUIX11.cs:
19261           - Added global active_window var that tracks the currently active
19262             X11 window
19263           - Now always grabs Property changes from the root window to always
19264             catch changes on the active window property
19265           - Added code to PropertyNotify handler to send Active/Inactive
19266             messages when state changes. This puts X11 and Win32 en par on
19267             WM_ACTIVATE notifications (except for double notifications when
19268             the user clicks away from our modal window to another one of our
19269             windows)
19270
19271 2005-01-05  Jackson Harper  <jackson@ximian.com>
19272
19273         * ImageList.cs: Implment ctor
19274
19275 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19276
19277         * XplatUIOSX.cs: Implement Activate/SetTopmost
19278
19279 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19280
19281         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19282
19283 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19284
19285         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19286
19287 2005-01-05  Peter Bartok <pbartok@novell.com>
19288
19289         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19290           XplatUIOSX.cs: Added GetActive method to return the currently
19291           active window for the application (or null, if none is active)
19292         * Form.cs:
19293           - Implemented ActiveForm
19294           - Commented out owner assignment for modal dialogs (causes problems
19295             on Win32, since the owner will be disabled)
19296           - Reworked some Active/Focus handling (still incomplete)
19297         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19298           (causes problems on Win32, since the owner will be disabled)
19299         * IWin32Window: Added ComVisible attribute
19300
19301 2005-01-05  Peter Bartok <pbartok@novell.com>
19302
19303         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19304           required XplatUI functions.
19305
19306 2005-01-05  Peter Bartok <pbartok@novell.com>
19307
19308         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19309           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19310           to implement focus and activation handling; still incomplete and
19311           with debug output
19312
19313 2005-01-04  Peter Bartok <pbartok@novell.com>
19314
19315         * TextBoxBase.cs: Changed access level for Document property to
19316           match switch to internal for TextControl
19317
19318 2005-01-04  Peter Bartok <pbartok@novell.com>
19319
19320         * AccessibleObject: Added ComVisible attribute
19321
19322 2005-01-04  Jackson Harper  <jackson@ximian.com>
19323
19324         * X11Keyboard.cs: Remove unneeded var.
19325
19326 2005-01-04  Jackson Harper  <jackson@ximian.com>
19327
19328         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19329         but PAINT.
19330         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19331         ClientMessage. This makes apps exit cleanly (more often).
19332         
19333 2005-01-04  Jackson Harper  <jackson@ximian.com>
19334
19335         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19336         handling focus, return correct colors and fonts,
19337         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19338         handle selection, horizontal scrolling, and mouse interaction.
19339
19340 2005-01-04  Peter Bartok <pbartok@novell.com>
19341
19342         * ICommandExecutor.cs: Added
19343         * IDataGridColumnStyleEditingNotificationService.cs: Added
19344         * IFeatureSupport.cs: Added
19345         * IFileReaderService.cs: Added
19346         * IDataObject.cs: Added ComVisible attribute
19347         * AmbientProperties.cs: Added
19348         * BaseCollection.cs: Added missing attributes
19349         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19350         * BaseCollection.cs: Added missing attributes
19351         * Binding.cs: Added TypeConverter attribute
19352         * BindingContext.cs: Added DefaultEvent attribute
19353         * BindingsCollection.cs: Added DefaultEvent attribute
19354         * Button.cs: Added DefaultValue attribute
19355         * DragEventArgs.cs: Added ComVisible attribute
19356         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19357         * KeyEventArgs.cs: Added ComVisible attribute
19358         * KeyPressEventArgs.cs: Added ComVisible attribute
19359         * MouseEventArgs.cs: Added ComVisible attribute
19360         * NavigateEventArgs.cs: Added
19361         * NavigateEventHandler.cs: Added
19362         * FeatureSupport.cs: Added
19363         * OSFeature.cs: Added
19364         * Theme.cs: Added abstract Version property to support OSFeature
19365         * ThemeWin32Classic.cs: Added Version property to
19366           support OSFeature.Themes
19367         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19368           the proper styles to avoid background drawing are set, also doesn't
19369           match MS signature
19370         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19371         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19372         * ScrollEventArgs.cs: Added ComVisible attribute
19373         * SplitterEventArgs.cs: Added ComVisible attribute
19374         * AccessibleSelection.cs: Added Flags attribute
19375         * Appearance.cs: Added ComVisible attribute
19376         * Border3DSide.cs: Added ComVisible attribute
19377         * Border3DStyle.cs: Added ComVisible attribute
19378         * BorderStyle.cs: Added ComVisible attribute
19379         * DragAction.cs: Added ComVisible attribute
19380         * ErrorBlinkStyle.cs: Added
19381         * ScrollEventType.cs: Added ComVisible attribute
19382         * AnchorStyles.cs: Added Editor attribute
19383         * DockStyle.cs: Added Editor attribute
19384         * HorizontalAlignment.cs: Added ComVisible attribute
19385         * HelpEventArgs.cs: Added ComVisible attribute
19386         * PaintEventArgs.cs: Added IDisposable
19387
19388 2005-01-04  Peter Bartok <pbartok@novell.com>
19389
19390         * TextControl.cs: Switched Line, LineTag and Document classes to
19391           internal
19392
19393 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19394
19395         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19396         Simple mode, fixes, IntegralHeight, etc.
19397
19398 2005-01-04  Peter Bartok <pbartok@novell.com>
19399
19400         * TextBoxBase.cs: Using proper font variable now
19401
19402 2005-01-04  Peter Bartok <pbartok@novell.com>
19403
19404         * Form.cs (ShowDialog): Set parent to owner, if provided
19405         * GroupBox.cs: Removed unused vars
19406         * TextControl.cs:
19407           - Added GetHashCode() for Document and LineTag classes
19408           - Removed unused variables
19409           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19410             to allow translation between continuous char position and line/pos
19411         * CheckBox.cs: Removed vars that are provided by base class
19412         * RadioButton.cs: Removed vars that are provided by base class, added
19413           new keyword where required
19414         * LinkLabel.cs: Added new keyword where required
19415         * Control.cs (WndProc): Removed unused variable
19416         * TextBoxBase.cs:
19417           - Finished SelectionLength property
19418           - Implemented SelectionStart property
19419           - Implemented Text property
19420           - Removed unused vars
19421         * MessageBox.cs: Added new keyword where required
19422         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19423           WndProc signature
19424         * MenuAPI.cs: Added new keyword where required
19425         * ButtonBase.cs: Removed vars that are provided by base class, added
19426           new keyword where required
19427         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19428           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19429           into this)
19430         * Application.cs (Run): Now triggers the ThreadExit event
19431         * CommonDialog.cs: Added new keyword where required; now properly sets
19432           parent (owner) for dialog
19433         * XplatUIX11.cs: Commented out unused vars
19434         * StatusBar.cs: Fixed signature for Text property
19435         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19436
19437 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19438
19439         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19440         TrackBar.cs, MonthCalendar.cs: remove unused vars
19441
19442 2005-01-03  Jackson Harper  <jackson@ximian.com>
19443
19444         * ThemeWin32Classic.cs:
19445         * X11Keyboard.cs: Remove unused vars.
19446
19447 2005-01-03  Peter Bartok  <pbartok@novell.com>
19448
19449         * TextBox.cs:
19450           - set_Text: Tied into TextControl
19451           - set_TextAlignment: Tied into TextControl
19452         * TextControl.cs:
19453           - Added alignment properties and implemented alignment handling
19454             and drawing (still has a bug, not generating proper expose events)
19455           - Added new Line() constructor to allow passing the line alignment
19456           - Fixed selection setting, properly handling end<start now
19457           - Added aligment considerations to RecalculateDocument()
19458         * TextBoxBase.cs:
19459           - Now properly enforces control height for single line controls
19460           - Added support for CharacterCasing
19461           - Added IsInputKey override
19462           - Fixed Keys.Enter logic
19463           - Added SetBoundsCore override
19464           - Fixed mouse selection handling
19465
19466 2005-01-03  Jackson Harper  <jackson@ximian.com>
19467
19468         * TreeView.cs:
19469           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19470           - Checkboxes are always aligned to the bottom of the node,
19471           regardless of item height.
19472           - Use the node bounds to draw the text so we can center it when
19473           the item height is greater then the font height.
19474           - Node::Bounds are only the text part of the node.
19475         * TreeNode.cs: New method to combine collapsing and unchecking all
19476           nodes recursively.
19477
19478 2005-01-02  Jackson Harper  <jackson@ximian.com>
19479
19480         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19481         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19482         tree when a check is changed. TODO: Only refresh the checked node.
19483
19484 2004-12-30  Jackson Harper  <jackson@ximian.com>
19485
19486         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19487         * TreeNode.cs: When collapsing make sure to never collapse the
19488         root node.
19489
19490 2004-12-29  Jackson Harper  <jackson@ximian.com>
19491
19492         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19493         
19494 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19495
19496         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19497
19498 2004-12-28  Peter Bartok  <pbartok@novell.com>
19499
19500         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19501           not yet assigned
19502
19503 2004-12-28  Peter Bartok  <pbartok@novell.com>
19504
19505         * Control.cs (WndProc): Added WM_HELP handler, now generates
19506           HelpRequested event
19507         * Form.cs: Added HelpButton property and required support code
19508         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19509
19510 2004-12-28  Peter Bartok  <pbartok@novell.com>
19511
19512         * CommonDialog.cs:
19513           - Made DialogForm.owner variable internal
19514           - Added check to ensure owner form is set before setting
19515             owner properties in CreateParams
19516
19517 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19518
19519         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19520           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19521           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19522           system to support borderless/titleless windows (implements menus).
19523           Fix GetWindowPos.  Implement initial background color support for
19524           views.
19525
19526 2004-12-28  Peter Bartok  <pbartok@novell.com>
19527
19528         * Form.cs (get_CreateParams): Make sure we have an owner before using
19529           the owner variable. Implement proper default if no owner exists
19530
19531 2004-12-28  Peter Bartok  <pbartok@novell.com>
19532
19533         * In preparation for making Managed.Windows.Forms the default build target
19534           for System.Windows.Forms, the following stubbed files were added.
19535           Dialogs are currently being implemented by contributors and are only
19536           short-term place holders.
19537         * ColorDialog.cs: Initial check-in (minmal stub)
19538         * DataGrid.cs: Initial check-in (minimal stub)
19539         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19540         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19541         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19542         * FontDialog.cs: Initial check-in (minimal stub)
19543         * FileDialog.cs: Initial check-in (minimal stub)
19544         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19545         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19546         * OpenFileDialog: Initial check-in (minimal stub)
19547         * IComponentEditorPageSite.cs: Initial check-in
19548         * Splitter.cs: Initial check-in (for Jackson)
19549         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19550         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19551         * TextBox.cs: Initial check-in; still needs some wiring to
19552           TextControl backend
19553         * Form.cs: Implemented ControlBox property
19554         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19555         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19556         * TextControl.cs: Added selection functionality; added todo header
19557         * TextBoxBase.cs:
19558           - Implemented Lines property
19559           - Implemented TextHeight property
19560           - Implemented SelectedText property
19561           - Implemented SelectionLength property
19562           - Implemented SelectAll method
19563           - Implemented ToString method
19564           - Removed and cleaned up some debug code
19565           - Implemented (still buggy) mouse text selection
19566
19567 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19568
19569         * ComboBox.cs: Complete DropDownList implementation, fixes.
19570
19571 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19572
19573         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19574         * ComboBoxStyle.cs: ComboBoxStyle enum
19575         * ComboBox.cs: Initial work on ComboBox control
19576
19577 2004-12-21  Peter Bartok  <pbartok@novell.com>
19578
19579         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19580           forward so that anything that creates a window gets the default,
19581           also no longer uses Visible property in CreateParams to avoid
19582           walking up the parent chain and possibly get the wrong visible
19583           status. Fixed IsVisible to no longer walk up to the parent.
19584
19585 2004-12-21  Peter Bartok  <pbartok@novell.com>
19586
19587         * Form.cs (ShowDialog): Unset modality for the proper window
19588  
19589 2004-12-20  Peter Bartok  <pbartok@novell.com>
19590
19591         * CommonDialog.cs: Initial check-in
19592
19593 2004-12-20  Peter Bartok  <pbartok@novell.com>
19594
19595         * Control.cs (Visible): Now uses the parent window instead of the
19596           client area window for the property
19597
19598         * Form.cs
19599           - ShowDialog(): Now uses the proper window for modality
19600           - The default visibility state for the form parent is now false. This
19601             will prevent the user from seeing all the changes to the form and
19602             its controls before the application hits Application.Run()
19603           - Removed some stale commented out code
19604
19605         * NativeWindow.cs:
19606           - Added FindWindow() method to have a method to check for existence
19607             of a window handle
19608           - Added ability to override default exception handling (for example
19609             when debugging with VS.Net; to do this the ExternalExceptionHandler
19610             define must be set
19611           - Removed some useless debug output
19612
19613         * XplatUIX11.cs:
19614           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19615             not working as expected
19616           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19617             property to allow switching back to the modal window if focus is
19618             given to another one of our windows (Application Modal)
19619           - Now only sets override_redirect if we create a window
19620             without WS_CAPTION
19621           - Moved EventMask selection before mapping of newly created window
19622             so we can catch the map event as well
19623           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19624           - Added various Atom related DllImports
19625           - Implemented Exit() method
19626           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19627             in the CreateParams
19628
19629         * MessageBox.cs: Now properly deals with the FormParent window by
19630           providing an override the FormParent CreateParams property to
19631           set as POPUP instead of OVERLAPPED window.
19632
19633 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19634
19635         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19636         Minor code cleanup.
19637
19638 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19639         
19640         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19641
19642 2004-12-18  Peter Bartok  <pbartok@novell.com>
19643
19644         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19645           implementing SetModal() method
19646
19647 2004-12-18  Peter Bartok  <pbartok@novell.com>
19648
19649         * X11Structs.cs (XGCValues): Fixed type of function element
19650         * XplatUI.cs: Added ScrollWindow() method
19651         * XplatUIDriver.cs: Added ScrollWindow() abstract
19652         * XplatUIWin32.cs: Implemented ScrollWindow() method
19653         * XplatUIX11.cs: Implemented ScrollWindow() method
19654         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19655
19656 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19657
19658         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19659         Some more keyboard support (INCOMPLETE)
19660
19661 2004-12-17  Peter Bartok  <pbartok@novell.com>
19662
19663         * TextControl.cs:
19664         - Added color attribute to line tags.
19665         - Added color argument to all functions dealing with tags
19666         - Added color argument support to various functions
19667         - Fixed miss-calculation of baseline/shift in certain circumstances
19668
19669         * TextBoxBase.cs: Added new color option to test code
19670
19671 2004-12-17  Jackson Harper  <jackson@ximian.com>
19672
19673         * TreeNode.cs:
19674         * MonthCalendar.cs: Signature fixes
19675
19676 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19677
19678         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19679         keyboard event moved it.  Create a new graphics context for each paint resolves this
19680
19681 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19682
19683         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19684         Make caret exist and go blink blink.  Initial keyboard support.
19685         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19686         works.
19687
19688 2004-12-17  Jackson Harper  <jackson@ximian.com>
19689
19690         * XplatUIStructs.cs: Updated set of virtual keycodes.
19691         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19692
19693 2004-12-17  Jackson Harper  <jackson@ximian.com>
19694
19695         * XplatUIX11.cs: Prune old keyboard code.
19696
19697 2004-12-17  Jackson Harper  <jackson@ximian.com>
19698
19699         * XplatUIX11.cs: When generating mouse wparams get the modifier
19700         keys from the ModifierKeys property.
19701
19702 2004-12-17  Jackson Harper  <jackson@ximian.com>
19703
19704         * X11Keyboard.cs: Send up/down input when generating
19705         messages. Remove some unused vars.
19706
19707 2004-12-17  Jackson Harper  <jackson@ximian.com>
19708
19709         * TabControl.cs:
19710         * TreeView.cs: get rid of warnings.
19711
19712 2004-12-17  Jackson Harper  <jackson@ximian.com>
19713
19714         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19715
19716 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19717
19718         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19719           CheckedListBox.cs: Implementation
19720
19721 2004-12-17  Peter Bartok  <pbartok@novell.com>
19722
19723         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19724
19725 2004-12-16  Peter Bartok  <pbartok@novell.com>
19726
19727         * TextControl.cs:
19728           - InsertCharAtCaret(): Fixed start pos fixup
19729           - CaretLine_get: No longer derives the line from the tag, the tag
19730             could be stale if lines in the document have been added or deleted
19731           - RebalanceAfterDelete(): Fixed bug in balancing code
19732           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19733           - Line.Streamline(): Now can also elminate leading empty tags
19734           - DumpTree(): Added a few more tests and prevented exception on
19735             uninitialized data
19736           - Added Debug section for Combining lines
19737           - Delete(): Now copies all remaining properties of a line
19738           
19739         * TextBoxBase.cs:
19740           - Left mousebutton now sets the caret (and middle button still acts
19741             as formatting tester, which must go away soon)
19742           - Added Debug section for Deleting/Combining lines
19743           - Fixed calculations for UpdateView after Combining lines
19744
19745 2004-12-16  Peter Bartok  <pbartok@novell.com>
19746
19747         * TextControl.cs: Now properly aligns text on a baseline, using the
19748           new XplatUI.GetFontMetrics() method. Simplified several calculations
19749         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19750           defined
19751
19752 2004-12-16  Peter Bartok  <pbartok@novell.com>
19753
19754         * XplatUI.cs: Added GetFontMetrics() method
19755         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19756         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19757           into libgdiplus, our private GetFontMetrics function
19758         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19759         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19760
19761 2004-12-16  Jackson Harper  <jackson@ximain.com>
19762
19763         * XplatUIStruct.cs: Add enum for dead keys
19764         * X11Keyboard.cs: Map and unmap dead keys.
19765
19766 2004-12-16  Jackson Harper  <jackson@ximian.com>
19767
19768         * X11Keyboard.cs: Detect and use the num lock mask.
19769
19770 2004-12-16  Peter Bartok  <pbartok@novell.com>
19771
19772         * Control.cs (CreateGraphics): Added check to make sure the
19773           handle of the window exists before calling Graphics.FromHwnd()
19774
19775 2004-12-16  Peter Bartok  <pbartok@novell.com>
19776
19777         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19778           contains a lot of code that's not supposed to be there for the
19779           real thing, but required for developing/testing the textbox
19780           backend.
19781
19782 2004-12-16  Peter Bartok  <pbartok@novell.com>
19783
19784         * TextControl.cs:
19785         - Fixed Streamline method
19786         - Added FindTag method to Line
19787         - Added DumpTree method for debugging
19788         - Added DecrementLines() method for deleting lines
19789         - Fixed UpdateView to update the cursor to end-of-line on single-line
19790           updates
19791         - Added PositionCaret() method
19792         - Fixed MoveCaret(LineDown) to move into the last line, too
19793         - Added InsertChar overload
19794         - Fixed InsertChar tag offset calculations
19795         - Added DeleteChar() method
19796         - Added Combine() method for folding lines
19797         - Fixed Delete() method, no longer allocates wasted Line object and
19798           now copies all properties when swapping nodes
19799         - Delete() method now updates document line counter
19800
19801 2004-12-15  Jackson Harper  <jackson@ximian.com>
19802
19803         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19804         * X11Keyboard.cs: Expose the currently selected modifier keys
19805         through a property.
19806
19807 2004-12-15  Peter Bartok  <pbartok@novell.com>
19808
19809         * TextControl.cs: Initial check-in. Still incomplete
19810
19811 2004-12-15  Jackson Harper  <jackson@ximian.com>
19812
19813         * TreeNode.cs:
19814         * TreeView.cs: Fix build on csc (second time today ;-))
19815
19816 2004-12-15  Jackson Harper  <jackson@ximian.com>
19817
19818         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19819         is calculated and use this for click testing.
19820         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19821
19822 2004-12-15  Jackson Harper  <jackson@ximian.com>
19823
19824         * TreeView.cs: Pass the nodes image index to the image list when
19825         drawing that image.
19826
19827 2004-12-15  Jackson Harper  <jackson@ximian.com>
19828
19829         * X11Keyboard.cs: Set messages hwnd.
19830         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19831         post_message calls.
19832
19833 2004-12-15  Jackson Harper  <jackson@ximian.com>
19834
19835         * X11Keyboard.cs: Fix to compile with csc.
19836         
19837 2004-12-15  Jackson Harper  <jackson@ximian.com>
19838
19839         * X11Structs.cs: Add key mask values
19840         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19841         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19842         down/up foo into WM_CHAR foo
19843         * KeyboardLayouts.cs: Common keyboard layouts
19844         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19845         post messages into the main queue.
19846
19847 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19848
19849         * Button.cs: implement ProcessMnemonic
19850         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19851           brushes everytime
19852         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19853         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19854
19855 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19856         
19857         * MonthCalendar.cs: Implemented click-hold for next/previous month
19858           and date selection
19859           
19860 2004-12-11  Peter Bartok  <pbartok@novell.com>
19861
19862         * X11Structs.cs:
19863           - Added XKeyboardState (moved from XplatUIX11.cs)
19864           - Added XCreateGC related enums and structures
19865           - Added GXFunction for XSetFunction
19866
19867         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19868
19869         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19870           CaretVisible() calls
19871
19872         * ToolTip.cs: Added code to prevent stealing focus from app windows
19873
19874         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19875           DestroyCaret, SetCaretPos and CaretVisible)
19876
19877         * XplatUIX11.cs:
19878           - Added implementation for caret functions
19879           - Moved hover variables into a struct, to make it a bit easier
19880             on the eyes and to debug
19881           - Removed XKeyboardState (moved to XplatUIX11.cs)
19882           - Moved Keyboard properties into the properties region
19883
19884         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19885           call to get a graphics context for our control
19886
19887         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19888
19889         * TreeView.cs: Fixed bug. No matter what color was set it would always
19890           return SystemColors.Window
19891
19892         * XplatUIWin32.cs: Implemented caret overrides
19893
19894 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19895
19896         * ListBox.cs: fire events, implement missing methods and properties,
19897         sorting.
19898
19899 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19900
19901         * MonthCalendar.cs: invalidation bug fixing
19902         * ThemeWin32Classic.cs: paint fixing
19903
19904 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19905
19906         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19907         prepare the CGContextRef there now.
19908
19909 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19910
19911         * MonthCalendar.cs:
19912           - optimisationL only invalidate areas that have changed
19913         * ThemeWin32Classic.cs:
19914           - only paint parts that intersect with clip_area
19915
19916 2004-12-09  Peter Bartok  <pbartok@novell.com>
19917
19918         * Application.cs: Undid changes from r37004 which cause problems
19919         on X11
19920
19921 2004-12-09  Ravindra  <rkumar@novell.com>
19922
19923         * ToolBar.cs: Added support for displaying ContextMenu
19924         attached to a button on ToolBar.
19925         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
19926         property.
19927
19928 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19929
19930         * Label.cs: autosize works in text change and removes unnecessary
19931         invalidate
19932
19933 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19934
19935         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
19936         remove warnings
19937
19938 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
19939
19940         * XplatUIOSX.cs: Added mouse move/click/grab support
19941         Remove some debugging WriteLines not needed anymore.
19942         Add window resizing/positioning.
19943         Fix visibility on reparenting.
19944
19945 2004-12-08  Peter Bartok  <pbartok@novell.com>
19946
19947         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
19948
19949 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
19950
19951         * XplatUIOSX.cs: Initial checkin
19952         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
19953
19954 2004-12-03  Ravindra <rkumar@novell.com>
19955
19956         * ListView.cs: Added some keybindings and fixed scrolling.
19957         ScrollBars listen to ValueChanged event instead of Scroll
19958         Event. This would let us take care of all changes being
19959         done in the scrollbars' values programmatically or manually.
19960         * ListView.cs (CanMultiselect): Added a check for shift key.
19961         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
19962         * ListViewItem.cs (Clone): Fixed. We need to make a copy
19963         of ListViewSubItemCollection as well.
19964
19965 2004-12-06  Peter Bartok <pbartok@novell.com>
19966
19967         * Control.cs (Parent): Added check and exception to prevent
19968         circular parenting
19969
19970 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
19971
19972         * ListBox.cs: implemented clipping, selection single and multiple,
19973         bug fixing
19974
19975 2004-12-03  Ravindra <rkumar@novell.com>
19976
19977         * ListView.cs (ListView_KeyDown):
19978         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
19979         when CTRL key is pressed.
19980         * ListViewItem.cs (Selected): Fixed setting the property.
19981
19982 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19983
19984         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
19985
19986         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
19987         MinimizeBox, ShowInTaskbar, TopMost properties.
19988
19989         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
19990         will be implemented).
19991
19992 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
19993
19994         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
19995
19996         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
19997         tests.
19998         
19999         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20000         
20001         * TreeView.cs: BackColor is Colors.Window.
20002
20003 2004-12-01  Jackson Harper  <jackson@ximian.com>
20004
20005         * TreeView.cs: When resizing the tree if the user is making it
20006         smaller we don't get expose events, so we need to handle adding
20007         the horizontal scrollbar in the size changed handler as well as
20008         the expose handler.
20009
20010 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20011
20012         * DrawItemState.cs: fixes wrong enum values
20013
20014 2004-12-01  Jackson Harper  <jackson@ximian.com>
20015
20016         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20017
20018 2004-12-01  Jackson Harper  <jackson@ximian.com>
20019
20020         * NodeLabelEditEventArgs.cs:
20021         * NodeLabelEditEventHandler.cs:
20022         * OpenTreeNodeEnumerator.cs:
20023         * TreeNode.cs:
20024         * TreeNodeCollection.cs:
20025         * TreeView.cs:
20026         * TreeViewAction.cs:
20027         * TreeViewCancelEventArgs.cs:
20028         * TreeViewCancelEventHandler.cs:
20029         * TreeViewEventArgs.cs:
20030         * TreeViewEventHandler.cs: Initial implementation.
20031
20032 2004-12-01  Ravindra <rkumar@novell.com>
20033
20034         * ListView.cs (CalculateListView): Fixed scrolling related
20035         calculations. Also, removed some debug statements from other
20036         places.
20037         * ListViewItem.cs: Changed access to 'selected' instance variable
20038         from private to internal.
20039         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20040
20041 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20042
20043         * ThemeWin32Classic.cs: remove cache of brush and pens for
20044         specific controls and use the global system, fixes scrollbutton
20045         bugs (for small sizes, disabled, etc)
20046         
20047         * ScrollBar.cs: does not show the thumb for very small controls
20048         (as MS) and allow smaller buttons that the regular size
20049
20050 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20051
20052         * UpDownBase.cs: Add abstract methods for the interface.
20053         Add new virtual methods (need to be hooked up to TextEntry when it
20054         exists).
20055         Add override methods for most features.
20056         Computes the size, forces the height of the text entry.
20057
20058         * NumericUpDown.cs: Put here the current testing code.
20059
20060         * Set eol-style property on all files that do not have mixed line
20061         endings, to minimize the future problems.  There are still a few
20062         files with mixed endings, and someone should choose whether they
20063         want to move it or not.
20064
20065 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20066
20067         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20068         System.Colors
20069         
20070 2004-11-30  Ravindra <rkumar@novell.com>
20071
20072         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20073         drawing and replaced use of SystemColors by theme colors.
20074         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20075         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20076         same ListViewItem is being added more than once.
20077
20078 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20079
20080         * MonthCalendar.cs:
20081           - ControlStyles love to make the control not flicker
20082           
20083 2004-11-30  Peter Bartok  <pbartok@novell.com>
20084
20085         * CharacterCasing.cs: Added
20086
20087 2004-11-29  Peter Bartok  <pbartok@novell.com>
20088
20089         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20090           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20091           I am removing these files as they conflict with already completed
20092           work. While it is fantastic to get contributions to MWF, I
20093           respectfully ask that everyone please coordinate their contributions
20094           through mono-winforms-list or #mono-winforms at this time. We're
20095           explicitly avoiding stubbing and don't want controls that don't have
20096           their basic functionality implemented in svn. Please also see
20097           http://www.mono-project.com/contributing/winforms.html
20098
20099
20100 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20101
20102         * Application.cs (ModalRun): Don't hang after exit.
20103
20104         * Theme.cs: New TreeViewDefaultSize property.
20105
20106         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20107         with less hardcoded SystemColors constant.
20108         Implemented TreeViewDefaultSize.
20109
20110         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20111         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20112
20113
20114 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20115
20116         * MonthCalendar.cs:
20117           - Fix NextMonthDate and PrevMonthDate click moving calendar
20118
20119 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20120
20121         * MonthCalendar.cs:
20122           - Fix usage of ScrollChange Property when scrolling months
20123
20124 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20125
20126         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20127          - Fixes menu destroying
20128          - Support adding and removing items on already created menus
20129
20130 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20131
20132         * MonthCalendar.cs:
20133           - Re-worked all bolded dates handling to match win32
20134         * ThemeWin32Classic.cs:
20135           - Fixed rendering with bolded dates
20136
20137 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20138
20139         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20140         - Horizontal scroolbar
20141         - Multicolumn
20142         - Fixes
20143
20144
20145 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20146
20147         * MonthCalendar.cs:
20148           - Fix Usage of MaxSelectionCount from SelectionRange
20149           - Fixed Shift + Cursor Selection
20150           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20151           - Fixed normal cursor selection to be compat with win32
20152           - Fixed Shift + Mouse Click selection
20153
20154 2004-11-24  Peter Bartok <pbartok@novell.com>
20155
20156         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20157         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20158         * XplatUIX11.cs:
20159           - CreatedKeyBoardMsg now updates keystate with Alt key
20160           - Added workaround for timer crash to CheckTimers, Jackson will
20161             develop a proper fix and check in later
20162           - Implemented DispatchMessage
20163           - Removed calling the native window proc from GetMessage (call
20164             now moved to DispatchMessage)
20165
20166         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20167           the keydata (Fixes bug #69831)
20168
20169         * XplatUIWin32.cs:
20170           - (DispatchMessage): Switched to return IntPtr
20171           - Added DllImport for SetFocus
20172
20173 2004-11-24  Ravindra <rkumar@novell.com>
20174
20175         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20176         background drawing.
20177         * ListViewItem.cs: Fixed various properties, calculations
20178         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20179         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20180         and some internal properties. Fixed MouseDown handler and Paint
20181         method.
20182
20183 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20184
20185         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20186
20187 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20188
20189         * ContainerControl.cs: correct accidental check in of local changes
20190
20191 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20192
20193         * ThemeWin32Classic.cs:
20194                 - Fixed Drawing Last month in grid (sometimes not showing)
20195         * MonthCalendar.cs:
20196                 - Fixed title width calculation bug (makeing title small)
20197
20198 2004-11-23  Peter Bartok <pbartok@novell.com>
20199
20200         * XplatUIX11.cs:
20201           - Added generation of WM_MOUSEHOVER event
20202           - Added missing assignment of async_method atom
20203           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20204
20205 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20206
20207         * ThemeWin32Classic.cs:
20208                 - Fixed Drawing of today circle when showtodaycircle not set
20209                 - fixed drawing of first and last month in the grid (gay dates)
20210         * MonthCalendar.cs:
20211                 - Fixed Drawing of today circle
20212                 - Fixed drawing of grady dates
20213                 - Fixed HitTest for today link when ShowToday set to false
20214                 - Fixed DefaultSize to obey ShowToday
20215
20216 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20217
20218         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20219         * System.Windows.Forms/Theme.cs
20220         * MonthCalendar.cs: added for MonthCalendar
20221         * SelectionRange.cs: added for MonthCalendar
20222         * Day.cs: added for MonthCalendar: added for MonthCalendar
20223         * DateRangeEventArgs.cs: added for MonthCalendar
20224         * DateRangeEventHandler.cs: added for MonthCalendar
20225
20226 2004-11-22  Ravindra <rkumar@novell.com>
20227
20228         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20229         property.
20230
20231 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20232
20233         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20234         event handler.
20235         
20236         * NumericUpDown.cs: Added new implementation.
20237         * UpDownBase.cs: Added new implementation.
20238
20239         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20240         implementations.
20241         
20242         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20243         implementations.
20244
20245         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20246         methods.
20247
20248 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20249
20250         * Timer.cs  (Dispose): Should call the base dispose when
20251         overriding.
20252
20253 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20254
20255         * ScrollBar.cs: updates thumb position when max, min or increment
20256         is changed
20257
20258 2004-11-21  Ravindra <rkumar@novell.com>
20259
20260         * ListView.cs: Implemented item selection, activation and
20261         column header style. Fixed properties to do a redraw, if
20262         required. Added support for MouseHover, DoubleClick, KeyDown
20263         and KeyUp event handling and some minor fixes.
20264         * ListViewItem.cs: Fixed constructor.
20265         * ThemeWin32Classic.cs: Improved drawing for ListView.
20266
20267 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20268
20269         * ThemeWin32Classic.cs: initial listbox drawing code
20270         * DrawMode.cs: new enumerator
20271         * ListControl.cs: stubbed class
20272         * ListBox.cs: initial implementation
20273         * Theme.cs: new methods definitions
20274         * SelectionMode.cs: new enumerator
20275
20276 2004-11-17  Peter Bartok  <pbartok@novell.com>
20277
20278         * XplatUIWin32.cs: Added double-click events to the class style
20279         * Control.cs (WndProc):
20280           - Added handling of click-count to MouseDown/ MouseUp events.
20281           - Added handling of middle and right mouse buttons
20282           - Removed old debug code
20283
20284 2004-11-17  Jackson Harper  <jackson@ximian.com>
20285
20286         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20287
20288 2004-11-17  Ravindra <rkumar@novell.com>
20289
20290         * ListView.cs: Added event handling for MouseMove/Up/Down.
20291         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20292         * ThemeWin32Classic.cs: We need to clear the graphics context and
20293         draw column header in a proper state.
20294
20295
20296 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20297
20298         *  Menu.cs: fixes signature
20299
20300 2004-11-16  Peter Bartok  <pbartok@novell.com>
20301
20302         * XplatUIX11.cs (GetMessage): Implemented generation of
20303           double click mouse messages
20304
20305 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20306
20307         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20308         not by menu
20309
20310 2004-11-11  Peter Bartok  <pbartok@novell.com>
20311
20312         * HandleData.cs: Added Visible property
20313         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20314           HandleData
20315         * XplatUIX11.cs: Removed old debug leftovers
20316         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20317         * Control.cs (WndProc): Removed old debug leftovers,
20318           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20319           needed WM_SIZE handling
20320
20321 2004-11-11  Jackson Harper  <jackson@ximian.com>
20322
20323         * OwnerDrawPropertyBag.cs:
20324         * TreeViewImageIndexConverter.cs: Initial implementation
20325
20326 2004-11-10  Jackson Harper  <jackson@ximian.com>
20327
20328         * ThemeWin32Classic.cs:
20329         * TabControl.cs: instead of moving tabs by the slider pos just
20330         start drawing at the tab that is offset by the slider. This way
20331         scrolling always moves by exactly one tab.
20332
20333 2004-11-10  Jackson Harper  <jackson@ximian.com>
20334
20335         * TabControl.cs: You can only scroll left when the slider has
20336         already ben moved right.
20337         
20338 2004-11-10  Jackson Harper  <jackson@ximian.com>
20339
20340         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20341         the clip area.
20342         
20343 2004-11-10  Jackson Harper  <jackson@ximian.com>
20344
20345         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20346         clip area.
20347         
20348 2004-11-09  Jackson Harper  <jackson@ximian.com>
20349
20350         * TabControl.cs (CalcXPos): New helper method so we can determine
20351         the proper place to start drawing vertical tabs.
20352         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20353         
20354 2004-11-09  Jackson Harper  <jackson@ximian.com>
20355
20356         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20357         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20358         and Bottom, left and right are illegal values for this and
20359         multiline is enabled when the alignment is set to left or right.
20360         (DrawTab): Each alignment block should draw the text itself now
20361         because Left requires special love. Also add rendering for Left
20362         aligned tabs.
20363         
20364 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20365
20366         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20367         does not destroy the windows, removes debugging messages
20368
20369 2004-11-09  jba  <jba-mono@optusnet.com.au>
20370
20371         * ThemeWin32Classic.cs
20372         (DrawButtonBase): Fix verticle text rect clipping in windows
20373         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20374         rendering and incorrect text rect clipping
20375         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20376         rendering and incorrect text rect clipping
20377         
20378 2004-11-08  Jackson Harper  <jackson@ximian.com>
20379
20380         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20381         bottom when they are bottom aligned so the bottoms of the tabs get
20382         displayed.
20383         * TabControl.cs (DropRow): Move rows up instead of down when the
20384         tab control is bottom aligned.
20385
20386 2004-11-08 13:59  pbartok
20387
20388         * XplatUIX11.cs:
20389           - Added handling for various window styles
20390           - Added handling for popup windows
20391           - Added SetTopmost handling
20392
20393 2004-11-08 13:55  pbartok
20394
20395         * XplatUIWin32.cs:
20396           - Added argument to SetTopmost method
20397           - Fixed broken ClientToScreen function
20398
20399 2004-11-08 13:53  pbartok
20400
20401         * XplatUIStructs.cs:
20402           - Added missing WS_EX styles
20403
20404 2004-11-08 13:53  pbartok
20405
20406         * XplatUI.cs, XplatUIDriver.cs:
20407           - Added argument to SetTopmost
20408
20409 2004-11-08 13:52  pbartok
20410
20411         * X11Structs.cs:
20412           - Added XSetWindowAttributes structure
20413           - Improved XWindowAttributes structure
20414           - Added SetWindowValuemask enum
20415           - Added window creation arguments enum
20416           - Added gravity enum
20417           - Added Motif hints structure
20418           - Added various Motif flags and enums
20419           - Added PropertyMode enum for property functions
20420
20421 2004-11-08 13:50  pbartok
20422
20423         * Form.cs:
20424           - Fixed arguments for updated SetTopmost method
20425
20426 2004-11-08 13:49  pbartok
20427
20428         * ToolTip.cs:
20429           - Fixed arguments for updated SetTopmost function
20430           - Fixed usage of PointToClient
20431
20432 2004-11-08 13:44  pbartok
20433
20434         * MenuAPI.cs:
20435           - Added Clipping of children and siblings
20436
20437 2004-11-08 13:41  pbartok
20438
20439         * MainMenu.cs:
20440           - Removed SetMenuBarWindow call. We do this in Form.cs
20441
20442 2004-11-08 13:40  jackson
20443
20444         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20445           scrolling jimmi in the correct location with bottom aligned tabs
20446
20447 2004-11-08 13:36  pbartok
20448
20449         * ContainerControl.cs:
20450           - Implemented BindingContext
20451           - Implemented ParentForm
20452
20453 2004-11-08 12:46  jackson
20454
20455         * TabControl.cs: Put bottom rendered tabs in the right location
20456
20457 2004-11-08 07:15  jordi
20458
20459         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20460           removes dead code
20461
20462 2004-11-05 17:30  jackson
20463
20464         * TabControl.cs: When selected tabs are expanded make sure they
20465           don't go beyond the edges of the tab control
20466
20467 2004-11-05 14:57  jackson
20468
20469         * TabControl.cs: Reset show_slider so if the control is resized to
20470           a size where it is no longer needed it's not displayed anymore
20471
20472 2004-11-05 13:16  jackson
20473
20474         * TabControl.cs: Make tab pages non visible when added to the
20475           control
20476
20477 2004-11-05 12:42  jackson
20478
20479         * TabControl.cs: Implement SizeMode.FillToRight
20480
20481 2004-11-05 12:16  jackson
20482
20483         * Control.cs: Do not call CreateHandle if the handle is already
20484           created
20485
20486 2004-11-05 11:46  jackson
20487
20488         * TabControl.cs: Remove superflous call to CalcTabRows
20489
20490 2004-11-05 09:07  jackson
20491
20492         * XplatUIX11.cs: Update for Mono.Posix changes
20493
20494 2004-11-05 07:00  ravindra
20495
20496         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20497           scrolling.
20498
20499 2004-11-04 22:47  jba
20500
20501         * ThemeWin32Classic.cs:
20502           - Fix Button rendering for FlatStyle = Flat or Popup
20503           - Fix RadioButton and CheckBox rendering when Appearance = Button
20504             (normal and flatstyle).
20505           - Correct outer rectangle color when drawing focus rectangle
20506           - Adjust button bounds to be 1 px smaller when focused
20507           - Make button not draw sunken 3d border when pushed (windows compat)
20508           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20509           - Offset the text in RadioButton and Checkbox when being rendered as
20510           a button.
20511           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20512           radiobuttons
20513           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20514           - Fixed disabled text rendering for normally rendered radiobuttons
20515
20516 2004-11-04 10:26  jackson
20517
20518         * TabControl.cs: Recalculate tab rows when resizing
20519
20520 2004-11-04 07:47  jordi
20521
20522         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20523           collection completion, drawing issues, missing features
20524
20525 2004-11-04 05:03  ravindra
20526
20527         * ScrollBar.cs:
20528                 - We need to recalculate the Thumb area when
20529                 LargeChange/maximum/minimum values are changed.
20530           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20531                 than minimum. This is required to handle the case if large_change is
20532                 more than max, and use LargeChange property instead of large_change
20533                 variable.
20534           - We return max+1 when large_change is more than max, like MS does.
20535
20536 2004-11-04 04:29  ravindra
20537
20538         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20539                 - Changed default value signatures (prefixed all with ListView).
20540                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20541                 ListView.
20542           - Fixed calculations for ListViewItem and implemented Clone()
20543           method.
20544
20545 2004-11-04 04:26  ravindra
20546
20547         * Theme.cs, ThemeWin32Classic.cs:
20548                 - Changed default ListView values signatures (prefixed all with
20549                 ListView).
20550           - Fixed default size values for VScrollBar and HScrollBar.
20551                 - Fixed DrawListViewItem method.
20552
20553 2004-11-04 04:05  ravindra
20554
20555         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20556
20557 2004-11-04 04:04  ravindra
20558
20559         * ImageList.cs: Implemented the missing overload for Draw method.
20560
20561 2004-11-03 19:29  jackson
20562
20563         * TabControl.cs: Handle dropping rows on selection properly
20564
20565 2004-11-03 11:59  jackson
20566
20567         * TabControl.cs: remove debug code
20568
20569 2004-11-03 11:52  jackson
20570
20571         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20572           the scrolly widgerywoo
20573
20574 2004-11-02 13:52  jackson
20575
20576         * TabControl.cs: Resize the tab pages and tabs when the tab control
20577           is resized
20578
20579 2004-11-02 13:40  jackson
20580
20581         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20582           selected tab to the bottom
20583
20584 2004-11-02 13:39  jackson
20585
20586         * TabPage.cs: Store the tab pages row
20587
20588 2004-11-02 12:33  jordi
20589
20590         * MenuItem.cs: fixes handle creation
20591
20592 2004-11-02 11:42  jackson
20593
20594         * TabControl.cs: signature fix
20595
20596 2004-11-02 08:56  jackson
20597
20598         * TabControl.cs: Calculate whether the tab is on an edge properly.
20599           Remove top secret debugging code
20600
20601 2004-11-01 19:57  jackson
20602
20603         * TabControl.cs: Add click handling, and proper sizing
20604
20605 2004-11-01 19:47  jackson
20606
20607         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20608           tab controls
20609
20610 2004-11-01 19:39  jackson
20611
20612         * TabPage.cs: add internal property to store the bounds of a tab
20613           page
20614
20615 2004-10-30 04:23  ravindra
20616
20617         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20618           values.
20619
20620 2004-10-30 04:21  ravindra
20621
20622         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20623           fixed calculations.
20624
20625 2004-10-30 03:06  pbartok
20626
20627         * XplatUIX11.cs:
20628           - Removed extension of DllImported libs
20629
20630 2004-10-29 09:55  jordi
20631
20632         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20633           navigation, itemcollection completion, menu fixes
20634
20635 2004-10-27 22:58  pbartok
20636
20637         * XplatUIX11.cs:
20638           - Now throws a nice error message when no X display could be opened
20639
20640 2004-10-26 13:51  jordi
20641
20642         * ListView.cs: removes warning
20643
20644 2004-10-26 03:55  ravindra
20645
20646         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20647           ThemeWin32Classic.cs: Some formatting for my last checkins.
20648
20649 2004-10-26 03:36  ravindra
20650
20651         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20652           control and default values.
20653
20654 2004-10-26 03:35  ravindra
20655
20656         * Theme.cs: Added some default values for ListView control.
20657
20658 2004-10-26 03:33  ravindra
20659
20660         * ToolBar.cs: ToolBar should use the user specified button size, if
20661           there is any. Added a size_specified flag for the same.
20662
20663 2004-10-26 03:33  ravindra
20664
20665         * ColumnHeader.cs: Added some internal members and calculations for
20666           ColumnHeader.
20667
20668 2004-10-26 03:32  ravindra
20669
20670         * ListViewItem.cs: Calculations for ListViewItem.
20671
20672 2004-10-26 03:31  ravindra
20673
20674         * ListView.cs: Added some internal members and calculations for
20675           ListView.
20676
20677 2004-10-22 13:31  jordi
20678
20679         * MenuAPI.cs: speedup menus drawing
20680
20681 2004-10-22 13:16  jackson
20682
20683         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20684           expose event
20685
20686 2004-10-22 11:49  jackson
20687
20688         * Control.cs: oops
20689
20690 2004-10-22 11:41  jackson
20691
20692         * Control.cs: Check to see if the window should have its background
20693           repainted by X when drawing.
20694
20695 2004-10-22 11:31  jackson
20696
20697         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20698           clear is true, this way we do not get flicker from X repainting the
20699           background
20700
20701 2004-10-22 11:28  jackson
20702
20703         * XEventQueue.cs: Queue properly
20704
20705 2004-10-21 09:38  jackson
20706
20707         * XEventQueue.cs: Fix access modifier
20708
20709 2004-10-21 09:36  jackson
20710
20711         * XEventQueue.cs: Don't loose messages
20712
20713 2004-10-21 09:22  jackson
20714
20715         * XEventQueue.cs: Don't loose messages
20716
20717 2004-10-20 04:15  jordi
20718
20719         * BootMode.cs: enum need it by SystemInfo
20720
20721 2004-10-19 21:58  pbartok
20722
20723         * XplatUIWin32.cs:
20724           - Small sanity check
20725
20726 2004-10-19 21:56  pbartok
20727
20728         * Form.cs:
20729           - Added private FormParentWindow class which acts as the container
20730             for our form and as the non-client area where menus are drawn
20731           - Added/Moved required tie-ins to Jordi's menus
20732           - Fixed/Implemented the FormStartPosition functionality
20733
20734 2004-10-19 21:52  pbartok
20735
20736         * Control.cs:
20737           - Removed unneeded locals
20738           - Added code to all size and location properties to understand and
20739             deal with the parent container of Form
20740
20741 2004-10-19 21:33  pbartok
20742
20743         * Application.cs:
20744           - Fixed to deal with new Form subclasses for menus
20745
20746 2004-10-19 17:48  jackson
20747
20748         * XEventQueue.cs: commit correct version of file
20749
20750 2004-10-19 16:50  jackson
20751
20752         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20753
20754 2004-10-19 16:15  jordi
20755
20756         * MenuAPI.cs: MenuBarCalcSize returns the height
20757
20758 2004-10-19 08:31  pbartok
20759
20760         * Control.cs:
20761           - Added missing call to PreProcessMessage before calling OnXXXKey
20762           methods
20763
20764 2004-10-19 00:04  ravindra
20765
20766         * ToolTip.cs: Fixed constructor.
20767
20768 2004-10-18 09:31  jordi
20769
20770         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20771
20772 2004-10-18 09:26  jordi
20773
20774         * MenuItem.cs: fixes MenuItem class signature
20775
20776 2004-10-18 08:56  jordi
20777
20778         * MenuAPI.cs: prevents windows from showing in the taskbar
20779
20780 2004-10-18 00:28  ravindra
20781
20782         * ToolTip.cs: Suppressed a warning message.
20783
20784 2004-10-18 00:27  ravindra
20785
20786         * Control.cs: Default value of visible property must be true.
20787
20788 2004-10-17 23:19  pbartok
20789
20790         * ToolTip.cs:
20791           - Complete implementation
20792
20793 2004-10-17 23:19  pbartok
20794
20795         * XplatUIX11.cs:
20796           - Added EnableWindow method
20797           - Added SetModal stub
20798           - Added generation of WM_ACTIVATE message (still needs testing)
20799           - Added SetTopMost stub
20800           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20801
20802 2004-10-17 23:17  pbartok
20803
20804         * XplatUIWin32.cs:
20805           - Removed VirtualKeys to XplatUIStructs
20806           - Implemented SetTopMost method
20807           - Implemented EnableWindow method
20808           - Bugfix in ScreenToClient()
20809           - Bugfixes in ClientToScreen()
20810
20811 2004-10-17 22:51  pbartok
20812
20813         * XplatUIStructs.cs:
20814           - Added WS_EX styles to WindowStyles enumeration
20815
20816 2004-10-17 22:50  pbartok
20817
20818         * XplatUI.cs, XplatUIDriver.cs:
20819           - Added method for enabling/disabling windows
20820           - Added method for setting window modality
20821           - Added method for setting topmost window
20822
20823 2004-10-17 22:49  pbartok
20824
20825         * ThemeWin32Classic.cs:
20826           - Added ToolTip drawing code
20827
20828 2004-10-17 22:49  pbartok
20829
20830         * Theme.cs:
20831           - Added ToolTip abstracts
20832
20833 2004-10-17 22:47  pbartok
20834
20835         * Form.cs:
20836           - Fixed Form.ControlCollection to handle owner relations
20837           - Added Owner/OwnedForms handling
20838           - Implemented Z-Ordering for owned forms
20839           - Removed unneeded private overload of ShowDialog
20840           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20841             so I hope)
20842           - Fixed Close(), had wrong default
20843           - Added firing of OnLoad event
20844           - Added some commented out debug code for Ownership handling
20845
20846 2004-10-17 22:16  pbartok
20847
20848         * Control.cs:
20849           - Fixed/implemented flat list of controls
20850
20851 2004-10-17 22:14  pbartok
20852
20853         * Application.cs:
20854           - Added code to simulate modal dialogs on Win32
20855
20856 2004-10-17 16:11  jordi
20857
20858         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20859           mouse event
20860
20861 2004-10-17 13:39  jordi
20862
20863         * MenuAPI.cs: menu drawing fixes
20864
20865 2004-10-15 09:10  ravindra
20866
20867         * StructFormat.cs: General Enum.
20868
20869 2004-10-15 09:09  ravindra
20870
20871         * SizeGripStyle.cs: Enum for Form.
20872
20873 2004-10-15 09:08  ravindra
20874
20875         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20876           in Theme for ListView.
20877
20878 2004-10-15 09:06  ravindra
20879
20880         * ColumnHeader.cs: Flushing some formatting changes.
20881
20882 2004-10-15 09:05  ravindra
20883
20884         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20885           style.
20886
20887 2004-10-15 09:03  ravindra
20888
20889         * ListView.cs: Implemented Paint method and fixed coding style.
20890
20891 2004-10-15 07:34  jordi
20892
20893         * MenuAPI.cs: fix for X11
20894
20895 2004-10-15 07:32  ravindra
20896
20897         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20898                 - Renamed Paint() method to Draw() for clarity. Also, moved
20899                 DrawImage() to OnPaint().
20900
20901 2004-10-15 07:25  ravindra
20902
20903         * CheckBox.cs, RadioButton.cs:
20904                 - Removed Redraw (), we get it from ButtonBase.
20905                 - Implemented Paint (), to do class specific painting.
20906
20907 2004-10-15 07:16  ravindra
20908
20909         * ButtonBase.cs:
20910                 - Redraw () is not virtual now.
20911                 - Added an internal virtual method Paint (), so that
20912                 derived classes can do their painting on their own.
20913                 - Modified OnPaint () to call Paint ().
20914
20915 2004-10-15 06:43  jordi
20916
20917         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20918           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20919
20920 2004-10-15 00:30  ravindra
20921
20922         * MessageBox.cs:
20923                 - MessageBox on windows does not have min/max buttons.
20924                 This change in CreateParams fixes this on Windows. We
20925                 still need to implement this windowstyle behavior in
20926                 our X11 driver.
20927
20928 2004-10-14 05:14  ravindra
20929
20930         * ToolBar.cs:
20931                 - Changed Redraw () to do a Refresh () always.
20932                 - Fixed the MouseMove event handling when mouse is pressed,
20933                 ie drag event handling.
20934                 - Replaced the usage of ToolBarButton.Pressed property to
20935                 ToolBarButton.pressed internal variable.
20936
20937 2004-10-14 05:10  ravindra
20938
20939         * ToolBarButton.cs:
20940                 - Added an internal member 'inside' to handle mouse move
20941                 with mouse pressed ie mouse drag event.
20942                 - Changed 'Pressed' property to return true only when
20943                 'inside' and 'pressed' are both true.
20944                 - Some coding style love.
20945
20946 2004-10-14 00:17  ravindra
20947
20948         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
20949           public method.
20950
20951 2004-10-14 00:15  ravindra
20952
20953         * ButtonBase.cs: Redraw () related improvements.
20954
20955 2004-10-14 00:14  ravindra
20956
20957         * MessageBox.cs: Moved InitFormSize () out of Paint method and
20958           removed unnecessary calls to Button.Show () method.
20959
20960 2004-10-13 17:50  pbartok
20961
20962         * XplatUIX11.cs:
20963           - Formatting fix
20964           - Removed destroying of window until we solve the problem of X
20965             destroying the window before us on shutdown
20966
20967 2004-10-13 16:32  pbartok
20968
20969         * ButtonBase.cs:
20970           - Now Redraws on MouseUp for FlatStyle Flat and Popup
20971
20972 2004-10-13 14:18  pbartok
20973
20974         * XplatUIX11.cs:
20975           - Added code to destroy the X window
20976
20977 2004-10-13 14:18  pbartok
20978
20979         * XplatUIWin32.cs:
20980           - Added code to destroy a window
20981
20982 2004-10-13 14:12  pbartok
20983
20984         * ButtonBase.cs:
20985           - Added the Redraw on Resize that got dropped in the last rev
20986
20987 2004-10-13 09:06  pbartok
20988
20989         * ThemeWin32Classic.cs:
20990           - Path from John BouAntoun:
20991             * Fix check rendering (centre correctly for normal style, offset
20992               correctly for FlatStyle).
20993             * Fix border color usage (use backcolor) for FlatStyle.Popup
20994             * Use checkbox.Capture instead of checkbox.is_pressed when
20995               rendering flatstyle states.
20996
20997 2004-10-12 21:48  pbartok
20998
20999         * ThemeWin32Classic.cs:
21000           - Removed all occurences of SystemColors and replaced them with the
21001             matching theme color
21002
21003 2004-10-12 21:41  pbartok
21004
21005         * ThemeWin32Classic.cs:
21006           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21007             him using the function for flatstyle drawing
21008           - Changed functions to use the new version of CPDrawBorder3D
21009
21010 2004-10-12 21:15  pbartok
21011
21012         * ControlPaint.cs:
21013           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21014             match MS documentation. They need to return defined colors if the
21015             passed color matches the configured control color. Thanks to John
21016             BouAntoun for pointing this out.
21017
21018 2004-10-12 20:57  pbartok
21019
21020         * Control.cs:
21021           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21022             color is changed
21023
21024 2004-10-12 20:46  pbartok
21025
21026         * CheckBox.cs:
21027           - Fix from John BouAntoun: Now properly sets the Appearance property
21028
21029 2004-10-12 20:45  pbartok
21030
21031         * ThemeWin32Classic.cs:
21032           - Fixes from John BouAntoun: now handles forecolors and backcolors
21033             for flatstyle rendered controls much better; It also fixes normal
21034             checkbox rendering when pushed or disabled.
21035
21036 2004-10-08 02:50  jordi
21037
21038         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21039           work
21040
21041 2004-10-07 08:56  jordi
21042
21043         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21044
21045 2004-10-06 03:59  jordi
21046
21047         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21048           XplatUIWin32.cs: removes warnings from compilation
21049
21050 2004-10-05 12:23  jackson
21051
21052         * RadioButton.cs: Fix ctor
21053
21054 2004-10-05 11:10  pbartok
21055
21056         * MessageBox.cs:
21057           - Partial implementation by Benjamin Dasnois
21058
21059 2004-10-05 10:15  jackson
21060
21061         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21062           by John BouAntoun
21063
21064 2004-10-05 03:07  ravindra
21065
21066         * ToolBar.cs:
21067                 - Removed a private method, Draw ().
21068                 - Fixed the ButtonDropDown event handling.
21069                 - Fixed MouseMove event handling.
21070
21071 2004-10-05 03:04  ravindra
21072
21073         * ThemeWin32Classic.cs:
21074                 - Added DrawListView method and ListViewDefaultSize property.
21075                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21076                 - Changed DOS style CRLF to Unix format (dos2unix).
21077
21078 2004-10-05 03:03  ravindra
21079
21080         * Theme.cs:
21081                 - Added DrawListView method and ListViewDefaultSize property.
21082
21083 2004-10-05 02:42  ravindra
21084
21085         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21086           clicks on DropDown arrow.
21087
21088 2004-10-04 22:56  jackson
21089
21090         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21091           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21092           Control handle the buffers, derived classes should not have to
21093           CreateBuffers themselves.
21094
21095 2004-10-04 21:20  jackson
21096
21097         * StatusBar.cs: The control handles resizing the buffers now.
21098
21099 2004-10-04 21:18  jackson
21100
21101         * Control.cs: When resizing the buffers should be invalidated. This
21102           should be handled in Control not in derived classes.
21103
21104 2004-10-04 14:45  jackson
21105
21106         * TabPage.cs: oops
21107
21108 2004-10-04 02:14  pbartok
21109
21110         * LeftRightAlignment.cs:
21111           - Initial check-in
21112
21113 2004-10-04 01:09  jordi
21114
21115         * ThemeWin32Classic.cs: fixes right button position causing right
21116           button not showing on horizontal scrollbars
21117
21118 2004-10-02 13:12  pbartok
21119
21120         * XplatUIX11.cs:
21121           - Simplified the Invalidate method by using an X call instead of
21122             generating the expose ourselves
21123           - Added an expose when the window background is changed
21124           - Implemented ClientToScreen method
21125
21126 2004-10-02 13:08  pbartok
21127
21128         * XplatUIWin32.cs:
21129           - Added Win32EnableWindow method (test for implementing modal
21130           dialogs)
21131           - Added ClientToScreen method and imports
21132
21133 2004-10-02 13:07  pbartok
21134
21135         * XplatUI.cs, XplatUIDriver.cs:
21136           - Added ClientToScreen coordinate translation method
21137
21138 2004-10-02 13:06  pbartok
21139
21140         * KeyPressEventArgs.cs:
21141           - Fixed access level for constructor
21142
21143 2004-10-02 13:06  pbartok
21144
21145         * NativeWindow.cs:
21146           - Changed access level for the window_collection hash table
21147
21148 2004-10-02 13:05  pbartok
21149
21150         * Form.cs:
21151           - Added KeyPreview property
21152           - Added Menu property (still incomplete, pending Jordi's menu work)
21153           - Implemented ProcessCmdKey
21154           - Implemented ProcessDialogKey
21155           - Implemented ProcessKeyPreview
21156
21157 2004-10-02 13:02  pbartok
21158
21159         * Control.cs:
21160           - Added private method to get the Control object from the window
21161           handle
21162           - Implemented ContextMenu property
21163           - Implemented PointToScreen
21164           - Implemented PreProcessMessage
21165           - Implemented IsInputChar
21166           - Implemented IsInputKey
21167           - Implemented ProcessCmdKey
21168           - Completed ProcessKeyEventArgs
21169           - Fixed message loop to call the proper chain of functions on key
21170           events
21171           - Implemented ProcessDialogChar
21172           - Implemented ProcessDialogKey
21173           - Implemented ProcessKeyMessage
21174           - Implemented ProcessKeyPreview
21175           - Added RaiseDragEvent stub (MS internal method)
21176           - Added RaiseKeyEvent stub (MS internal method)
21177           - Added RaiseMouseEvent stub (MS Internal method)
21178           - Added RaisePaintEvent stub (MS Internal method)
21179           - Added ResetMouseEventArgs stub (MS Internal method)
21180           - Implemented RtlTranslateAlignment
21181           - Implemented RtlTranslateContent
21182           - Implemented RtlTranslateHorizontal
21183           - Implemented RtlTranslateLeftRight
21184           - Added generation of KeyPress event
21185
21186 2004-10-02 05:57  ravindra
21187
21188         * ListViewItem.cs: Added attributes.
21189
21190 2004-10-02 05:32  ravindra
21191
21192         * ListView.cs: Added attributes.
21193
21194 2004-10-01 11:53  jackson
21195
21196         * Form.cs: Implement the Close method so work on MessageBox can
21197           continue.
21198
21199 2004-09-30 14:06  pbartok
21200
21201         * XplatUIX11.cs:
21202           - Bug fixes
21203
21204 2004-09-30 11:34  jackson
21205
21206         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21207
21208 2004-09-30 07:26  ravindra
21209
21210         * ListViewItemConverter.cs: Converter for ListViewItem.
21211
21212 2004-09-30 07:26  ravindra
21213
21214         * SortOrder.cs: Enum for ListView control.
21215
21216 2004-09-30 07:25  ravindra
21217
21218         * ColumnHeader.cs: Supporting class for ListView control.
21219
21220 2004-09-30 07:24  ravindra
21221
21222         * ListView.cs, ListViewItem.cs: Initial implementation.
21223
21224 2004-09-30 07:20  ravindra
21225
21226         * ItemActivation.cs: Enum for ListView Control.
21227
21228 2004-09-29 20:29  pbartok
21229
21230         * XplatUIX11.cs:
21231           - Added lookup of pixel value for background color; tries to get a
21232             color 'close' to the requested color, it avoids having to create a
21233             colormap.  Depending on the display this could mean the used color
21234             is slightly off the desired color. Might have to change it to a more
21235             resource intensive colormap approach, but it will work as a
21236           workaround to avoid red screens.
21237
21238 2004-09-29 14:27  jackson
21239
21240         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21241
21242 2004-09-28 12:44  pbartok
21243
21244         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21245           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21246           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21247           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21248           TrackBar.cs, VScrollBar.cs:
21249           - Streamlined Theme interfaces:
21250             * Each DrawXXX method for a control now is passed the object for
21251               the control to be drawn in order to allow accessing any state the
21252               theme might require
21253
21254             * ControlPaint methods for the theme now have a CP prefix to avoid
21255               name clashes with the Draw methods for controls
21256
21257             * Every control now retrieves it's DefaultSize from the current
21258             theme
21259
21260 2004-09-28 12:17  jackson
21261
21262         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21263           drawing
21264
21265 2004-09-24 14:57  jackson
21266
21267         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21268           Gives us a nice little performance boost.
21269
21270 2004-09-24 12:02  jackson
21271
21272         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21273           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21274           Control and supporting classes. Initial checkin
21275
21276 2004-09-23 13:08  jackson
21277
21278         * Form.cs: Temp build fixage
21279
21280 2004-09-23 01:39  ravindra
21281
21282         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21283           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21284           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21285           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21286           EventHandlers needed by ListView Control.
21287
21288 2004-09-22 14:12  pbartok
21289
21290         * ScrollableControl.cs:
21291           - Implemented DockPadding property
21292           - Implemented AutoScroll property
21293           - Implemented AutoScrollMargin property
21294           - Implemented AutoScrollMinSize property
21295           - Implemented AutoScrollPosition property
21296           - Implemented DisplayRectangle property (still incomplete)
21297           - Implemented CreateParams property
21298           - Implemented HScroll property
21299           - Implemented VScroll property
21300           - Implemented OnVisibleChanged property
21301
21302 2004-09-22 14:09  pbartok
21303
21304         * Form.cs:
21305           - Added Form.ControllCollection class
21306           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21307             RemoveOwnedForm (still incomplete, missing on-top and common
21308             minimize/maximize behaviour)
21309           - Added StartPosition property (still incomplete, does not use when
21310             creating the form)
21311           - Added ShowDialog() methods (still incomplete, missing forcing the
21312             dialog modal)
21313
21314 2004-09-22 14:05  pbartok
21315
21316         * Application.cs:
21317           - Added message loop for modal dialogs
21318
21319 2004-09-22 14:02  pbartok
21320
21321         * GroupBox.cs:
21322           - Fixed wrong types for events
21323
21324 2004-09-22 14:00  pbartok
21325
21326         * Shortcut.cs, FormWindowState.cs:
21327           - Fixed wrong values
21328
21329 2004-09-22 12:01  jackson
21330
21331         * Control.cs: Text is never null
21332
21333 2004-09-20 22:14  pbartok
21334
21335         * XplatUIWin32.cs:
21336           - Fixed accessibility level for Idle handler
21337
21338 2004-09-20 18:54  jackson
21339
21340         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21341           XplatUIX11.cs: New message loop that uses poll so we don't get a
21342           busy loop
21343
21344 2004-09-17 10:43  pbartok
21345
21346         * ScrollBar.cs:
21347           - Fixed behaviour of arrow buttons. Now properly behaves like
21348             Buttons (and like Microsoft's scrollbar arrow buttons)
21349
21350 2004-09-17 10:14  pbartok
21351
21352         * ScrollBar.cs:
21353           - Added missing release of keyboard/mouse capture
21354
21355 2004-09-17 06:18  jordi
21356
21357         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21358           Theme.cs: Very early menu support
21359
21360 2004-09-16 17:45  pbartok
21361
21362         * XplatUIWin32.cs:
21363           - Fixed sending a window to the front
21364           - Added overload for SetWindowPos to avoid casting
21365
21366 2004-09-16 17:44  pbartok
21367
21368         * Control.cs:
21369           - Added SendToBack and BringToFront methods
21370
21371 2004-09-16 07:00  ravindra
21372
21373         * Copyright: Added Novell URL.
21374
21375 2004-09-16 07:00  ravindra
21376
21377         * ToolBar.cs: Invalidate should be done before redrawing.
21378
21379 2004-09-15 21:19  ravindra
21380
21381         * ColumnHeaderStyle.cs: Enum for ListView Control.
21382
21383 2004-09-15 21:18  ravindra
21384
21385         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21386           ListView Control.
21387
21388 2004-09-13 18:26  jackson
21389
21390         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21391           properly
21392
21393 2004-09-13 18:13  jackson
21394
21395         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21396           a second thread and post messages into the main threads message
21397           queue. This makes timing much more consistent. Both win2K and XP
21398           have a minimum timer value of 15 milliseconds, so we now do this
21399           too.
21400
21401 2004-09-13 15:18  pbartok
21402
21403         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21404           XplatUIX11.cs:
21405           - Added Z-Ordering methods
21406
21407 2004-09-13 10:56  pbartok
21408
21409         * Form.cs:
21410           - Fixed #region names
21411           - Moved properties and methods into their proper #regions
21412
21413 2004-09-13 10:51  pbartok
21414
21415         * Form.cs:
21416           - Added Accept and CancelButton properties
21417           - Added ProcessDialogKey() method
21418
21419 2004-09-13 08:18  pbartok
21420
21421         * IWindowTarget.cs:
21422           - Initial check-in
21423
21424 2004-09-10 21:50  pbartok
21425
21426         * Control.cs:
21427           - Added DoDragDrop() [incomplete]
21428           - Properly implemented 'Visible' handling
21429           - Added SetVisibleCore()
21430           - Implemented FindChildAtPoint()
21431           - Implemented GetContainerControl()
21432           - Implemented Hide()
21433
21434 2004-09-10 19:28  pbartok
21435
21436         * Control.cs:
21437           - Moved methods into their appropriate #regions
21438           - Reordered methods within regions alphabetically
21439
21440 2004-09-10 18:57  pbartok
21441
21442         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21443           - Added method to retrieve text from window
21444
21445 2004-09-10 18:56  pbartok
21446
21447         * Control.cs:
21448           - Moved some internal functions into the internal region
21449           - Implemented FontHeight
21450           - Implemented RenderRightToLeft
21451           - Implemented ResizeRedraw
21452           - Implemented ShowFocusCues
21453           - Implemented ShowKeyboardCues
21454           - Implemented FromChildHandle
21455           - Implemented FromHandle
21456           - Implemented IsMnemonic
21457           - Implemented ReflectMessage
21458           - All public and protected Static Methods are now complete
21459
21460 2004-09-10 16:54  pbartok
21461
21462         * Control.cs:
21463           - Implemented remaining missing public instance properties
21464           - Alphabetized some out of order properties
21465
21466 2004-09-10 05:51  ravindra
21467
21468         * PictureBox.cs: Added a check for null image.
21469
21470 2004-09-10 00:59  jordi
21471
21472         * GroupBox.cs: remove cvs tag
21473
21474 2004-09-09 05:25  ravindra
21475
21476         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21477
21478 2004-09-09 05:23  ravindra
21479
21480         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21481           parent redraw.
21482
21483 2004-09-09 02:28  pbartok
21484
21485         * ThemeWin32Classic.cs:
21486           - Improve disabled string look
21487
21488 2004-09-09 01:15  jordi
21489
21490         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21491           args and handler
21492
21493 2004-09-08 23:56  ravindra
21494
21495         * ItemBoundsPortion.cs: It's enum, not a class!
21496
21497 2004-09-08 23:47  ravindra
21498
21499         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21500           Enums for Form.
21501
21502 2004-09-08 21:13  ravindra
21503
21504         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21505           ListView control.
21506
21507 2004-09-08 21:03  ravindra
21508
21509         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21510           avoid crash.
21511
21512 2004-09-08 21:01  ravindra
21513
21514         * ScrollableControl.cs: Removed unreachable code.
21515
21516 2004-09-08 06:45  jordi
21517
21518         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21519
21520 2004-09-08 01:00  jackson
21521
21522         * XplatUIX11.cs: Only run the timers when updating the message
21523           queue. This effectively gives X messages a higher priority then
21524           timer messages. Timers still need love though
21525
21526 2004-09-07 14:01  jackson
21527
21528         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21529           this for us and the handle is no longer valid.
21530
21531 2004-09-07 13:59  jackson
21532
21533         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21534           loop that manages to not crash. TODO: Add poll and cleanup timers
21535
21536 2004-09-07 11:12  jordi
21537
21538         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21539
21540 2004-09-07 03:40  jordi
21541
21542         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21543           fixes, methods, multiple links
21544
21545 2004-09-06 06:55  jordi
21546
21547         * Control.cs: Caches ClientRectangle rectangle value
21548
21549 2004-09-05 02:03  jordi
21550
21551         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21552           certain situations
21553
21554 2004-09-04 11:10  jordi
21555
21556         * Label.cs: Refresh when font changed
21557
21558 2004-09-02 16:24  pbartok
21559
21560         * Control.cs:
21561           - Added sanity check to creation of double buffer bitmap
21562
21563 2004-09-02 16:24  pbartok
21564
21565         * ButtonBase.cs:
21566           - Fixed selection of text color
21567           - Fixed handling of resize event; now properly recreates double
21568             buffering bitmap
21569           - Added missing assignment of TextAlignment
21570           - Added proper default for TextAlignment
21571
21572 2004-09-02 14:26  pbartok
21573
21574         * RadioButton.cs:
21575           - Added missing RadioButton.RadioButtonAccessibleObject class
21576
21577 2004-09-02 14:26  pbartok
21578
21579         * Control.cs:
21580           - Added missing Control.ControlAccessibleObject class
21581           - Started to implement Select()ion mechanisms, still very incomplete
21582
21583 2004-09-02 14:25  pbartok
21584
21585         * AccessibleObject.cs:
21586           - Added missing methods
21587
21588 2004-09-02 14:23  pbartok
21589
21590         * AccessibleNavigation.cs, AccessibleSelection.cs:
21591           - Initial check-in
21592
21593 2004-09-02 10:32  jordi
21594
21595         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21596           pool for pens, brushes, and hatchbruses
21597
21598 2004-09-01 15:30  jackson
21599
21600         * StatusBar.cs: Fix typo
21601
21602 2004-09-01 14:44  pbartok
21603
21604         * RadioButton.cs:
21605           - Fixed state
21606
21607 2004-09-01 14:39  pbartok
21608
21609         * Button.cs, RadioButton.cs:
21610           - Functional initial check-in
21611
21612 2004-09-01 14:01  pbartok
21613
21614         * CheckBox.cs:
21615           - Added missing default
21616           - Added missing region mark
21617
21618 2004-09-01 09:10  jordi
21619
21620         * Label.cs: fixes method signatures, new methods, events, fixes
21621           autosize
21622
21623 2004-09-01 07:19  jordi
21624
21625         * Control.cs: Init string variables with an empty object
21626
21627 2004-09-01 04:20  jordi
21628
21629         * Control.cs: fires OnFontChanged event
21630
21631 2004-08-31 20:07  pbartok
21632
21633         * ButtonBase.cs:
21634           - Enabled display of strings
21635
21636 2004-08-31 20:05  pbartok
21637
21638         * Form.cs:
21639           - Added (partial) implementation of DialogResult; rest needs to be
21640             implemented when the modal loop code is done
21641
21642 2004-08-31 19:55  pbartok
21643
21644         * CheckBox.cs:
21645           - Fixed to match the removal of the needs_redraw concept
21646
21647 2004-08-31 19:55  pbartok
21648
21649         * ButtonBase.cs:
21650           - Removed the rather odd split between 'needs redraw' and redrawing
21651           - Now handles the events that require regeneration (ambient
21652             properties and size)
21653
21654 2004-08-31 19:41  pbartok
21655
21656         * Control.cs:
21657           - Added firing of BackColorChanged event
21658           - Added TopLevelControl property
21659           - Fixed handling of WM_ERASEBKGRND message
21660
21661 2004-08-31 12:49  pbartok
21662
21663         * ButtonBase.cs:
21664           - Removed debug
21665           - Minor fixes
21666
21667 2004-08-31 12:48  pbartok
21668
21669         * CheckBox.cs:
21670           - Finished (famous last words)
21671
21672 2004-08-31 04:35  jordi
21673
21674         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21675           scrolling bugs, adds new methods
21676
21677 2004-08-30 14:42  pbartok
21678
21679         * CheckBox.cs:
21680           - Implemented CheckBox drawing code
21681
21682 2004-08-30 14:42  pbartok
21683
21684         * ButtonBase.cs:
21685           - Made Redraw() and CheckRedraw() virtual
21686           - Improved mouse up/down/move logic to properly track buttons
21687
21688 2004-08-30 09:44  pbartok
21689
21690         * CheckBox.cs:
21691           - Updated to fix broken build. Not complete yet.
21692
21693 2004-08-30 09:28  pbartok
21694
21695         * CheckState.cs:
21696           - Initial checkin
21697
21698 2004-08-30 09:17  pbartok
21699
21700         * Appearance.cs:
21701           - Initial check-in
21702
21703 2004-08-27 16:12  ravindra
21704
21705         * ToolBarButton.cs: Added TypeConverter attribute.
21706
21707 2004-08-27 16:07  ravindra
21708
21709         * ImageIndexConverter.cs: Implemented.
21710
21711 2004-08-27 14:17  pbartok
21712
21713         * Control.cs:
21714           - Removed unneeded stack vars
21715           - First attempt to fix sizing issues when layout is suspended
21716
21717 2004-08-25 15:35  jordi
21718
21719         * ScrollBar.cs: more fixes to scrollbar
21720
21721 2004-08-25 14:04  ravindra
21722
21723         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21724           Added the missing divider code and grip for ToolBar Control.
21725
21726 2004-08-25 13:20  pbartok
21727
21728         * Control.cs:
21729           - Control now properly passes the ambient background color to child
21730             controls
21731
21732 2004-08-25 13:20  jordi
21733
21734         * ScrollBar.cs: small bug fix regarding bar position
21735
21736 2004-08-25 12:33  pbartok
21737
21738         * Timer.cs:
21739           - Now only calls SetTimer or KillTimer if the enabled state has
21740           changed
21741
21742 2004-08-25 12:33  pbartok
21743
21744         * XplatUIWin32.cs:
21745           - Fixed timer handling, now seems to work
21746           - Improved error message for window creation
21747
21748 2004-08-25 12:32  pbartok
21749
21750         * Control.cs:
21751           - Fixed generation of MouseUp message
21752
21753 2004-08-25 12:29  jordi
21754
21755         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21756           and fixes for progressbar
21757
21758 2004-08-24 18:43  ravindra
21759
21760         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21761           in ToolBar control.
21762
21763 2004-08-24 17:15  pbartok
21764
21765         * Panel.cs:
21766           - Added #region
21767           - Added missing events
21768           - Alphabetized
21769
21770 2004-08-24 17:14  pbartok
21771
21772         * StatusBar.cs, PictureBox.cs:
21773           - Now uses Control's CreateParams
21774
21775 2004-08-24 16:36  pbartok
21776
21777         * XplatUIX11.cs:
21778           - Fixed background color handling
21779           - Fixed sending of enter/leave events on a grab
21780
21781 2004-08-24 16:35  pbartok
21782
21783         * X11Structs.cs:
21784           - Refined definitions for CrossingEvent
21785
21786 2004-08-24 12:37  jordi
21787
21788         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21789           formmating, methods signature, and adds missing events
21790
21791 2004-08-24 12:24  jordi
21792
21793         * Control.cs: fire OnEnabledChanged event
21794
21795 2004-08-24 11:17  pbartok
21796
21797         * XplatUIWin32.cs:
21798           - Implemented SetTimer() and KillTimer()
21799
21800 2004-08-24 11:16  pbartok
21801
21802         * XplatUIX11.cs:
21803           - Now uses Remove instead of Add to kill the timer
21804
21805 2004-08-24 10:16  jackson
21806
21807         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21808           picture boxes in the theme now. Draw picture box borders and obey
21809           sizing modes
21810
21811 2004-08-24 05:49  jackson
21812
21813         * Timer.cs: Remove top secret debugging code
21814
21815 2004-08-24 05:34  jackson
21816
21817         * PictureBox.cs: Temp hack to make picture boxes draw their full
21818           image
21819
21820 2004-08-24 05:29  jackson
21821
21822         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21823           XplatUIX11.cs: Move timers to the driver level. On X they are
21824           queued by the driver and checked on idle.
21825
21826 2004-08-24 01:07  jackson
21827
21828         * XplatUIX11.cs: Use a queue for async messages instead of passing
21829           them as ClientMessages since that was totally broken. Also simply
21830           check for events and return an idle message if none are found. This
21831           gives us an idle handler, and prevents deadlocking when no messages
21832           are in the queue.
21833
21834 2004-08-23 18:19  ravindra
21835
21836         * XplatUIWin32.cs: Removed the unwanted destructor.
21837
21838 2004-08-23 17:27  pbartok
21839
21840         * ButtonBase.cs:
21841           - Finishing touches. Works now, just needs some optimizations.
21842
21843 2004-08-23 16:53  jordi
21844
21845         * ScrollBar.cs: small fix
21846
21847 2004-08-23 16:45  pbartok
21848
21849         * Application.cs:
21850           - Removed debug output
21851           - Simplifications
21852
21853 2004-08-23 16:43  jordi
21854
21855         * ScrollBar.cs: [no log message]
21856
21857 2004-08-23 16:10  pbartok
21858
21859         * Form.cs:
21860           - Fixed handling of WM_CLOSE message
21861           - Removed debug output
21862
21863 2004-08-23 16:09  pbartok
21864
21865         * Application.cs:
21866           - Added handling of Idle event
21867           - Added handling of form closing
21868           - Fixed reporting of MessageLoop property
21869           - Removed some unneeded code, should provide a bit of a speedup
21870
21871 2004-08-23 15:22  pbartok
21872
21873         * Control.cs:
21874           - Added InitLayout() method
21875           - Added code to properly perform layout when Anchor or Dock property
21876             is changed
21877           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21878             LAMESPEC, tried to do it in a way that makes sense
21879
21880 2004-08-23 14:10  jordi
21881
21882         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21883           properties and methods
21884
21885 2004-08-23 13:55  pbartok
21886
21887         * Control.cs:
21888           - Properly fixed Jordi's last fix
21889           - Now uses Cursor's Position property instead of calling XplatUI
21890           directly
21891
21892 2004-08-23 13:44  jordi
21893
21894         * PaintEventHandler.cs: Adding missing attribute
21895
21896 2004-08-23 13:39  pbartok
21897
21898         * Cursor.cs:
21899           - Implemented Position property
21900
21901 2004-08-23 13:39  pbartok
21902
21903         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21904           - Added method to move mouse cursor
21905
21906 2004-08-23 13:39  pbartok
21907
21908         * XplatUIX11.cs:
21909           - Fixed setting of background color
21910           - Added method to move mouse cursor
21911
21912 2004-08-23 13:16  jordi
21913
21914         * Control.cs: avoids null exception
21915
21916 2004-08-22 17:46  jackson
21917
21918         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21919           PictureBox
21920
21921 2004-08-22 17:40  jackson
21922
21923         * XplatUIX11.cs: Add some missing locks
21924
21925 2004-08-22 15:10  pbartok
21926
21927         * Control.cs, Form.cs:
21928           - Removed OverlappedWindow style from Control, instead it's default
21929             now is child
21930           - Made form windows OverlappedWindow by default
21931
21932 2004-08-22 13:34  jackson
21933
21934         * ScrollBar.cs: Update the position through the Value property so
21935           the OnValueChanged event is raised.
21936
21937 2004-08-22 12:04  pbartok
21938
21939         * SWF.csproj:
21940           - Added Cursor.cs and UserControl.cs
21941
21942 2004-08-22 12:03  pbartok
21943
21944         * Cursor.cs:
21945           - Started implementation, not usable yet
21946
21947 2004-08-22 12:00  pbartok
21948
21949         * UserControl.cs:
21950           - Implemented UserControl (complete)
21951
21952 2004-08-21 19:20  ravindra
21953
21954         * ToolBar.cs: Correcting the formatting mess of VS.NET.
21955
21956 2004-08-21 18:49  ravindra
21957
21958         * ToolBar.cs: Probably this completes the missing attributes in
21959           toolbar control.
21960
21961 2004-08-21 18:03  ravindra
21962
21963         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
21964           Fixed toolbar control signatures.
21965
21966 2004-08-21 16:32  pbartok
21967
21968         * LinkLabel.cs:
21969           - Signature Fixes
21970
21971 2004-08-21 16:30  pbartok
21972
21973         * Label.cs:
21974           - Signature fixes
21975
21976 2004-08-21 16:19  pbartok
21977
21978         * Control.cs, Label.cs:
21979           - Signature fixes
21980
21981 2004-08-21 15:57  pbartok
21982
21983         * ButtonBase.cs:
21984           - Added loads of debug output for development
21985           - Fixed typo in method name
21986
21987 2004-08-21 15:52  pbartok
21988
21989         * ToolBarButtonClickEventArgs.cs:
21990           - Added missing base class
21991
21992 2004-08-21 14:53  pbartok
21993
21994         * Control.cs:
21995           - Updated to match new GrabWindow signature
21996
21997 2004-08-21 14:51  pbartok
21998
21999         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22000           - Added method to get default display size
22001
22002 2004-08-21 14:23  pbartok
22003
22004         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22005           - Added method to query current grab state
22006           - Added argument to allow confining a grab to a window
22007
22008 2004-08-21 14:22  pbartok
22009
22010         * Keys.cs:
22011           - Added [Flags] attribute so that modifiers can be used in bitwise
22012           ops
22013
22014 2004-08-21 14:21  pbartok
22015
22016         * TrackBar.cs, ScrollBar.cs:
22017           - Replaced direct XplatUI calls with their Control counterpart
22018
22019 2004-08-21 13:32  pbartok
22020
22021         * Control.cs:
22022           - Implemented Created property
22023
22024 2004-08-21 13:28  pbartok
22025
22026         * Control.cs:
22027           - Implemented ContainsFocus
22028
22029 2004-08-21 13:26  pbartok
22030
22031         * Control.cs:
22032           - Implemented CausesValidation
22033
22034 2004-08-21 13:21  pbartok
22035
22036         * Control.cs:
22037           - Implemented CanFocus
22038           - Implemented CanSelect
22039           - Implemented Capture
22040
22041 2004-08-21 12:35  pbartok
22042
22043         * XplatUIWin32.cs:
22044           - Fixed bug with Async message handling
22045           - Implemented getting the ModifierKeys
22046
22047 2004-08-21 12:32  jackson
22048
22049         * AsyncMethodResult.cs: Make sure we have the mutex before we
22050           release it. Fixes BeginInvoke on windows
22051
22052 2004-08-21 11:31  pbartok
22053
22054         * XplatUIWin32.cs, XplatUIX11.cs:
22055           - Drivers now return proper mouse state
22056
22057 2004-08-21 10:54  jackson
22058
22059         * Control.cs: Implement EndInvoke
22060
22061 2004-08-21 10:48  jackson
22062
22063         * Timer.cs: Remove unneeded finalizer
22064
22065 2004-08-20 19:52  ravindra
22066
22067         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22068           in mouse event handling in the ToolBar control.
22069
22070 2004-08-20 19:50  ravindra
22071
22072         * ImageList.cs: Changed draw method to use the arguments passed in
22073           to draw the image.
22074
22075 2004-08-20 18:58  pbartok
22076
22077         * XplatUIStructs.cs:
22078           - Added private message for async communication
22079
22080 2004-08-20 17:38  ravindra
22081
22082         * Control.cs: Made RightToLeft property virtual and removed a
22083           Console.WriteLine.
22084
22085 2004-08-20 14:39  jordi
22086
22087         * ThemeGtk.cs: use style_attach
22088
22089 2004-08-20 14:39  pbartok
22090
22091         * XplatUIWin32.cs:
22092           - Added jackson's Async code from X11 to Win32
22093
22094 2004-08-20 14:09  pbartok
22095
22096         * SWF.csproj:
22097           - Added all new files
22098
22099 2004-08-20 14:09  pbartok
22100
22101         * Control.cs:
22102           - Added call to set window background color
22103
22104 2004-08-20 14:03  pbartok
22105
22106         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22107           - Added method for setting the window background
22108
22109 2004-08-20 14:02  pbartok
22110
22111         * XplatUIWin32.cs:
22112           - Added method for setting the background color
22113           - Added handling for erasing the window background
22114
22115 2004-08-20 13:45  jordi
22116
22117         * TrackBar.cs: fixes timer, new properties and methods
22118
22119 2004-08-20 13:34  jackson
22120
22121         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22122           correct thread
22123
22124 2004-08-20 13:22  jackson
22125
22126         * Timer.cs: Timer Tick events are now handed through Controls Async
22127           mechanism so the callbacks are executed in the same thread as X
22128
22129 2004-08-20 13:19  jackson
22130
22131         * XplatUIDriver.cs: Expose functionality to send async messages
22132           through the driver
22133
22134 2004-08-20 13:18  jackson
22135
22136         * Control.cs: Implement Begininvoke
22137
22138 2004-08-20 13:14  jackson
22139
22140         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22141           messages through the driver
22142
22143 2004-08-20 13:12  jackson
22144
22145         * XplatUIX11.cs: Lock before all X operations. Also added Async
22146           method functionality through XSendEvent
22147
22148 2004-08-20 13:11  jackson
22149
22150         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22151           This will screw up on 64 bit systems)
22152
22153 2004-08-20 13:10  jackson
22154
22155         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22156           Async messages through X/Win32
22157
22158 2004-08-19 19:39  pbartok
22159
22160         * XplatUIX11.cs:
22161           - Updated code to match new HandleData.DeviceContext type
22162
22163 2004-08-19 19:38  pbartok
22164
22165         * HandleData.cs:
22166           - Made DeviceContext a generic object to allow usage from various
22167           drivers
22168           - Added support for queueing Windows messages
22169
22170 2004-08-19 19:37  pbartok
22171
22172         * XplatUIWin32.cs:
22173           - Added generation of MouseEnter, MouseLeave and MouseHover events
22174           - Added cleanup on EndPaint
22175
22176 2004-08-19 19:17  pbartok
22177
22178         * Control.cs:
22179           - Added handling of WM_MOUSEHOVER
22180           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22181           code
22182
22183 2004-08-19 18:55  jordi
22184
22185         * ThemeGtk.cs: fixes button order
22186
22187 2004-08-19 18:12  jordi
22188
22189         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22190
22191 2004-08-19 17:09  pbartok
22192
22193         * Control.cs:
22194           - Added Right property
22195           - Added RightToLeft property
22196
22197 2004-08-19 16:27  jordi
22198
22199         * ThemeGtk.cs: experimental GTK theme support
22200
22201 2004-08-19 16:26  jordi
22202
22203         * ITheme.cs, Theme.cs: move themes from an interface to a class
22204
22205 2004-08-19 16:25  jordi
22206
22207         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22208           theme enhancaments
22209
22210 2004-08-19 16:04  pbartok
22211
22212         * XplatUIX11.cs:
22213           - Added colormap basics
22214           - Added a way to re-initialize with a different display handle
22215           - Fixed setting of the window background color
22216           - Added various X11 imports related to colors and colormaps
22217
22218 2004-08-19 15:51  pbartok
22219
22220         * X11Structs.cs:
22221           - Removed packing hints (Paolo suggested this a while back)
22222           - fixed colormap type
22223           - Added default Atom types
22224           - Added Screen and color structs and enums
22225
22226 2004-08-19 15:39  pbartok
22227
22228         * ImageList.cs:
22229           - Added missing Draw() method
22230           - Added missing RecreateHandle event
22231
22232 2004-08-19 15:30  pbartok
22233
22234         * Form.cs:
22235           - Added handling of WM_CLOSE
22236
22237 2004-08-18 13:16  jordi
22238
22239         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22240           a table
22241
22242 2004-08-18 09:56  jordi
22243
22244         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22245
22246 2004-08-17 15:31  ravindra
22247
22248         * SWF.csproj: Updated project.
22249
22250 2004-08-17 15:25  pbartok
22251
22252         * Control.cs:
22253           - Drawing improvement; don't call UpdateBounds if we are not visible
22254             (or have been minimized)
22255
22256 2004-08-17 15:24  pbartok
22257
22258         * XplatUIWin32.cs:
22259           - Finished IsVisible
22260           - Added Win32GetWindowPlacement
22261
22262 2004-08-17 15:08  jackson
22263
22264         * Panel.cs: Initial checkin of the Panel
22265
22266 2004-08-17 14:25  pbartok
22267
22268         * Control.cs:
22269           - Fixed broken handling of default window sizes
22270
22271 2004-08-17 13:29  jackson
22272
22273         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22274           has a large startup time.
22275
22276 2004-08-17 10:25  jackson
22277
22278         * HandleData.cs: union areas properly
22279
22280 2004-08-17 10:12  jackson
22281
22282         * HandleData.cs: union areas properly
22283
22284 2004-08-16 20:00  ravindra
22285
22286         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22287
22288 2004-08-16 18:48  ravindra
22289
22290         * ToolBar.cs: Added attributes.
22291
22292 2004-08-16 17:17  ravindra
22293
22294         * SWF.csproj: Updated project.
22295
22296 2004-08-16 17:16  jackson
22297
22298         * XplatUIX11.cs: Check for more expose events before sending a
22299           WM_PAINT so they can all be grouped together. This makes dragging a
22300           window across another window redraw in a sane way.
22301
22302 2004-08-16 15:47  pbartok
22303
22304         * Control.cs:
22305           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22306             support OnMouseEnter/Leave()
22307           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22308             exposure handling
22309
22310 2004-08-16 15:46  pbartok
22311
22312         * XplatUIStructs.cs, XplatUIX11.cs:
22313           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22314           OnMouseEnter/Leave()
22315
22316 2004-08-16 15:34  jackson
22317
22318         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22319           sure messages get the message field set to WM_NULL if they are not
22320           handled.
22321
22322 2004-08-16 15:24  jackson
22323
22324         * HandleData.cs: HandleData is used for storing message information
22325           for window handles
22326
22327 2004-08-15 17:23  ravindra
22328
22329         * ColorDepth.cs: Added attribute.
22330
22331 2004-08-15 17:23  ravindra
22332
22333         * SWF.csproj: Updated project for ToolBar Control.
22334
22335 2004-08-15 17:20  ravindra
22336
22337         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22338           control and also dos2unix format.
22339
22340 2004-08-15 17:13  ravindra
22341
22342         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22343           ToolBarButtonClickEventArgs.cs,
22344           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22345           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22346
22347 2004-08-15 15:31  pbartok
22348
22349         * ButtonBase.cs:
22350           - First (mostly) working version
22351
22352 2004-08-13 16:15  pbartok
22353
22354         * Control.cs:
22355           - Fixed Anchor default
22356
22357 2004-08-13 15:43  pbartok
22358
22359         * Control.cs:
22360           - Changed GetCursorPos signature
22361
22362 2004-08-13 15:42  pbartok
22363
22364         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22365           - Changed signature for GetCursorPos
22366
22367 2004-08-13 15:25  pbartok
22368
22369         * XplatUIX11.cs:
22370           - Cleanup
22371           - Fixed resizing/exposure handling
22372
22373 2004-08-13 15:22  jordi
22374
22375         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22376           with tickposition
22377
22378 2004-08-13 14:55  jordi
22379
22380         * TrackBar.cs: change from wndproc to events
22381
22382 2004-08-13 13:00  jordi
22383
22384         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22385           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22386
22387 2004-08-13 12:53  pbartok
22388
22389         * XplatUIWin32.cs:
22390           - Changed GetWindowPos to also provide client area size
22391           - Fixed broken prototypes for several win32 functions
22392
22393 2004-08-13 12:53  pbartok
22394
22395         * XplatUI.cs, XplatUIDriver.cs:
22396           - Changed GetWindowPos to also provide client area size
22397
22398 2004-08-13 12:52  pbartok
22399
22400         * XplatUIX11.cs:
22401           - Added generation of WM_POSCHANGED
22402           - Changed GetWindowPos to also provide client area size
22403
22404 2004-08-13 12:52  pbartok
22405
22406         * Control.cs:
22407           - Added Dispose() and destructor
22408           - Fixed resizing and bounds calculation
22409           - Fixed Layout
22410           - Added memory savings for invisible windows
22411
22412 2004-08-13 12:46  jordi
22413
22414         * TrackBar.cs: adds timer and grap window
22415
22416 2004-08-13 10:25  jackson
22417
22418         * Timer.cs: SWF Timer
22419
22420 2004-08-12 16:59  pbartok
22421
22422         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22423           - Implemented method to get current mouse position
22424
22425 2004-08-12 14:29  jordi
22426
22427         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22428           enhancement, fix mouse problems, highli thumb, etc
22429
22430 2004-08-12 13:31  pbartok
22431
22432         * Control.cs:
22433           - Fixed Anchoring bugs
22434
22435 2004-08-12 13:01  jackson
22436
22437         * StatusBar.cs: Don't forget things
22438
22439 2004-08-12 12:54  jackson
22440
22441         * ThemeWin32Classic.cs: Handle owner draw status bars
22442
22443 2004-08-12 12:54  jackson
22444
22445         * StatusBar.cs: Implement missing properties, events, and methods.
22446           Handle mouse clicking
22447
22448 2004-08-12 10:19  jackson
22449
22450         * StatusBarPanelClickEventArgs.cs,
22451           StatusBarPanelClickEventHandler.cs: Classes for handling status
22452           bar panel click events
22453
22454 2004-08-12 10:10  jackson
22455
22456         * Control.cs: Add missing properties
22457
22458 2004-08-12 09:46  pbartok
22459
22460         * BindingsManagerBase.cs:
22461           - Name changed to BindingManagerBase.cs
22462
22463 2004-08-12 09:25  jordi
22464
22465         * ScrollableControl.cs: calls ctrlbase instead of exeception
22466
22467 2004-08-11 16:28  pbartok
22468
22469         * InputLanguageChangingEventArgs.cs:
22470           - Never check in before compiling. Fixes the last check-in
22471
22472 2004-08-11 16:26  pbartok
22473
22474         * InputLanguageChangingEventArgs.cs:
22475           - More signature fixes
22476
22477 2004-08-11 16:20  pbartok
22478
22479         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22480           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22481           ImageListStreamer.cs, InputLanguage.cs,
22482           InputLanguageChangedEventArgs.cs,
22483           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22484           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22485           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22486           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22487           - Signature fixes
22488
22489 2004-08-11 16:16  pbartok
22490
22491         * Application.cs:
22492           - Fixed Signature
22493           - Added .Net 1.1 method
22494
22495 2004-08-11 15:25  pbartok
22496
22497         * SWF.csproj:
22498           - Fixed BindingManagerBase.cs filename
22499
22500 2004-08-11 15:22  pbartok
22501
22502         * BindingManagerBase.cs:
22503           - Was checked in with wrong filename
22504
22505 2004-08-11 14:50  pbartok
22506
22507         * SWF.csproj:
22508           - Updated
22509
22510 2004-08-11 13:41  jordi
22511
22512         * XplatUIWin32.cs: Fixes ClientRect
22513
22514 2004-08-11 13:19  pbartok
22515
22516         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22517           XplatUIX11.cs:
22518           - We had SetWindowPos and MoveWindow to set window positions and
22519             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22520             keep SetWindowPos as matching counterpart
22521           - Added some X11 sanity checking
22522
22523 2004-08-11 12:59  pbartok
22524
22525         * Control.cs:
22526           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22527             (It seems that SetBounds is just a front for SetBoundsCore and
22528              SetBoundsCore updates the underlying window system and
22529              UpdateBounds is responsible for updating the variables associated
22530              with the Control and sending the events)
22531           - Major cleanup of Size handling; we now have two sizes, client_size
22532             and bounds. Bounds defines the window with decorations, client_size
22533             without them.
22534
22535 2004-08-11 12:55  pbartok
22536
22537         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22538           - Added method to calculate difference between decorated window and
22539             raw client area
22540
22541 2004-08-11 12:54  pbartok
22542
22543         * Label.cs:
22544           - Forcing redraw on resize
22545
22546 2004-08-11 11:43  pbartok
22547
22548         * ImageList.cs:
22549           - Removed disposing of the actual images when the list is disposed
22550
22551 2004-08-11 09:13  pbartok
22552
22553         * Control.cs:
22554           - Now properly reparents windows
22555
22556 2004-08-11 08:37  pbartok
22557
22558         * Control.cs:
22559           - Duh!
22560
22561 2004-08-11 07:47  pbartok
22562
22563         * Control.cs:
22564           - Rewrote the collection stuff. Might not be as fast now, not
22565             keeping the number of children around and accessible directly, but
22566             it's more straightforward
22567
22568 2004-08-11 07:44  pbartok
22569
22570         * AccessibleObject.cs:
22571           - Fixed to match ControlCollection rewrite
22572
22573 2004-08-11 07:43  pbartok
22574
22575         * ImageList.cs:
22576           - Added missing creation of the collection list
22577
22578 2004-08-10 20:08  jackson
22579
22580         * StatusBar.cs: Get the paint message from WndProc
22581
22582 2004-08-10 19:31  jackson
22583
22584         * ThemeWin32Classic.cs: Create Brushes as little as possible
22585
22586 2004-08-10 19:20  jackson
22587
22588         * UICues.cs: Add Flags attribute
22589
22590 2004-08-10 19:19  jackson
22591
22592         * StatusBarPanel.cs: Signature cleanup
22593
22594 2004-08-10 19:10  jackson
22595
22596         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22597           Initial implementation of status bar item drawing
22598
22599 2004-08-10 17:27  jordi
22600
22601         * TrackBar.cs: add missing methods, properties, and restructure to
22602           hide extra ones
22603
22604 2004-08-10 16:24  jackson
22605
22606         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22607           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22608           attribute
22609
22610 2004-08-10 13:21  jordi
22611
22612         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22613           enhancements and standarize on win colors defaults
22614
22615 2004-08-10 12:52  jackson
22616
22617         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22618           ThemeWin32Classic.cs: Implement DrawItem functionality
22619
22620 2004-08-10 12:47  jordi
22621
22622         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22623
22624 2004-08-10 12:32  jordi
22625
22626         * Control.cs: throw ontextchange event
22627
22628 2004-08-10 11:43  pbartok
22629
22630         * Control.cs:
22631           - Added more to the still unfinished Dock/Anchor layout code
22632
22633 2004-08-10 11:39  pbartok
22634
22635         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22636           - Added GetWindowPos method
22637
22638 2004-08-10 11:36  pbartok
22639
22640         * XplatUIWin32.cs:
22641           - Implemented several methods
22642
22643 2004-08-10 09:47  jackson
22644
22645         * TrackBar.cs: Allow control to handle buffering
22646
22647 2004-08-10 09:41  jackson
22648
22649         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22650
22651 2004-08-10 09:24  jackson
22652
22653         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22654
22655 2004-08-10 09:09  jackson
22656
22657         * StatusBar.cs: Let Control handle all the buffering.
22658
22659 2004-08-10 09:08  jackson
22660
22661         * Control.cs: Control will now handle the buffering code, so each
22662           control does not have to implement this.
22663
22664 2004-08-10 08:34  jackson
22665
22666         * XplatUIDriver.cs: Use default colors from the theme
22667
22668 2004-08-09 17:12  pbartok
22669
22670         * ImageList.cs:
22671           - Fixed several bugs Ravindra pointed out
22672
22673 2004-08-09 16:11  pbartok
22674
22675         * Control.cs:
22676           - Added incomplete dock layout code
22677           - Added support for mouse wheel
22678
22679 2004-08-09 16:09  pbartok
22680
22681         * XplatUIX11.cs:
22682           - Added handling for middle and right mousebutton
22683           - Added handling for mouse wheel
22684           - Added handling for key state and mouse state and position
22685           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22686           messages
22687
22688 2004-08-09 15:40  jackson
22689
22690         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22691           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22692           checkin
22693
22694 2004-08-09 15:37  jackson
22695
22696         * StatusBar.cs: Initial implementation of StatusBar
22697
22698 2004-08-09 15:36  jackson
22699
22700         * ITheme.cs: Add support for drawing status bar and getting status
22701           bar item sizes
22702
22703 2004-08-09 15:35  pbartok
22704
22705         * MouseButtons.cs:
22706           - Fixed values
22707
22708 2004-08-09 15:34  jackson
22709
22710         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22711           status bar item sizes
22712
22713 2004-08-09 15:21  jackson
22714
22715         * ThemeWin32Classic.cs: Use known colors for default control
22716           colours
22717
22718 2004-08-09 15:12  jackson
22719
22720         * ThemeWin32Classic.cs: Make the default font static, it is static
22721           in control so this doesn't change functionality and creating fonts
22722           is sloooooow.
22723
22724 2004-08-09 14:56  pbartok
22725
22726         * X11Structs.cs:
22727           - Added GrabMode enum
22728
22729 2004-08-09 14:55  pbartok
22730
22731         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22732           - Removed Run method, was only required for initial development
22733
22734 2004-08-09 14:51  pbartok
22735
22736         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22737           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22738           capture
22739
22740 2004-08-09 13:48  pbartok
22741
22742         * XplatUIX11.cs:
22743           - Fixed default sizing for child windows
22744
22745 2004-08-09 12:56  pbartok
22746
22747         * XplatUIX11.cs:
22748           - Added generation of WM_DESTROY message
22749           - Added handling of window manager induced shutdown
22750
22751 2004-08-09 11:31  jackson
22752
22753         * ThemeWin32Classic.cs: New names for control properties
22754
22755 2004-08-09 11:25  jackson
22756
22757         * Control.cs: Use new color names
22758
22759 2004-08-09 11:02  jackson
22760
22761         * XplatUI.cs: Get default window properties from the theme
22762
22763 2004-08-09 11:01  jackson
22764
22765         * ITheme.cs: The theme engine now controls default window
22766           properties
22767
22768 2004-08-09 11:00  jackson
22769
22770         * ThemeWin32Classic.cs: Add default window color properties
22771
22772 2004-08-09 10:17  jackson
22773
22774         * ThemeWin32Classic.cs: Use correct default back color
22775
22776 2004-08-09 10:05  jackson
22777
22778         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22779           the theme now.
22780
22781 2004-08-09 09:56  jackson
22782
22783         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22784
22785 2004-08-09 09:54  jackson
22786
22787         * Control.cs: Get default properties from the theme.
22788
22789 2004-08-09 09:53  jackson
22790
22791         * ITheme.cs: Themes now handle default control properties
22792
22793 2004-08-09 09:53  jackson
22794
22795         * ThemeWin32Classic.cs: Themes now handle default control
22796           properties so coloring will be consistent
22797
22798 2004-08-08 16:54  jordi
22799
22800         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22801
22802 2004-08-08 15:08  jordi
22803
22804         * XplatUIX11.cs: fixes keyboard crash
22805
22806 2004-08-08 13:47  jordi
22807
22808         * Label.cs: add cvs header info
22809
22810 2004-08-08 12:09  jackson
22811
22812         * ThemeWin32Classic.cs: Add pen_buttonface
22813
22814 2004-08-08 11:52  jordi
22815
22816         * Label.cs, LinkLabel.cs: [no log message]
22817
22818 2004-08-08 11:34  jordi
22819
22820         * ThemeWin32Classic.cs: Use Windows Standard Colours
22821
22822 2004-08-07 17:32  jordi
22823
22824         * TrackBar.cs: throw exceptions of invalid enums values
22825
22826 2004-08-07 17:31  jordi
22827
22828         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22829           draw method name
22830
22831 2004-08-07 16:56  jackson
22832
22833         * HorizontalAlignment.cs: Initial checkin
22834
22835 2004-08-07 13:16  jordi
22836
22837         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22838           methods
22839
22840 2004-08-07 13:05  jordi
22841
22842         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22843           GetSysColor defines
22844
22845 2004-08-06 18:01  pbartok
22846
22847         * ThemeWin32Classic.cs:
22848           - Fixed some rounding issues with float/int
22849
22850 2004-08-06 18:00  jackson
22851
22852         * DockStyle.cs, AnchorStyles.cs:
22853
22854                   Add flags and serializable attributes.
22855
22856 2004-08-06 17:46  pbartok
22857
22858         * XplatUIX11.cs:
22859           - Implemented GetParent
22860
22861 2004-08-06 17:18  pbartok
22862
22863         * TrackBar.cs:
22864           - Fixed some rounding issues with float/int
22865
22866 2004-08-06 17:17  pbartok
22867
22868         * X11Structs.cs, XplatUIX11.cs:
22869           - Fixed Refresh and Invalidate
22870
22871 2004-08-06 15:30  pbartok
22872
22873         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22874           - Fixed recursive loop when resizing
22875           - Improved/fixed redrawing on expose messages
22876
22877 2004-08-06 09:53  jordi
22878
22879         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22880           keyboard navigation
22881
22882 2004-08-06 08:02  pbartok
22883
22884         * X11Structs.cs, XplatUIX11.cs:
22885           - Fixed reparenting
22886           - Fixed window border creation
22887
22888 2004-08-05 15:38  pbartok
22889
22890         * XplatUIX11.cs:
22891           - Attempted fix for reparenting problems
22892
22893 2004-08-04 15:14  pbartok
22894
22895         * Control.cs:
22896           - Fixed Invalidation bug (calculated wrong client area)
22897           - Added ClientSize setter
22898
22899 2004-08-04 15:13  pbartok
22900
22901         * Form.cs:
22902           - Added AutoScale properties
22903
22904 2004-08-04 15:13  pbartok
22905
22906         * SWF.csproj:
22907           - Added latest files
22908
22909 2004-08-04 14:11  pbartok
22910
22911         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22912           XplatUIX11.cs:
22913           - Added Invalidate handling
22914
22915 2004-08-03 17:09  jordi
22916
22917         * XplatUIDriver.cs: fixes spelling mistake
22918
22919 2004-07-27 09:53  jordi
22920
22921         * TrackBar.cs: fixes trackbar events, def classname, methods
22922           signature
22923
22924 2004-07-27 09:29  jordi
22925
22926         * ScrollBar.cs: fixes scrollbar events
22927
22928 2004-07-27 04:38  jordi
22929
22930         * Control.cs: changes to be able to run winforms samples
22931
22932 2004-07-26 11:42  jordi
22933
22934         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
22935           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
22936
22937 2004-07-26 05:41  jordi
22938
22939         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
22940           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
22941           implementation
22942
22943 2004-07-22 09:22  jordi
22944
22945         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
22946           check link overlapping, implement events, and fixes
22947
22948 2004-07-21 10:28  jordi
22949
22950         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
22951
22952 2004-07-21 10:19  jordi
22953
22954         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
22955           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
22956           LinkLabelLinkClickedEventArgs.cs,
22957           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
22958           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
22959           implementation
22960
22961 2004-07-19 13:09  jordi
22962
22963         * Control.cs, Label.cs: label control re-written: added missing
22964           functionlity, events, and properties
22965
22966 2004-07-19 10:49  jordi
22967
22968         * Control.cs: fixes SetBounds logic
22969
22970 2004-07-19 01:29  jordi
22971
22972         * Control.cs: Call RefreshWindow only if the window has created
22973
22974 2004-07-15 14:05  pbartok
22975
22976         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
22977           - Implemented ImageList and ImageList.ImageCollection classes
22978           - Added ColorDepth enumeration
22979           - Updated SWF VS.Net project
22980
22981 2004-07-15 11:06  jordi
22982
22983         * XplatUIStructs.cs: added MsgButons enum
22984
22985 2004-07-15 11:03  jordi
22986
22987         * Control.cs: added basic mouse handeling events
22988
22989 2004-07-15 03:38  jordi
22990
22991         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
22992           Vertical TrackBar control implementation
22993
22994 2004-07-13 09:33  jordi
22995
22996         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
22997
22998 2004-07-13 09:31  jordi
22999
23000         * Control.cs, Form.cs: commit: new properties and fixes form size
23001           problems
23002
23003 2004-07-09 14:13  miguel
23004
23005         * ProgressBar.cs: Spelling
23006
23007 2004-07-09 11:25  pbartok
23008
23009         * ProgressBar.cs:
23010           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23011           faster
23012
23013 2004-07-09 11:17  miguel
23014
23015         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23016
23017                 * ProgressBar.cs: Fixed spelling for `block'
23018
23019                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23020                 style guidelines.
23021
23022                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23023
23024 2004-07-08 23:21  pbartok
23025
23026         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23027           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23028           BaseCollection.cs, Binding.cs, BindingContext.cs,
23029           BindingMemberInfo.cs, BindingsCollection.cs,
23030           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23031           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23032           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23033           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23034           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23035           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23036           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23037           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23038           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23039           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23040           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23041           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23042           InputLanguageChangedEventArgs.cs,
23043           InputLanguageChangedEventHandler.cs,
23044           InputLanguageChangingEventArgs.cs,
23045           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23046           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23047           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23048           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23049           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23050           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23051           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23052           QueryAccessibilityHelpEventArgs.cs,
23053           QueryAccessibilityHelpEventHandler.cs,
23054           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23055           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23056           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23057           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23058           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23059           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23060           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23061           XplatUIX11.cs, lang.cs:
23062           - Initial check-in
23063