* DateTimePicker.cs: Call RecreateHandle if the Format changes and
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2
3         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
4           validate Text input (if null or empty string reset Value to default
5           value). Fixes #80830.
6
7 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8
9         * ListView.cs: Set owner as null for columns and items when
10         Dispose is invoked. Fixes #80607.
11
12 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
13
14         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
15         showing DropDowns, don't show a Grip when doing Flow layout.
16         [This fixes the toolbox in PDN 2.72.]
17         * ToolStripItem.cs: Add Anchor property and some internal properties to
18         reduces needed changes to FlowLayout.
19         * ToolStripOverflow.cs: Remove unused variable.
20         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
21         use it in the layout calculations.
22
23 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
24
25         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
26         reported in #79640.
27         
28         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
29         size calculation.
30
31 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
32
33         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
34         MeasureString format, it can make button very large in some cases, it is
35         strange but is what win32 do.
36
37 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
38
39         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
40         size calculation.
41
42         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
43         rendering, the value is based on MenuAccessKeysUnderlined.
44
45 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
46
47         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
48         for most themes.
49         
50         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
51         
52         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
53         and use MenuAccessKeysUnderlined instead.
54
55 2007-02-13  Andreia Gaita  <avidigal@novell.com>
56
57         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
58         A selected control would not get a Focus call if:
59                 - the default active control of the container is the same as
60                   the one that was selected
61                 - we are switching from one container to another
62         Under these conditions, the container being selected already has
63         an active_control, which is the same as the one being activated, 
64         so set_ActiveControl would always return and not send the Focus
65         call. Fix to check if the currently active control of the container
66         is actually focused.
67
68 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
69
70         * StatusStrip.cs: Implement the spring layout.
71         * ToolStripControlHost.cs: Make sure the hosted control's visibility
72         always matches the host.
73         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
74         and TextAfterImage.
75
76 2007-02-13  Andreia Gaita  <avidigal@novell.com>
77
78         * Control.cs: Code reorganization only.
79           - Reorganize the WndProc cases so that each case has it's own handling method, 
80           to help with the no-line-numbering stack traces.
81           - Formatting changes (it's vstudio's fault, really :p)
82
83 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
84
85         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
86           Thread.CurrentUICulture to match DateTimePicker's (and MS)
87           behaviour.
88
89 2007-02-12  Jackson Harper  <jackson@ximian.com>
90
91         * RichTextBox.cs:
92         * TextBox.cs: By default we have a non multiline document
93         - use the multiline property instead of the internal variable
94         * TextBoxBase.cs: Treat multiline and non multiline the same in
95         most places.
96         - Use the documents multiline flag instead of tracking it ourself
97         * TextControl.cs: Attempt at getting multiline to match MS
98         behavior.  Lines now track an offset, which is either their X or Y
99         offset depending on whether or not we are in multiline mode.
100         - Update all the methods to understand that lines have an X value.
101         - Fix crash in Undo::Duplicate when empty lines are deleted.
102
103 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
104
105         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
106         code moved to properties PreferredHeight and PreferredWidth. It solve the
107         all problems when preferred sizes must be recalculated. Fixes #80801.
108
109 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
110
111         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
112         font height when compatible_text_rendering is false. Partially fix #80801.
113
114 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
115
116         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
117
118 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
119
120         * Form.cs: Improved exception messages in ShowDialog.
121
122 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
123
124         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
125         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
126         if not set. Fixes bug #80764. Avoid accessing current_settings field
127         directly.
128
129 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
130
131         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
132         false.
133
134         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
135         public in 2.0 and for easy maintenance and dont break compatibility it is 
136         internal in 1.1.
137         
138 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
139
140         * ToolStripItem.cs: Implement using images from ImageList.
141
142 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
143
144         * DateTimePicker.cs: Change default date-formatting culture from
145           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
146           seems to be the way MS does it.
147
148 2007-02-08  Andreia Gaita  <avidigal@novell.com>
149
150         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
151         (the 6 was cut off on the right side)
152
153 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
154
155         * Form.cs: Tell MenuStrips to close when the form is clicked.
156         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
157         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
158         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
159         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
160         support for Overflow, where items that do not fit are automatically
161         reparented to a drop down menu.
162         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
163         Also: fixes bug #80747.
164
165 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
166
167         * ComboBox.cs: Remove warning (unused code).
168         * ScrollableControl.cs: Remove warning for 1.1 profile.
169
170 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
171
172         * Form.cs: Remove a warning.
173
174 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
175
176         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
177           'g' specifier, not documented anywhere, but seems to always show up
178           as a single space (might have something to do with the DateTime 'g'
179           specifier, which is the era format, but since DateTimePicker can't
180           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
181           won't crash if the format has an unmatched quote. Now shows
182           single-character formats correctly. Fixes #80744.
183
184 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
185
186         * StatusStrip.cs: Stretch property needs to call base.Stretch,
187         not this.Stretch to fix stack overflow. [Fixes bug #80760]
188
189 2007-02-07  Chris Toshok  <toshok@ximian.com>
190
191         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
192         background color.  it overwrites the background image we've
193         already painted.  Fixes #80599.
194
195 2007-02-07  Chris Toshok  <toshok@ximian.com>
196
197         * DataGrid.cs: return immediately from Edit() when there are no
198         columns.  Fixes #80662.
199
200 2007-02-07  Chris Toshok  <toshok@ximian.com>
201
202         * MessageBox.cs: fix #80625.  don't always show the Help button in
203         2.0.  use the displayHelpButton parameter to determine if we
204         should show it. Also, make the internal show_help field private.
205
206 2007-02-07  Chris Toshok  <toshok@ximian.com>
207
208         * Control.cs (SetVisibleCore): check in the proposed patch for
209         80604, and set is_visible before calling CreateControl.
210
211 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
212
213         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
214         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
215         on it.
216
217 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
218
219         * MenuAPI.cs: hotkey_active internal field added, it is required because
220         we need to know when hotkeys must be draw, before this change a keystate
221         Navigating was used but we can have menu in navigating state without
222         hotkeys. Fixes #80694.
223         
224         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
225
226 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
227
228         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
229           corresponding events and methods to be internal for 1.1 profile and
230           public for 2.0 profile (required by SizeGrip).
231         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
232           implicit control list). Don't set the size nor the location of the
233           SizeGrip anymore as it's not needed.
234         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
235           draw directly on the captured control (fixes #80656). Removed
236           ShowGrip (it wasn't used anywhere), redraw (always true), added
237           GetDefaultSize and GetDefaultRectangle to calculate defaults.
238         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
239           be called from SizeGrip.
240
241 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
242
243         * Timer.cs: Throw ArgumentException if Interval <= 0.
244
245 2007-02-05  Jackson Harper  <jackson@ximian.com>
246
247         * TreeView.cs: We need to check scrollbar visibility when window
248         visibility is updated, because non visible trees don't ever add
249         scrollbars.
250         * Cursor.cs: We want the override cursor to be reset to NULL when
251         we set current cursor to the default cursor.
252
253 2007-02-05  Jackson Harper  <jackson@ximian.com>
254
255         * TextControl.cs: Don't have crlfs when we are non multiline.
256         - Consolidate the line position.
257
258 2007-02-05  Jackson Harper  <jackson@ximian.com>
259
260         * X11Keyboard.cs: BACK+CTRL gets a special char code.
261
262 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
263
264         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
265           handling LeaveNotify->NotifyUngrab in order to send
266           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
267           after calling XUngrabPointer, so we call WindowUngrabbed directly
268           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
269         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
270           MouseCaptureChanged correctly. Also create handles if changing
271           Capture (matches MS behaviour).
272
273 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
274
275         * SizeGrip.cs: Make the last change 2.0 only.
276
277 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
278
279         * SizeGrip.cs: If resizing and the capture is lost, revert any size
280           changes to initial size (fixes #80597).
281
282 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
283
284         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
285
286 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
287
288         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
289           background) and only allow dragging if enabled. This way the
290           sizegrip can be used to fill the open square that otherwise would
291           have been shown in the bottom right corner of ScrollableControl
292           when ScrollableControl is not suppose to support sizing.
293         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
294           sizegrip is shown and enabled, and hook up with necessary events.
295
296 2007-02-01  Chris Toshok  <toshok@ximian.com>
297
298         * DataGridTextBoxColumn.cs: clean up the
299         GetFormattedString/GetColumnValueAtRow combination of functions.
300         Also fix UpdateUI, and the initial state of
301         IsInEditOrNavigateMode.
302
303         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
304         aren't supposed to scroll the textbox here, we're supposed to
305         scroll the datagrid.
306
307 2007-02-01  Chris Toshok  <toshok@ximian.com>
308
309         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
310         setting the position.
311
312 2007-02-01  Chris Toshok  <toshok@ximian.com>
313
314         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
315         here, since the most recent focus fixes keep us from generating
316         the Leave event when our textbox gets focus.
317         (Edit): we should be passing null for the column style's
318         instantText parameter.
319         
320 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
321
322         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
323         raised.  Fixes menu text/icons not showing up in PDN.
324
325 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
326
327         * Control.cs: Remove code in constructor that makes every
328         control with WS_CHILD set have initial location -1, -1.
329
330 2007-01-31  Jackson Harper  <jackson@ximian.com>
331
332         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
333         XplatUIX11.
334         * XplatUIX11.cs: Give teh keyboard to teh dnd.
335
336 2007-01-31  Jackson Harper  <jackson@ximian.com>
337
338         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
339         - Remove some debug code.
340
341 2007-01-31  Jackson Harper  <jackson@ximian.com>
342
343         * XplatUIX11.cs: If you set the override cursor during a grab, it
344         should actually override the grab cursor.  This comes into play
345         when you are setting custom cursors in a DND feedback method.
346
347 2007-01-31  Jackson Harper  <jackson@ximian.com>
348
349         * X11Dnd.cs: Add support for handling the QueryContinue and
350         GiveFeedback events.
351         - Cancel drag and drop actions when the escape key is clicked.
352         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
353         can handle the ESCAPE key.
354         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
355         done when dnd events are continued after the button is released.
356         - Add a new helper method so that dnd can translate key events.
357
358 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
359
360         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
361         make it more obvious what is happening.
362
363 2007-01-30  Jackson Harper  <jackson@ximian.com>
364
365         * XplatUIX11.cs: Don't break when handling button release in drag
366         and drop operations. We need that BUTTONUP message to get through
367         so capture is released.
368         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
369         this is handled automatically when the mouse is down.
370
371 2007-01-30  Jackson Harper  <jackson@ximian.com>
372
373         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
374         is closed, so we need to make sure that we aren't changing the
375         dialog result when the OK (Open or Save) button has been clicked
376         and we are closing the window ourselves.  Note we don't need to
377         worry about the cache being written in this case, because it was
378         already done in the previous FilOk call.
379
380 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
381         
382         * DateTimePicker.cs: Remove a warning.
383         * ComboBox.cs: Remove a couple of warnings.
384
385 2007-01-29  Chris Toshok  <toshok@ximian.com>
386
387         * XplatUIX11.cs: don't crash, and remove the icon if the user has
388         set one, if SetIcon is passed a null icon.
389
390 2007-01-29  Andreia Gaita  <avidigal@novell.com>
391
392         * TextBox.cs: Redraw when the password characters changes
393         * TextControl.cs: Check if textbox has a password char and draw 
394         a line of password chars instead of the text in the line. LineTag gets 
395         an extra Draw() method which allows document.Draw to override the text 
396         that will be drawn. Removes 1024 char limitation on length of passworded 
397         lines.
398
399 2007-01-29  Jackson Harper  <jackson@ximian.com>
400
401         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
402         single chars is not.
403
404 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
405
406         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
407         one pixel.  Fix a StackOverflowException caused by an overload wrongly
408         calling itself.
409
410 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
411
412         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
413         also remove ProcessArrowKey and put the code inside ProcessKeys.
414
415 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
416
417         * PaddingConverter.cs: Added.
418
419 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
420         
421         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
422         ShowPanels is false (fixes #80600). Only draw up to 127 characters
423         of text (fixes #80601). For panels clip the text to draw to the
424         panel (fixes #80603).
425
426 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
427
428         * ComboBox.cs: Fixed implementation of ResetText.
429
430 2007-01-25  Jackson Harper  <jackson@ximian.com>
431
432         * TextControl.cs: For the last char of a line we need to use the
433         line size, not that chars width, since it won't actually be
434         computed since the right side of a char is based on the start of
435         the left side of the next char, and the next char does not exist.
436
437 2007-01-25  Chris Toshok  <toshok@ximian.com>
438
439         * Splitter.cs: fix the new unit tests, and reindent some switch
440         statements.
441
442 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
443
444         * ComboBox.cs: Implemented 2.0 methods and events.
445         * TextBoxBase.cs: Added OnTextUpdate, so that
446         ComboBox.ComboTextBox can inform ComboBox of it.
447
448 2007-01-25  Jackson Harper  <jackson@ximian.com>
449
450         * TextControl.cs: Respect ShowSelection when deciding whether or
451         not to display the caret, this allows comboboxes to have carets
452         when the combotextbox does not have focus.
453
454 2007-01-25  Jackson Harper  <jackson@ximian.com>
455
456         * TextControl.cs: Add a Suspend/Resume for updating, basically the
457         same as the Suspend/Resume for recalc, except this will do actual
458         Invalidates.
459         - New Undo manager, works much like the MS version.
460         - Implemented Redo
461         * TextBoxBase.cs: The Cut operation is undoable.
462
463 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
464         
465         * TextBoxBase.cs: Don't antialias text. Makes it look way better
466         on Windows (no difference on Linux).    
467
468 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
469
470         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
471         we don't want to activate any windows. Fixes #79433.
472
473 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
474
475         - ButtonBase.cs: Fix capitalization of parameter: disposing.
476         [Fixes bug #80609]
477
478 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
479
480         * FileDialog.cs:
481         - Move to using System.ComponentModel.EventHandlerList
482         - Replace Refresh with Invalidate
483         - Clear the mime filecache on closing
484         - Some other memory reducing work. After beeing closed FD now uses
485           only about 300 KB for the fdo mime stuff plus the memory of the
486           cached icons.
487         * Mime.cs: Changed coding style and removed unnecessary commented
488         code. Some more memory memory reducing work.
489
490 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
491
492         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
493         a few other missing 2.0 properties.
494         * Theme.cs: Added DrawFlatStyleComboBox.
495         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
496
497 2007-01-24  Chris Toshok  <toshok@ximian.com>
498
499         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
500         wake_waiting flag, not just when there's data to be read.  if we
501         don't, then future wakeup's won't reach us and we'll be doomed to
502         wait for the entire 1 second timeout forever (unless there are X
503         events to be had).
504
505 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
506
507         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
508         until you pass Items.Count, not Items.Count - 1 like 1.1.
509
510 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
511
512         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
513
514 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
515
516         * ToolStripContainer.cs: The recent Dock fix exposed that I was
517         adding the panels in the wrong order.
518
519 2007-01-24  Jackson Harper  <jackson@ximian.com>
520
521         * TextBoxBase.cs: When we move the caret we also need to move the
522         selection, this fixes some random crashing after doing select
523         text, unselect, delete a char, paste.
524
525 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
526
527         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
528
529 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
530
531         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
532         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
533         * ToolBar.cs: Force redraw in BackgroundImageChanged.
534
535 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
536
537         * ToolBar.cs:
538         - Implement support for vertical toolbars. Fixes #80539;
539         - Call LayoutToolBar when resize, it fix some other problems in layout.
540         - Rename requested_height to requested_size, as we can have width on it
541         when toolbar is vertical.
542         - Create a private property "Vertical" that uses Dock to verify when 
543         toolbar is vertical or not.
544         - Set ControlStyles when change Dock property.
545         - Refactory in LayoutToolBar to have better variables names and to support
546         vertical toolbars.
547         - Fixes default value for ButtonSize when button count is equal zero, size
548         must be (39, 36) test case writed.
549
550 2007-01-23  Chris Toshok  <toshok@ximian.com>
551
552         * Control.cs: fix the checks so that they work correctly for mdi
553         parents/children.
554
555 2007-01-23  Chris Toshok  <toshok@ximian.com>
556
557         * Control.cs: ControlCollection seems to have super-secret
558         abstraction breaking knowledge of Mdi containers.  allow MdiClient
559         to add toplevel controls.
560
561 2007-01-23  Chris Toshok  <toshok@ximian.com>
562
563         * Control.cs: throw an ArgumentException if a toplevel control is
564         added to our control collection from ControlCollection.Add, as
565         well as from ControlCollection.IList.Add.  This fixes the
566         ControlSetTopLevelTest.TestTopLevelAdd unit test.
567
568         Also, in ControlCollection.IList.Add, don't through an
569         ArgumentNullException, throw an ArgumentException, when value ==
570         null.  This matches MS.
571
572 2007-01-23  Chris Toshok  <toshok@ximian.com>
573
574         * BindingSource.cs: initial, incomplete, implementation of
575         BindingSource.
576
577 2007-01-23  Jackson Harper  <jackson@ximian.com>
578
579         * TextControl.cs:
580         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
581         that I can fix a broken unit test (TextBoxTest::ClearUndo)
582         
583 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
584
585         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
586
587 2007-01-23  Andreia Gaita  <avidigal@novell.com>
588
589         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
590         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
591         IndexOfKey() for 2.0
592
593 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
594
595         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
596         to prevent it from changing z-order.
597         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
598         leave UI updates in MdiWindowManager.
599         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
600         1 sized (NC handling goes weird on Linux otherwise).
601         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
602         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
603         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
604         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
605         and SetWindowState(s) to allow for changing the size of an activated child
606         before activating it (reduces a lot of flicker).
607
608 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
609
610         * Form.cs: Changing FormBorderStyle has different semantics based
611         on whether the Form is visible or not.  If not visible, don't change
612         the Size.  But InvalidateNC needs to be called to force the window
613         to pick up the changes and redraw itself.  [Fixes bug #80574]
614
615 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
616
617         [Moma work]
618         * ContainerControl.cs: ProcessCmdKey.
619         * ErrorProvider.cs: new constructor.
620         * Form.cs: fix AutoValidateEvent compiler warning.
621         * Label.cs: fix OnAutoSizeChanged compiler warning.
622         * MenuStrip.cs: fix CanOverflow compiler warning.
623         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
624         * TextBox.cs: Dispose.
625         * ToolStrip.cs: CanOverflow, re-enable double buffering.
626         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
627         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
628         * ToolStripItem.cs: Overflow, RightToLeft properties.
629
630 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
631
632         * Form.cs: Move the layout of the main form to MdiWindowManager.
633         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
634         do a layout of the main window to update MdiClient's client area to
635         the right area. Fixes #80533. Remove the calculation of nc size, 
636         it was just wrong and the correct one is the same as for 
637         InternalWindowManager. 
638
639 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
640
641         * Control.cs: Setting Anchor or Dock needs to reset the other
642         to its default.  [Fixes bug #80556]
643
644 2007-01-20  Chris Toshok  <toshok@ximian.com>
645
646         * CheckedListBox.cs: class status changes.
647
648         * ScrollableControl.cs: same.
649
650         * RichTextBox.cs: same.
651
652         * ContainerControl.cs: same.
653
654         * ListView.cs: same.
655
656         * NotifyIcon.cs: same.
657
658         * MenuStrip.cs: same.
659
660         * RadioButton.cs: same.
661
662         * CheckBox.cs: same.
663
664         * PrintPreviewDialog.cs: same.
665
666         * Form.cs: same.
667
668 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
669
670         * TreeNode.cs: Apply Alan's patch for Name property.
671
672 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
673         
674         * Form.cs: Implemented SizeGripStyle.
675         * SizeGrip.cs: Check for minimum and maximum size for the
676         control being resized and only resize if size has actually
677         changed.
678
679 2007-01-19  Chris Toshok  <toshok@ximian.com>
680
681         * DataGridColumnStyle.cs: stop setting _readonly in the
682         PropertyDescriptor setter.  fixes a unit test failure.
683
684         also, rename ParentReadOnly to TableStyleReadOnly, and have it
685         just consult our table style (if we have one).  We don't need to
686         consult the datagrid readonly attribute because that's passed in
687         as the _ro arg to Edit.  this simplifies things a little.
688         
689         * DataGrid.cs: use CurrentColumn instead of
690         current_cell.ColumnNumber just to simplify some of the code.
691
692         switch the order of some things in the CurrentCell setter to keep
693         the previous cell from getting a textbox again -
694         EnsureCellVisibility causes scrolling to happen, which calls Edit.
695         So we need to set the new cell before calling it.
696         
697         call Edit in OnEnter, as does Microsoft.
698         
699         also, make sure the current table style isn't the one we create
700         initially when checking to see if it's different than the one
701         we're setting it to in BindColumns (this fixes #80421).
702
703         * GridTableStylesCollection.cs: table styles can have "" for a
704         mapping name.  part of the fix for #80421.
705
706         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
707         Edit significantly.
708
709 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
710
711         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
712         and less GDI object leaky-er.
713
714 2007-01-18  Andreia Gaita  <avidigal@novell.com>
715
716         * LinkLabel.cs: Add opaque control style
717
718 2007-01-18  Jackson Harper  <jackson@ximian.com>
719
720         * TextControl.cs: Calculate width properly.
721         - Don't store the tag's X offset, this can be figured out very
722         easily.
723         - When getting the caret tag make sure to get the last empty tag.
724
725 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
726
727         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
728         [Fixes bug #79959]
729
730         * Control.cs: Color.Empty shouldn't count for previous transparent
731         redraw changes.
732
733 2007-01-18  Jackson Harper  <jackson@ximian.com>
734
735         * TextBox.cs:
736         * RichTextBox.cs:
737         * TextControl.cs: Starting to merge in some pieces of my older
738         undo work.  Basically just some slight cleanup of the undo API.
739
740 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
741
742         * TrackBar.cs: Fix signature of RightToLeftLayout.
743         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
744         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
745         * Application.cs: Implemented UseWaitCursor.
746
747 2007-01-18  Jackson Harper  <jackson@ximian.com>
748
749         * TextControl.cs: We can't skip tags if any part of the tag is
750         visible.
751
752 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
753
754         * ContainerControl.cs: Override OnLayout.
755
756 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
757
758         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
759
760         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
761         everything else.
762
763 2007-01-18  Chris Toshok  <toshok@ximian.com>
764
765         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
766         (leftover from the container_selected days, I'd wager).  fixes bug
767         #80546.
768
769 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
770
771         * Control.cs: Apply patch from George to fix the new testcase on
772         bug #80451.  We can't just check for Color.Transparent, we need 
773         to check if the back color's alpha channel is < 255.
774
775 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
776
777         * Form.cs: Move setting show_icon = true to before the constructor
778         so that the base constructor has that information when it calculates
779         the form's size.  Was causing forms to be (6, 6) bigger than they
780         were supposed to be.  Thanks for catching this Rolf!
781
782 2007-01-18  Jackson Harper  <jackson@ximian.com>
783
784         * TextControl.cs: When replacing a selection we need to invalidate
785         from the initial selection start, because selection start is moved
786         to the end of the replacement.
787
788 2007-01-18  Andreia Gaita  <avidigal@novell.com>
789
790         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
791
792 2007-01-18  Chris Toshok  <toshok@ximian.com>
793
794         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
795         I just added.
796
797 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
798
799         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
800         layout methods and properties from ToolBarButton must be available
801         into ToolBarButtonInfo.
802
803 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
804
805         * Control.cs: If the control has a transparent background, we
806         need to refresh it when it moves and when it's parent's background
807         image changes.  [Fixes bug #80451]
808
809 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
810
811         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
812
813 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
814
815         * XplatUIWin32.cs: Implement proper double buffering for Windows.
816         [Fixes bug #80447, and probably speeds up things as well]
817
818 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
819
820         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
821         * XplatUIWin32.cs: We need to recalculate NC size after changing 
822         window style to toolwindow (otherwise the client rectangle will be
823         3 pixels to small for some reason).
824         * MdiWindowManager.cs: Revert NC size calculations to match how
825         they are calculated only based on window styles (to match
826         Win32AdjustWindowRectEx, since otherwise when setting size or 
827         location, Control will call Win32AdjustWindowRectEx to update client 
828         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
829         calculate a different value of client size causing another paint 
830         (and flickering))
831         * InternalWindowManager.cs: When moving or resizing a window only
832         update size or location if they actually changed.
833         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
834         (seems to match Windows behaviour better). Cleaned up 
835         ManagedWindowDecorations to draw what's needed and nothing else
836         (was drawing borders and lines where they shouldn't be)
837         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
838         (style = 0xFFFF) and takes into account caption height when 
839         calculating window rectangle.   
840
841 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
842
843         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
844         can be added to toolbar multiple times, we need to maintain a list of 
845         button information for each positions.
846
847 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
848
849         * ToolBar.cs: Some small stetic changes.
850
851 2007-01-16  Jackson Harper  <jackson@ximian.com>
852
853         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
854         that allow us to have nested recalc = false blocks.
855         - Add paste support for images in the RichTextBox
856         * RichTextBox.cs: flush the text after the color is changed, so
857         the change takes effect.
858         - Use SuspendRecalc
859         - Some extra debugging info
860         * TextControl.cs: Tags no longer track their length, it is just
861         computed from the next tags length, this makes things a little
862         simpler and reduces places that we have to track length changes.
863         - Refactored the linetag class a little so we could make it
864         a base class for different kinds of tags
865         - Created a image tag, a tag that can have a single image inserted
866         into it
867         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
868         that we can call suspend multiple times.
869         - Add some debugging methods
870
871 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
872
873         * MdiClient.cs: Add ActivatePreviousChild for 
874         mdi child window navigation.
875         * Form.cs: Use MdiClient.ActivateNextChild/
876         ActivatePreviousChild instead of Form.SelectNextControl
877         to select the next/previous child since 
878         SelectNextControl doesn't do it in the same order
879         as mdi children should do it.
880
881 2007-01-16  Chris Toshok  <toshok@ximian.com>
882
883         * Control.cs: remove container_selected field.
884
885 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
886
887         * MdiClient.cs: Update main form's ActiveChild when
888         updating keyboard focus for the mdi child.
889
890 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
891
892         * Control.cs: PreferredSize fix.
893
894         * Form.cs: Add several 2.0 events, properties, and methods.
895
896 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
897
898         * Form.cs: Provide meaningful message when MdiParent is assigned a
899         Form that is not an MdiContainer.
900
901 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
902
903         * MdiClient.cs: Update main form's ActiveChild when
904         activating a mdi child.
905
906 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
907
908         * MdiWindowManager.cs: Fix NRE when merging menus and main form
909         doesn't have a menu.
910
911         * Form.cs: Request NCRecalc after creating a mdi child window.
912         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
913         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
914         
915         * MdiClient.cs: Add new method SendFocusToActiveChild that either
916         sends keyboard focus to the active child, or to the MdiClient
917         if there are no child forms.
918         
919 2007-01-15  Chris Toshok  <toshok@ximian.com>
920
921         * ListView.cs: drop the *Internal overrides, just do our work in
922         ItemControl's WndProc instead.
923
924         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
925         of the various controls, and forward the events properly (in the
926         same manner as MS) from the textbox to the UpDown.  Also the
927         ActiveControl of the UpDownBase gets set properly now.  Finally,
928         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
929
930         * NumericUpDown.cs: set Text in the ctor.
931
932         * DomainUpDown.cs: call UpdateEditText in the ctor.
933         
934         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
935         so even a Selectable = false textbox can be focused if you click
936         in it.  Go figure.
937
938         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
939         just add their handling in their respective WndProc's.  Also add
940         an explicit FocusInternal method that doesn't consult CanFocus
941         before calling Select(this).
942
943         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
944         do our work in WndProc instead.
945
946         * TabControl.cs: same.
947
948         * ComboBox.cs: same.
949
950 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
951
952         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
953         Fixes #80006.
954
955 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
956
957         * ListViewItem.cs:
958         * ThemeWin32Classic.cs: Don't draw the item text outside
959         item bounds in Details view, as well as use trimming.
960         Fixes bug #80376.
961
962 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
963
964         * Form.cs: Implement Form.ShowIcon.
965         
966         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
967         null, which when combined with the DlgModalFrame window style removes
968         the icon from the title bar.
969
970 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
971
972         * Control.cs: Call OnMouseClick after OnClick. (2.0)
973
974 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
975
976         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
977         menu when mdi child windows theres a menu, uses insert to get icon
978         at first position. Partially fix #80006.
979
980 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
981
982         * Clipboard.cs: Implement 2.0 methods.
983
984 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
985
986         * Menu.cs: Implement Insert method of MenuItemCollection class
987         to fix MenuMerge.
988
989 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
990
991         * ListView.cs: Implement 2.0 FindItemWithText method.
992
993 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
994
995         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
996         to calculate menu bar size. Fixes #80290.
997
998 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
999
1000         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1001
1002 2007-01-11  Chris Toshok  <toshok@ximian.com>
1003
1004         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1005         initial form.
1006
1007 2007-01-11  Chris Toshok  <toshok@ximian.com>
1008
1009         * LinkLabel.cs: make sure to call base.Select in our Select method
1010         if it turns out we're going to be selected (i.e. if we have a link
1011         that is going to receive focus).  That way our container's
1012         ActiveControl is updated properly.
1013
1014 2007-01-11  Chris Toshok  <toshok@ximian.com>
1015
1016         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1017         they have 1 or more links.  this fixes the crash gert reported.
1018
1019 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1020
1021         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1022         anymore.
1023
1024         * Control.cs (Controls.Add): Check if control to be added to the collection
1025         is a top level control, and throw an ArgumentException if it is.
1026         Remove ContainerSelectedFlag, not needed anymore.
1027
1028         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1029         top most control doesn't activate the form. This fixes a problem in the
1030         MessageBox, where the default button wouldn't get focus because the form
1031         was activated before being Loaded - when the Owner is set, SetTopMost is
1032         called, and it would activate it.
1033
1034 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1035
1036         * Button.cs: When clicked and setting the parent form's DialogResult,
1037         use FindForm instead of Parent, since parent could be a container
1038         control and not the Form.  Fixes bug #80495.
1039
1040 2007-01-10  Chris Toshok  <toshok@ximian.com>
1041
1042         * Form.cs: move the call to SendControlFocus into the same
1043         is_loaded check.
1044
1045 2007-01-10  Chris Toshok  <toshok@ximian.com>
1046
1047         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1048         It breaks in the face of the new ActiveControl stuff, and should
1049         be unnecessary.
1050
1051         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1052         activecontrol's focus if it's not already set, after we set
1053         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1054         after the previous focus/active control fixes regressed it.
1055
1056         * Control.cs: reindent some code.
1057         
1058 2007-01-10  Chris Toshok  <toshok@ximian.com>
1059
1060         * Splitter.cs: clearing some outstanding changes from my tree.
1061         Replace all accesses (not writes) to the internal dock_style field
1062         with the Dock property.
1063
1064 2007-01-10  Chris Toshok  <toshok@ximian.com>
1065
1066         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1067         FireValidated virtual.
1068
1069         * Form.cs: override and don't chain up calls to FireEnter and
1070         FireLeave.
1071
1072 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1073
1074         * ListView.cs: Add more text padding space when using
1075         auto resize for columns (the previous value didn't work fine).
1076
1077         * ThemeWin32Classic.cs: Update text position inside columns,
1078         to match the appeareance of .Net.
1079
1080         * ColumnHeader.cs: When using auto resize, only the Width should
1081         depend on the sub items, not the Height. Also, set width after
1082         auto resizing (the value of Width should never remain as -1 or -2).
1083
1084 2007-01-10  Chris Toshok  <toshok@ximian.com>
1085
1086         * Application.cs: fix compilation errors when debug is enabled.
1087
1088 2007-01-10  Chris Toshok  <toshok@ximian.com>
1089
1090         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1091         add some nice ascii art pictures and explanation of the process).
1092         (GetMostDeeplyNestedActiveControl): new utility function we need
1093         because our ActiveControl can refer to a child container with its
1094         own ActiveControl.
1095
1096         * Form.cs (OnActivated): remove the call to SelectActiveControl
1097         from here, since you can override this method and not chain up,
1098         and winforms still sets the active control.
1099         (OnCreateControl): also remove the unnecessary SelectActiveControl
1100         call from here.
1101         (WndProc): it's actually called from the WM_ACTIVATE block, just
1102         before calling OnActivated.
1103
1104         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1105         inside the else.  the ActiveControl setter will end up setting
1106         focus on @control.  This keeps us from setting it again (and
1107         generating an extra LostFocus/GotFocus pair).
1108         (Select (bool, bool)): reindent.
1109
1110 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1111
1112         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1113         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1114         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1115         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1116         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1117         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1118         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1119         ToolStripTextBox.cs: Another wave of corcompare work.
1120
1121 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1122
1123         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1124         the Width property.
1125
1126         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1127         methods by callling Column.AutoResize method on columns.
1128
1129 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1130
1131         * Control.cs: Provide proper implementations of PreferredSize
1132         and GetPreferredSize (2.0).
1133
1134 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1135
1136         * Form.cs: Remove one character (!) to make my previous OnClosing
1137         stuff work for modal windows like MessageBox.
1138
1139 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1140
1141         * ListView.cs:
1142         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1143         ListView.Columns to get the last displayed column. Fixes #80452.
1144
1145 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1146
1147         * Label.cs, LinkLabel.cs: Source code identation fixes.
1148
1149 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1150
1151         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1152         we dont need to invalidate only borders because when we invalidate four
1153         border lines the invalidate's generates a complete redraw of button, 
1154         because it now invalidate a complete rect some other redraws operations
1155         are fixed. Fixes #80196.
1156         
1157         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1158         Remove ToolBarInvalidateEntireButton as it is not used.
1159
1160 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1161         
1162         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1163         called for 2.0 profile.
1164         * CloseReason.cs: Make class internal for 1.1.
1165
1166 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1167
1168         * ToolStripManager.cs: Implement FindToolStrip functionality.
1169         * ToolStrip.cs: Register and unregister with ToolStripManager.
1170
1171 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1172
1173         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1174         to ArrangedElementCollection.  Implemented this with as few #if's as 
1175         possible (which is still too many).
1176
1177 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1178
1179         * Control.cs: Implement SizeFromClientSize() [2.0].
1180
1181 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1182
1183         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1184         use Theme.BorderSize to calculate area instead of static value 1, 
1185         by the way use new BorderStaticSize instead     Border3DSize when 
1186         border_static is true. Fixes #79537.
1187         
1188         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1189         
1190         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1191         it is not needed.
1192
1193 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1194
1195         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1196
1197 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1198
1199         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1200         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1201         
1202         * Hwnd.cs: 
1203         - border_static field added, it will used to define when a control 
1204         theres 3D border but it must be static (thin).
1205         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1206         instead of static value 1, by the way use new BorderStaticSize instead
1207         Border3DSize when border_static is true.
1208
1209         * XplatUIX11.cs, XplatUIOSX.cs: 
1210         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1211         
1212         * Theme.cs: BorderStaticSize field added.
1213
1214 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1215
1216         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1217
1218 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1219
1220         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1221         mimic same behavior than win32 that set border only in CreateParams,
1222         it fix problems under CreateParams overrides. Fix #79442 and partial
1223         fix #79537.
1224         
1225         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1226         of thi control you must call recreate handle. 
1227         
1228         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1229         need to do anything as RecreateHangle will take care about borders.
1230
1231 2007-01-05  Mike Kestner  <mkestner@novell.com>
1232
1233         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1234         cycles between the ItemControl and parent.  Fixes #80388.
1235
1236 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1237
1238         * Control.cs: Lazy init layout engine. Do not directly use 
1239         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1240
1241 2007-01-05  Chris Toshok  <toshok@ximian.com>
1242
1243         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1244         unless our list manager has changed (i.e. unless we have reason to
1245         believe our columns have changed).  Fixes #80422.
1246         
1247         also, disable the call do BindColumns in
1248         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1249         1.1 the event isn't raised in response to a column addition on a
1250         table.)
1251
1252 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1253
1254         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1255         that inheritors can not call it if they choose.  Fixes bug #80456.
1256
1257 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1258
1259         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1260         doesn't blow up with a null exception on marshalling.
1261         
1262 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1263
1264         * Control.cs: Implement several 2.0 protected properties and methods.
1265         Ensure that all necessary events are being called when properties
1266         are set.
1267
1268 2007-01-05  Mike Kestner  <mkestner@novell.com>
1269
1270         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1271         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1272         instead of the parent control.  Fixes #80378.
1273
1274 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1275
1276         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1277           determine whether to use yard-pound or not (bug #78399).
1278
1279 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1280
1281         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1282         problems. So it is time to bring back the old popupbutton colors.
1283
1284 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1285
1286         * ColumnHeader.cs:
1287         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1288         property by using the internal information of the
1289         columns order in ListView.
1290
1291 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1292
1293         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1294         Add 2.0 Tag properties.
1295
1296         * LinkArea.cs: Add 2.0 ToString method.
1297
1298 2007-01-03  Chris Toshok  <toshok@ximian.com>
1299
1300         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1301         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1302         when we're editing, which fixes #80047.
1303
1304 2007-01-03  Chris Toshok  <toshok@ximian.com>
1305
1306         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1307         #80404.
1308
1309 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1310
1311         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1312         property and implementation.
1313
1314         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1315         for MdiWindowListItem property.
1316
1317         * ToolStripDropDown.cs: Don't consider hidden menu items while
1318         laying out the menu.
1319
1320 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1321
1322         * SendKeys.cs: window handle is not needed in win32, so just
1323         get the active window for X after parsing keys and don't use
1324         it when building the message; it is passed by parameter to the 
1325         Xplat method and used there to build the message instead. Also,
1326         wait for events to be processed on SendWait, as opposed to Send,
1327         which doesn't wait :) Playing with threads and Send() completely 
1328         hangs on ms.net, only SendWait() works.
1329         
1330         XplatUIX11.cs
1331         X11Display.cs: Check for valid window handle.
1332
1333 2007-01-03  Jackson Harper  <jackson@ximian.com>
1334
1335         * TextControl.cs: Need to prevent wrap calculations when replacing
1336         text (this was there before i removed it accidently).
1337         - Don't update the cursor during the positioning, just set it to
1338         selection_start at the end of the operaion.
1339
1340 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1341
1342         * Control.cs:
1343         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1344         
1345 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1346
1347         * MonthCalendar.cs: Added Click and DoubleClick events again,
1348         but this time they only hide Control's Click and DoubleClick.
1349         
1350 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1351
1352         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1353         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1354
1355 2007-01-02  Jackson Harper  <jackson@ximian.com>
1356
1357         * TextBoxBase.cs: We move the caret with the split now, so we
1358         don't need to explicitly move the caret after splitting.  This
1359         fixes the caret bumping down an extra line on Enter.
1360
1361 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1362
1363         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1364         2.72). 
1365
1366         * ScrollableControl.cs: Add Scroll event.
1367
1368 2007-01-02  Mike Kestner  <mkestner@novell.com>
1369
1370         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1371         to fix all hdr height padding codepaths.  Fixes #80207.
1372
1373 2007-01-02  Chris Toshok  <toshok@ximian.com>
1374
1375         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1376         setting it to the Control defaults anyway, and it being after the
1377         Dock set was screwing up layout.
1378         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1379         no need to call UpdateStatusBar here, as it'll be re-layed out if
1380         it needs to be.
1381
1382 2007-01-02  Mike Kestner  <mkestner@novell.com>
1383
1384         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1385         to header height for width == -1. Fixes the rest of #80207.
1386
1387 2007-01-02  Mike Kestner  <mkestner@novell.com>
1388
1389         * ListView.cs: rework the mouse event forwarding everaldo added
1390         to translate the coordinates to the parent control not
1391         raise the parent events until after we've done our work. Hover
1392         needs more work, in the case where HoverSelection is on, because
1393         the item control receives more than one MouseHover per Enter
1394         event, so we need to ensure only the "first" hover gets forwarded.
1395         Opening a minor bug for that.
1396
1397 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1398
1399         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1400         * ListControl.cs: Implemented AllowSelection property. Removed extra
1401         tabs.
1402         * ListBox.cs: Implemented AllowSelection property.
1403
1404 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1405
1406         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1407         SelectedItem, it prevent for errors when you must disable item
1408         before perform click. Fixes #80409.
1409
1410 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1411
1412         * MenuAPI.cs: Prevent second level and beyond submenus to close
1413         until first level when move out side of popup.
1414         
1415 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1416
1417         * MenuAPI.cs:
1418         - Down submenu positin in three pixels.
1419         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1420
1421 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1422
1423         * ThemeWin32Classic.cs:
1424         - Fix popup menu size adding one pixel on the top.
1425         - Down menu item border from two to one to mimic Win32.
1426         - Some source identation fixes. 
1427
1428 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1429
1430         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1431         position of menu arrows, it fix wrong arrow size.
1432
1433 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1434
1435         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1436         instead of line, it simplify draw operation and fix it using 3D
1437         borders to mimic Win32.
1438
1439 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1440
1441         * StatusStrip.cs: Add implementation of the sizing grip.
1442
1443         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1444         StatusStrip rendering.
1445
1446 2006-12-31  Chris Toshok  <toshok@ximian.com>
1447
1448         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1449         override the layout style (anchor/dock) of the control.  assign to
1450         Dock instead.  Fixes bug #80416.
1451
1452         * ToolStrip.cs: same.
1453
1454 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1455
1456         * ContainerControl.cs: Use ContainerSelected flag to check if 
1457         a Container is directly selected, or if Select is called on a 
1458         non-container. If a container is directly selected, focus events 
1459         should not be raised.
1460         Apply #80411 patch to throw exception on set_ActiveControl if 
1461         control is the same as the current one.
1462         
1463         * Control.cs: Use ContainerSelected flag (see above).
1464         Add invalidation check to raise event but not invalidate if 
1465         dimensions are 0.       
1466         Apply #80411 patch.
1467         
1468
1469 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1470
1471         * MenuAPI.cs: After click, dont close popup menu when menu is
1472         ContextMenu. Fixes #80399.
1473
1474 2006-12-30  Chris Toshok  <toshok@ximian.com>
1475
1476         * ContainerControl.cs: make sure we throw the exception if the
1477         container control doesn't contain the control we're setting
1478         ActiveControl to.
1479
1480 2006-12-30  Chris Toshok  <toshok@ximian.com>
1481
1482         * Control.cs (SetTopLevel): fix the exception raised by
1483         SetTopLevel for child controls.
1484         (set_Anchor): call UpdateDistances when setting the anchor type.
1485         This fixes bug #80336.
1486
1487 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1488
1489         * Theme.cs: For now, revert back to 8pt font.
1490
1491 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1492
1493         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1494         Fixes #80395.
1495
1496 2006-12-29  Chris Toshok  <toshok@ximian.com>
1497
1498         * Control.cs: reorder the code in OnResize to give the same event
1499         ordering as MS.
1500
1501 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1502
1503         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1504         TileHorizontally and TileVertically.
1505         
1506 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1507
1508         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1509         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1510         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1511         Corrected copyright and email adress.
1512
1513 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1514
1515         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1516         of Exception in FullPath property if no TreeView is associated with
1517         the TreeNode.
1518
1519 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1520
1521         * Theme.cs: Marked default_font as private, and initialize it in ctor
1522         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1523         on 2.0 profile.
1524         * ThemeGtk.cs: Removed default_font intialization.
1525         * ThemeWin32Classic.cs: Removed default_font initialization.
1526
1527 2006-12-28  Chris Toshok  <toshok@ximian.com>
1528
1529         * Control.cs: fix a couple of place where we were creating handles
1530         more aggressively than we should be.  Fixes ControlRefresh unit
1531         tests.
1532
1533 2006-12-28  Chris Toshok  <toshok@ximian.com>
1534
1535         * Control.cs: contrary to what the comment said, Control.Dock does
1536         not supercede Control.Anchor - the last one you assign to decides
1537         the layout behavior.  so we need to keep track of which was the
1538         last set.  Also, fix some of the affected property arguments in
1539         PerformLayout calls, and remove an redundant parent.PerformLayout
1540         call in OnResized.
1541
1542         Add a VisibleInternal property, which returns is_visible.  We
1543         can/should get rid of all the usage of this field elsewhere.
1544
1545 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1546         
1547         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1548         control style, not DoubleBuffer. Added UseDoubleBuffering property
1549         that indicates whether doublebuffering is enabled and supported.
1550         (comment from and code based on Gert Driesen's patch in #80324).
1551         Fixes #80324.
1552
1553 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1554         
1555         * Control.cs: Fixed a NRE.
1556
1557 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1558
1559         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1560         for 2.0.
1561
1562 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1563
1564         * Control.cs: Rewrote double buffering, now a seperate
1565         class handles all the buffering, no Graphics is disposed of
1566         until the painting is finished (earlier implementation 
1567         would crash if the control was resized in the OnPaint, 
1568         since it would cause the double buffer to be recreated
1569         and the old one disposed), a separate Graphics is 
1570         created for every paint (MS behaviour and anyways the state
1571         of the Graphics would have to be saved and restored otherwise)
1572         
1573         * XplatUIDriver.cs: 
1574         * XplatUIX11.cs:
1575         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1576         so that we can get the graphics for the back buffer without
1577         having to create a new one and remove the offscreen_dc parameter
1578         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1579         
1580 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1581
1582         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1583         Also make virtual all the key-related methods.
1584
1585         * ListViewItem.cs: Make virtual the key related methods for
1586         ListViewSubItemCollection.
1587
1588 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1589
1590         * ListView.cs:
1591         * ListViewItem.cs:
1592         * ThemeWin32Classic.cs:
1593         * Theme.cs: Initial support for Tile view in ListView,
1594         as well as the implementation of the required bits for it (Item
1595         and Subitem).
1596
1597 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1598
1599         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1600         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1601         Provide useful exception messages.
1602
1603 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1604
1605         * TrackBar.cs: Remove a warning.
1606         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1607         when used by DateTimePicker, fixes #80287. This also requires that 
1608         MonthCalendar implements it's own drawing for the yearly updown control,
1609         otherwise the Capture tracking would be too complicated. Removed the Click 
1610         and DoubleClick events (according to comments they were hiding the base class
1611         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1612         raise these events, not that they cannot be raised. It is possible to raise 
1613         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1614         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1615         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1616         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1617         event, no longer needed.
1618         
1619 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1620
1621         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1622         true if new value differs from current value.
1623
1624 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1625
1626         * Control.cs: ControlCollection.Count must be public. Fixed build of
1627         unit tests.
1628
1629 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1630
1631         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1632
1633 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1634
1635         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1636
1637 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1638
1639         * Control.cs: Invalidates control including when Width and Height is 
1640         equal zero or is not visible, only Paint event must be care about 
1641         this. Fixes #79913.
1642
1643 2006-12-26  Chris Toshok  <toshok@ximian.com>
1644
1645         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1646         more corcompare work.
1647
1648         * DataGridView.cs: fix compiler warning.
1649
1650         * ColumnHeader.cs: some corcompare work, and also take the
1651         opportunity to make the internal fields private.
1652
1653         * ListView.cs: fix the fallout from the above field change.
1654
1655 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1656
1657         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1658         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1659         ToolStripTextBox.cs: Fixes to events and corcompare.
1660
1661 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1662
1663         * ListView.cs: Call owner.OnMousexx event to propagate events from
1664         item to ListView. Fixes #80367.
1665
1666 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1667
1668         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1669         if value is less than one. ItemHeight should not be set to a value
1670         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1671         Removed extra tabs.
1672
1673 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1674
1675         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1676         * ToolStripStatusLabel.cs: Add Spring for Moma.
1677
1678 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1679
1680         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1681         Fixed code formatting. Removed debug code.
1682         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1683
1684 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1685
1686         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1687         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1688         ArgumentOutOfRangeException if ColumnCount is negative. In 
1689         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1690         less than 4 or higher than 32768.
1691         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1692         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1693         Fixed IsFormatProviderDefault to return true if FormatProvider has
1694         not been explicitly set.
1695
1696 2006-12-25  Chris Toshok  <toshok@ximian.com>
1697
1698         * Application.cs: add a couple of 2.0 events.
1699
1700 2006-12-25  Chris Toshok  <toshok@ximian.com>
1701
1702         * Control.cs: fix compiler warning.
1703
1704         * AxHost.cs: corcompare fixes.
1705
1706         * ApplicationContext.cs: corcompare fixes.
1707
1708 2006-12-25  Chris Toshok  <toshok@ximian.com>
1709
1710         * Control.cs: only update dist_right/dist_bottom if the
1711         width/height is > 0.  this fixes anchored controls being resized
1712         smaller until they disappear and then resized larger again.
1713
1714 2006-12-25  Chris Toshok  <toshok@ximian.com>
1715
1716         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1717         since they're nothing more than X/Left and Y/Top, respectively.
1718
1719         Also, move back to a per-control Bitmap/Graphics for
1720         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1721         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1722         Height.
1723
1724 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1725
1726         * MessageBox.cs: Implemented overload that takes a new "bool
1727         displayHelpButton" by adding a new internal field "show_help".
1728         When clicked this will raise the HelpRequested on the owner or the
1729         main form. 
1730
1731         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1732         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1733
1734         * ListView.cs: Add support ColumnWidthChanged and
1735         ColumnWidthChanging. 
1736
1737         Add support for ColumnReordered event.
1738         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1739         reorder.
1740
1741         Very nice codebase!
1742
1743         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1744
1745         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1746
1747 2006-12-24  Chris Toshok  <toshok@ximian.com>
1748
1749         * GridTablesFactory.cs: 2.0 corcompare work.
1750
1751         * ToolStripContainer.cs: add "override" to
1752         ContextMenuStripChanged, and remove the local event object.
1753
1754         * ToolStripDropDown.cs: same with a couple properties.
1755
1756         * ToolStripPanel.cs: same with AutoSizeChanged event.
1757
1758         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1759
1760         * Form.cs: add the remaining 2.0 events, and do some corcompare
1761         attribute work.
1762
1763         * DateTimePicker.cs: add "new" to padding.
1764
1765         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1766
1767         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1768
1769         * DataGridView.cs: PaddingChanged is overridden.
1770
1771 2006-12-24  Chris Toshok  <toshok@ximian.com>
1772
1773         * Control.cs: corecompare work here too.
1774
1775         * DataGridViewElement.cs, DataGridView.cs,
1776         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1777         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1778         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1779         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1780         work.
1781
1782 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1783
1784         * Control.cs: Switched the error message on the console for a
1785         todo.  A review of the code will have to cope with this anyways
1786         (since its a large feature, it is in our radar) and it was
1787         producing too much output when running PDN.
1788
1789         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1790         changes.  Applications depend on this (PDN 2.72)
1791
1792 2006-12-23  Chris Toshok  <toshok@ximian.com>
1793
1794         * TableLayoutSettings.cs: finish up the corcompare work for this
1795         class.
1796
1797 2006-12-23  Chris Toshok  <toshok@ximian.com>
1798
1799         * Control.cs: make SetImplicitBounds internal, do some futzing
1800         with LayoutEngine so that it's available in 1.1, and remove the
1801         entire duplicated code mess from PerformLayout.  Use
1802         System.Windows.Forms.Layout.DefaultLayout instead.
1803
1804         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1805
1806 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1807
1808         * Form.cs: Add MainMenuStrip property.
1809
1810 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1811
1812         * Control.cs: Add ContextMenuStrip property and implementation.
1813         Fix ContextMenu implementation to show menu centered on control when
1814         activated using the keyboard instead of showing at screen (0,0).
1815
1816         * ToolStripDropDown.cs: Fix needed overload of Show ().
1817
1818 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1819
1820         * Menu.cs: Name property added for 2.0 profile.
1821         
1822 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1823
1824         * Menu.cs: Update information about FindMenuItem, method to be
1825         implemented soon.
1826
1827 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1828
1829         * MenuAPI.cs: When deselect items deselect also selected subitems.
1830         
1831 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1832
1833         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1834         FindSubItemByCoord to found itens that is not active, also an
1835         cheking added to FindSubItemByCoord to search for items only 
1836         in visible popup windows. Fixes #80274.
1837
1838 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1839
1840         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1841         internal property, it be care about change ExStyle. 
1842
1843 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1844
1845         * ContainerControl.cs: set activeControl for parent forms up the 
1846         tree when the new activecontrol is a container.
1847         When validating the active control, if it is a container, also
1848         raise up the validation for it's active control. Fixes #80280
1849         
1850         * Control.cs: Add internal property flag and check to prevent
1851         Focus events from getting raised when Select() is called for
1852         a ContainerControl. There are still too many focus events being
1853         raised at the moment though.
1854         Cleaned up the code a bit.
1855
1856 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1857
1858         * Control.cs: Added all missing 2.0 events.and
1859         fixed a couple of corcompare issues.
1860         * TrackBar.cs: Implemented missing 2.0 bits.
1861         * MonthCalendar.cs, 
1862         * DateTimePicker.cs, 
1863         * MdiClient.cs: Fixed some corcompare issues.
1864
1865 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1866
1867         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1868         SplitterPanel.cs: corecompare work.
1869
1870 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1871
1872         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1873         Clean up warnings for BackgroundImageChanged and PaddingChanged
1874         events now that they are implemented in Control.cs.
1875
1876 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1877
1878         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1879         
1880         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1881         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1882         of TableLayoutPanel and supporting cast.
1883
1884 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1885
1886         * XplatUIWin32.cs: 
1887         - GrabWindow now confines the mouse pointer to the confine window.
1888         - Added Win32ClipCursor and Win32GetClipCursor.
1889
1890         * Control.cs: 
1891         - Added CaptureWithConfine to be able to capture and confine 
1892         mouse pointer.
1893         
1894         * InternalWindowManager.cs: 
1895         - Call CaptureWithConfine instead of Capture if we're an
1896         MdiChild (fixes #79982).
1897
1898 2006-12-21  Chris Toshok  <toshok@ximian.com>
1899
1900         * DataGrid.cs: guard against the initial state of selection, where
1901         selection_start == -1.  make sure we only select from index >= 0.
1902         Fixes bug #80291.
1903
1904 2006-12-21  Chris Toshok  <toshok@ximian.com>
1905
1906         * Control.cs: we don't need to be so draconian with
1907         UpdateDistances, and we thusly don't need to call it before
1908         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1909
1910 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1911
1912         * ComboBox.cs,
1913         TextBox.cs: Implemented AutoComplete properties.
1914
1915 2006-12-20  Chris Toshok  <toshok@ximian.com>
1916
1917         * DataGridView*.cs: some corecompare work.
1918
1919 2006-12-20  Jackson Harper  <jackson@ximian.com>
1920
1921         * XplatUIX11.cs: We need to hide the caret when deleting it,
1922         otherwise you get carets left lying around everywhere.
1923         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1924         prevents getting some weird half drawn caret tracers when
1925         scrolling.
1926         * TextControl.cs: Attempt to reduce the number of times we need to
1927         recreate the caret.
1928
1929 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1930
1931         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1932
1933 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1934
1935         * DateTimePicker.cs:
1936         - Implemented missing 2.0 bits.
1937         - Changed some default values to match MS.
1938         
1939 2006-12-20  Jackson Harper  <jackson@ximian.com>
1940
1941         * TextBoxBase.cs: When changing the font across the document we
1942         can't recalculate after changing each line, since that will cahnge
1943         the line count.
1944         - PreferredHeight is a little different than i thought.
1945         - When backspacing, move the caret before we do the actual char
1946         delete, because when that delete crosses a wrap boundary the
1947         positional information will change.
1948
1949 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1950
1951         * Control.cs: Added some missing 2.0 bits: 
1952         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1953         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1954         add IBindableComponent and IDropTarget implementation.
1955         
1956         * MonthCalendar.cs: 
1957         - Added all missing 2.0 features:
1958         BackgroundImageLayout, RightToLeftLayout, 
1959         OnHandleDestroyed, RightToLeftLayoutChanged, 
1960         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1961         PaddingChanged.
1962         - Rewrote all the BoldDate code, it was completely broken.
1963         - Fixed all the tests (the tests can now be re-enabled, the
1964         problems were not with the tests, but with the control, it was
1965         mostly broken).
1966         
1967         * DateTimePicker.cs: Changed the location where the 
1968         MonthCalendar is shown.
1969         
1970 2006-12-19  Chris Toshok  <toshok@ximian.com>
1971
1972         * DataGridView.cs: add IDropTarget implementation.
1973
1974         * ToolStripPanel.cs: add IDropTarget implementation.
1975
1976 2006-12-19  Jackson Harper  <jackson@ximian.com>
1977
1978         * TextControl.cs: soft now means something different than what it
1979         used to mean, we want to move the caret regardless of whether or
1980         not this break was soft (would we really have wanted the caret
1981         to not move with the break in the old context?)
1982         * TreeView.cs: Make sure we factor in the vert scrollbar when
1983         calculating the horizontal scrollbar's maximum.
1984
1985 2006-12-19  Andreia Gaita  <avidigal@novell.org>
1986
1987         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
1988         check for keywords in alternate casing, close bug #80049.
1989
1990 2006-12-19  Chris Toshok  <toshok@ximian.com>
1991
1992         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
1993         methods (which all do nothing).
1994
1995         * IDropTarget.cs: add the 4 missing methods.
1996
1997 2006-12-19  Chris Toshok  <toshok@ximian.com>
1998
1999         * TableLayoutRowStyleCollection.cs: corcompare work.
2000         
2001         * TableLayoutSettings.cs: same.
2002
2003         * TableLayoutStyle.cs: same.
2004
2005         * TableLayoutColumnStyleCollection.cs: same.
2006
2007 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2008
2009         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2010         TableLayoutPanel I've had in my local tree for way too long.
2011
2012 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2013
2014         * TableLayoutSettings.cs: Finish the public API (still needs all
2015         the logic to update on changes). 
2016
2017         * TableLayoutPanelCellPosition.cs: new file.
2018         
2019         * TableLayoutRowStyleCollection.cs,
2020         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2021         TableLayoutSettings.cs: Track the final 2.0 table api.
2022
2023 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2024
2025         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2026         and Image List 2.0 members for ColummnHeader.
2027         * ListView.cs: Add key-related 2.0 methods for
2028         ColumnHeaderCollection.
2029
2030 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2031
2032         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2033         ArgumentNullException if items argument is null. Ignore null item in
2034         arrays. Removed extra tabs.
2035
2036 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2037
2038         * MonthCalendar.cs: Fixed InvalidCastException.
2039
2040 2006-12-19  Jackson Harper  <jackson@ximian.com>
2041
2042         * TextControl.cs: Don't increment the position here.
2043         - When calculating char positions only add in the line break size
2044         for hard line breaks.
2045
2046 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2047
2048         * SendKeys.cs: Changed some things to match ms.net behaviour
2049         when parsing shifted capital letters.
2050         
2051         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2052         Add window handle as parameter to SendInput. X11 needs the 
2053         window handle, and the handle being passed      to it in the keys 
2054         queue is the active control handle (which windows needs), not 
2055         the window handle.
2056         
2057         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2058         to support SendKeys on X.       
2059         
2060         * X11Keyboard: Implement helper method to lookup a linux keycode
2061         given the virtual keycode. Added table of keycode-2-virtualkey
2062         values to support this.
2063
2064 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2065
2066         * ListView.cs: Add support for SelectedIndexCollection
2067         and SelectedItemCollection 2.0 methods. Implement support
2068         for ImageKey too.
2069         * ListViewItem.cs: Add support for ListViewSubItemCollection
2070         2.0 methods. Also, fix an incorrect behavior of AddRange method
2071         (it shouldn't call Clear).
2072         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2073
2074 2006-12-19  Jackson Harper  <jackson@ximian.com>
2075
2076         * RichTextBox.cs: 
2077         * TextBoxBase.cs: New args for FormatText
2078         * TextControl.cs: Rewrote the main drawing method, this version
2079         feels a little easier to understand and debug to me.  Hopefully it
2080         does to others also
2081         - Fix FormatText to OR in the new formating values.  Added
2082         FormatSpecified param, basically this works in the same way as
2083         BoundsSpecified in Control.
2084         - Set the caret properties when the caret is positioned.
2085         - When wrapping text make sure that we calculate the width of the
2086         last character
2087         - when calculating alignments we might have wrapped down to the
2088         next line, so don't search for an individual tag, search for the
2089         end of the line
2090         - We need to invalidate the selection area when we replace the
2091         selection.
2092         
2093 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2094
2095         * Application.cs: add Restart () 2.0 support
2096
2097 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2098
2099         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2100         property. Fixes #80268.
2101         
2102 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2103
2104         * MenuAPI.cs: Dont trigger select event when closes top menu
2105         item. Fixes #80270.
2106
2107 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2108
2109         * MenuAPI.cs: When you click on menuitem only trigger onselect
2110         event for top menu itens. Fixes #80271.
2111         
2112 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2113
2114         * MdiWindowManager.cs: Make IconicBounds depend on
2115         the bottom of MdiClient, not the top (fixes #80267)
2116         
2117 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2118
2119         * MdiClient.cs: Added missing 2.0 attribute
2120
2121 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2122
2123         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2124         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2125
2126 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2127
2128         * MenuAPI.cs: Fix click when menuitem is not popup,
2129         this regression was caused by last commit (#80272).
2130
2131 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2132
2133         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2134         fire click event or close menu. Fixes #80272.
2135
2136 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2137
2138         * ListViewHitTestInfo.cs: add
2139
2140 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2141
2142         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2143         * FlatButtonAppearance.cs: add
2144         * DockingAttribute.cs: add
2145
2146 2006-12-17  Chris Toshok  <toshok@ximian.com>
2147
2148         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2149         and rebind our columns when it does - this way, if you make
2150         changes to the DataTable (or set the Table attribute on a DataView
2151         after setting it as the DataGrid's DataSource, the changes are
2152         made visible.)  Fixes bug #80107.
2153
2154 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2155
2156         * ListViewGroup.cs: add internal Location property for layouting.
2157         * Theme.cs: add abstract ListViewGroupHeight function.
2158         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2159
2160 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2161
2162         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2163         Added reset of selected index to 0 when adding first tab page.
2164         Fixes #80264
2165         
2166         * NumericUpDown.cs: Fix NET_2_0 check
2167
2168 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2169
2170         * ListViewGroup.cs: fixed DefaultValueAttribute value
2171
2172 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2173
2174         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2175
2176 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2177
2178         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2179         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2180         ScrollableControl.cs: Add a handful of methods that are
2181         overwritten in 2.0 
2182
2183 2006-12-15  Chris Toshok  <toshok@ximian.com>
2184
2185         * XplatUIWin32.cs: initial implementation of the Reversible
2186         drawing functions.  there are some problems.  DrawReversibleFrame
2187         doesn't seem to work at all for Dashed FrameStyle, and in the
2188         Thick case there are drawing errors at the corners (we probably
2189         need to bind Rectangle instead of doing moveto/lineto's.)
2190
2191 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2192         
2193         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2194         to send blocks of key messages. Send accumulates keys to send with Flush, 
2195         while SendWait sends all keys immediately.
2196                 
2197         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2198         XplatUIX11.cs,  XplatUIX11-new.cs:
2199         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2200         to Win32 SendInput.
2201         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2202         
2203         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2204         testing for ms.net on this class is very tricky, as the tests run too fast 
2205         to allow the hook to release, essentially freezing the keyboard and the 
2206         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2207         category :p
2208
2209 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2210
2211         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2212                         added missing attributes.
2213  
2214 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2215
2216         * ListViewGroup.cs: Added missing attributes.
2217         * ListViewGroupCollection.cs: Added missing attributes.
2218
2219 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2220
2221         * ListViewItem.cs: fixed ListViewSubItem text property.
2222
2223 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2224         
2225         * Control.cs: Added missing 2.0 attributes
2226         
2227 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2228         
2229         * MdiClient.cs: Added missing 2.0 attribute.
2230         * MonthCalendar.cs: Added some missing 2.0 attributes 
2231         and properties.
2232         
2233 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2234
2235         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2236
2237 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2238
2239         * MainMenu.cs: Add the new 2.0 constructor to help out people
2240         using the MainMenu in VS2005.
2241
2242 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2243         
2244         * MdiChildContext.cs: Removed it, no longer used.
2245         * MdiClient.cs: Added missing 2.0 attributes.
2246         
2247 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2248         
2249         * InternalWindowManager.cs: Fix a NullRef with previous 
2250         changes for toolwindows.
2251         
2252 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2253
2254         * Control.cs: 
2255         - Added AfterTopMostControl to allow for certain controls 
2256         to always stay on top when normal controls are brought to 
2257         front.
2258         
2259         * XplatUIWin32.cs: 
2260         - (DrawInversibleRectangle): Get window rectangle from Win32 
2261         in stead of from control, since Win32 doesn't calculate
2262         screen coords correctly from control's Location if it 
2263         have docked siblings.
2264         
2265         * MdiWindowManager.cs:
2266         - Correct the control menu popup location when clicked on
2267         the maximized form icon. (fixes #80223.1)
2268         - Don't show moving rectangle if mouse hasn't moved from
2269         the original clicked point.
2270         - Removed FormGotFocus handler (not used).
2271         - Calculate the control buttons location from the main
2272         window's size and not client size (fixes #79770).
2273         - Form is now closed when the form icon is double-clicked
2274         (fixes #79775). 
2275         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2276         
2277         * InternalWindowManager.cs:
2278         - Moved some MDI-only methods to MdiWindowManager.
2279         - Removed unused properties and methods.
2280         - Unified method naming for methods handling wm messages.
2281         - Moved all message handling to seperate methods for
2282         each message.
2283         
2284         * ThemeWin32Classic.cs:
2285         - DrawManagedWindowDecorations now draws the title bar 
2286         with a gradient brush.
2287         - Add a CPDrawButtonInternal that allows us to specify
2288         light, normal and dark colors for the buttons (control 
2289         buttons for MDI children were drawn with the same light
2290         color as the background, therefore loosing the 3D effect).
2291         
2292         * SizeGrip.cs:
2293         - Add a CapturedControl property that is used to 
2294         determine the control to resize (defaults to parent). 
2295         Needed for MdiClient, since its SizeGrip's parent is
2296         MdiClient, but the control to resize is the main form.
2297         
2298         * MdiClient.cs:
2299         - Set SizeGrip's CapturedControl to the main form in order
2300         to resize the main form and not the MdiClient.
2301         - Override AfterTopMostControl to leave the scrollbars 
2302         always on top.
2303
2304 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2305
2306         * ListView.cs: fixed ListViewItemCollection AddRange and
2307                         implemented ListViewItemCollection AddRange 2.0 support.
2308
2309 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2310
2311         * ListViewGroup.cs: Add.
2312         * ListViewGroupCollection.cs: Add
2313         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2314         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2315                                 stub for ImageKey 2.0 support.
2316
2317 2006-12-14  Mike Kestner  <mkestner@novell.com>
2318
2319         * ListView.cs: add text padding to the autocalculation for columns
2320         of width -2.  Fixes #80207.
2321  
2322 2006-12-14  Mike Kestner  <mkestner@novell.com>
2323
2324         * ListView.cs: add some index guarding for partial row navigation 
2325         logic.  Fixes #80250.
2326
2327 2006-12-14  Mike Kestner  <mkestner@novell.com>
2328
2329         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2330         are added or inserted to the collection.  Fixes #81099.
2331
2332 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2333
2334         * MenuAPI.cs: Closes menu when right click out side of popup
2335         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2336
2337 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2338
2339         * ListViewItem.cs: Fix dumb error.
2340
2341         * ListView.cs: Add Find and ContainsKey methods in 
2342         ListViewItemCollection, and also return true for IsReadOnly
2343         and IsFixedSize (changes for 2.0). 
2344
2345 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2346
2347         * Control.cs: Allow Region to be set to null.
2348
2349 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2350
2351         * MdiWindowManager.cs: Remove unused (commented out) code.
2352         * Form.cs: When the MdiChild is maximized, the form needs 
2353         WM_NCMOUSELEAVE, so request it.
2354         * InternalWindowManager.cs: 
2355         - Added tooltips to control buttons.
2356         - Removed duplicated control button handling code.
2357         - Removed unused (commented out) code.
2358         
2359 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2360
2361         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2362         was used because we must set cursor without trigger ChangeCursor event
2363         and without change Cursor control property. Fixes #79963.
2364
2365 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2366         
2367         * Control.cs: Check if Region setter value is null, and ignore
2368
2369 2006-12-12  Jackson Harper  <jackson@ximian.com>
2370
2371         * TextControl.cs: We were almost always drawing one more line then
2372         needed, since the GetLineByPixel will return the last line found
2373         at that pixel. In most cases though, we were invalidating up to
2374         the junction between two lines.
2375         - Improve debug code.
2376
2377 2006-12-12  Chris Toshok  <toshok@ximian.com>
2378
2379         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2380         and FillReversibleRectangle.
2381
2382         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2383         and FillReversibleRectangle.
2384
2385         * XplatUIWin32.cs: add stubs which do nothing for
2386         DrawReversibleFrame, DrawReversibleLine, and
2387         FillReversibleRectangle.
2388
2389         * XplatUIOSX.cs: add stubs which raise NIE for
2390         DrawReversibleFrame, DrawReversibleLine, and
2391         FillReversibleRectangle.
2392
2393         * XplatUIX11.cs: add working implementation for
2394         DrawReversibleFrame, DrawReversibleLine, and
2395         FillReversibleRectangle.
2396         
2397         * ControlPaint.cs: implement DrawReversibleFrame,
2398         DrawReversibleLine, and FillReversibleRectangle, by calling into
2399         the appropriate XplatUI method.
2400
2401 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2402
2403         * Form.cs: Make MdiClient have the focus even if it's
2404         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2405         messages. Fixes #79907.
2406         
2407 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2408
2409         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2410         queried after the window is created.
2411         
2412         * XplatUIX11.cs: Added SendParentNotify to implement 
2413         WM_PARENTNOTIFY logic. Fixes #79965.
2414         
2415         * Control.cs: Added MakeParam.
2416         
2417 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2418
2419         * MdiClient.cs: Resume Layout before setting window
2420         states (fixes #80201).
2421
2422 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2423
2424         * MenuAPI.cs: Deselect a menu item after performing
2425         the click (fixes #80197).
2426
2427 2006-12-11  Jackson Harper  <jackson@ximian.com>
2428
2429         * TextBoxBase.cs: We need to cap this value, since Maximum -
2430         ViewPortHeight can be less than zero.
2431         - Only do selection with the left mouse button.
2432         * TextBox.cs: Don't tell the world that we have a context menu.
2433         * Control.cs: New method so that we can control whether or not the
2434         context menu is visible outside MWF.
2435
2436 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2437
2438         * ToolBarButton.cs: Fix text positon. 
2439
2440 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2441
2442         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2443
2444         * Control.cs (DoubleBuffered): Add implementation.
2445
2446         * Application.cs (OpenForms): Add.
2447
2448 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2449
2450         * Form.cs: Use opacity instead of Opactiy to determine if we need
2451         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2452
2453 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2454
2455         * Control.cs: Fix NRE if Control.Site was set to null.
2456
2457 2006-12-11  Chris Toshok  <toshok@ximian.com>
2458
2459         * Control.cs: ControlCollection.Remove should return if the arg is
2460         null, and ControlCollection.SetChildIndex should raise a ANE.
2461
2462 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2463
2464         * Control.cs: Verify value set for Dock property. Code formatting
2465         updates.
2466
2467 2006-12-11  Jackson Harper  <jackson@ximian.com>
2468
2469         * TextControl.cs: Draw the caret and the selection when a flag is
2470         set on the owner.
2471         * TextBoxBase.cs: We want to draw the caret and the selection for
2472         TextBox but not for TextBoxBase.
2473         - If the window is resized and scrolling is no longer needed (the
2474         whole doc is visible) set the scroll position to zero.
2475         - The default SelectWord (the one TextBox uses) should move the
2476         caret to the end of the word.
2477         - SelectAll moves the caret to the end of the selection.
2478         * TextBox.cs: We don't selectall on focus, we just do it when the
2479         control is created.
2480         
2481 2006-12-11  Mike Kestner  <mkestner@novell.com>
2482
2483         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2484
2485 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2486
2487         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2488         2.0 support.
2489         * ListViewItem.cs: Add Name 2.0 property.
2490
2491 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2492
2493         * TabControl.cs: Set visibility on selected or default tab 
2494         when tabcontrol handle is created, so that it's contents
2495         actually show up (duh). Fixes #80193
2496         Don't redraw the control if there is no handle created, as
2497         the selected index might be completely invalid. Added some tests
2498         to check for this.
2499
2500 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2501
2502         * ToolBar.cs: Uses maximun width and height of all buttons as 
2503         button rectangle when ButtonSize specified, it looks strange but
2504         is what happens in Win32. Fixes #80189.
2505
2506 2006-12-11  Jackson Harper  <jackson@ximian.com>
2507
2508         * TextControl.cs: Need to track undo levels ourself, since
2509         compound actions will mess them up.
2510
2511 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2512
2513         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2514         SelectedIndex value is changed (even if it's not valid).
2515         Reset SelectedIndex to 0 when the handle is created and if
2516         the current index is invalid.
2517         Fixes SelectdeIndex unit tests and #80128
2518
2519 2006-12-08  Chris Toshok  <toshok@ximian.com>
2520
2521         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2522         calls EndEdit, it needs to be called before we set current_cell to
2523         its new value.  Otherwise, we end up committing the value in the
2524         textbox to the new cell as well.  Fixes bug #80160.
2525
2526 2006-12-08  Chris Toshok  <toshok@ximian.com>
2527
2528         * Form.cs (set_CancelButton): if the button's DialogResult is
2529         None, set it to Cancel.  Fixes bug 80180.
2530
2531 2006-12-08  Jackson Harper  <jackson@ximian.com>
2532
2533         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2534         to watch ourselves when setting the canvas size and setting the
2535         scrollbar values.
2536
2537 2006-12-08  Chris Toshok  <toshok@ximian.com>
2538
2539         * DataGrid.cs: comment out the two MakeTransparent calls for the
2540         time being so people using trunk (and not 1.2.2) on windows can
2541         actually use the datagrid.  This deals with bug #80151.
2542
2543 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2544
2545         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2546         Graphics.DrawImage (image, int, int, int, int) overload instead
2547         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2548         the dpi difference and was blurring images it drew.
2549         [Fixes bug #79960]
2550
2551 2006-12-08  Chris Toshok  <toshok@ximian.com>
2552
2553         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2554         rowcnt is 0 (such as with an empty datasource), and make sure we
2555         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2556         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2557
2558 2006-12-08  Chris Toshok  <toshok@ximian.com>
2559
2560         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2561         grid.
2562
2563 2006-12-08  Chris Toshok  <toshok@ximian.com>
2564
2565         [ Fixes bug #80167 ]
2566         
2567         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2568         style is FlatStyle.System.
2569
2570         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2571         ButtonBase.flat_style private, and switch uses of it to the public
2572         property.
2573         
2574 2006-12-08  Chris Toshok  <toshok@ximian.com>
2575
2576         [ Fixes bug #80121 ]
2577         
2578         * ThemeWin32Classic.cs: center the caption text in the datagrid
2579         when we draw it.
2580
2581         * DataGrid.cs: lessen the amount we add to the caption height from
2582         6 to 2.  6 was making it huge.
2583
2584 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2585
2586         * UpDownBase: Handle MouseWheel call directly instead of capturing
2587         the inner textbox's OnMouseWheel. Fixes #80166
2588
2589 2006-12-08  Jackson Harper  <jackson@ximian.com>
2590
2591         * TextControl.cs: We need to invalidate the textbox when we empty
2592         it (how had this not been discovered before?)
2593
2594 2006-12-08  Jackson Harper  <jackson@ximian.com>
2595
2596         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2597         to behave like MS, we now ignore the eventargs.Click and just
2598         track state ourself, which we were already doing anyways.
2599         - Constrain the double click handler to the double click size.
2600         
2601 2006-12-08  Chris Toshok  <toshok@ximian.com>
2602
2603         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2604         direction if that scrollbar isn't shown.  fixes bug #80158.
2605
2606 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2607
2608         * NumericUpDown.cs: Update value on getter. Fixes #79950
2609
2610 2006-12-08  Chris Toshok  <toshok@ximian.com>
2611
2612         * MenuItem.cs: add back in the event cloning code.  I didn't know
2613         how to do it in the face of the EventHandlerList work i'd done
2614         last week.  Fixes bug #80183.
2615
2616 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2617
2618         * Control.cs: Add an invalidate to the BackgroundImage setter.
2619         [Fixes 80184]
2620
2621 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2622
2623         * ToolStrip*: Add some small properties reported by MoMA, fix event
2624         firing and default properties based off of unit tests, and add some
2625         attributes based off of the class status page.
2626
2627 2006-12-07  Jackson Harper  <jackson@ximian.com>
2628
2629         * TextBoxBase.cs: Take HideSelection into account when determining
2630         whether or not to show the selection.
2631         * RichTextBox.cs: After inserting the RTF into the document move
2632         the cursor to the beginning of the document.
2633
2634 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2635
2636         * Control.cs: Remove static ArrayList "controls" which maintained
2637         a reference to every control created.
2638         * Application.cs: Create a static FormCollection to maintain a reference
2639         to every form created.  Use it in places that formerly enumerated through
2640         the controls one looking for forms.
2641         * Form.cs: Add and remove self from above FormCollection.
2642
2643 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2644
2645         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2646           not libgdk (though it makes me wonder why I didn't have any
2647           problems)
2648
2649 2006-12-07  Chris Toshok  <toshok@ximian.com>
2650
2651         [ you had to know this was coming after that last commit...]
2652         
2653         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2654         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2655         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2656         XCopyArea).
2657
2658 2006-12-07  Chris Toshok  <toshok@ximian.com>
2659
2660         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2661         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2662         all the behavior we need for double buffering.
2663
2664         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2665         client side Bitmap, just like the old Control-based double buffer
2666         code did.  The methods are virtual, so each XplatUI driver
2667         subclass can replace the implementation to use a faster, platform
2668         specific approach.
2669
2670         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2671         double buffer code, and clean things up a bit in the process.
2672
2673 2006-12-06  Chris Toshok  <toshok@ximian.com>
2674
2675         * Control.cs: reindent WndProc.
2676
2677 2006-12-06  Chris Toshok  <toshok@ximian.com>
2678
2679         [ I wanna be like BenM when I grow up ]
2680         
2681         * Hwnd.cs: create a single static Graphics object on the static
2682         Bitmap we create.  use this for our text measurements.
2683
2684         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2685         This was causing us to allocate a backbuffer for every control,
2686         even when it wasn't flagged as double buffered.  Instead use the
2687         single graphics instance.  This might have implications for
2688         multithreaded applications.  If we run into problems we can switch
2689         to creating 1 Graphics per control, on the static Hwnd bitmap.
2690
2691         this change nets us a 7M savings in private dirty mappings when
2692         running FormsTest.exe.
2693
2694 2006-12-06  Chris Toshok  <toshok@ximian.com>
2695
2696         * ListView.cs: the BackgroundImage override is just to set
2697         attributes.  chain up to base.BackgroundImage.
2698
2699         * RichTextBox.cs: same.
2700
2701         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2702         changes, so instead a handler for BackgroundImageChanged.
2703         
2704         * Control.cs: make background_image private.
2705
2706 2006-12-06  Chris Toshok  <toshok@ximian.com>
2707
2708         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2709         sure we even need this assignment, but roll with it for now.
2710
2711         * Control.cs: make the cursor field private.
2712
2713 2006-12-06  Chris Toshok  <toshok@ximian.com>
2714
2715         * Form.cs: we don't need to explicitly set ImeMode to
2716         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2717         behavior in the face of ImeMode.Inherit.
2718
2719         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2720         change the ctor's assignment to use ImeMode instead of ime_mode.
2721
2722         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2723         ImeModeInherit.  Only check for the parent's imemode (and return
2724         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2725         This fixes the button unit test, which sets both ImeMode and
2726         DefaultImeMode to ImeMode.Disable.
2727
2728         also make the ime_mode field private.
2729
2730 2006-12-06  Chris Toshok  <toshok@ximian.com>
2731
2732         * Control.cs: make control_style private.
2733
2734         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2735         setting the styles to true, then setting them to false instead of
2736         reverting to their previous values.
2737
2738         also, call SetStyle on the scrollbars instead of using
2739         control_style directly.
2740
2741 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2742
2743         * FormCollection.cs: Implement. [2.0]
2744
2745 2006-12-06  Chris Toshok  <toshok@ximian.com>
2746
2747         * Control.cs: make tab_stop private.
2748
2749         * Label.cs: set TabStop, not tab_stop.  reformat some event
2750         add/remove methods to make them more compact.
2751
2752 2006-12-06  Chris Toshok  <toshok@ximian.com>
2753
2754         * RadioButton.cs: fix TabStop handling.
2755
2756 2006-12-06  Chris Toshok  <toshok@ximian.com>
2757
2758         * TextBox.cs: remove the explicit assignments to has_focus.
2759         Control does that.
2760
2761         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2762         manage that.
2763         
2764 2006-12-06  Chris Toshok  <toshok@ximian.com>
2765
2766         * ButtonBase.cs: remove all uses of is_enabled from this code.
2767         it's always true when any of the code containing the checks is
2768         executed.
2769
2770 2006-12-06  Chris Toshok  <toshok@ximian.com>
2771
2772         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2773         with different semantics (some are present in both 1.1 and 2.0
2774         profiles) so that we match MS's behavior in our unit tests.
2775
2776 2006-12-06  Jackson Harper  <jackson@ximian.com>
2777
2778         * TextControl.cs: Make this operation undoable.
2779         * TextBoxBase.cs: Factor the border width into the preferred
2780         height.
2781         - implement Modified as per the spec.
2782
2783 2006-12-06  Chris Toshok  <toshok@ximian.com>
2784
2785         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2786
2787 2006-12-06  Chris Toshok  <toshok@ximian.com>
2788
2789         * Control.cs: make right_to_left and context_menu fields private.
2790
2791 2006-12-06  Chris Toshok  <toshok@ximian.com>
2792
2793         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2794         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2795         Control.child_controls private.  switch all uses over to
2796         Control.Controls.
2797
2798 2006-12-06  Chris Toshok  <toshok@ximian.com>
2799
2800         * System.Windows.Forms/GroupBox.cs,
2801         System.Windows.Forms/AccessibleObject.cs,
2802         System.Windows.Forms/ErrorProvider.cs,
2803         System.Windows.Forms/Control.cs,
2804         System.Windows.Forms/UpDownBase.cs,
2805         System.Windows.Forms/ScrollBar.cs,
2806         System.Windows.Forms/DateTimePicker.cs,
2807         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2808         System.Windows.Forms/ToolTip.cs,
2809         System.Windows.Forms/RadioButton.cs,
2810         System.Windows.Forms/LinkLabel.cs,
2811         System.Windows.Forms/Splitter.cs,
2812         System.Windows.Forms/TextBoxBase.cs,
2813         System.Windows.Forms/ToolStripTextBox.cs,
2814         System.Windows.Forms/ContainerControl.cs,
2815         System.Windows.Forms/ThemeWin32Classic.cs,
2816         System.Windows.Forms/SizeGrip.cs,
2817         System.Windows.Forms/ToolStripDropDown.cs,
2818         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2819         private.  switch all uses over to Control.Parent.
2820
2821 2006-12-06  Chris Toshok  <toshok@ximian.com>
2822
2823         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2824         Control does this before calling emitting these events.
2825
2826         * TabControl.cs: same.
2827
2828         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2829         Control.client_rect.
2830
2831         * ButtonBase.cs: use the ClientSize property instead of the
2832         client_size field.
2833
2834         * ScrollableControl.cs: same.
2835
2836         * Control.cs: another pass at making properties private.  also,
2837         move the initialization of tab_stop to the ctor.
2838
2839 2006-12-05  Andreia Gaita <avidigal@novell.com>
2840
2841         * TabControl.cs: Let the selected index be set freely if the 
2842         control handle is not yet created.
2843
2844 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2845
2846         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2847         internal until I can rewrite DefaultLayout.
2848         * ToolStrip.cs: Fix build error and some general cleaning.
2849         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2850         Fix build errors caused by making some of Control's fields private.
2851
2852 2006-12-05  Jackson Harper  <jackson@ximian.com>
2853
2854         * TextControl.cs: Redo Insert a little so that it use IndexOf
2855         instead of Split, this prevents it from messing up on things like
2856         \n\n\n. Also more effecient since the split array doesn't need to
2857         be created.
2858         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2859         multiline text differently, this is the first of many fixes that
2860         will make multiline/non-multiline the same thing as far as the
2861         TextBoxBase is concerned.
2862         - Don't split the text and insert lines, this can lose some line
2863         endings (like is the last line a soft or hard break). Instead use
2864         the new Insert.
2865         - Fix an off by one when combining all the lines in the Text
2866         getter.
2867         - Remove separate multiline handling from the Text getter/setter.
2868
2869 2006-12-05  Chris Toshok  <toshok@ximian.com>
2870
2871         * ButtonBase.cs: a few changes:
2872
2873         - don't reinitialize internal Control fields in the ctor when they
2874         have the same values as Control sets them.
2875
2876         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2877         this before calling those methods.
2878
2879         - we don't need to call Refresh for anything.  use Invalidate
2880         instead.
2881
2882         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2883         calls Refresh in its OnEnabledChanged.
2884         
2885         - several of the events we were registered for in the ctor to
2886         redraw ourselves already include calls to Invalidate in the
2887         property setters that raise the events.  remove the extra
2888         invalidation.
2889
2890         - reformat a switch statement that was 83274658 columns wide.
2891         
2892 2006-12-05  Mike Kestner  <mkestner@novell.com>
2893
2894         * ComboBox.cs: fix a unit test regression from a TextBox
2895         SelectionLength return of -1 when there's no selection.  
2896
2897 2006-12-05  Chris Toshok  <toshok@ximian.com>
2898
2899         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2900         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2901         cleaning up some of the internal Control fields being used by
2902         subclasses.
2903
2904 2006-12-05  Mike Kestner  <mkestner@novell.com>
2905
2906         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2907         listbox after AddImplicit calls since it defaults to hidden. Add a 
2908         hack to preserve requested heights across DropDownStyle changes.
2909
2910 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2911
2912         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2913
2914 2006-12-05  Chris Toshok  <toshok@ximian.com>
2915
2916         * DataGridView.cs: fix compiler warnings.
2917
2918         * PrintControllerWithStatusDialog.cs: same.
2919
2920         * ToolBar.cs: same.
2921
2922         * FolderBrowserDialog.cs: same.
2923
2924         * Splitter.cs: same.
2925
2926         * DataGridViewComboBoxCell.cs: same.
2927
2928         * XplatUIWin32.cs: same.
2929
2930         * PictureBox.cs: same.
2931
2932         * Win32DnD.cs: same.
2933
2934         * PageSetupDialog.cs: same.
2935
2936         * FileDialog.cs: same.
2937
2938         * PrintDialog.cs: same.
2939
2940         * DataGridTextBoxColumn.cs: same.
2941
2942         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2943
2944 2006-12-05  Chris Toshok  <toshok@ximian.com>
2945
2946         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2947         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2948         System.ComponentModel.EventHandlerList work.
2949
2950 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2951
2952         * DrawTreeNodeEventArgs.cs: Added.
2953
2954 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2955         
2956         * InternalWindowManager.cs: Remove an unused field.
2957         
2958 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2959
2960         * InternalWindowManager.cs:
2961         - Save the point where the title bar is clicked.
2962         
2963         * MdiWindowManager.cs:
2964         - Only allow moving of the window as long as the 
2965         clicked point on the title bar does not get out of
2966         MdiClient's rectangle. Fixes #79982.
2967         
2968         * MdiClient.cs:
2969         - Added Horizontal/VerticalScrollbarVisible.
2970         - Simplified the scrollbar sizing algorithm.
2971         - Cache the difference in scrolled value in
2972         H/VBarValueChanged and move the calculation out
2973         of the for loop.
2974
2975 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2976
2977         * Control.cs: Make the Console.WriteLine in WndProc 
2978         write more info.
2979
2980 2006-12-05  Chris Toshok  <toshok@ximian.com>
2981
2982         * ToolStripManager.cs, ToolStripButton.cs,
2983         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
2984         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
2985         ToolStripSplitButton.cs, ToolStripSeparator.cs,
2986         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
2987         ToolStripProgressBar.cs, ToolStripContainer.cs,
2988         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
2989         to using System.ComponentModel.EventHandlerList.
2990
2991 2006-12-04  Chris Toshok  <toshok@ximian.com>
2992
2993         * LinkLabel.cs: fix up compiler warnings.
2994
2995         * TableLayoutSettings.cs: same.
2996
2997         * TreeView.cs: same.
2998
2999         * ToolBar.cs: same.
3000
3001         * TabControl.cs: same.
3002
3003         * RichTextBox.cs: same.
3004
3005         * ListViewItem.cs: same.
3006
3007         * PropertyGrid.cs: same.
3008
3009         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3010
3011         * ToolTip.cs same.
3012
3013         * TextRenderer.cs: fix up compiler warnings.
3014
3015         * Label.cs: same.
3016
3017         * Form.cs: corcompare fixes.
3018
3019         * PictureBox.cs: fix up compiler warnings.
3020
3021         * ImageListStreamer.cs: same.
3022
3023         * TrackBar.cs: corcompare fix.
3024
3025         * Control.cs: fix up compiler warnings.
3026
3027         * SplitterPanel.cs: same.
3028
3029         * NumericTextBox.cs: same.
3030
3031         * ImageList.cs: same.
3032
3033         * StatusStrip.cs: same.
3034
3035         * ProgressBar.cs: corcompare fix.
3036
3037         * ToolStripButton.cs: fix up compiler warnings.
3038
3039         * ToolStripStatusLabel.cs: same.
3040
3041         * ToolStripSplitButton.cs: same.
3042
3043         * ToolStripSeparator.cs: same.
3044
3045         * ToolStripProgressBar.cs: same.
3046
3047         * ToolStripDropDownMenu.cs: same
3048
3049         * ToolStripDropDown.cs: same.
3050
3051         * ToolStripDropDownButton.cs: same.
3052
3053         * ToolStrip.cs: same.
3054
3055         * ToolStripControlHost.cs: same.
3056
3057         * ToolStripContentPanel.cs: same.
3058
3059         * ToolStripDropDown.cs: same.
3060
3061         * ToolStripContainer.cs: same.
3062
3063         * ToolStripPanel.cs: same, and add "new" where we need it to work
3064         with the new ArrangedElementCollection.
3065
3066         * ToolStripItemCollection.cs: add "new" where we need it to work
3067         with the new ArrangedElementCollection.
3068
3069 2006-12-04  Andreia Gaita <avidigal@novell.com>
3070
3071         * TabControl.cs: Fix default tab selection to after TabControl
3072         gets focus and not before. Fixes #80128
3073
3074 2006-12-04  Chris Toshok  <toshok@ximian.com>
3075
3076         * DataGridTableStyle.cs: remove the gross calling of
3077         datagrid.Refresh from here.  It's a broken idea and it doesn't
3078         work anyway.
3079
3080         * DataGrid.cs: instead, just register/unregister from the
3081         DataGridTableStyle events in CurrentTableStyle.  we play it
3082         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3083         even though some would most likely not require it.  Fixes bug
3084         #80115 (and one portion of #80117 as a side effect).
3085
3086 2006-12-04  Chris Toshok  <toshok@ximian.com>
3087
3088         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3089         so the textbox (if any) goes away.  Fixes bug #80117.
3090
3091 2006-12-04  Chris Toshok  <toshok@ximian.com>
3092
3093         * DataGridColumnStyle.cs: set the column's readonly property
3094         initially based on the property descriptor's IsReadOnly.  Fixes
3095         bug #80044.
3096
3097 2006-12-04  Chris Toshok  <toshok@ximian.com>
3098
3099         * ComboBox.cs: wrap the dropdown style changing work in
3100         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3101
3102 2006-12-04  Jackson Harper  <jackson@ximian.com>
3103
3104         * TextBoxBase.cs: Fix off by one, since these are one-based.
3105         * TextBox.cs: Select all the text when we get focus.  The TextBox
3106         does this but the RTB does not.
3107
3108 2006-12-04  Chris Toshok  <toshok@ximian.com>
3109
3110         * DataGridTextBoxColumn.cs: remove some spew.
3111
3112         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3113         but some part of me is saying "it shouldn't be here.."  At any
3114         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3115         setting the value.
3116
3117 2006-12-04  Chris Toshok  <toshok@ximian.com>
3118
3119         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3120         to reassign the propertydescriptor.
3121
3122 2006-12-04  Jackson Harper  <jackson@ximian.com>
3123
3124         * TextBoxBase.cs:
3125         * TextControl.cs: Remove some unused variables.  Maybe this will
3126         patch things up between mike and I.
3127         - don't split lines less then one char wide, if the viewport is
3128         that small text won't be visible anyways.
3129         
3130 2006-12-04  Jackson Harper  <jackson@ximian.com>
3131
3132         * TextBoxBase.cs: Default selection length is -1, need to do some
3133         more testing on windows to see when this is used for the property.
3134         - Redid the Lines [] property to that we properly remove soft line
3135         breaks
3136         - added support for preserving carriage returns
3137         -  CanUndo is not a variable like 'is undo enabled' it just returns
3138         true if there is undo operations available.
3139         - AppendText doesn't need to grab the last tag itself anymore,
3140         this happens automatically when we move the cursor.
3141         * TextControl.cs: Add CompoundActions to the undo class. This
3142         allows combining the other operations into one big option.  ie a
3143         paste will combine { delete old, insert new, move cursor }
3144         - Add InsertString undo operation
3145         - New method for deleting multiline text
3146         - Add carriage returns to lines. So we can preserve carriage
3147         returns when text is 'roundtripped'
3148
3149 2006-12-04  Chris Toshok  <toshok@ximian.com>
3150
3151         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3152         minimum 0.  Fixes the scrollbar exception in bug #80136.
3153
3154 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3155
3156         * MdiClient.cs: 
3157         * MdiWindowManager: Removed unused fields and methods.
3158         
3159 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3160         
3161         * StatusBar.cs: Update all panels when a AutoSize=Contents
3162         panel needs updating.
3163         
3164         * StatusBarPanel.cs: Remove twidth and only use initialize.
3165         Fixes #80031.
3166                 
3167 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3168
3169         * Form.cs: When a form's MdiParent is set add it directly
3170         on top of the z-order in stead of relying on MdiClient's
3171         ActivateChild to do it. Fixes #80135.
3172         
3173         * MdiClient.cs: 
3174         - Remove original_order, mdi_child_list is already doing
3175         the same thing.
3176         - Create mdi_child_list on construction in
3177         stead of first use (avoids a few null checks).
3178
3179         * MenuItem.cs: Use an already existing list of mdi children
3180         to get the correct order of children and remove the other
3181         redundant list.
3182
3183 2006-12-04  Chris Toshok  <toshok@ximian.com>
3184
3185         * PropertyGridView.cs: cached_splitter_location is only used in
3186         !DOUBLEBUFFER code.
3187
3188         * PropertyGrid.cs: implement the ComComponentNameChanged event
3189         using Events, hoping that would fix the warning.  Looks like a
3190         compiler bug instead (#80144).
3191
3192         * PropertyManager.cs: remove unused method.
3193
3194 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3195
3196         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3197         include parentesis to fix expression evaluation. Fixes #79634.
3198
3199 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3200         
3201         * MenuAPI.cs:
3202         - Changes to fix behavior in Menu control, some reported in #80097
3203         and other detected during behavior refactory like a select event
3204         problems.
3205         - Remove unneded "if's" conditions.
3206         - Created an internal to flag when popup is active in control, we need 
3207         it because in .NET you can have menu active but without popup active
3208         when you active menu using popup without visible items.
3209         - Mimic win32 behavior for Select and Popup events.  
3210         - Dont open popup menu when you dont have visible subitems.
3211         - Do nothing when click on disabled menu item.
3212         - Some small changes to follow the coding style guidelines.
3213         - Unselect menu only when another control gives focus. Fixes #80097.
3214         - Remove unused code.
3215         
3216         * MenuItem.cs: internal VisibleItems method to check if menu
3217         theres visible subitems, it will be usefull to fix some 
3218         behavior in Menu control.
3219         
3220 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3221         
3222         * Timer.cs: Tag property for 2.0 profile.
3223         
3224 2006-12-01  Chris Toshok  <toshok@ximian.com>
3225
3226         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3227         
3228         * Win32DnD.cs: comment out some unused fields.
3229
3230         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3231         some unused properties/methods.
3232
3233         * XplatUIX11.cs: fix MousePosition so we override the base class's
3234         property instead of conflicting with it.
3235
3236         * PictureBox.cs: comment out some unused fields
3237
3238         * OSXStructs.cs: make some struct fields public.
3239
3240         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3241         MousePosition so we override the base class's property instead of
3242         conflicting with it.
3243
3244         * X11Dnd.cs: comment out some unused fields
3245
3246         * X11DesktopColors.cs: fix some struct field visibility to quiet
3247         the compiler.
3248
3249         * X11Dnd.cs: remove some debug code.
3250
3251         * ThemeClearlooks.cs: comment out unused field.
3252
3253         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3254
3255         * ThemeGtk.cs: comment out some unused pinvokes.
3256
3257         * Timer.cs: remove some unused fields.
3258
3259         * ThemeClearlooks.cs: comment out unused field.
3260
3261         * UpDownBase.cs: comment out unused field.
3262
3263         * DataObject.cs: comment out unused field.
3264
3265         * DataGridBoolColumn.cs: reomve unused field.
3266
3267         * DataGrid.cs: remove unused field.
3268
3269         * Cursor.cs: remove old ToBitmap code.
3270
3271         * ControlPaint.cs: remove unused method.
3272
3273         * ScrollBar.cs: remove unused fields.
3274
3275         * ComboBox.cs: remove unused field, and chain up to
3276         AccessibleObject ctor.
3277
3278         * ListBox.cs: remove unused field.
3279
3280         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3281
3282         * GridEntry.cs: remove unused fields.
3283
3284         * Binding.cs: remove unused fields.
3285
3286         * AxHost.cs: remove unused method.
3287
3288         * ContainerControl.cs: remove unused field.
3289
3290         * ScrollableControl.cs: remove unused fields.
3291
3292 2006-12-01  Chris Toshok  <toshok@ximian.com>
3293
3294         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3295         the Where/WhereString stuff.  it's easy enough to CWL
3296         Environment.StackTrace.
3297
3298         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3299         unused private fields.
3300
3301 2006-12-01  Jackson Harper  <jackson@ximian.com>
3302
3303         * TextControl.cs: Do not update the view while inserting multiline
3304         text. If we update the view we might wrap lines, before entering
3305         the new lines, which causes the new line insertion calculations to
3306         be totally fubared.
3307         - Remove an old TODO
3308         - Make debug output a little nicer
3309         
3310 2006-12-01  Chris Toshok  <toshok@ximian.com>
3311
3312         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3313
3314 2006-12-01  Chris Toshok  <toshok@ximian.com>
3315
3316         [ fix the majority of the CS0108 warnings we've been suppressing ]
3317         
3318         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3319
3320         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3321         to "LayoutToolBar" to quiet mcs.
3322         
3323         * TabControl.cs: mark our ControlCollection class as 'new'.
3324
3325         * TextBoxBase.cs: mark some events as 'new'.
3326
3327         * Splitter.cs: TabStop is 'new'.
3328
3329         * ControlBindingsCollection.cs: mark a few methods as new since
3330         they change the visibility from protected to public.
3331
3332         * RadioButton.cs: DoubleClick -> base class, and remove unused
3333         HaveDoubleClick.
3334
3335         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3336         events as new.
3337
3338         * NumericUpDown.cs: TextChanged -> base class.
3339
3340         * CheckedListBox.cs: mark our ObjectCollection class as new to
3341         quiet mcs.
3342
3343         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3344         muck with the base class.
3345
3346         * StatusBar.cs: fix some mcs warnings about Update being the same
3347         name as a base class method.
3348
3349         * RichTextBox.cs: mark some events as new, and make them do things
3350         to the base class impl.
3351
3352         * UserControl.cs: mark TextChanged as new, and have it manipulate
3353         base.TextChanged.
3354
3355         * UpDownBase.cs: mark some things new.
3356
3357         * CheckBox.cs: mark DoubleClick "new", and add some text about
3358         what we need to look at.
3359
3360         * Panel.cs: make the events "new", and manipulate the base
3361         version.  these are just here for attributes.
3362
3363         * AccessibleObject.cs: make owner private.
3364
3365         * Control.cs: deal with AccessibleObject.owner being private.
3366         cache our own copy if we need it.
3367
3368         * Button.cs: add "new" to the DoubleClickEvent.
3369
3370         * ListBox.cs: no need to track our own has_focus here.  let
3371         Control.has_focus do it for us.  Also some other work to clear up
3372         warnings about not overriding base class methods of the same name.
3373         
3374         * ComboBox.cs: clear up some warnings about not override base
3375         class methods of the same name.
3376
3377 2006-12-01  Chris Toshok  <toshok@ximian.com>
3378
3379         * Form.cs: flag a few things as "new" to quiet some of the mcs
3380         warnings.
3381
3382         * AxHost.cs: same.
3383
3384         * PrintPreviewDialog.cs: same.
3385
3386         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3387         now DGV isn't so horrible on the class status page.  also, move
3388         all events to using System.ComponentModel.EventHandlerList.  my
3389         wrists hurt.
3390
3391 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3392
3393         * MdiWindowManager.cs:
3394         - Set form to active mdi child if shown,
3395         and update the active mdi child to the next 
3396         remaining child in the z-order if the form is hidden.
3397
3398         * Form.cs: 
3399         - Track if the form has been visible and if its 
3400         visibility is beeing changed, so that the MdiClient
3401         can properly decide the ActiveMdiChild. The MdiClient 
3402         cannot track this since the form can change visibility 
3403         before MdiClient is created.
3404
3405         * MdiClient.cs:
3406         - Don't activate anything of the parent form is changing
3407         its visibility.
3408         - Rework ActiveMdiChild to only return visible mdi 
3409         children and take into account several other corner 
3410         cases.
3411
3412 2006-12-01  Chris Toshok  <toshok@ximian.com>
3413
3414         * IBindableComponent.cs: new 2.0 interface.
3415
3416 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3417
3418         * DataGrid.cs: Font for caption area is bold by default.
3419
3420 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3421
3422         * Menu.cs: Tag property for 2.0.
3423         
3424 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3425
3426         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3427         
3428 2006-12-01  Chris Toshok  <toshok@ximian.com>
3429
3430         * TreeView.cs: doh, the Begin* events should be
3431         TreeViewCancelEventHandler.
3432
3433 2006-12-01  Chris Toshok  <toshok@ximian.com>
3434
3435         * Form.cs: Form.ControlCollection already stores off the
3436         form_owner field.  don't access the base class's internal "owner"
3437         field.
3438
3439         * Control.cs: make all the fields in Control.ControlCollection
3440         private.  there's no need for any internal fields here.
3441
3442 2006-12-01  Chris Toshok  <toshok@ximian.com>
3443
3444         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3445         OnHandleCreated.  Fixes bug #80109.
3446
3447 2006-12-01  Chris Toshok  <toshok@ximian.com>
3448
3449         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3450         SplitContainer.cs, Control.cs, StatusStrip.cs,
3451         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3452         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3453         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3454         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3455         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3456         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3457         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3458         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3459         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3460         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3461
3462         do most of the work to convert our code over to use
3463         System.ComponentModel.Component.Events for
3464         adding/removing/dispatching events.
3465
3466
3467 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3468
3469         * DataGridView.cs: Fix an ArgumentNullException reported 
3470         twice today in IRC.
3471
3472 2006-11-30  Mike Kestner  <mkestner@novell.com>
3473
3474         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3475         grabbed listbox.  Fixes #80036 and #80101.
3476
3477 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3478
3479         * Message.cs: Changed ToString() to match MS.
3480         
3481 2006-11-30  Jackson Harper  <jackson@ximian.com>
3482
3483         * TextBoxBase.cs: You can still change the selected text on a read
3484         only textbox.
3485         * TextControl.cs: Lower magic number for wrap calculations. This
3486         lets text get closer to the right (far) edge.
3487
3488 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3489
3490         * Control.cs: Tweak 2.0 layout properties.
3491         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3492         * TextRenderer.cs: Add a new overload.
3493         * ToolStrip*: Huge amount of changes and new features.
3494
3495 2006-11-30  Mike Kestner  <mkestner@novell.com>
3496
3497         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3498         scroll range correct.  Fixes #79994.
3499
3500 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3501
3502         * MdiWindowManager.cs: Update main form's text when
3503         a form is closed. (fixes #80038)
3504         
3505 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3506
3507         * ToolBar.cs:
3508         - Fix an regression in ButtonSize.
3509         - Get ImeMode default value change to "Disable".
3510         - Get ShowTooltips default value change to true, default value is 
3511         "false" but after make a test in .NET we get "true" result as default.
3512         
3513 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3514
3515         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3516
3517 2006-11-29  Chris Toshok  <toshok@ximian.com>
3518
3519         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3520         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3521         SetWindowTransparency hasn't been called.
3522
3523 2006-11-29  Chris Toshok  <toshok@ximian.com>
3524
3525         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3526         if it's supported.
3527         (set_AllowTransparency): reorder things a little so that the
3528         WS_EX_LAYERED style is removed properly.
3529
3530 2006-11-29  Chris Toshok  <toshok@ximian.com>
3531
3532         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3533         
3534         * Form.cs: only call the XplatUI transparency method (get/set) if
3535         SupportsTransparency says it's supported. Otherwise fallback to
3536         doing nothing (in the set case) or returning the instance field we
3537         cache (in the get case).
3538
3539         * XplatUIStructs.cs: add TransparencySupport flag enum.
3540         
3541         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3542         change to SupportsTransparency.
3543
3544         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3545         TransparencySupport.None from SupportsTransparency.
3546
3547         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3548         TransparencySupport.Set from SupportsTransparency.
3549
3550         * XplatUIWin32.cs: implement GetWindowTransparency calling
3551         GetLayeredWindowAttributes, and implement SupportsTransparency by
3552         checking whether or not both
3553         GetWindowTransparency/SetWindowTransparency are available
3554         entrypoints.  We need to do this since SetWindowTransparency is
3555         available as of win2k, but GetWindowTransparency requires winxp.
3556         yay win32 api.
3557
3558         * XplatUI.cs: Add GetWindowTransparency, and change
3559         SupportsTransparency to allow for either/both Get/Set.
3560
3561 2006-11-29  Chris Toshok  <toshok@ximian.com>
3562
3563         * DataGrid.cs: keep from going into an infinite loop redrawing a
3564         datagrid that has no datasource.  Fixes bug #80033.
3565
3566 2006-11-29  Chris Toshok  <toshok@ximian.com>
3567
3568         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3569         Invalidate) before the mainmenu has been assigned to a control.
3570
3571 2006-11-29  Chris Toshok  <toshok@ximian.com>
3572
3573         * DataGrid.cs: detect when we should be double the double click
3574         row/column autosize stuff, although that codepath has yet to be
3575         written.  part of the work for bug #79891.
3576
3577 2006-11-29  Chris Toshok  <toshok@ximian.com>
3578
3579         * Binding.cs (SetControl): fix unit test.
3580
3581 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3582
3583         * PageSetupDialog.cs: Validate the margins and set them in
3584         PageSettings. 
3585         * NumericTextBox.cs: New class to mimic the behavior of the
3586         textboxes used in the printing dialogs.
3587
3588 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3589         
3590         * Form.cs: Revert previous change (remove call UpdateBounds
3591         from form constructor), because it messes with the handle creation
3592         order, and that one needs lots and lots of love.
3593         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3594         for valid printer and throw InvalidPrinterException if document
3595         is set but printer not valid), adding a MonoTODO. Once 
3596         handle creation is done properly, we can put this back in.
3597
3598 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3599
3600         * MenuItem.cs: Create a invalidate method for menu item, to be
3601         calling from set text, it make text changes to imadiate update
3602         on screen. Fixes #80013. 
3603         
3604 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3605
3606         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3607         fixes bug #80070 and some other problem on toolbar buttons
3608         layout.
3609
3610 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3611
3612         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3613         with dotted brush.      Fixes #79564
3614         
3615 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3616
3617         * Form.cs: Removed call to UpdateBounds on Form
3618         constructor, it was causing a call to CreateHandle
3619         before it was supposed to.
3620         * PrintControllerWithStatusDialog: Applied patch
3621         by Chris Toshok to hide controller when there are
3622         no printers available.
3623         PrintDialog.cs: initialize printer settings to 
3624         null - correct DefaultValues test #5
3625         * PrintPreviewControl.cs: Move PrintController
3626         initialization to GeneratePreview
3627         * PrintPreviewDialog.cs: 
3628         - Remove Preview generation     from Document_set(). It is 
3629         called on OnPaint
3630         - Throw InvalidPrinterException on CreateHandle if
3631         a Document is set but there are no printers or 
3632         printer is not valid.
3633         * ThemeWin32Classic: don't paint PrintPreviewControl
3634         if there is nothing to paint    
3635
3636 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3637
3638         * Form.cs: Add another popular method.
3639
3640         * TabPage.cs: ditto.
3641
3642 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3643
3644         * MenuItem.cs: Fixed a warning.
3645         * InternalWindowManager: Fixed a warning.
3646
3647 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3648
3649         * MenuItem.cs:
3650         - When cloning a menu also clone MdiList and clone the 
3651           window menu items properly (as the forms and menuitems
3652           are kept in an internal hashtable, these need updating 
3653           as well)
3654         - Rewrote the window menu code, menu items are added in the
3655           order the forms were added to their parent, and they are
3656           updated every time the window menu is shown (before the
3657           list was only generated once, in the current order of the
3658           forms, and would never be updated). A checkmark is shown
3659           next to the item corresponding to the active mdi child.
3660
3661 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3662
3663         * XplatUIStructs.cs: 
3664         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3665         
3666         * XplatUIWin32.cs: 
3667         - Added TME_NONCLIENT to TMEFlags.
3668         - Handles WM_NCMOUSEMOVE in GetMessage to 
3669           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3670
3671         * MdiWindowManager:
3672         - Now merges mdi child menu to parent menu when maximized.
3673         - Recalculate NC areas of both mdi child and mdi parent. 
3674           Fixes #79757 (4).
3675           on window state and size changes.Fixes #79844 (3).
3676         - Handle WM_NCCALCSIZE to properly calculate borders.
3677
3678         * Form.cs:
3679         - Add/remove to the mdi containers list of mdi children 
3680           in the order they are added.
3681         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3682           to the maximized mdi child.
3683         
3684         * InternalWindowManager.cs:
3685         - Only execute a click on the control buttons on the mouse up,
3686           not on the mouse down. Show the state of the button 
3687           (was only showing Normal state, never Pressed state). The
3688           pressed button now follows the mouse (if you click the Close 
3689           button and move the mouse over the Maximize button, the 
3690           Maximize button will be shown as pressed). Since Win32 does
3691           not generate WM_NCLBUTTONUP if you release the button outside
3692           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3693           it as a mouse up.
3694         
3695         * ThemeWin32Classic.cs:
3696         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3697
3698         * MdiClient.cs:
3699         - Added a list of forms which contains the order the forms are
3700           added to the mdi parent.
3701         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3702         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3703         - If the active form changes set the scrollbars to the top
3704           of the Z order, otherwise the form could hide them.
3705         - Scrollbars are now sized according to ClientSize, not 
3706           to Size, and they take into account the other scrollbar
3707           to determine maximum.
3708         
3709 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3710         
3711         * XplatUI.cs:
3712         * XplatUIDriver.cs:
3713         * XplatUIX11.cs:
3714         * XplatUIWin32.cs:
3715         * XplatUIOSX.cs:
3716         - Added RequestAdditionalWM_NCMessages for windows to 
3717           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3718           Currently only implemented in XplatUIWin32.
3719
3720 2006-11-27  Chris Toshok  <toshok@ximian.com>
3721
3722         * Hwnd.cs: only add the hwnd to the windows hash in
3723         set_WholeWindow and set_ClientWindow if whole_window/client_window
3724         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3725
3726 2006-11-27  Mike Kestner  <mkestner@novell.com>
3727
3728         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3729         from the ComboListBox.ShowWindow code. Fixes #79969.
3730
3731 2006-11-27  Chris Toshok  <toshok@ximian.com>
3732
3733         * Hwnd.cs: remove the setters for ExposePending and
3734         NCExposePending - noone uses them.
3735
3736 2006-11-27  Jackson Harper  <jackson@ximian.com>
3737
3738         * TextControl.cs: new param for ReplaceSelection which determines
3739         whether we select the new selection, or set the cursor to the end
3740         of the new selection.
3741         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3742         pasting, select the new text.
3743         * RichTextBox.cs: Use new param for ReplaceSelection.
3744
3745 2006-11-27  Jackson Harper  <jackson@ximian.com>
3746
3747         * TextBoxBase.cs: Set the selection to the caret after the caret
3748         is moved, otherwise they get out of sync.
3749
3750 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3751
3752         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3753         it fixes #80015
3754
3755 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3756
3757         * ThemeWin32Classic.cs: 
3758         - Fix toolbar drop down arrow position.
3759         - Fix drop down appearance when ToolBar.Appearance is normal,
3760         it fixes #80018.
3761         
3762 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3763
3764         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3765         * Control.cs: Same.
3766         * UpDownBase.cs: Same.
3767         * ButtonBase.cs: Same.
3768         * ScrollBar.cs: Same.
3769         * TrackBar.cs: Same.
3770         * PictureBox.cs: Same.
3771         * UserControl.cs: Same.
3772         * Label.cs: Same.
3773         * ListControl.cs: Same.
3774         * TextBoxBase.cs: Same.
3775         * ListView.cs: Same.
3776         * RichTextBox.cs: Same.
3777         * TreeView.cs: Same.
3778
3779 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3780
3781         * PrintDialog.cs:
3782         - Text label for where 
3783         - Text label comment was not shown
3784
3785 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3786
3787         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3788
3789 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3790
3791         * InternalWindowManager.cs: 
3792         - Handle WM_PARENTNOTIFY to activate the form
3793         if any child control is clicked.
3794         - The form is only sizable if not minimized.
3795
3796         * MdiWindowManager.cs:
3797         - Save the IconicBounds if the form is moved.
3798         - Rework SetWindowState, now the window bounds 
3799         are stored only if the old window state is Normal.
3800         
3801         * MdiClient.cs:
3802         - In SetWindowStates store the old window state if 
3803         the window is maximized and restore window state if
3804         the window looses focus.
3805         - Don't handle any scrollbar value changes if 
3806         initializing the scroll bars. Fixes #79771.
3807         - Reworked ArrangeIconicWindows. Current algorithm
3808         tests bounds agains all other minimized windows, if
3809         any intersections create new bounds (going left to 
3810         right, bottom to top) and then test again. When 
3811         successful the bounds are saved and never computed
3812         again. Fixes #79774.
3813
3814 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3815
3816         * InternalWindowManager.cs: Added HandleTitleBarUp.
3817
3818 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3819
3820         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3821         hexadecimal in ParseUserEdit.
3822
3823         
3824 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3825
3826         * MdiWindowManager.cs: 
3827         - Handle a click on the form's icon to show the 
3828         system menu (when maximized). Fixes #79775.
3829         - Change the existing click handler for the form's
3830         icon when not maximized to show on MouseUp.
3831         Fixes #79776.
3832
3833         * Form.cs: In OnResize only layout the mdi child's
3834         parent if it actually has a parent. Might not if
3835         the window is closing.
3836
3837
3838 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3839
3840         * MdiClient.cs: Ignore active MDI client for text of parent, if
3841         child has no text set.
3842
3843 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3844
3845         * ToolBar.cs: Fixed ToString to match MS.
3846
3847 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3848
3849         * NumericUpDown: 
3850         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3851         update inner values on set. Fixes #79966.
3852         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3853         - Fix hexadecimal parsing.
3854         
3855         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3856         parent. Fixes #79957
3857
3858 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3859
3860         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3861         the actual size has to be queried, since if height /
3862         width is negative Win32 changes it to 0. 
3863         Fixes #79999 on Windows.
3864         
3865         * XplatUIX11.cs: Set height / width to 0 if negative
3866         in SetWindowPos. Fixes #79999 on Linux.
3867         
3868 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3869
3870         * ThemeWin32Classic.cs: Fix text redenring when button is
3871         pressed.
3872
3873 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3874
3875         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3876         and later navigate by mouse. Fixes #79528.
3877
3878 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3879
3880         * ToolBar.cs: Set default value for TabStop to false in
3881         constructor, it fixes remaining behavior of bug #79863.
3882
3883 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3884
3885         * MdiWindowManager.cs:
3886         * InternalWindowManager.cs:
3887         - Moved a few methods specific to Mdi from 
3888         InternalWindowManager to MdiWindowManager.
3889         Fixes #79996.
3890         
3891 2006-11-21  Chris Toshok  <toshok@ximian.com>
3892
3893         * XplatUIOSX.cs: stub out InvalidateNC.
3894
3895         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3896         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3897
3898         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3899
3900         * XplatUIDriver.cs: add InvalidateNC abstract method.
3901
3902         * XplatUI.cs: add InvalidateNC.
3903
3904 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3905
3906         * ToolBar.cs: Invalidate complete button area when pressed status 
3907         was changed.
3908         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3909         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3910         by 1 when button is pressed.
3911
3912 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3913
3914         * ToolButton.cs: Invalidate middle of DropDown button when
3915         ToolBar theres DropDownArrows.
3916         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3917         fix DropDown drawing operations.
3918
3919 2006-11-20  Chris Toshok  <toshok@ximian.com>
3920
3921         * NativeWindow.cs: fix the formatting of functions ('{' on the
3922         following line), and enable the thread exception dialog.
3923
3924         * Application.cs: remove the duplicate exception catching from
3925         here.
3926
3927 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3928
3929         * Toolbar.cs: Triggers button click event when click on icon
3930         of dropdown ToolBarButton. Fixes #79912.
3931         
3932 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3933
3934         * Theme.cs:
3935         * ThemeWin32Classic.cs:
3936         - Added a property WindowBorderFont to enable themeing
3937           of mdi child windows' Text.
3938           
3939 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3940
3941         * InternalWindowManager.cs:
3942         * Form.cs:
3943         * MdiClient.cs:
3944         * MdiWindowManager.cs: 
3945         - If mdi child is maximized, set mdi parent's
3946           text to "Parent - [Child]". Fixes #79770.
3947         - If there is any maximized mdi child windows, only the active 
3948           window (and any new windows) is maximized, the rest are normal.
3949         - On a WindowState change only save mdi child's window bounds 
3950           if the old window state was normal. Fixes #79774.
3951         - The scroll bars are now calculated on hopefully all
3952           necessary events. Fixed #79771 / #79844->6 / #79906.
3953         - MdiClient.SizeScrollBars() now takes into account docked 
3954           controls in the parent when calculating available space.
3955         - InternalWindowManager now always repaints the entire title
3956           area. Fixes #79844->1/4/5.
3957         - Added RequestNCRecalc on mdi child windowstate changes.
3958           Fixes #79772.
3959
3960 2006-11-20  Mike Kestner  <mkestner@novell.com>
3961
3962         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3963         in the MouseUp handler of the listbox and move the return handling
3964         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3965
3966 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3967
3968         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
3969
3970 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3971
3972         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
3973           working in 1.2.x anymore. So, updated.
3974
3975 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
3976
3977         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
3978         NumberGroupSeparator of current culture instead of assuming en-US.
3979         Fixed bug #79967.
3980
3981 2006-11-17  Mike Kestner  <mkestner@novell.com>
3982
3983         * Control.cs: Add the concept of implicit bounds setting so that
3984         dock/undock round trips preserve explicitly set size/locations.
3985         Fixes #79313.
3986
3987 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
3988
3989         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
3990           can't handle those filters. (Fixes bug #79961)
3991
3992 2006-11-17  Chris Toshok  <toshok@ximian.com>
3993
3994         [ fixes the exit/crashes associated with #79835.  it's clearly
3995         suboptimal though, we need to figure out a better way to solve
3996         this. ]
3997         
3998         * PrintPreviewControl.cs: deal with the new invalid printer
3999         exceptions.
4000
4001         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4002         and return false (so CommonDialog.ShowDialog doesn't actually show
4003         the form.)
4004
4005         * PrintDialog.cs: enable/disable the Ok button depending on
4006         whether or not the printer is valid.
4007
4008         * CommonDialog.cs (ShowDialog): only actually show the form if
4009         RunDialog returns true.
4010
4011 2006-11-17  Jackson Harper  <jackson@ximian.com>
4012
4013         * TextControl.cs: When soft splitting a line, mark it as a soft
4014         split line. Also carry over the current line break to the next
4015         line.
4016
4017 2006-11-17  Chris Toshok  <toshok@ximian.com>
4018
4019         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4020         only want to shift the part of the invalid area that overlaps the
4021         area we're scrolling.  we also don't want to clear the invalid
4022         area unless the invalid area was entirely contained within the
4023         scrolling area.
4024
4025 2006-11-16  Chris Toshok  <toshok@ximian.com>
4026
4027         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4028         also make sure to free the memory returned by XGetWindowProperty
4029         in GetText().
4030
4031         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4032
4033 2006-11-16  Chris Toshok  <toshok@ximian.com>
4034
4035         * XplatUI.cs: add a new super secret way to get at the totally
4036         unsupported X11 backend.
4037
4038 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4039
4040         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4041
4042 2006-11-16  Jackson Harper  <jackson@ximian.com>
4043
4044         * TreeView.cs: Allow more explicit setting of top node position
4045         for scrollbars. Slower algo, but more accurate.
4046         - CollapseAll should maintain the current top node.
4047         * TextBoxBase.cs: When positioning the caret, use the line, pos
4048         method, since the x, y method does not grab the correct tag, and
4049         the caret height never gets set correctly. (Maybe I should just do
4050         away with the caret having its own height, and always use the
4051         carets current tag for height).
4052
4053 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4054
4055         [Fixes 79778, 79923]
4056
4057         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4058         Parent to the FosterParent instead.
4059
4060 2006-11-16  Jackson Harper  <jackson@ximian.com>
4061
4062         * TreeView.cs: Need to recalc the topnode when we expand or
4063         collapse. The scrolling methods can't handle this on their own,
4064         since they use differences between the last scroll position, and
4065         those difference get completely messed up since we are expanding
4066         nodes.  This problem should probably be fixed in the scrolling
4067         methods, so they can figure out exactly where they are, but this
4068         will slow things down a little.
4069         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4070         strings, makes nunit-gui look a lot nicer.
4071
4072 2006-11-16  Chris Toshok  <toshok@ximian.com>
4073
4074         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4075         the broken multithreaded event handling we have in here.  File
4076         this entry under "Why we should move to the new X11 backend".
4077
4078         Any thread can make it into UpdateMessageQueue, which gets events
4079         from the X socket - some of which could belong to hwnds being
4080         managed by a different thread.  We can also have multiple threads
4081         in UpdateMessageQueue at the same time, with each one reading from
4082         the X socket.  This leads to many problems, with the following
4083         solutions:
4084
4085         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4086         EnqueueLocked.
4087
4088         The MotionNotify compression we do can't work across threads
4089         (without locking the entire queue, perhaps) since we call
4090         hwnd.Queue.Peek, so we just punt and don't compress motion events
4091         unless the owning thread is the one which got the X event.
4092
4093         ConfigureNotify is another fun one, since it modifies the hwnd's
4094         bounds and then enqueues the event.  We add a lock to Hwnd which
4095         is held when setting configure_pending to true (and enqueuing the
4096         event).
4097
4098         There is a race wrt the wake socket.  we need to make sure that
4099         only 1 thread is waiting on that socket, or else a thread could
4100         sleep waiting for data that never comes.  It's difficult (but not
4101         impossible) to make happen, because it seems to require something
4102         like the following:
4103
4104             1. Thread 1 polls on wake_receive
4105         
4106             2. poll returns saying there's data to be read on
4107                wake_receive.
4108         
4109             3. Thread 2 polls on wake_receive and immediately returns
4110                saying there's data to be read.
4111
4112             4. Thread 2 reads the wakeup byte from wake_receive
4113
4114             5. Thread 1 attempts to read the wakeup byte from
4115                wake_receive.
4116
4117             6. Thread 2 exits (due to a form closing, perhaps).
4118
4119             7. Thread 1 blocks forever.
4120         
4121         Fun, eh?
4122
4123         Fixing the Expose handling isn't done yet, and the races inherent
4124         in that piece of code are responsible for the drawing mistakes you
4125         see when generating expose events in a MT app (like NPlot).  This
4126         one is the likely to be the hardest to bandaid, and it doesn't
4127         appear to cause anything but drawing problems.  The other issues
4128         caused apps to exit or hang.
4129
4130         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4131         called from a different thread than the one that should be calling
4132         these functions.
4133
4134         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4135
4136 2006-11-15  Chris Toshok  <toshok@ximian.com>
4137
4138         * Application.cs: null out the context's MainForm when we exit
4139         RunLoop.  Fixes a newly checked in unit test as well as the last
4140         ODE from bug #79933.
4141
4142 2006-11-15  Chris Toshok  <toshok@ximian.com>
4143
4144         * Form.cs (set_Owner): allow a null value so we can clear the
4145         form's owner.
4146         (Dispose): set all our owned_form's Owner properties to null, and
4147         clear the owned_forms collection.
4148         (WM_CLOSE): clean up this a little bit.. still not right though.
4149
4150         * ApplicationContext.cs: OnMainFormClosed should only call
4151         ExitThreadCore if the main form isn't recreating.  Fixes unit
4152         test.
4153
4154 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4155
4156         [Fixes 78346]
4157
4158         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4159
4160 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4161
4162         [Fixes 79433]
4163
4164         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4165         keep popup window types from stealing focus from the main form
4166         on Windows.
4167
4168         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4169
4170         * MenuAPI.cs: Set above flag to true.
4171
4172 2006-11-15  Chris Toshok  <toshok@ximian.com>
4173
4174         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4175         the button being released is not in wParam.
4176
4177 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4178
4179         * Form.cs: Add the released button to MouseEventArgs.Button
4180         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4181         on Win32.
4182
4183 2006-11-15  Chris Toshok  <toshok@ximian.com>
4184
4185         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4186         GetText().  untested because it's unused in our implementation.
4187         Control.Text always caches the text, even if
4188         ControlStyles.CacheText is not set.
4189
4190         fixes bug #79939.
4191
4192 2006-11-15  Chris Toshok  <toshok@ximian.com>
4193
4194         [ fixes #79933 ]
4195         
4196         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4197         message.  no hiding, no disposing.
4198
4199         in the WM_CLOSE handler, hide the form if it's modal.
4200
4201 2006-11-15  Chris Toshok  <toshok@ximian.com>
4202
4203         * XplatUIX11.cs: use AddExpose instead of sending a message.
4204         fixes textbox border drawing.
4205
4206 2006-11-15  Chris Toshok  <toshok@ximian.com>
4207
4208         * PropertyGridView.cs: keep from crashing on mouse move/down when
4209         the property grid is empty.
4210
4211 2006-11-14  Jackson Harper  <jackson@ximian.com>
4212
4213         * TextControl.cs: Make PageUp and PageDown more like the MS
4214         versions.
4215         * TextBoxBase.cs: When we set the text property position the
4216         cursor at the beginning of the document.
4217
4218 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4219
4220         * Form.cs: if a mdi child's WindowState has changed
4221         before it's creation, it would display wrong control
4222         buttons.
4223         
4224 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4225
4226         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4227           (Fixes bug #79927)
4228
4229 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4230
4231         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4232         the window gets to paint its borders even if the window is
4233         getting smaller.
4234         
4235         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4236         otherwise the old control buttons would still be painted 
4237         if the window gets bigger.
4238         
4239         * PaintEventArgs.cs: add an internal method so that the clip 
4240         rectangle can be changed.
4241         
4242 2006-11-13  Chris Toshok  <toshok@ximian.com>
4243
4244         [ fixes bug #79745 ]
4245         
4246         * NotifyIcon.cs: lots of cleanup.
4247
4248         * X11Structs.cs: add an enum for XEMBED messages.
4249
4250         * XplatUIX11.cs: reindent one of the giant switch statements, it
4251         was taking up an additional tab stop, and this file is already way
4252         too wide for my laptop's screen.
4253
4254         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4255         we get it, resize the hwnd to the WMNormalHints max_width/height.
4256
4257 2006-11-13  Jackson Harper  <jackson@ximian.com>
4258
4259         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4260         teh simple way.
4261
4262 2006-11-13  Chris Toshok  <toshok@ximian.com>
4263
4264         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4265         #79898.  force a reference to the Region to stick around so the
4266         unmanaged object isn't collected (rendering our handle in the MSG
4267         stale).
4268
4269 2006-11-13  Chris Toshok  <toshok@ximian.com>
4270
4271         * XplatUIX11.cs: fix #79917 for window managers which support
4272
4273         using XStoreName on the raw utf8, and we need to convert to
4274         COMPOUND_TEXT if it's non-latin1.
4275
4276 2006-11-13  Chris Toshok  <toshok@ximian.com>
4277
4278         * Form.cs (set_DialogResult): we need to set closing to false if
4279         we're setting our result to None.  fixes bug #79908.
4280
4281 2006-11-13  Jackson Harper  <jackson@ximian.com>
4282
4283         * TextControl.cs: When formatting text, compute the adjusted tag
4284         lengths correctly, using FindTag for the end tag instead of trying
4285         to figure it out outselves.
4286         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4287         the item, ItemHeight doesn't work, because trees with large
4288         imagelists use those for their height
4289         * TreeView.cs: ActualItemHeight factors in the image height
4290         - compute left edge of checkboxes correctly
4291         - when expanding/collapsing move the bottom down one pixel, so we
4292         aren't moving part of the node
4293
4294 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4295
4296         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4297         stack in PaintEventStart so that it won't get disposed by the gc
4298         before reaching PaintEventEnd.
4299
4300 2006-11-13  Jackson Harper  <jackson@ximian.com>
4301
4302         * TextBoxBase.cs: Don't select the word if we are on a line with
4303         no text.
4304         - We don't need to position the caret on mouse up, since the mouse
4305         move handler should be doing this
4306         - When double clicking a blank line, the caret is advanced to the
4307         next line.
4308
4309 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4310
4311         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4312
4313 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4314
4315         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4316         Fixes part of bug #79910.
4317
4318 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4319
4320         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4321           (bug #79903). Some minor string updates to match ms.
4322
4323 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4324
4325         * FileDialog.cs: Don't add an extension if the filename
4326           already ends with that extension.
4327
4328 2006-11-10  Jackson Harper  <jackson@ximian.com>
4329
4330         * TreeView.cs: Use the currently highlighted node for the
4331         BeforeSelect event.
4332         * TextBoxBase.cs: There is no need to expand selection on
4333         MouseMove.
4334         - CanUndo means 'is there any undo operations', not 'is undo
4335         allowed on this textcontrol. Fixed ClearUndo unit test.
4336
4337 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4338
4339         * Button.cs: only perform click when button is Selectable (so as 
4340         not to activate default buttons when they're disabled)
4341         
4342         * Control.cs: Rewrite of the SelectNextControl and related 
4343         methods. HandleClick now selects next control if the current one
4344         is being disabled.
4345         
4346         * Form.cs: OnActivated selects next active control only if Load 
4347         has already occurred. If Load hasn't run, there's no point in 
4348         selecting here, Load might change the state of controls.
4349         
4350         * FocusTest.cs: Tests marked as working again for these fixes
4351
4352 2006-11-10  Chris Toshok  <toshok@ximian.com>
4353
4354         * XplatUIX11.cs: a couple of fixes.
4355
4356         - use XInternAtoms with almost all the atoms we need to register,
4357         instead of many, many calls to XInternAtom.  should help a bit on
4358         startup time, at the expense of making the code look a little
4359         worse.
4360
4361         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4362         isn't reparented (which seems to be a clue that we're running fon
4363         compiz) and they have an Owner form.  This fixes the tool windows
4364         in paint.net when running under compiz.
4365
4366         - when setting the opacity of a window, support both the case
4367         where the window has been reparented and also when it hasn't been.
4368         Since compiz/beryl doesn't seem to reparent windows, and these are
4369         the only window managers which support translucency, I'm not sure
4370         why we need the hwnd.reparented case at all.. but leave it in.
4371         now we get translucent windows in paint.net under compiz/beryl.
4372
4373 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4374
4375         * FileDialog.cs: Always return the value for FilterIndex that
4376           was set. Internally convert it to values that make sense.
4377
4378 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4379         
4380         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4381
4382 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4383
4384         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4385         signature still using false to make it compatible with MS but the 
4386         initial value is true. Fixes #79855.
4387
4388 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4389
4390         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4391           only available on Linux.
4392
4393 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4394
4395         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4396         reduce number of calls to redraw method during toolbar creation.
4397
4398 2006-11-09  Mike Kestner  <mkestner@novell.com>
4399
4400         * ListView.cs : raise SelectedIndexChanged when an item is selected
4401         programmatically via the Item.Selected property.  Gert's nice 
4402         ListViewSelectedIndexChanged test fixture now runs clean.
4403
4404 2006-11-09  Mike Kestner  <mkestner@novell.com>
4405
4406         * ListView.cs : raise SelectedIndexChanged when a selected item is
4407         removed from the item collection using Remove or RemoveAt.
4408
4409 2006-11-09  Mike Kestner  <mkestner@novell.com>
4410
4411         * ListView.cs : raise SelectedIndexChanged once per selected item
4412         for compat with MS.  Fixes #79849+.
4413
4414 2006-11-09  Chris Toshok  <toshok@ximian.com>
4415
4416         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4417         we need to (if we have any tab pages).  Fixes unit test.
4418
4419 2006-11-09  Chris Toshok  <toshok@ximian.com>
4420
4421         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4422         width is 0, not 3.  Fixes a unit test.
4423
4424 2006-11-09  Mike Kestner  <mkestner@novell.com>
4425
4426         * ListView.cs : use Implicit scrollbars so that focus isn't 
4427         stolen from the listview when they are clicked. Fixes #79850.
4428
4429 2006-11-09  Chris Toshok  <toshok@ximian.com>
4430
4431         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4432         have a root item.  Fixes #79879.
4433
4434 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4435
4436         * FileDialog.cs:
4437           - Fix ToString ()
4438           - An ArgumentException is now thrown if a wrong filter
4439             is applied (matches ms). The previous filter doesn't change
4440             anymore if an exception is thrown.
4441           - Changing the FileName property also affects FileNames
4442         * ColorDialog.cs: The length of the CustomColors array is always
4443           16. It doesn't matter if we use a smaller array or null to update
4444           or change the custom colors property.
4445         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4446           for RootFolder if we get a undefined value.
4447
4448 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4449
4450         * StatusBarPanel.cs: 
4451         - Width is set to MinWidth if Width is smaller than
4452         MinWidth. Fixes #79842.
4453         - MinWidth now always overrides Width (MSDN says MinWidth
4454         is set to Width when AutoSize = None, but they do not 
4455         behave like that).
4456         - Style has now the the correct default value.
4457         
4458 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4459  
4460         * TrackBar.cs: 
4461         - The control is completely invalidated on 
4462         Got/LostFocus to draw the focus rectangle correctly.
4463         - When AutoSize then height is always 45 (width for 
4464         vertical controls).
4465         
4466         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4467         on the mouse when moved and it doesn't move when grabbed
4468         until the mouse moves as well. Also fixed some wrong 
4469         calculations when clicking on the thumb (control thought
4470         click was outside of thumb and didn't grab it).
4471         Fixes some of the issues in #79718.
4472
4473 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4474
4475         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4476
4477 2006-11-08  Chris Toshok  <toshok@ximian.com>
4478
4479         * PropertyGridView.cs: only call ToggleValue if the item is not
4480         readonly.
4481
4482 2006-11-08  Jackson Harper  <jackson@ximian.com>
4483
4484         * TextBoxBase.cs: The RichTextBox and textbox have very different
4485         word selection methods.  Implement the textbox's simple word
4486         selection here, and let the RichTextBox override and provide it's
4487         own.
4488         - Don't do extra selection on mouseup
4489         * RichTextBox.cs: Use the documents word selection algorithm, I
4490         think ideally, this function will be pulled into the
4491         RichTextBox.cs code someday.
4492
4493 2006-11-08  Chris Toshok  <toshok@ximian.com>
4494
4495         * RootGridEntry.cs: new class to represent GridItemType.Root.
4496
4497         * CategoryGridEntry.cs: reformat, and add boilerplate.
4498         
4499         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4500         returns the UI parent anyway, and we need special handling to
4501         implement the GetTarget method in the face of it.  Also, implement
4502         Select().
4503
4504         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4505         a root grid item, and use that instead of PropertyGrid.grid_items.
4506         Also, make use of TypeConverters (and add limitted support for
4507         ICustomTypeDescriptors) when initially populating the grid.
4508         Arrays now show up more or less properly.
4509
4510 2006-11-08  Chris Toshok  <toshok@ximian.com>
4511
4512         * Application.cs: set the modal dialog to non modal after we close
4513         it.  Fixes bug #79866.
4514
4515 2006-11-08  Jackson Harper  <jackson@ximian.com>
4516
4517         * TextControl.cs: When combining lines carry over the line end
4518         style from the end line.
4519         - Invalidate the selected area when setting it, if it is visible.
4520         * TextBoxBase.cs: Only rich text box can do full line selects.
4521         - Make sure to set the cursor position when there is a click,
4522         otherwise two clicks in separate areas could cause a large chunk
4523         to be selected.
4524
4525 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4526
4527         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4528         Fixes #79863.
4529
4530 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4531
4532         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4533         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4534
4535 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4536
4537         * MenuAPI.cs: Ignore right click for menu actions and fixes
4538         menu border when clicked.  Fixes #79846.
4539
4540 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4541
4542         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4543         MouseState after create wParam for message, this fixes mouse button 
4544         equal none in mouse up events.
4545         
4546 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4547
4548         * Control.cs : Focus() now calls Select to set the Container's
4549         Active Control and to give it focus. To avoid infinite recursion
4550         (because ActiveControl also calls Focus at one point), a check 
4551         is made in Focus with the help of a new internal variable
4552         is_focusing.
4553
4554 2006-11-07  Mike Kestner  <mkestner@novell.com>
4555
4556         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4557         if there's a selection.  Fixes #79849.
4558
4559 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4560
4561         * PropertyGrid.cs: Avoid fixed height of help description label.
4562         Fixes part of bug #79829.
4563
4564 2006-11-07  Chris Toshok  <toshok@ximian.com>
4565
4566         * XplatUIX11.cs: fix #79790 again, by using the
4567         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4568
4569 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4570
4571         * ToolBar.cs: Fix left click checking.
4572
4573 2006-11-07  Chris Toshok  <toshok@ximian.com>
4574
4575         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4576
4577 2006-11-07  Chris Toshok  <toshok@ximian.com>
4578
4579         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4580         PropertyManager unit tests.
4581
4582         * PropertyManager.cs: make property_name internal.
4583
4584 2006-11-07  Chris Toshok  <toshok@ximian.com>
4585
4586         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4587         pass a unit test.  Also, don't set image_index to anything in
4588         response to setting the ImageList property.
4589
4590 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4591
4592         * ToolBar.cs: Ignore click events when mouse button is not a
4593         left button, only accepts other button for dropdown menus.  
4594         Fixes #79854.
4595
4596 2006-11-07  Chris Toshok  <toshok@ximian.com>
4597
4598         * DataGrid.cs: make the back and parent row buttons a little less
4599         ugly.
4600
4601 2006-11-07  Jackson Harper  <jackson@ximian.com>
4602
4603         * TextBoxBase.cs: When converting to Text don't put line breaks in
4604         for soft line breaks.
4605         * TextControl.cs: There is an initial "fake" line in the document,
4606         this is now a soft break line, so that an extra line feed doesn't
4607         get added to the end of documents.
4608
4609 2006-11-07  Chris Toshok  <toshok@ximian.com>
4610
4611         [ fix bug #79778 ]
4612         
4613         * CurrencyManager.cs: if the list is readonly, don't bother
4614         checking if IBindingList.AllowNew is true.
4615
4616         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4617         for non-DataRowView datasources..  or rather, make it not crash.
4618         (DataGridPaintRelationRow): make sure we limit the row painting to
4619         the area not covered by the row header, and make our cell width at
4620         least large enough to cover the relation area.  This allows grids
4621         that have relations but no rows to render correctly.
4622         (DataGridPaintRowContents): same type of changes here.
4623         (SetDataSource): move back to always calling
4624         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4625         navigating back through relations.
4626         (HitTest): handle the case where we have no cells but have
4627         relations.  Right now we generate a hit in cell 0 of whatever the
4628         row is, not sure if this is strictly correct, but it works for our
4629         purposes.
4630         
4631         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4632         bother doing anything.
4633
4634 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4635
4636         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4637         early version of StatusStrip.  Not responsible for eaten
4638         application or firstborn children.
4639
4640 2006-11-06  Chris Toshok  <toshok@ximian.com>
4641
4642         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4643         call GetTabRect with a -1 index.  Fixes #79847.
4644
4645 2006-11-06  Jackson Harper  <jackson@ximian.com>
4646
4647         * TreeNodeCollection.cs: Update scrollbars after clearing.
4648
4649 2006-11-06  Chris Toshok  <toshok@ximian.com>
4650
4651         * NumericUpDown.cs: fix the ToString method for some unit test
4652         love.
4653
4654 2006-11-06  Chris Toshok  <toshok@ximian.com>
4655
4656         * PropertyGrid.cs:
4657         - set the initial SelectedGridItem if we can.
4658
4659         - Exclude non-mergable properties only if we're merging > 1
4660         object.  Merging 1 object isn't really merging, obviously.
4661
4662         - Handle PropertySort.NoSort just like Alphabetical, which is
4663         wrong of course, but at least gets things on the screen.
4664         
4665         * PropertyGridView.cs:
4666         - Add method "FindFirstItem" which finds the first property grid
4667         item, so we can select it by default.
4668
4669         - make use of GridEntry.CanResetValue.
4670
4671         - Don't call RedrawBelowItemOnExpansion here anymore, the
4672         individual GridEntry's will do that.
4673
4674         - Remove the ITypeDescriptorContextImpl internal class.
4675         
4676         * GridEntry.cs:
4677         - this class needs to implement ITypeDescriptorContext, as it's
4678         what MS's PropertyDescriptorGridEntry does, which means we can
4679         remove the ITypeDescriptorContextImpl internal class from
4680         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4681
4682         - keep a reference to our PropertyGridView, and move the call to
4683         RedrawBelowItemOnExpansion here from PGV.  This means
4684         programmaticly setting Expanded actually does something visible.
4685
4686         - add a CanResetValue() function which takes into account our
4687         possibly multiple "selected_objects" in the merged case.  Shifting
4688         PropertyGridView to use this method fixes another unreported
4689         crasher found running the test for #79829.
4690
4691         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4692         is updated to reflect this.
4693
4694         * CategoryGridEntry.cs: the ctor takes the PGV now.
4695         
4696 2006-11-06  Jackson Harper  <jackson@ximian.com>
4697
4698         * TextControl.cs: These are 1 based.
4699         * TextBoxBase.cs: When setting the selected text, don't change the
4700         selected text tags, this is done by ReplaceText, just position the
4701         cursor at the end of the new text.
4702
4703 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4704
4705         * ListView.cs: Allow label edit only when, when LabelEdit is
4706           set to true.
4707
4708 2006-11-06  Jackson Harper  <jackson@ximian.com>
4709
4710         * TextControl.cs: If a suitable wrapping position isn't found,
4711         just wrap right in the middle of a word.
4712
4713 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4714
4715         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4716           bug #79820.
4717
4718 2006-11-06  Jackson Harper  <jackson@ximian.com>
4719
4720         * TreeView.cs: Can't use the VisibleCount property when setting
4721         scrollbar heights, because this doesn't take into account whether
4722         or not the horz scrollbar just came visible.
4723
4724 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4725
4726         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4727         activated.  Fixes #79369, #79832.
4728
4729 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4730
4731         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4732           had to remove support for links that point to a directory. FileInfo
4733           returns no usefull information (means, the directory they point to)
4734           for such links. Replaced some empty string ("") with String.Empty.
4735
4736 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4737
4738         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4739         NullReferenceException when attempting to remove node that is not in
4740         collection. Throw NullReferenceException when null is passed to 
4741         Remove. Allow first element of the collection to be removed. Fixes
4742         bug #79831.  In GetEnumerator ().Current return null if positioned 
4743         before the first element of the collection. In GetEnumerator ().Reset,
4744         position before first element of the collection.
4745
4746 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4747
4748         * PropertyGrid.cs: To match MS, remove default title and description
4749         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4750         buttons.
4751
4752 2006-11-04  Chris Toshok  <toshok@ximian.com>
4753
4754         * Theme.cs: add a Clamp method, just for kicks.
4755
4756         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4757
4758 2006-11-04  Chris Toshok  <toshok@ximian.com>
4759
4760         * Form.cs: if the form isn't visible, Close() does nothing.
4761
4762 2006-11-03  Chris Toshok  <toshok@ximian.com>
4763
4764         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4765         Hide it.
4766         (WndProc): don't Dispose after handling the WM_CLOSE message.
4767
4768         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4769         them as such, instead of using casts from Control to Form.  Also,
4770         don't Dispose of the modal dialog when we fall out of the loop -
4771         Close() it instead.
4772
4773         fixes bug #79813.
4774
4775 2006-11-03  Chris Toshok  <toshok@ximian.com>
4776
4777         * Control.cs (Dispose): only go through the dispose thing if we're
4778         @disposing, and we haven't already been disposed.  Fixes bug
4779         #79814.
4780
4781         * Form.cs: no reason to call "base.Dispose()" here instead of
4782         "Dispose()".
4783
4784 2006-11-03  Mike Kestner  <mkestner@novell.com>
4785
4786         * ComboBox.cs : use ToString instead of casts in AddItem for
4787         sorting functionality.  Fixes #79812.
4788
4789 2006-11-03  Chris Toshok  <toshok@ximian.com>
4790
4791         * Application.cs: pave the way for actually using the thread
4792         exception dialog.  it's ifdefed out at the moment.
4793
4794 2006-11-03  Chris Toshok  <toshok@ximian.com>
4795
4796         * ThreadExceptionDialog.cs: until we get a better layout, actually
4797         hide the details textbox and label when we shouldn't see them.
4798
4799 2006-11-03  Jackson Harper  <jackson@ximian.com>
4800
4801         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4802         multiline textboxes anymore.  This method also determines the
4803         width/height of a textboxes canvas area.
4804         - Sorta a revert of the last patch.  For multiline just position
4805         the controls, then bail.  This way the scrollbar width won't be
4806         altered.
4807
4808 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4809
4810         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4811         it dont need.  Fixes #79537.
4812
4813 2006-11-02  Jackson Harper  <jackson@ximian.com>
4814
4815         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4816         send the status after firing the DndOver event.
4817
4818 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4819
4820         * TrackBar.cs: Now orientation only switches height / width if
4821         the control's handle is created (Win32 does it like this). Also 
4822         fixed a typo in ToString() for a test to pass, changed the 
4823         exception thrown in set_LargeChange and set_SmallChange to 
4824         match Win32 behaviour, and added TrackBar tests to the unit 
4825         tests.
4826
4827 2006-11-02  Chris Toshok  <toshok@ximian.com>
4828
4829         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4830         not _NET_WM_STATE_NO_TASKBAR.
4831
4832 2006-11-02  Jackson Harper  <jackson@ximian.com>
4833
4834         * TextControl.cs: Increment count by one, since in the update view
4835         count - 1 is used.
4836
4837 2006-11-02  Jackson Harper  <jackson@ximian.com>
4838
4839         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4840         the mouse is in the client rectangle (duh).
4841
4842 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4843         
4844         * TrackBar.cs: Fixed trackbar jumping around when clicking
4845         on it - the trackbar was not detecting correctly at which
4846         side of the thumb the click was done. (fixes #79718)
4847
4848 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4849
4850         * ListBox.cs: scroll visible area when change SelectedIndex to
4851         a non visible area.  Fixes #79481.
4852
4853 2006-11-01  Jackson Harper  <jackson@ximian.com>
4854
4855         * TextControl.cs: When replacing the selection move the selection
4856         start/end/anchor to the end of the new text.
4857
4858 2006-11-01  Jackson Harper  <jackson@ximian.com>
4859
4860         * XplatUIWin32.cs: When setting the parent change the controls
4861         visibility to it's visibility flag, not to it's old parents
4862         visibility (.Visible walks the parent chain).
4863
4864 2006-11-01  Chris Toshok  <toshok@ximian.com>
4865
4866         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4867         XSetTransientForHint fix breaks paint .net's tool windows.  more
4868         work needed for that one.
4869
4870 2006-11-01  Chris Toshok  <toshok@ximian.com>
4871
4872         * ScrollBar.cs: throw ArgumentException instead of Exception in
4873         LargeChange/SmallChange setters.  fixes unit tests.
4874
4875 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4876
4877         * ContainerControl.cs: reverted rev.67183 (which was itself
4878         a reversion of rev.66853... eh).
4879         
4880         * Control.cs: Fixes Reflector hang by changing Focus() call
4881         to what it was before rev.66643 (calling Select() here sets 
4882         ActiveControl, which in some situations calls back Focus and 
4883         eventually does a stack overflow). Temp fix.    
4884         Changes to GetNextControl() to not look for children to select when
4885         parent cannot be selectable (so it looks for siblings instead)  
4886         
4887 2006-10-31  Mike Kestner  <mkestner@novell.com>
4888
4889         * CheckedListBox.cs : off by one error in returned index from
4890         ObjectCollection.Add.  Fixes #79758.
4891
4892 2006-10-31  Chris Toshok  <toshok@ximian.com>
4893
4894         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4895         calls for the textbox/spinner, to keep from recursing to the point
4896         where we crash.  Fixes #79760.
4897
4898 2006-10-31  Chris Toshok  <toshok@ximian.com>
4899
4900         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4901         null/"" value, just return.  matches ms's behavior and fixes some
4902         failing tests.
4903
4904 2006-10-31  Chris Toshok  <toshok@ximian.com>
4905
4906         * Control.cs (set_Capture): make a logic a little easier to
4907         follow.
4908
4909         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4910         if it's being destroyed.  A necessary fix surely, but a bandaid
4911         also, to fix the stuck capture problem in bug #78413.
4912
4913 2006-10-31  Chris Toshok  <toshok@ximian.com>
4914
4915         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4916         convention of clearing hwnd.ClientRect when we set the
4917         width/height (so it'll be recalculated by Hwnd).
4918
4919 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4920
4921         * ContainerControl.cs: reversed Contains check from
4922         ActiveControl due to hanging problems. This fix
4923         partly regresses #79667 (button does not have
4924         initial focus), so this might be a symptom for 
4925         a larger parenting problem (set_ActiveControl
4926         is being called but the child control does
4927         not have the parent set yet?)   
4928         
4929 2006-10-31  Mike Kestner  <mkestner@novell.com>
4930
4931         * MenuAPI.cs : fix keynav when menu is click activated.
4932
4933 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4934
4935         * ToolStrip*: Version 0.2.
4936
4937         * MenuStrip.cs: Version 0.1.
4938
4939         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4940
4941 2006-10-30  Chris Toshok  <toshok@ximian.com>
4942
4943         [ fixes the oversized notify icon issue in bug #79745 ]
4944         
4945         * NotifyIcon.cs: scale the icon down to the size we're given by
4946         the XplatUI layer (this would be faster if we did it once instead
4947         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4948         since it's never invoked.
4949
4950         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4951         pixels high by default, so let's hardcode our systray icon to that
4952         size.  The SYSTEM_TRAY protocol should really have a way for
4953         client apps to query for the correct icon size.. but oh well.  A
4954         couple of patches to deal with the screwy client_window ==
4955         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4956         instance, and also make sure we don't XSelectInput twice).
4957
4958 2006-10-30  Chris Toshok  <toshok@ximian.com>
4959
4960         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4961         recreating forms.  Control recreation is the bane of my existence.
4962         Fix it in a way that keeps everyone happy.
4963
4964 2006-10-30  Chris Toshok  <toshok@ximian.com>
4965
4966         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
4967         just non-CHILD ones.  otherwise sometimes scrollbars end up with
4968         client_windows not being resized to the proper size (ReportBuilder
4969         shows this extremely well).
4970
4971 2006-10-30  Chris Toshok  <toshok@ximian.com>
4972
4973         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
4974         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
4975         showing up in the gnome taskbar.  Fixes bug #79790.
4976
4977 2006-10-30  Chris Toshok  <toshok@ximian.com>
4978
4979         * ApplicationContext.cs: guard against a NRE.
4980
4981         * Application.cs: null out the old MainForm for the context, so we
4982         don't try to use it again once it's disposed.  Fixes bug #79783.
4983
4984 2006-10-30  Chris Toshok  <toshok@ximian.com>
4985
4986         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
4987         BindingContext, set the data source directly, otherwise do the
4988         lazy approach - the actual ListManager will be created when we get
4989         a BindingContext. Fixes bug #79700.
4990
4991 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4992
4993         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
4994           XplatUIX11.cs: Remove old 2 parameter SetVisible.
4995
4996         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
4997
4998 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
4999
5000         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5001         of SetVisible that allows a window to be shown, but not activated.
5002         This is needed on Windows for MenuStrip, and can probably be used
5003         with MainMenu and ComboBox to fix the focus stealing issues on
5004         Windows.
5005
5006         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5007
5008 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5009
5010         * PictureBox.cs: Fix the output of the ToString method.
5011
5012 2006-10-29  Chris Toshok  <toshok@ximian.com>
5013
5014         * Control.cs (get_TopLevelControl): fix bug #79781.
5015
5016 2006-10-29  Chris Toshok  <toshok@ximian.com>
5017
5018         * ListControl.cs (set_DataSource): throw Exception here, not
5019         ArgumentException, to match MS behavior.
5020
5021 2006-10-29  Chris Toshok  <toshok@ximian.com>
5022
5023         * Form.cs: remove the try-catch's around calls to GetWindowState.
5024         We can just check the return value.
5025
5026         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5027         Instead return -1.
5028
5029         * XplatUI.cs: Add note about additional return value for
5030         GetWindowState.
5031
5032 2006-10-29  Chris Toshok  <toshok@ximian.com>
5033
5034         * Control.cs (CreateHandle): when we create our handle, we also
5035         create the handles of our child controls.  Fixes one of the
5036         Control unit tests (CH11).
5037
5038 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5039
5040         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5041
5042 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5043
5044         * ThemeClearlooks.cs: A little speedup.
5045
5046 2006-10-27  Chris Toshok  <toshok@ximian.com>
5047
5048         * Control.cs: implement Control.FromChildHandle in a way that
5049         matches the docs (and fixes the failed test.)
5050
5051 2006-10-27  Chris Toshok  <toshok@ximian.com>
5052
5053         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5054         comments).
5055
5056         * DataGrid.cs: implement ResetForeColor such that the tests
5057         succeed.
5058         
5059 2006-10-27  Chris Toshok  <toshok@ximian.com>
5060
5061         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5062         being set to "".  Fixes bug #79759.
5063
5064 2006-10-27  Jackson Harper  <jackson@ximian.com>
5065
5066         * TextControl.cs: We need to clear the entire selection area when
5067         setting the start, otherwise multiline selections are still
5068         visible.
5069
5070 2006-10-26  Chris Toshok  <toshok@ximian.com>
5071
5072         * PropertyGridView.cs: 
5073
5074         - ifdef all the code specific to the double
5075         buffer case, and provide some alternatives in the non-doublebuffer
5076         code, which makes heavy use of XplatUI.ScrollWindow to move things
5077         around without having to invalidate (and cause flicker).  There
5078         are still some drawing problems in the non-doublebuffered case, so
5079         DOUBLEBUFFER is defined by default.
5080
5081         - Fix the way dropdowns are handled.  now we explicitly watch for
5082         the events which might cause the dropdown to close, and break out
5083         of the nested event loop there.  This gets rid of all Capture
5084         code, at the expense of the Msg special casing.  Seems to work,
5085         though, and fixes bug #79743.
5086
5087 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5088         * Control.cs: SetIsRecreating now recreates implicitly added
5089         child controls as well. Finally fixes #79629. The flag passed to 
5090         SetIsRecreating has also been removed since it wasn't used.
5091         
5092 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5093
5094         * PageSetupDialog.cs: Clean some code, fix some bits, 
5095         add some checks, and add a printer sub-dialog.
5096
5097 2006-10-26  Chris Toshok  <toshok@ximian.com>
5098
5099         * PropertyGrid.cs: make set_SelectedObject call
5100         set_SelectedObjects, and move the duplicate logic to the
5101         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5102
5103         * PropertyGridView.cs: hide the textbox when we get a
5104         SelectedObjectsChanged event.
5105
5106         Fixes bug #79748.
5107
5108 2006-10-26  Chris Toshok  <toshok@ximian.com>
5109
5110         * PropertyGridView.cs: deal with the type converter not supporting
5111         GetStandardValues() or GetStandardValues() returning null, which
5112         is does in the default case.  Fixes #79742.
5113
5114 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5115
5116         * CheckedListBox.cs: nunit no longer crashes when selecting 
5117         Project/Edit menu option
5118         
5119 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5120
5121         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5122         is no menu selected. fixes #79739
5123
5124 2006-10-25  Chris Toshok  <toshok@ximian.com>
5125
5126         * PropertyGridView.cs: factor out the splitter invalidation code
5127         into the SplitterPercent setter, and for kicks implement the
5128         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5129         amount in either direction.
5130
5131 2006-10-25  Chris Toshok  <toshok@ximian.com>
5132
5133         * PropertyGridView.cs: do some cleanup of the brush used to draw
5134         text - read only fields should be grayed out.  not sure how to do
5135         this with the textbox, though.  but the textbox's should also be
5136         readonly now at least.  Also, hide/show the textbox when resizing
5137         the control.
5138         
5139         * CursorConverter.cs: use System.Reflection when getting the
5140         properties of Cursors, as TypeDescriptor.GetProperties isn't
5141         returning static properties.
5142
5143 2006-10-25  Chris Toshok  <toshok@ximian.com>
5144
5145         * PropertyGridView.cs: factor out the up/down handling, and reuse
5146         it for page up/down.  also add End/Home support.
5147
5148 2006-10-25  Chris Toshok  <toshok@ximian.com>
5149
5150         * PropertyGridView.cs:
5151
5152         - ensure the selected grid item is visible in the scrolled area,
5153         fixes bug #79572.
5154
5155         - fix Keys.Down handling when you're on the last item in the
5156         propertygrid.
5157
5158 2006-10-25  Mike Kestner  <mkestner@novell.com>
5159
5160         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5161         clicks too.  Fixes #79725.
5162
5163 2006-10-24  Chris Toshok  <toshok@ximian.com>
5164
5165         * PropertyGrid.cs: use property.Converter instead of
5166         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5167         TypeConverters declared on the property as well as on the
5168         PropertyType.  Fixes bug #79678.
5169
5170 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5171
5172         * MimeIcon.cs, Mime.cs:
5173           Fallback to the default platform handler if no shared mime info
5174           stuff exists (fixes #79693).
5175
5176 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5177         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5178         from previous fix (duh).
5179
5180 2006-10-20  Chris Toshok  <toshok@ximian.com>
5181
5182         * PropertyGridView.cs: the dropdown should be MIN(number of items
5183         in list, 15).  Fixes #79551.
5184
5185 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5186         Fixes #79384, #79394, #79652, #79667
5187         * Application.cs: 
5188         
5189         - Modal windows are now destroyed in the proper order for windows
5190         
5191         * ContainerControl.cs:
5192         
5193         - ActiveControl setter has more conditions on when to return:
5194                 - if we're reselecting the active control, but it actually
5195                 didn't have focus (window hidden or some such), it runs
5196                 - if the active control being selected doesn't actually 
5197                 exist in the container, it returns
5198         
5199         * Form.cs
5200         
5201         - The ShowDialog now gets the current form as the owner when
5202         invoking without parameters, and correctly activates the owner 
5203         when returning
5204         
5205         * MessageBox.cs
5206         
5207         - MessageBox now catches the Escape key to exit
5208
5209 2006-10-20  Chris Toshok  <toshok@ximian.com>
5210
5211         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5212         most of bug #79676):
5213
5214         - you can navigate around the property grid with the arrow keys.
5215
5216         - the dropdown is sized properly when the pg has a vertical
5217         scrollbar.
5218
5219         - fix the indentation for subentries, and properly select the
5220         entire label rect.
5221
5222         - fix the gray bar's drawing (only draw it to the last element,
5223         not for the height of the control.  Also make sure we draw that
5224         last horizontal grid line.
5225
5226         - use the same mechanism the datagrid uses wrt the editing textbox
5227         when scrolling/resizing/etc.  Namely, we hide it first, do the
5228         operation, then show it again (if it's still visible).
5229         
5230         - aggressively remove a lot of unnecessary refreshes (and also
5231         calls to Invalidate(). call more limited variants, and only redraw
5232         what we need.)
5233         
5234         * PropertyGrid.cs:
5235
5236         - when we're populating the merged collection, fill in the UI
5237         parent with either the passed in item, or the category item we
5238         create.
5239
5240         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5241
5242         * GridItem.cs: drop some fully qualified names.
5243         
5244         * GridEntry.cs: add a "UIParent", which is basically the parent
5245         treenode.
5246
5247         * GridItemCollection.cs: add an IndexOf method.
5248
5249 2006-10-20  Mike Kestner  <mkestner@novell.com>
5250
5251         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5252         a working win32 NC invalidation mechanism, we can't invalidate
5253         menus.  [Fixes #79705]
5254
5255 2006-10-20  Mike Kestner  <mkestner@novell.com>
5256
5257         * ListBox.cs : don't update the VScrollbar if the list is empty,
5258         just hide it.  [Fixes #79692]
5259
5260 2006-10-20  Jackson Harper  <jackson@ximian.com>
5261
5262         * RichTextBox.cs: Handle some special chars better, and don't skip
5263         the entire group when we encounter a special char that we don't
5264         handle correctly.
5265
5266 2006-10-18  Chris Toshok  <toshok@ximian.com>
5267
5268         * PropertyGridView.cs: address a number of issues from bug #79676,
5269         mostly of the cosmetic variety.
5270
5271         - The highlight rectangle for indented items not extends all the
5272         way to the left.
5273
5274         - Indented items aren't indented so much.
5275
5276         - the dropdown is properly sized width-wise if the pg has a
5277         vertical scrollbar.
5278
5279 2006-10-18  Chris Toshok  <toshok@ximian.com>
5280
5281         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5282         systray stuff is rather convoluted to begin with.
5283
5284         systray icons are a single window for some reason (that I haven't
5285         figured out yet), and for them, client_window == whole_window.
5286         Given the way the tests are structured elsewhere to determine
5287         which paints are pending (client vs. nc), that situation will
5288         always yield PAINT, not NCPAINT.  So, if we have a pending
5289         nc_expose and no pending expose, remove the hwnd from the paint
5290         queue, and also set nc_expose_pending to false, to keep us from
5291         blocking further expose's adding the hwnd to the paint queue.
5292
5293         phew.  like i said, a rather convoluted change.  Fixes the
5294         notifyicon repaint issues in bug #79645.
5295
5296 2006-10-18  Chris Toshok  <toshok@ximian.com>
5297
5298         * Form.cs: when getting the backcolor of the form, don't get
5299         base.BackColor, as this allows parents to influence the background
5300         color.  This breaks mdi forms.  Instead, if the background_color
5301         is empty, return the default.
5302
5303 2006-10-18  Chris Toshok  <toshok@ximian.com>
5304
5305         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5306         to being private instead of internal static.
5307
5308         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5309         crap, it wasn't working for more deeply nested controls anyway,
5310         and we already have the is_recreating flag - use that instead.
5311         Before calling DestroyHandle in RecreateHandle, recurse through
5312         the control tree setting it to true.  this returns the recreate
5313         code to much of its original simplicity, while now guaranteeing we
5314         actually recreate everything we're supposed to.  This change gets
5315         fyireporting actually showing mdi children.
5316
5317 2006-10-17  Chris Toshok  <toshok@ximian.com>
5318
5319         * Form.cs: remove some debug spew, and collapse some duplicate
5320         code at the end of SetClientSizeCore.
5321
5322         * XplatUIX11.cs: 
5323         - add some more debug spew here too wrt Destroy handling.
5324         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5325         in Control's handling of WM_DESTROY.
5326         - Remove the handling of zombie window DestroyNotifies from the
5327         event loop - we don't need it.  Now the only DestroyNotifies we
5328         actually handle are ones generated by X.
5329         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5330         match gtk's (functioning) handling of this. This keep metacity
5331         from leaving droppings in the form of wm borders with no window
5332         contents all over the place.
5333
5334         * Control.cs:
5335         - add a bunch of debug spew wrt control recreation.
5336         - fix a bug where we weren't tracking Visible properly on
5337         recreated hwnds.
5338         - fixed the WM_PAINT double buffer handling to support re-entrant
5339         calls (yes, i know it's gross, but it's happening to us).
5340
5341 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5342         * ThemeWin32Classic.cs: changed drawing of selected days
5343         to make them look better.
5344
5345 2006-10-16  Chris Toshok  <toshok@ximian.com>
5346
5347         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5348         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5349
5350         * XplatUIX11.cs: move away from using hwnd.client_dc and
5351         hwnd.non_client_dc and on to a stack of dc's (and in window's
5352         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5353         without puking or not disposing of Graphics objects.
5354
5355         * XplatUIOSX.cs: same.
5356
5357         * XplatUIWin32.cs: same.
5358
5359 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5360
5361         * FileDialog.cs: Don't call on_directory_changed inside
5362           OnSelectedIndexChanged (it changes the SelectedIndex too).
5363           Instead move it to OnSelectionChangeCommitted.
5364
5365 2006-10-13  Chris Toshok  <toshok@ximian.com>
5366
5367         * XplatUIX11.cs: more Destroy work.  the current code does the
5368         following things, in order:
5369
5370         1. Enumerates all handles of all controls at or below the one
5371         being destroyed, in pre-order.  As it is doing this, it marks the
5372         handles as zombie and clears all references to them.
5373         
5374         2. calls XDestroyWindow on the window passed in.
5375
5376         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5377         list.
5378
5379 2006-10-13  Chris Toshok  <toshok@ximian.com>
5380
5381         * XplatUIX11.cs: set hwnd.zombie to true before calling
5382         SendMessage (WM_DESTROY).  this keeps us from marking the new
5383         window a zombie, and also keeps us from calling sendmessage at
5384         all.
5385
5386 2006-10-13  Jackson Harper  <jackson@ximian.com>
5387
5388         * TextControl.cs: Do not show the caret and selection at the same
5389         time.  Reduces ugliness by 35%.
5390
5391 2006-10-13  Chris Toshok  <toshok@ximian.com>
5392
5393         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5394         zombie after we do the recursive call, so we actually do call
5395         SendMessage on the children controls.
5396         (GetMessage): if we find a pending paint event for a zombie hwnd,
5397         remove the hwnd from the paint queue, or else it will always be
5398         there (and we'll effectively loop infinitely)
5399
5400 2006-10-13  Mike Kestner  <mkestner@novell.com>
5401
5402         * MenuItem.cs : add Selected format under keynav too.
5403         Fixes #79528.
5404
5405 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5406
5407         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5408         implementation and that of MS.
5409
5410 2006-10-13  Chris Toshok  <toshok@ximian.com>
5411
5412         * Control.cs (OnInvalidated) only futz with the invalid_region if
5413         the control is double buffered.  this fixes the apparent hang in
5414         the ListView unit tests.  Someone needs to make the
5415         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5416
5417 2006-10-13  Chris Toshok  <toshok@ximian.com>
5418
5419         * PropertyGridView.cs:
5420
5421         - do a little refactoring so that only one place calls
5422         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5423         else call that.  Also make it Refresh, since there are redraw bugs
5424         otherwise (we should take a look at that...)
5425
5426         - do a little more refactoring work to share the body of code
5427         involved with the drop down.  it was duplicated in the code
5428         dealing with the listbox handling and in the code dealing with the
5429         UITypeEditors.
5430
5431         - add a Capture to the dropdown form's control once it's
5432         displayed, and add a MouseDown handler that checks to make sure
5433         the position is inside the control.  If it's not, close the
5434         dropdown.  This fixes #78190.
5435
5436         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5437         if the value is different than the initial value.
5438         
5439 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5440
5441         * Control.cs: see #78650
5442         - Fixed GetNextControl for several cases:
5443                 - Changed FindFlatForward to return 
5444                 correct sibling control when more than one
5445                 control has same TabIndex as the currently 
5446                 focused one.
5447                 - Changed FindFlatBackward to loop children
5448                 from last to first and apply same logic as in
5449                 FindFlatForward
5450                 - Changed FindControlForward to search for
5451                 children when control is not a container
5452                 but has children, or search for siblings if
5453                 control is a container...
5454                 - Changed FindControlBackward   to continue
5455                 searching for child controls when hitting 
5456                 Panel-like parents
5457                 
5458         - Fixed Focus method to update ActiveControl
5459         (FocusTest.FocusSetsActive failure)
5460         
5461         * TabControl.cs:
5462         - Focus rectangle now refreshes when gaining
5463         or losing focus
5464         - Removed grab for Tab key on IsInputKey that 
5465         was keeping tab navigation from working (#78650)
5466
5467 2006-10-13  Chris Toshok  <toshok@ximian.com>
5468
5469         * PropertyGridView.cs:
5470         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5471         SelectedObjects.
5472
5473         - Deal with GridItem.Value == null a few places.
5474
5475         * PropertyGrid.cs: 
5476         - replace the PopulateGridItemCollection with a pair of methods
5477         which compute the intersection of all the properties in the
5478         SelectedObjects array.  Fixes #79615.
5479
5480         - Throw ArgumentException from set_SelectedObjects if there's a
5481         null in the array.
5482
5483         - Add GetTarget method which can be used to traverse up the
5484         GridItem.Parent chain.  It depends on the assumption that
5485         selected_objects for different GridEntries are always in the same
5486         order (a safe assumption).  Use this method and loop over all the
5487         selected objects in the entry when calling RemoveValueChanged and
5488         AddValueChanged.
5489         
5490         * GridEntry.cs: Make this handle multiple selected objects.
5491         .Value returns null if not all the selected objects share the same
5492         value.
5493
5494 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5495         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5496           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5497           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5498           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5499           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5500         add additional functionality.
5501
5502 2006-10-12  Mike Kestner  <mkestner@novell.com>
5503
5504         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5505         * HelpProvider.cs : new ToolTipWindow ctor sig.
5506         * ToolTip.cs : remove ToolTip param from Window sig since it is
5507         not used.
5508         * ToolBar.cs : add tooltip support.  Fixes #79565.
5509
5510 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5511
5512         * ComboBox.cs: move the events in set_SelectedIndex to 
5513         after the call to HighlightIndex in order to avoid 
5514         possible recursion and subsequent problems with the call
5515         to HighlightIndex and include a range check in 
5516         set_HighlightIndex. Fixes #79588
5517         
5518 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5519
5520         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5521         to ui thread's settings instead of sunday. 
5522         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5523
5524 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5525
5526         * DateTimePicker.cs
5527         * MonthCalendar.cs
5528         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5529         and implement missing functionality (selecting different parts 
5530         of the date and edit them individually with the keyboard).
5531         
5532 2006-10-11  Chris Toshok  <toshok@ximian.com>
5533
5534         * Control.cs (OnInvalidated): fix NRE relating to last change.
5535
5536 2006-10-11  Chris Toshok  <toshok@ximian.com>
5537
5538         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5539         atoms in _NET_WM_STATE here if the window is maximized.  We need
5540         to do this because we're *replacing* the existing _NET_WM_STATE
5541         property, so those atoms will be lost otherwise, and any further
5542         call to GetWindowState will return Normal for a window which is
5543         actually maximized.  Fixes #79338.
5544
5545 2006-10-11  Jackson Harper  <jackson@ximian.com>
5546
5547         * TextControl.cs: Special case for setting selection end to
5548         selection start, we basically kill the anchor.
5549         - some todo comments.
5550
5551 2006-10-11  Chris Toshok  <toshok@ximian.com>
5552
5553         * Control.cs: switch to using an "invalid_region" to track which
5554         parts of the image buffer need updating.  This is more code than
5555         the simple fix from r66532.  That version just attempted to always
5556         fill the entire buffer on redraw, which turns out to be
5557         inefficient when invalidating small rectangles.  This version
5558         simply adds the invalid rectangle to the invalid region.  When we
5559         get any WM_PAINT message we see if it can be filled using the
5560         image buffer, and if it can't (if the paint event's clip rectangle
5561         is visible in the invalid region) we first fill the image buffer.
5562         So, the image buffer is still a cache, we just fill it lazily.
5563
5564         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5565         need it any longer.
5566
5567 2006-10-11  Chris Toshok  <toshok@ximian.com>
5568
5569         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5570         well as size after calling XMoveResizeWindow.  This keeps us from
5571         ignoring future SetWindowPos calls.  Fixes the disappearing
5572         DateTimePicker in the ToolBarDockExample from bug #72499.
5573
5574 2006-10-11  Chris Toshok  <toshok@ximian.com>
5575
5576         * TextBoxBase.cs: reorder things a bit when it comes to
5577         resizing-causing-recalculation.  we were recalculating the
5578         document when our position was changed, which shouldn't happen.
5579         We only care about size changes.  Clear up some more redundant
5580         recalculation calls while I'm at it.  This makes the toolbar dock
5581         example snappy when you're just dragging toolbars around (since it
5582         causes a relayout whenever you move one.)
5583
5584 2006-10-11  Chris Toshok  <toshok@ximian.com>
5585
5586         * ToolBarButton.cs (get_Rectangle): this only returns
5587         Rectangle.Empty if Visible == false, or Parent == null.
5588         Parent.Visible doesn't matter.
5589
5590 2006-10-10  Chris Toshok  <toshok@ximian.com>
5591
5592         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5593         by .net 1.1, so switch to an internal method instead.
5594
5595 2006-10-10  Chris Toshok  <toshok@ximian.com>
5596
5597         * Control.cs (WM_PAINT): when a control is double buffered we draw
5598         initially to the ImageBuffer and then copy from there.  But when a
5599         parent control which has child controls is double buffered, the
5600         initial drawing doesn't encompass the entire ClientRectangle of
5601         the parent control, so we end up with uninitialized bits (this is
5602         easily seen by dragging the top toolbar in
5603         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5604         manually set the ClipRectangle of the paint_event (only the one we
5605         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5606         of the nastiness in bug #72499.
5607
5608         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5609         which we use in Control.cs's WM_PAINT handling.
5610
5611 2006-10-10  Jackson Harper  <jackson@ximian.com>
5612
5613         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5614
5615 2006-10-10  Chris Toshok  <toshok@ximian.com>
5616
5617         * Cursor.cs: Apply a slightly different patch to the one suggested
5618         in #79609.
5619
5620 2006-10-10  Jackson Harper  <jackson@ximian.com>
5621
5622         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5623         not the parent form.
5624         * TextControl.cs: use difference in old line count vs new count to
5625         calculate how many lines were added, this takes into account soft
5626         line breaks properly.
5627
5628 2006-10-10  Chris Toshok  <toshok@ximian.com>
5629
5630         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5631         rectangle located at 0,0 and the size of the text.  Use
5632         ClientRectangle instead.  This fixes rendering of non-left aligned
5633         link labels.
5634
5635 2006-10-10  Jackson Harper  <jackson@ximian.com>
5636
5637         * TextBoxBase.cs: When we set the selection start position the
5638         caret.
5639         * TextControl.cs: Need to update the caret when we decrement it to
5640         zero.
5641         - Make sure that the selection_visible flag gets reset to false if
5642         the selection isn't visible.  Before this you could get it set to
5643         visible by changing the selection start, then changing the end to
5644         equal the start.
5645
5646 2006-10-09  Jackson Harper  <jackson@ximian.com>
5647
5648         * TreeView.cs: Don't update scrollbars when we aren't visible.
5649         * TreeNodeCollection.cs: Only need to update scrollbars if being
5650         added to an expanded visible node or the root node.
5651
5652 2006-10-09  Chris Toshok  <toshok@ximian.com>
5653
5654         * XplatUIX11.cs (SendMessage): fix NRE.
5655
5656 2006-10-09  Jackson Harper  <jackson@ximian.com>
5657
5658         * TextBoxBase.cs: Implement horizontal autoscrolling.
5659         * TextControl.cs: Add a movement types that allows moving forward
5660         and backwards without wrapping.
5661
5662 2006-10-09  Mike Kestner  <mkestner@novell.com>
5663
5664         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5665         with focus "expansion" of labels.  Fixes #79532 and then some.
5666         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5667         when wrapping.
5668
5669 2006-10-09  Jackson Harper  <jackson@ximian.com>
5670
5671         * TextBoxBase.cs: Set the default max values to MaxValue since
5672         we use the scrollbar for autoscrolling and the default value is
5673         100.  If we don't do this the caret won't keep up with typing
5674         after about 18 characters.
5675         * TextControl.cs: Make sure the selection is offset by the
5676         viewport x.  This fixes selection when using auto scrolling.
5677
5678 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5679         
5680         * Form.cs: The active control should be selected after the 
5681         OnLoad so that any child control initialization that affects
5682         the selection is done. Fixes #79406
5683
5684 2006-10-06  Chris Toshok  <toshok@ximian.com>
5685
5686         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5687         to have no evil effects.
5688
5689         - Stop selecting StructureNotifyMask on non-toplevel windows.
5690
5691           The only way children should be resized is by using the SWF api,
5692           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5693           Toplevel windows can be interacted with via the window manager,
5694           and so we keep the input mask there.
5695
5696           The other event StructureNotifyMask gives us (that we care
5697           about) is DestroyNotify.  The code is already structured such
5698           that it assumes we won't be getting a DestroyNotify event for
5699           the window we pass to XDestroyWindow (which is what
5700           StructureNotifyMask is supposed to guarantee.)  So, that code
5701           shouldn't be affected by this either.
5702
5703         - Stop selecting VisibilityChangeMask altogether.
5704
5705           We weren't doing anything with the resulting events anyway.
5706         
5707         This vastly reduces the number of X requests and events we see
5708         when resizing/laying out a large ui.
5709
5710 2006-10-06  Chris Toshok  <toshok@ximian.com>
5711
5712         * ScrollableControl.cs (DisplayRectangle): we need to take into
5713         account the DockPadding regardless of whether or not auto_scroll
5714         == true.  rework this slightly to this effect, and fix bug #79606,
5715         and part of #72499 (you can now see the drag handles and drag
5716         toolbars around).
5717
5718 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5719
5720         * ListViewItem.cs: Collections of selected and checked items are now
5721         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5722         we mark the collection "dirty".
5723         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5724         to only clear SelectedItems when a new item is selected and MultiSelect
5725         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5726         event of ListViewItemCollection, and mark its list dirty whenever
5727         that event is fire. This allows us to return selected/checked items 
5728         in the same order as they are in the Items collection. This matches
5729         the MS behavior.
5730
5731 2006-10-06  Chris Toshok  <toshok@ximian.com>
5732
5733         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5734         right mouse clicks.  Fixes bug #79593.
5735
5736 2006-10-06  Chris Toshok  <toshok@ximian.com>
5737
5738         * Splitter.cs: doh, fix splitters that don't want to cancel the
5739         movement when you drag them.  Also, impose the limits on the
5740         values we send to the SplitterMovingEvent.  Fixes #79598.
5741
5742 2006-10-06  Jackson Harper  <jackson@ximian.com>
5743
5744         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5745         since we use this for auto scrolling also.
5746
5747 2006-10-05  Chris Toshok  <toshok@ximian.com>
5748
5749         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5750         beginning to think that most datagrid column types don't need this
5751         method.  Fixes bug #79392.
5752
5753 2006-10-05  Chris Toshok  <toshok@ximian.com>
5754
5755         * DataGrid.cs: move back to a more lazy scheme for creating the
5756         CurrencyManager, so we aren't updating it every time you set
5757         either DataSource or DataMember.  Also, don't call
5758         RecreateDataGridRows if the currency manager hasn't changed.
5759
5760 2006-10-05  Chris Toshok  <toshok@ximian.com>
5761
5762         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5763         emitted, SelectedIndex should already be updated.  Fixes bug
5764         #78929.
5765
5766 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5767
5768         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5769           ToolStripTextBox.cs: Initial commit.
5770         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5771
5772 2006-10-05  Jackson Harper  <jackson@ximian.com>
5773
5774         * TabControl.cs: We need to invalidate the tab control area when
5775         new ones are added (duh).
5776
5777 2006-10-03  Chris Toshok  <toshok@ximian.com>
5778
5779         * Form.cs (ProcessDialogKey): if the focused control is in this
5780         form and is a button, call its PerformClick method here.  Fixes
5781         #79534.
5782
5783 2006-10-04  Jackson Harper  <jackson@ximian.com>
5784
5785         * TabPage.cs: Ignore setting of Visible, and add an internal
5786         method for setting the controls visibility.  TabPage's Visible
5787         property is a little strange on MS, this seems to make us
5788         compatible, and fixes cases where people set all the tab pages to
5789         visible.
5790         * TabControl.cs: Use the new internal setting on tab pages
5791         visibility.
5792
5793 2006-10-03  Mike Kestner  <mkestner@novell.com>
5794
5795         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5796
5797 2006-10-03  Mike Kestner  <mkestner@novell.com>
5798
5799         * ListView.cs : use is_visible instead of Visible to check if 
5800         scrollbars should be placed/sized.  Also some max_wrap_width
5801         love for LargeIcon view.  [Fixes #79533]
5802
5803 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5804
5805         * TextControl.cs :
5806           Make set_TextAlign() do actually update the align. Fixed #78403.
5807
5808 2006-10-03  Chris Toshok  <toshok@ximian.com>
5809
5810         * DataGrid.cs: fix a crash when switching datasources if the
5811         vertical scrollbar is at someplace other than Value = 0.  Also,
5812         reduce the number of recalculation passes we do in SetDataSource
5813         from 2 to 1.
5814
5815 2006-10-03  Jackson Harper  <jackson@ximian.com>
5816
5817         * TextBoxBase.cs: Move the if value the same bail check up, we
5818         don't want to empty the document if it is already empty, this
5819         seems to severly mess up the caret.  TODO: I should probably fix
5820         the empty statement to update teh caret somehow.
5821
5822 2006-10-03  Chris Toshok  <toshok@ximian.com>
5823
5824         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5825         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5826         reflection, an internal row type, properties on said type, etc.)
5827         will work with our datagrid.  Fixes #79531.
5828
5829 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5830
5831         * FileDialog.cs: Don't crash if a path is not accessible
5832           (System.UnauthorizedAccessException). Fixes #79569.
5833         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5834           a ':' too. Return unknown icon for those paths/files.
5835
5836 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5837
5838         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5839         GetContainerControl returns null.
5840
5841 2006-10-02  Chris Toshok  <toshok@ximian.com>
5842
5843         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5844         call to XGetWindowAttributes instead of "handle".  fixes an X
5845         error using notifyicon after the NotifyIconWindow to Form base
5846         class switch.
5847
5848 2006-10-02  Chris Toshok  <toshok@ximian.com>
5849
5850         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5851         server grab and looping we need to do to get down to the most
5852         deeply nested child window.
5853         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5854         QueryPointer again after the WarpPointer so we can generate a
5855         proper (fake) MotionNotify event to be enqueued in the destination
5856         window's queue.
5857         (GetCursorPos): call QueryPointer.
5858
5859         Fixes #79556.
5860
5861 2006-10-02  Jackson Harper  <jackson@ximian.com>
5862
5863         * NotifyIcon.cs: Derive the notify icon from a form, so things
5864         like FindForm work on it.
5865         - Swallow the WM_CONTEXTMENU message, since that is generated on
5866         mouse down, and context menu is a mouse up kinda guy.  I believe
5867         the correct fix here is probably to make the notify icon entirely
5868         NC area, but this seems to work fine for anyone not manipulating
5869         WndProc.
5870
5871 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5872
5873         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5874           ToolStripItemCollection.cs, ToolStripLabel.cs,
5875           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5876           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5877           Initial implementation.
5878         * TextRenderer.cs: Provide padding to MeasureText.
5879
5880 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5881
5882         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5883         of ButtonBaseAccessibleObject. Fix bug #79552.
5884
5885 2006-10-02  Jackson Harper  <jackson@ximian.com>
5886
5887         * MdiWindowManager.cs: When maximizing use the containers client
5888         rect, not it's bounds, so nc area is accounted correctly.
5889         - Use the parent form's size for the menu position, since the
5890         client isn't always the full form size.
5891
5892 2006-10-01  Chris Toshok  <toshok@ximian.com>
5893
5894         * ScrollableControl.cs: make sure neither right_edge or
5895         bottom_edge are < 0, since they're used as LargeChange for the
5896         horiz/vert scrollbars respectively.  Fixes #79539.
5897
5898 2006-10-01  Chris Toshok  <toshok@ximian.com>
5899
5900         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5901         the xplatuix11 code can cause us to destroy/recreate our handle.
5902
5903         * XplatUIX11.cs
5904         (SystrayAdd):
5905         - this code can be invoked many times for the same Hwnd.  Make
5906           sure we only destroy the client window once (the first time this
5907           method is called).  This fixes bug #79544.
5908         - Remove the call to the improperly bound XSync.  why we had two
5909           bindings to this, I will never know, but this call resulted in
5910           events being discarded from the queue(!).
5911         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5912           not our current state but the state we wish to be in.  So, 0 if
5913           we don't want to be mapped.  Change it to 1.
5914         (SystrayRemove): The XEMBED spec makes mention of the fact that
5915         gtk doesn't support the reparent of client windows away from the
5916         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5917         The only avenue we have for removing systray icons is to destroy
5918         them.  We don't want the handle to go away for good, though, so
5919         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5920         #79545.
5921         
5922 2006-10-01  Chris Toshok  <toshok@ximian.com>
5923
5924         * Form.cs (WndProc): inline the native_enabled variable usage into
5925         the cases in which it's used.  Fixes #79536.
5926
5927 2006-09-29  Mike Kestner  <mkestner@novell.com>
5928
5929         * ListView.cs : toggle the selection state for ctrl clicks in 
5930         multiselect mode. [Fixes #79417]
5931
5932 2006-09-29  Mike Kestner  <mkestner@novell.com>
5933
5934         * ListView.cs : kill CanMultiSelect and refactor the selection
5935         code to support multiselection in the absence of mod keys. Steal
5936         arrow/home/end keys by overriding InternalPreProcessMessage to
5937         restore regressed keynav behavior.
5938         [Fixes #79416]
5939
5940 2006-09-29  Jackson Harper  <jackson@ximian.com>
5941
5942         * MdiClient.cs: Repaint the titlebars when the active window is
5943         changed.
5944
5945 2006-09-29  Chris Toshok  <toshok@ximian.com>
5946
5947         * Application.cs: when entering a runloop with a modal, make sure
5948         the hwnd is enabled.  Fixes #79480.
5949
5950 2006-09-29  Chris Toshok  <toshok@ximian.com>
5951
5952         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5953         when ListManager.CanAddRows == false, bump us back one.
5954
5955         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5956         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5957         using a datagrid, which is not right.
5958         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5959         is an IEditable, but call property_descriptor.SetValue regardless.
5960         fixes #79435.
5961
5962 2006-09-29  Chris Toshok  <toshok@ximian.com>
5963
5964         * DataGridBoolColumn.cs: we need to test equality in the face of
5965         possible null values (as is the case with the default NullValue).
5966         This patch keeps us from crashing in that case.
5967
5968 2006-09-29  Jackson Harper  <jackson@ximian.com>
5969
5970         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
5971         here, since it will get called for every node collection in the
5972         tree. This is now done in the treeview once the sorting is
5973         finished.
5974         * TreeView.cs: Recalculate the visible order, and update the
5975         scrollbars after sorting, set the top nope to the root so that the
5976         recalc actually works.
5977
5978 2006-09-29  Chris Toshok  <toshok@ximian.com>
5979
5980         * LinkLabel.cs: more handling of the default link collection in
5981         the face of LinkArea manipulation.  The default link collection
5982         contains 1 element (start=0,length=-1).  If the user sets LinkArea
5983         to anything and the links collection is the default, clear it.
5984         Then only add the link if its nonempty.  Fixes #79518.
5985
5986 2006-09-29  Chris Toshok  <toshok@ximian.com>
5987
5988         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
5989         piece correctly when we hit a '\n'.  Fixes #79517.
5990
5991 2006-09-29  Chris Toshok  <toshok@ximian.com>
5992
5993         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
5994         change the binding of gdk_init_check to take two IntPtr's, and
5995         pass IntPtr.Zero for both of them.  Fixes #79520.
5996
5997 2006-09-29  Mike Kestner  <mkestner@novell.com>
5998
5999         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6000         [Fixes #78779]
6001
6002 2006-09-28  Jackson Harper  <jackson@ximian.com>
6003
6004         * XplatUIX11.cs: When translating NC messages make sure we go from
6005         whole window to screen, not client window to screen.
6006         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6007         method doesn't exist
6008         - Skip over controls that aren't forms when arranging.
6009
6010 2006-09-28  Jackson Harper  <jackson@ximian.com>
6011
6012         * XplatUIWin32.cs: Clip the rect to the parent window.
6013         * XplatUIStructs.cs: Add clipping modes struct.
6014         * InternalWindowManager.cs: New private method that factors title
6015         bar heights in when calculating the pos of an NC mouse message.
6016         - Use SendMessage to force a paint when the form's size is changed
6017         instead of painting the decorations immediately.
6018         - Don't let the NC button click messages get to DefWndProc,
6019         because they will attempt to handle windowing themself, and this
6020         messes up z-order (it will put them in front of the scrollbars).
6021         * XplatUIX11.cs: Make sure that we don't reset window managers if
6022         we already have one (ie the window is an MDI window).
6023
6024 2006-09-28  Chris Toshok  <toshok@ximian.com>
6025
6026         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6027         menu code really needs going over.
6028
6029 2006-09-27  Chris Toshok  <toshok@ximian.com>
6030
6031         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6032         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6033         window is maximizable.  So, we need to make sure that even if we
6034         clear the border/wm frame of those functions, they're still
6035         available (basically, we remove the decoration without removing
6036         the function).  Half the fix for #79338.
6037
6038 2006-09-27  Chris Toshok  <toshok@ximian.com>
6039
6040         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6041         Fixes bug #79515.
6042
6043 2006-09-27  Chris Toshok  <toshok@ximian.com>
6044
6045         * Splitter.cs: reorder things a bit so that we don't actually
6046         draw/move the splitter until after calling OnSplitterMoving.  This
6047         lets users cancel/disallow the movement by explicitly setting
6048         event.SplitX/SplitY.  Fixes #79372.
6049
6050 2006-09-27  Jackson Harper  <jackson@ximian.com>
6051
6052         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6053         because it is most likely on a window being destroyed, and that
6054         will give us an X11 error.
6055
6056 2006-09-27  Chris Toshok  <toshok@ximian.com>
6057
6058         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6059         the dropdown button now toggles between showing and hiding the
6060         dropdown.  Also, get rid of dropdown_form_showing and just use
6061         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6062         that part to someone who has handled Capture-fu before.
6063
6064 2006-09-27  Chris Toshok  <toshok@ximian.com>
6065
6066         * DataGrid.cs: return false if alt isn't pressed when '0' is
6067         pressed.  this keeps the '0' key from being swallowed, and fixes
6068         bug #79350.
6069
6070 2006-09-27  Chris Toshok  <toshok@ximian.com>
6071
6072         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6073         Calling Refresh (in response to a scrollbar event) screws up the
6074         scrollbar painting.  Fixes bug #78923.
6075
6076 2006-09-27  Chris Toshok  <toshok@ximian.com>
6077
6078         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6079         then insert into hashtable" blocks threadsafe.
6080
6081 2006-09-27  Chris Toshok  <toshok@ximian.com>
6082
6083         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6084         baseclass's, since otherwise the
6085         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6086         effect.  This gets the close button back in messageboxes.
6087
6088 2006-09-27  Chris Toshok  <toshok@ximian.com>
6089
6090         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6091         flag, not just != 0.  this makes flags that are actually multiple
6092         bits (like WS_CAPTION) work.  fixes bug #79508.
6093
6094 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6095
6096         * PageSetupDialog.cs: add support for getting and settings the 
6097         paper size, source and orientation.
6098
6099 2006-09-26  Chris Toshok  <toshok@ximian.com>
6100
6101         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6102         and caption == "", we need to remove the resize handles as well as
6103         the title bar.
6104
6105         * Control.cs (set_Text): turns out that setting Text on a form
6106         should change the WM styles on the window, since if ControlBox ==
6107         false, the only way to get a window border is to have a non-""
6108         Text property.  check winforms/forms/text.cs for an example.  so,
6109         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6110         update both window styles and title.  This fixes a lot of dialogs
6111         (including the preferences dialog in MonoCalendar.)
6112
6113 2006-09-26  Chris Toshok  <toshok@ximian.com>
6114
6115         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6116         control isn't a Form), call Win32ShowWindow to hide the window,
6117         but don't update the control Visible property.  When we reparent
6118         back to a parent control, call SetVisible in order for the
6119         window's visibility to be reinstated.
6120
6121         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6122         the FosterParent.
6123
6124         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6125         call for good, since it breaks MonoCalendar (and other things I'm
6126         sure.) Also, set all_controls to null *after* the owner calls,
6127         which end up regenerating it.
6128         (ChangeParent): allow new_parent to be == null, passing
6129         IntPtr.Zero down to XplatUI.
6130
6131         this fixes #79294 the right way.
6132
6133 2006-09-26  Mike Kestner  <mkestner@novell.com>
6134
6135         * GridEntry.cs : internal SetParent method.
6136         * PropertyGrid.cs : attach to property changed on the proper
6137         target if we have a hierarchical grid with subobjects. Setup
6138         GridItem.Parent for hierarchical items.
6139         * PropertyGridView.cs : Set value on the correct target for
6140         hierarchical grids. [Fixes #78903]
6141
6142 2006-09-26  Chris Toshok  <toshok@ximian.com>
6143
6144         * Control.cs (ChildNeedsRecreating): this should return true if
6145         either we're being recreated and the child is in our list, or our
6146         parent is waiting for our recreation.
6147
6148 2006-09-26  Chris Toshok  <toshok@ximian.com>
6149
6150         * Control.cs (ControlCollection.Remove): reinstate the
6151         value.Hide() call as suggested in bug #79294.
6152
6153 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6154
6155         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6156         coordinates (versus a relative move).
6157
6158 2006-09-26  Chris Toshok  <toshok@ximian.com>
6159
6160         * Control.cs: rework child recreation a little bit.  It turns out
6161         that we race between the DestroyNotify the WM_DESTROY message.  If
6162         the parent gets its DestroyNotify before the child gets the
6163         WM_DESTROY message, the child ends up not recreating (since the
6164         parent finishes its recreation on DestroyNotify, and the child
6165         checks ParentIsRecreating.)
6166
6167         So, instead we store off a list of all the child controls which
6168         need to be recreated when the parent control starts to recreate
6169         itself.  Then, when child controls get their WM_DESTROY message we
6170         check to see if they're in the parent's pending recreation list,
6171         and if so, we recreate.  This removes all dependency on ordering
6172         from the code and fixes the initial MonoCalendar upgrade dialog.
6173         
6174 2006-09-26  Jackson Harper  <jackson@ximian.com>
6175
6176         * TextControl.cs: Use the Line to get the length of the line,
6177         since soft line breaks can change the end line.
6178
6179 2006-09-26  Chris Toshok  <toshok@ximian.com>
6180
6181         * Control.cs (ControlCollection.AddImplicit): don't add the
6182         control again if it's already in one of our lists.  This keeps us
6183         from adding controls over and over again for comboboxes when their
6184         handle gets recreated (as the combobox adds implicit controls in
6185         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6186
6187 2006-09-26  Jackson Harper  <jackson@ximian.com>
6188
6189         * TextControl.cs: When deleting characters make sure that any
6190         orphaned zero lengthed tags get deleted.
6191         - Fix ToString for zero lengthed tags.
6192
6193 2006-09-25  Jackson Harper  <jackson@ximian.com>
6194
6195         * TextControl.cs: When getting a tag at the location there can be
6196         multiple tags at the same spot, these are 0-lengthed tags that
6197         appear when extra formatting has been stuck in a location.  We
6198         need to pull out the last of these 0 lengthed tags.
6199
6200 2006-09-25  Jackson Harper  <jackson@ximian.com>
6201
6202         * TextControl.cs: Fix print out in debug method.
6203         * TextBoxBase.cs: When text is set bail if we are setting to the
6204         previous value.
6205         
6206 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6207
6208         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6209           It is now possible to change the selected index in a FontXXXListBox
6210           with the up and down arrow keys from the FontXXXTextBoxes.
6211           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6212           FontXXXListBoxes to match ms.
6213
6214 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6215
6216         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6217         anyone can dispose it, anytime. All other properties returns enums, 
6218         structs or basic types so they don't need such tricks.
6219
6220 2006-09-22  Jackson Harper  <jackson@ximian.com>
6221
6222         * XplatUI.cs:
6223         * XplatUIWin32.cs:
6224         * Clipboard.cs:
6225         * DataFormats.cs:
6226         * XplatUIOSX.cs:
6227         * XplatUIDriver.cs: Update interface to add a primary selection
6228         flag, so the driver can use the primary selection buffer if
6229         needed.
6230         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6231
6232         * RichTextBox.cs: We need to supply the data object to paste now
6233         (so we can choose to supply CLIPBOARD or PRIMARY).
6234         * TextBoxBase.cs: Supply data object to paste (see above).
6235         - Middle click uses the primary selection data object.
6236         
6237 2006-09-21  Chris Toshok  <toshok@ximian.com>
6238
6239         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6240         of SetWMStyles.  It's still a rat's nest and is largely
6241         order-dependent which I dislike immensely.  This also fixes the X
6242         button disappearing from toplevel forms.
6243
6244 2006-09-21  Mike Kestner <mkestner@novell.com>
6245
6246         * ListBox.cs: move Jordi's click/dblclick raising code to the
6247         mouse up handler.
6248
6249 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6250
6251         * ListBox.cs: Fixes 79450
6252
6253 2006-09-21  Mike Kestner <mkestner@novell.com>
6254
6255         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6256         to deal with people updating the TreeNodeCollection after the tree
6257         is disposed.  "Fixes" 79330.
6258
6259 2006-09-20  Jackson Harper <jackson@ximian.com>
6260
6261         * TextControl.cs: Push the cursor record onto the undo stack
6262         before the delete action. This fixes 78651.
6263
6264 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6265
6266         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6267         CreateParams. Fixes 79329.
6268
6269 2006-09-19  Chris Toshok  <toshok@ximian.com>
6270
6271         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6272         things up a bit.  First, get rid of the NetAtoms array (and the NA
6273         enum), and just embed the atoms as static fields.  Also, add a
6274         couple of functions (StyleSet and ExStyleSet) to clean up all the
6275         bitmask testing of styles.
6276
6277         * X11Structs.cs: remove the NA enum, not needed anymore.
6278         
6279 2006-09-19  Chris Toshok  <toshok@ximian.com>
6280
6281         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6282         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6283         added cleanup to get MessageBox titles appearing again, which were
6284         broken by my earlier fix for caption-less/ControlBox-less windows.
6285
6286 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6287
6288         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6289           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6290           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6291           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6292           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6293           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6294           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6295           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6296           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6297           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6298           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6299             Inital import.
6300         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6301           ToolStripButton.cs: Stubs needed for above.
6302         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6303
6304 2006-09-15  Chris Toshok  <toshok@ximian.com>
6305
6306         * XplatUIX11.cs:
6307         - make the MessageQueues hashtable Synchronized.
6308         
6309         - SendMessage: if the Hwnd is owned by a different thread, use the
6310         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6311         thread.  Fixes bug #79201.
6312
6313 2006-09-15  Chris Toshok  <toshok@ximian.com>
6314
6315         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6316         ControlBox == false, we disallow maximize/minimize/close.  If the
6317         form Caption is "" we also disallow move (and get rid of the Title
6318         decoration).  Unfortunately, regardless of how things are set,
6319         we're stuck with the Title and WM menu.
6320
6321 2006-09-15  Chris Toshok  <toshok@ximian.com>
6322
6323         * Application.cs: add locking around the static message_filters
6324         ArrayList, part of #79196.
6325
6326 2006-09-15  Chris Toshok  <toshok@ximian.com>
6327
6328         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6329         Form.ControlBox == false, the window has no titlebar nor resize
6330         handles.  fixes bug #79368.
6331
6332 2006-09-15  Chris Toshok  <toshok@ximian.com>
6333
6334         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6335         >= 0.  Fixes bug #79370.
6336
6337 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6338         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6339         * Control.cs:
6340             Add properties: LayoutEngine, Margin, DefaultMargin.
6341             Add method: GetPreferredSize.
6342             Move layout logic from PerformLayout to layout engines. 
6343
6344 2006-09-13  Chris Toshok  <toshok@ximian.com>
6345
6346         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6347         fix for #79326 broke #78718, so this change addresses that.
6348
6349         - in SendWMDestroyMessages remove the call to
6350         CleanupCachedWindows, since we might be recreating the control and
6351         need to maintain the references to right Hwnd handles.  Also, set
6352         the zombie flag to true for each of the children in the hierarchy
6353         instead of calling hwnd.Dispose.  This will cause GetMessage to
6354         ignore all events for the window except for DestroyNotify.
6355
6356         - In GetMessage, ignore messages except for DestroyNotify for
6357         zombie hwnds.
6358         
6359         * Control.cs: revert the is_recreating fix from the last
6360         ChangeLog.  It's definitely "right", but it breaks switching from
6361         an MDI form to a non-MDI form.  Will need to revisit that.
6362
6363         * Hwnd.cs: add a zombie flag, which means "the
6364         client_window/whole_window handles are invalid, but we're waiting
6365         for the DestroyNotify event to come in for them".  Set the flag to
6366         false explicitly if setting WholeWindow/ClientWindow, and also
6367         when Disposing.
6368         
6369 2006-09-13  Chris Toshok  <toshok@ximian.com>
6370
6371         * XplatUIX11.cs: rework window destruction slightly.
6372
6373         - when destroying the windows associated with a control, we don't
6374         need 2 separate XDestroyWindow calls.  Just the one for the
6375         whole_window (or for client_window if whole_window is somehow
6376         IntPtr.Zero -- can this happen?) is enough.
6377
6378         - reworked SendWMDestroyMessages slightly, so we always dispose
6379         the child control hwnd's after sending the messages.
6380         
6381         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6382         the two places it was used (one was even using hwnd.Handle and the
6383         other hwnd.client_window.  ugh), adding another call in
6384         SendWMDestroyMessages.  We need this new call because now the
6385         DestroyNotify events in the queue will be ignored for the child
6386         controls (as their hwnd's were disposed, and the window id's
6387         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6388
6389         - this fixes bug #79326.
6390
6391 2006-09-13  Chris Toshok  <toshok@ximian.com>
6392
6393         * Control.cs: don't always set is_recreating to false at the end
6394         of RecreateHandle, since sometimes we're not done (and won't be
6395         until WndProc handles the WM_DESTROY message).  Also, set
6396         is_recreating to false in the WM_DESTROY handling code.  Part of
6397         the fix for bug #79326.
6398
6399 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6400
6401         * X11DesktopColors.cs: Start the droppage of debugging messages.
6402
6403         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6404
6405 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6406
6407         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6408
6409 2006-09-12  Chris Toshok  <toshok@ximian.com>
6410
6411         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6412         to create it using SetDataSource.  Fixes bug #79151.
6413
6414 2006-09-11  Chris Toshok  <toshok@ximian.com>
6415
6416         * XEventQueue.cs: add a DispatchIdle property.
6417
6418         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6419         either the queue is null, or the queue has DispatchIdle set to
6420         true.
6421         (DoEvents): set queue.DispatchIdle to false around the
6422         peek/translate/dispatch message loop in this method.  This keeps
6423         Application.Doevents from emitting idle events.  Part of the fix
6424         for #78823.
6425
6426 2006-09-11  Chris Toshok  <toshok@ximian.com>
6427
6428         * DataGrid.cs (set_DataSource): make this work for both the
6429         winforms/datagrid test and ReportBuilder.  It seems as though when
6430         we've created a ListManager (or maybe it's if we have a
6431         BindingContext?), when we set the DataSource it clears the
6432         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6433         #79333.
6434
6435 2006-09-11  Chris Toshok  <toshok@ximian.com>
6436
6437         * XplatUIX11.cs: deal with queue being null, which happens in all
6438         the Clipboard functions.  Fixes one of the two problems mentioned
6439         in #78612.
6440
6441 2006-09-11  Chris Toshok  <toshok@ximian.com>
6442
6443         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6444         button on various spots (including outside the menu) works closer
6445         to MS, and doesn't crash.  Fixes #79343.
6446
6447 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6448
6449         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6450         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6451         and the internal comparer is set. When a new ListViewItemSorter is set,
6452         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6453         was specified. No further processing is necessary if SortOrder is set
6454         to it's current value. If Sorting is modified to None, and View is
6455         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6456         (either custom or our internal ItemComparer) to null, on 1.0 profile
6457         only set item_sorter to null if its our internal IComparer. If Sorting
6458         is modified to Ascending or Descending, then use our internal IComparer
6459         if none is set, and if the current IComparer is our internal one then:
6460         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6461         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6462         Enum.IsDefined to verify whether a valid View value is specified in
6463         its setter. Automatically sort listview items when listview is
6464         created. In Sort, do nothing if ListView is not yet created, or if
6465         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6466         to None or ListViewItemSorter was set to null). Added Sort overload
6467         taking a bool to indicate whether the ListView should be redrawn when
6468         items are sorted (we use this in ListViewItemCollection to avoid double
6469         redraws). Modified our internal IComparer to take the sort order into
6470         account. In Add and AddRange methods of ListViewItemCollection, also
6471         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6472         view), but use overload with noredraw option to avoid double redraw.
6473         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6474         true when View is Tile, and do the same when attempting to set View to
6475         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6476         for selected/checked indices, as it involves overhead when sorting is
6477         done while these collections are not used all that often. Instead
6478         we'll build the indices on demand. Modified IList implementation of
6479         CheckedIndexCollection to use public methods if object is int.
6480         Modified CheckedListViewItemCollection to hide checked items if
6481         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6482         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6483         IList implementation in SelectedIndexCollection to use public methods
6484         if object is int. Modified SelectedListViewItemCollection to hide
6485         selected items if listview is not yet created.
6486         * ListViewItem.cs: CheckedIndices list no longer needs to be
6487         maintained separately (see ListView changes). Also clone font, fixes
6488         test failure.
6489
6490 2006-09-11  Mike Kestner  <mkestner@novell.com>
6491
6492         * ComboBox.cs: if we are updating the contents of the currently
6493         selected index, refresh the control or the textbox selection.
6494         [Fixes #79066]
6495
6496 2006-09-11  Mike Kestner  <mkestner@novell.com>
6497
6498         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6499         the 'specified' logic has been moved there.  This seems like a bug 
6500         in Control.cs, since our current SetBoundsCore completely ignores 
6501         the specified parameter.  Peter's commit seems to indicate that is 
6502         the way the MS control implementation works.  [Fixes #79325]
6503
6504 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6505
6506         * XplatUI.cs: Set default_class_name to be composed
6507         of current domain id. This allows MWF to be loaded in multiple
6508         domains on Win32.
6509
6510 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6511
6512         * X11Keyboard.cs: If we are unable to obtain the input method, do
6513         not call CreateXic to create the input context.   Should fix
6514         #78944/79276.
6515
6516 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6517
6518         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6519           Simplified gnome support by adding more pinvokes to get the
6520           icon for a file or mime type.
6521
6522 2006-09-08  Jackson Harper  <jackson@ximian.com>
6523
6524         * MenuAPI.cs: Deslect popup context menu items before closing the
6525         window, so that you don't see the previously selected item
6526         selected when you reopen the menu.
6527         * TextControl.cs: Update the cursor position even if we don't have
6528         focus.  This fixes typing in things like the ComboBox.  I'm not
6529         totally sure we should always set the visibility if we don't have
6530         focus, but couldn't find any corner cases where the cursor showed
6531         up when it shouldn't.
6532
6533 2006-09-08  Chris Toshok  <toshok@ximian.com>
6534
6535         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6536         our arrays are length 256.  & 0xff before indexing.  Fixes the
6537         crash in bug #78077.
6538         
6539 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6540
6541         * ThemeWin32Classic.cs: 
6542         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6543         is true. Handle that check box too.
6544
6545 2006-09-07  Chris Toshok  <toshok@ximian.com>
6546
6547         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6548         79244.
6549
6550 2006-09-07  Chris Toshok  <toshok@ximian.com>
6551
6552         * Control.cs: in set_BackColor only do the work if
6553         background_color != value.
6554
6555         * XplatUIX11.cs: move the clearing of invalid areas (both client
6556         and nc) to the same block of code where we set (nc_)expose_pending
6557         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6558         so things that cause invalidates from within OnPaint will trigger
6559         another call to OnPaint.  Fixes bug #79262.
6560
6561 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6562
6563         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6564         * FileDialog.cs: Fix typo
6565
6566 2006-09-07  Jackson Harper  <jackson@ximian.com>
6567
6568         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6569         for tab pages if they have any.
6570
6571 2006-09-06  Mike Kestner  <mkestner@novell.com>
6572
6573         * Splitter.cs: use the "current" rect when finishing drag handle
6574         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6575
6576 2006-09-06  Mike Kestner  <mkestner@novell.com>
6577
6578         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6579         support offset splitters. [Fixes #79298]
6580
6581 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6582
6583         * Mime.cs: Fixed a bug that could override the global mime type
6584           result.
6585
6586 2006-09-05  Jackson Harper  <jackson@ximian.com>
6587
6588         * TabControl.cs: Better calculation method for setting the slider
6589         pos. Prevents crashes on really wide tabs.
6590         - Draw Image on tab pages if an image list is used.
6591
6592 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6593
6594         * MonthCalendar.cs: When Font changes, the Size should be
6595         updated to fit the new font's space requirements.
6596
6597 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6598
6599         * ListBox.cs: If the items are cleared with Items.Clear set
6600           top_index to 0.
6601
6602 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6603
6604         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6605         fire DateChanged event instead of DateSelected event when
6606         the date was changed by keyboard interaction.
6607
6608 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6609
6610         * DateTimePicker.cs: Handle DateChanged for the associated
6611         month_calendar control, and set month_calendar.Font from 
6612         OnFontChanged method, as well as resize the height of the
6613         control when needed. Make PreferredHeight proportional.
6614
6615 2006-09-01  Chris Toshok  <toshok@ximian.com>
6616
6617         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6618         properties.
6619
6620         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6621
6622 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6623
6624         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6625           for decorations (Fixes #79219)
6626
6627 2006-09-01  Mike Kestner  <mkestner@novell.com>
6628
6629         * ComboBox.cs: first stab at sorting plus some selection handling
6630         fixes to bring us more in line with MS behavior.  Also switches back
6631         to index based selection.  Alternative patches for index-based 
6632         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6633         and latency@gmx.de on bug 78848.  I assume they were similar to this
6634         code I've had simmering in my tree forever.
6635         [Fixes #78848]
6636
6637 2006-09-01  Chris Toshok  <toshok@ximian.com>
6638
6639         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6640         when setting list position guard against ending up with a -1 index
6641         (the other part of the fix for #78812).  Should probably make sure
6642         we don't need the analogous fix in the ItemDeleted case.
6643
6644         * DataGrid.cs:
6645         - in SetDataSource, work around the fact that the way
6646         OnBindingContextChanged is invoked will cause us to re-enter this
6647         method.  I'll remove the hack once I investigate
6648         OnBindingContextChanged.
6649
6650         - fix the logic in set_DataSource and set_DataMember (basically
6651         what to do if the other of the two is null.)
6652         
6653         - in OnListManagerItemChanged, we need to take into account the
6654         edit row when deciding whether or not to call RecreateDataGridRows
6655         (part of the fix for #78812).
6656
6657 2006-09-01  Jackson Harper  <jackson@ximian.com>
6658
6659         * Splitter.cs: Don't do anything if there is no control to affect
6660         (prevents us from crashing in weird tet cases).
6661         * TreeView.cs: Bounding box for the mouse movement reverting
6662         focus/selection back to previously selected node.  This matches
6663         MS, and makes the tree a lot more useable.
6664         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6665         use clipping so they are not drawn.  This fixes when the control
6666         is set to have a transparent background, or if it was over an
6667         image.
6668
6669 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6670
6671         * MimeIcon.cs: Improved handling for reading default icons when
6672           using gnome (2.16 made it necessary). Check and read svg icons
6673           first, then 48x48 and then 32x32 icons.
6674
6675 2006-08-31  Chris Toshok  <toshok@ximian.com>
6676
6677         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6678         visible.
6679
6680         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6681         ProcessKeyPreview.  Fixes part of #77806.
6682
6683         * DataGrid.cs: big patch.
6684
6685         - revert the queueing up of DataSource/DataMember if inside
6686         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6687         its delayed databinding.  Instead, call SetDataSource in
6688         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6689         #78811.
6690
6691         - Also, it wasn't mentioned in #78811, but the test case exhibits
6692         behavior that was lacking in our datagrid implementation - Columns
6693         that have mapping names that don't exist in the datasource's
6694         properties aren't shown.  Yuck.  To fix this I added the bound
6695         field to the column style, and basically any calculation to figure
6696         out anything about columns uses a loop to find the bound columns.
6697         still need to investigate if I can cache an array of the bound
6698         columns or if the indices must be the same.
6699
6700         - When setting CurrentCell, we no longer abort if the cell being
6701         edited was in the add row.  This fixes the other part of #77806.
6702
6703         - The new code also fixes #78807.
6704         
6705         * ThemeWin32Classic.cs: perpetrate the same disgusting
6706         column.bound field hack, and only render bound fields.
6707
6708 2006-08-31  Chris Toshok  <toshok@ximian.com>
6709
6710         * DataGridColumnStyle.cs: add bound field.  this field is true if
6711         the datasource has a property corresponding to the mapping name.
6712
6713         * DataGridTableStyle.cs: set the bound field on the column styles
6714         depending on whether or not we have a column for that property.
6715
6716 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6717
6718         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6719           splitter control (fixes #79228)
6720
6721 2006-08-31  Chris Toshok  <toshok@ximian.com>
6722
6723         * DataGridColumnStyle.cs: we need to delay the assignment of
6724         property descriptor until the last possible moment due to the lazy
6725         databinding stuff in the datagrid.  Also, fix the exceptions
6726         thrown by CheckValidDataSource to match MS.
6727
6728 2006-08-31  Jackson Harper  <jackson@ximian.com>
6729
6730         * Form.cs: When activated select the active control, if there is
6731         no active control, we select the first control.
6732         * XplatUIX11.cs: If there is no focus control when we get a
6733         FocusIn event, find the toplevel form and activate it.  This
6734         occurs when you popup a window, it becomes the focus window, then
6735         you close that window, giving focus back to the main window.
6736
6737 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6738
6739         * MonthCalendar.cs: 
6740         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6741         as StringFormat with Center alignments in MonthCalendar,
6742         instead of creating new ones when drawing the control. 
6743         Also, draw the month name in bold style.
6744
6745 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6746
6747         * Control.cs:
6748           - PerformLayout(): It would seem MS performs the fill even if the 
6749             control is not visible (part of #79218 fix)
6750           - ResetBackColor(): Use the setter to reset the color, to allow
6751             overriders to catch the change.
6752         * Form.cs:
6753           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6754           - CreateHandle(): dito (part of $79218 fix)
6755           - Don't set an icon if we have a dialog
6756         * ScrollableControl.cs:
6757           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6758           - ScrollIntoView(): No need to scroll if control is already visible
6759             (resolves fixme and fixes #79218)
6760
6761 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6762
6763         * MonthCalendar.cs: Change proportions in SingleMonthSize
6764         to match the aspect of the original control.
6765
6766 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6767
6768         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6769           get updated when they get maximized.
6770
6771 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6772
6773         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6774
6775 2006-08-29  Chris Toshok  <toshok@ximian.com>
6776
6777         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6778
6779 2006-08-29  Jackson Harper  <jackson@ximian.com>
6780
6781         * TreeView.cs: Need to track selected node and highlighted node,
6782         they aren't always the same thing, when the mouse is down on a
6783         node it is hilighted, but not selected yet.
6784         - Do the HideSelection stuff right
6785         - Need to focus on rbutton mouse down. And redraw selection when
6786         right click is mouse upped.
6787
6788 2006-08-29  Mike Kestner  <mkestner@novell.com>
6789
6790         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6791         when SubItems.Count < Columns.Count.  [Fixes #79167]
6792
6793 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6794
6795         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6796
6797 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6798
6799         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6800           from X. Only send based on ConfigureNotify if we don't have the
6801           correct location in hwnd (if the window manager moved us)
6802
6803 2006-08-28  Mike Kestner  <mkestner@novell.com>
6804
6805         * ListView.cs: remove a TODO. 
6806         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6807         [Fixes ListView part of #79166]
6808
6809 2006-08-28  Mike Kestner  <mkestner@novell.com>
6810
6811         * ListView.cs: move wheel handler to parent since it is focused
6812         instead of the item_control now.  [Fixes #79177]
6813
6814 2006-08-28  Mike Kestner  <mkestner@novell.com>
6815
6816         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6817         when the control is focused. [Fixes #79171]
6818
6819 2006-08-28  Mike Kestner  <mkestner@novell.com>
6820
6821         * ListView.cs: size the item and header controls for empty and
6822         unscrollable views.
6823         * ThemeWin32Classic.cs: draw disabled backgrounds.
6824         [Fixes #79187]
6825
6826 2006-08-28  Chris Toshok  <toshok@ximian.com>
6827
6828         * Form.cs: remove unused "active_form" static field.
6829
6830         * Hwnd.cs: lock around accesses to static windows collection.
6831
6832         * Application.cs: lock threads in Exit ().
6833
6834 2006-08-28  Chris Toshok  <toshok@ximian.com>
6835
6836         * NativeWindow.cs: lock around accesses to window_collection.
6837         
6838 2006-08-28  Chris Toshok  <toshok@ximian.com>
6839
6840         * Control.cs: err, fix this the right way, by locking on controls
6841         when using it.  not by making it synchronized.
6842
6843 2006-08-28  Chris Toshok  <toshok@ximian.com>
6844
6845         * Control.cs: make the static "controls" field synchronized, as it
6846         gets updated from multiple threads.
6847
6848 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6849
6850         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6851           Prevent other threads from exiting when calling thread sets quit state.
6852         * XEventQueue.cs: Added PostQuitState property
6853
6854 2006-08-27  Chris Toshok  <toshok@ximian.com>
6855
6856         * AsyncMethodData.cs: add a slot for the window handle.
6857
6858         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6859         window (the destination control's window, not the foster window).
6860
6861         * Control.cs (BeginInvokeInternal): store the window's handle in
6862         the AsyncMethodData.
6863         
6864
6865 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6866
6867         * XplatUIX11.cs:
6868           - PostQuitMessage: Removed resetting S.D display handle, we might have
6869             another loop started after calling PostQuitMessage (Fixes #79119)
6870           - Created destructor to reset S.D handle
6871
6872 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6873
6874         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6875
6876 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6877
6878         * TextControl.cs (Insert): Update the caret position even if we don't
6879           have a handle yet, just don't call the driver in that case.
6880         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6881           to the end of the new selection text (Fixes #79184)
6882
6883 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6884
6885         * Form.cs (Activate): Only activate if the handle is created)
6886         * Control.c:
6887           - Mark window as invisible when it's disposed
6888           - Check if window handle is created when setting window visible, 
6889             instead of relying just on the is_created variable
6890           - Check if object is disposed when creating the control (Fixes #79155)
6891
6892 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6893
6894         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6895           when allowing layout again. Otherwise we re-generate the anchoring 
6896           distance to the border again and actually alter what the user wanted
6897           This is ugly, it'd be better if we used DisplayRectangle instead of
6898           ClientRectangle for Control.UpdateDistances, but that causes us to
6899           have other problems (initial anchoring positons would be wrong)
6900           (Fixes #78835)
6901
6902 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6903
6904         * Control.cs:
6905           - The size and location setters shouldn't go directly to 
6906             SetBoundsCore, but to SetBounds, which triggers layout on the
6907             parent, then calls SetBoundsCore. (Related to fix for #78835)
6908           - SetBounds: Moved actual location update code into this function
6909             from SetBoundsCore, to match MS. Added call to PerformLayout if
6910             we have a parent (to trigger resizing of anchored parents if the 
6911             child size has changed (see testcase for #78835) 
6912         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6913           new control code
6914         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6915
6916 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6917
6918         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6919           System.Drawing when a toplevel window gets closed; there might
6920           be other toplevel windows belonging to the same app (Fixes #78052)
6921
6922 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6923
6924         * FileDialog.cs: After reading FileDialog settings from mwf_config
6925           use Desktop prefix only if a real folder doesn't exist anymore.
6926         * FontDialog.cs: Added char sets.
6927           It is now possible to select the font, size or style with the
6928           textboxes.
6929
6930 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6931
6932         * PrintPreviewDialog.cs: Use assembly name constants.
6933
6934 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6935
6936         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6937           scrollbar from whacking it's buttons)
6938
6939 2006-08-24  Chris Toshok  <toshok@ximian.com>
6940
6941         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6942         in this patch (aggregating setting Left/Top/Width/Height to
6943         setting Bounds on the scrollbars), but the crux of the fix is in
6944         Recalculate, where we scroll by the remaining scroll_position if
6945         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6946         serious.
6947
6948 2006-08-24  Jackson Harper  <jackson@ximian.com>
6949
6950         * MdiClient.cs:
6951         * MdiWindowManager.cs: If the form is made a non-mdi window we
6952         need to remove the form closed event so that closing forms works
6953         correctly.
6954
6955 2006-08-24  Jackson Harper  <jackson@ximian.com>
6956
6957         * Control.cs: Make IsRecreating internal so that the driver can
6958         check it
6959         - Temporarily remove the Hide when controls are removed, its
6960         making a whole bunch of things not work because visibility isn't
6961         getting reset elsewhere correctly
6962         * Form.cs: Need to do a full handle recreation when the mdi parent
6963         is set.
6964         * XplatUIX11.cs: If we are recreating handles don't dispose the
6965         HWNDs.  What was happening is the handles were being recreated in
6966         SendWMDestroyMessages, but then flow continued on in that method
6967         and destroyed the new handles.
6968
6969 2006-08-23  Jackson Harper  <jackson@ximian.com>
6970
6971         * Form.cs: MdiClient is always at the back of the bus
6972         * Control.cs: When the order of items in the collection is changed
6973         we need to reset the all_controls array
6974         - do the same sorta setup thats done when adding a control when a
6975         control is set on the collection.
6976
6977 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6978
6979         * TextBoxBase.cs (get_Text): Return an empty array if our document
6980           is empty (fixes #79052)
6981
6982 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6983
6984         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
6985           on WM_SYSCHAR messages (fixes #79053)
6986
6987 2006-08-23  Chris Toshok  <toshok@ximian.com>
6988
6989         * DataGrid.cs: fix flickering when scrolling vertically.
6990
6991 2006-08-23  Chris Toshok  <toshok@ximian.com>
6992
6993         * DataGrid.cs (EndEdit): only invalidate the row header when we
6994         need to.
6995
6996 2006-08-23  Chris Toshok  <toshok@ximian.com>
6997
6998         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
6999         methods.  fixes the flicker when scrolling around.
7000
7001 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7002
7003         * FileDialog.cs: Making sure the control is created before we get a 
7004           chance to use it with BeginInvoke (Fixes #79096)
7005
7006 2006-08-23  Chris Toshok  <toshok@ximian.com>
7007
7008         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7009         width to use when painting the rows.
7010
7011 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7012
7013         * TextBoxBase.cs:
7014           - Throw ArgumentException if a negative value is passed to SelectionLength
7015           - Update the selection end if start is moved. end needs to be always
7016             after start. (Fixes #79095)
7017           - Track selection length; MS keeps the selection length even if start
7018             is changed; reset on all other operations affection selection
7019
7020 2006-08-22  Jackson Harper  <jackson@ximian.com>
7021
7022         * TreeView.cs: Make sure both scrollbars get displayed and sized
7023         correctly when the other bar is visible.
7024         - Use the original clip rectangle for checking if the area between
7025         the two scrollbars is visible, not the viewport adjusted clipping
7026         rectangle.
7027
7028 2006-08-22  Jackson Harper  <jackson@ximian.com>
7029
7030         * Binding.cs: We don't use IsBinding because it requires the
7031         control to be created, which really shouldn't be necessary just to
7032         set a property on the control.
7033
7034 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7035
7036         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7037         ArgumentNullReferenceException when the argument is null.
7038
7039 2006-08-21  Jackson Harper  <jackson@ximian.com>
7040
7041         * Timer.cs: Track the thread that the timer is started in (NOT
7042         CREATED), this way messages for it will only be triggered on its
7043         queue.
7044         * XEventQueue.cs: Track the timers here, this makes timers per
7045         thread, like MS.
7046         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7047
7048 2006-08-19  Chris Toshok  <toshok@ximian.com>
7049
7050         * XplatUIX11.cs: after further communication with pdb, we get the
7051         best of both worlds.  SetZOrder working for un-Mapped windows, and
7052         no X errors for un-mapped windows.
7053
7054 2006-08-19  Chris Toshok  <toshok@ximian.com>
7055
7056         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7057         as it was causing pdn toolbars to not have the correct stacking.
7058
7059 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7060
7061         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7062         calculation.  Not sure why control should ever be setting a negative
7063         width though.  Fixes #78931.
7064
7065 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7066
7067         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7068         null items in ObjectCollection class.
7069         * ListBox.cs.: Likewise.
7070
7071 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7072
7073         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7074           as the base method in ThemeWin32Classic should work fine.
7075           Fixed bug #78607.
7076
7077 2006-08-18  Jackson Harper  <jackson@ximian.com>
7078
7079         * Binding.cs: When validating if the value entered doesn't convert
7080         properly reset to the old value.
7081         * RadioButton.cs: Don't fire click when we get focus.
7082
7083 2006-08-18  Jackson Harper  <jackson@ximian.com>
7084
7085         * FileDialog.cs: Paint the selection on the directory combobox the
7086         same way as on MS. 
7087
7088 2006-08-17  Jackson Harper  <jackson@ximian.com>
7089
7090         * ErrorProvider.cs: Don't allow the error control to be selected.
7091         * Control.cs: Don't send the SetFocus messages, the control
7092         activation will do this, and if we do it blindly here validation
7093         does not work.
7094
7095 2006-08-17  Jackson Harper  <jackson@ximian.com>
7096
7097         * Control.cs:
7098         * ContainerControl.cs: Make validation events fire in the correct
7099         order.  TODO: For some reason the first validation event is not
7100         getting fired.
7101
7102 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7103
7104         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7105
7106 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7107
7108         * ComboBox.cs : implement scroll wheel support for popped-down
7109         state. Fixes #78945. 
7110
7111 2006-08-17  Jackson Harper  <jackson@ximian.com>
7112
7113         * TreeView.cs: Specify treeview actions (old patch that didn't get
7114         committed for some reason).
7115         - Don't let the mouse wheel scroll us too far.  Just want to make
7116         the bottom node visible, not scroll it all the ways to the top.
7117
7118 2006-08-17  Jackson Harper  <jackson@ximian.com>
7119
7120         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7121
7122 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7123
7124         * ComboBox.cs : don't do mouseover selection in simple mode.
7125
7126 2006-08-16  Jackson Harper  <jackson@ximian.com>
7127
7128         * Form.cs: Fire the closing events for all the mdi child windows
7129         when a window is closed.  If the cancel args are set to true, the
7130         main window still gets the event fired, but it doesn't not close.
7131         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7132         handler, instead of when the button is clicked, so cancelling the
7133         close works correctly.
7134         * ComboBox.cs: Send the mouse down to the scrollbar.
7135
7136 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7137
7138         * ListBox.cs: When passing 'null' to SelectedItem,
7139         set SelectedIndex to -1, to unselect items. This is the
7140         observed behaviour in .Net.
7141
7142 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7143
7144         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7145           MS flags saying there won't be any. (fixes #78800)
7146         * Control.cs (HandleClick): Made virtual
7147
7148 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7149
7150         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7151           cultures. Fixed bug #78399.
7152
7153 2006-08-16  Jackson Harper  <jackson@ximian.com>
7154
7155         * Form.cs: Use the MdiClients MdiChildren property to access
7156         MdiChildren instead of creating the array from the child controls.
7157         * MdiClient.cs: Maintain a separate array of the mdi children, so
7158         that insertion order is maintained when the Z-order is changed.
7159
7160 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7161
7162         * ListView.cs : add an ItemComparer and default to it for sorting.
7163         Fixes #79076, but sorting needs a complete overhaul to be compat with
7164         MS.
7165
7166 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7167
7168         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7169
7170 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7171
7172         * Hwnd.cs (Mapped): Properly traverse the tree
7173
7174 2006-08-15  Chris Toshok  <toshok@ximian.com>
7175
7176         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7177         pass manager.Current.GetType() to ParseData.  It has to be the
7178         property type.  So, hold off doing the ParseData until we're in
7179         SetPropertyValue where we know the type.  This fixes the crash in
7180         #78821 but the textbox is still empty.
7181
7182 2006-08-15  Chris Toshok  <toshok@ximian.com>
7183
7184         * DataGrid.cs:
7185         - when we're scrolling, only call Edit() again if the
7186         current cell is still unobscured. Fixes bug #78927.
7187         - when handling mousedown on a cell, ensure the cell is visible
7188         before calling Edit.
7189         - remove the properties from DataGridRow, and remove the
7190         DataGridParentRow class altogether.
7191         
7192
7193 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7194
7195         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7196           fire OnTextChanged by ourselves. There's no point calling base,
7197           we don't set the base value anywhere else. Fixes #78773.
7198
7199 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7200
7201         * ListBox.cs: Call CollectionChanged when modifying
7202         an item from Items indexer, to update the actual items
7203         in the list box.
7204
7205 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7206
7207         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7208         to match .Net behaviour.
7209
7210 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7211
7212         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7213
7214 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7215
7216         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7217
7218 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7219
7220         * MessageBox.cs: Prevent potential NRE exception.
7221         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7222
7223 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7224
7225         * MessageBox.cs: Calculate the owner of a messagebox, also make
7226           it topmost. Fixes #78753
7227
7228 2006-08-14  Chris Toshok  <toshok@ximian.com>
7229
7230         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7231         programmatically move windows.  first, set the PPosition hint as
7232         well as the USPosition hint.  Second include some code from pdb
7233         that sets the window type to NORMAL when we set the transient for
7234         hint.  This is because, in the absence of a window type, metacity
7235         thinks any window with TransientFor set is a dialog, and refuses
7236         to let us move it programmatically.  fascists.
7237
7238 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7239
7240         * XplatUIX11.cs: When setting normal hints, take into consideration
7241           an different hints previously set so we don't delete them (fixes #78866)
7242
7243 2006-08-12  Chris Toshok  <toshok@ximian.com>
7244
7245         * ToolBarButton.cs: make Layout return a boolean, if something to
7246         do with the button's layout changed.
7247
7248         * ToolBar.cs:
7249         - add another parameter to Redraw, @force, which all existing
7250           calls set to true.
7251         - make the Layout function return a boolean which is true if the
7252           layout has actually changed.  Redraw now uses this (and @force)
7253           to determine when to invalidate.  At present the only place
7254           where @force can be false is the call from OnResize, when
7255           background_image == null.  So, resizing a toolbar when the
7256           layout doesn't change results in no drawing.
7257
7258 2006-08-12  Chris Toshok  <toshok@ximian.com>
7259
7260         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7261         the VScrollBar and HScrollbar reversed.  oops.
7262
7263         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7264         scrollbars.  we were assigning them twice (once in
7265         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7266         therefore causing two scrollbar resizes (and redraws?) to happen
7267         per grid resize.
7268
7269 2006-08-12  Chris Toshok  <toshok@ximian.com>
7270
7271         * ToolBarButton.cs: redraw the entire button if the theme tells us
7272         to.
7273
7274         * Theme.cs: add ToolBarInvalidateEntireButton.
7275
7276         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7277         buttons, just the border.
7278
7279         * ThemeNice.cs: redraw the entire toolbar button since we need to
7280         draw the highlight image.
7281
7282         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7283         we need to redraw the entire button (not just the border).
7284
7285 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7286
7287         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7288           for vertical bars. Fixes the mismatches shown by #78513
7289
7290 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7291
7292         * FileDialog.cs: If a saved/remembered path doesn't exist
7293           anymore, fall back to "Desktop".
7294
7295 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7296
7297         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7298           parent. It's apparently legal to not have one
7299         * XplatUIX11.cs:
7300           - SetZOrder: Don't try to set Z-Order on an unmapped window
7301           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7302             it unless the coordinates are negative
7303
7304 2006-08-10  Mike Kestner  <mkestner@novell.com>
7305
7306         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7307         when setting to null per msdn docs.  Fixes #78854.
7308
7309 2006-08-10  Chris Toshok  <toshok@ximian.com>
7310
7311         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7312         flickering by setting a clip rectangle on the Graphics when we
7313         need to redraw just a particular menuitem.  Also, rename "OnClick"
7314         to "OnMouseDown" to reflect what it actually is.
7315         
7316         * Form.cs: track the OnMouseDown change.
7317
7318 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7319
7320         * CommonDialog.cs: Properly inherit the CreateParams from the form
7321           and only change what we need. Fixes #78865
7322
7323 2006-08-10  Chris Toshok  <toshok@ximian.com>
7324
7325         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7326         flickering in flat mode (and most of the flickering in general) by
7327         only invalidating the button border (and not the entire rectangle)
7328         when the state changes.  A couple of cases still flicker:
7329         ToggleButtons, and the dropdown arrow case when the user mouse
7330         ups.
7331
7332 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7333
7334         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7335           for german keyboards. Numlock state shouldn't affect the behaviour
7336           of the Del key. Fixes bug #78291.
7337
7338 2006-08-10  Chris Toshok  <toshok@ximian.com>
7339
7340         * ListControl.cs: remove the items.Clear line from BindDataItems,
7341         as this is the first thing done by both subclasses in their
7342         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7343         passed -1, refresh the list.  This gets databinding working when
7344         the datasource is set on the list before the datasource is
7345         populated (as in wf-apps/ReportBuilder.)
7346
7347         * ComboBox.cs: remove the argument to BindDataItems.  This call
7348         should really go away, and be initiated by the ListControl code.
7349
7350         * ListBox.cs: same.
7351
7352 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7353
7354         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7355           if no data is in the document when the control is displayed
7356
7357 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7358
7359         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7360           yes (fixes #78806)
7361         * TextControl.cs: 
7362           - PositionCaret: Allow positioning of caret but don't call methods 
7363             requiring a handle if the window isn't created yet
7364           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7365           - owner_HandleCreated: Don't position the caret, just update it's 
7366             location. User might have already set a different position
7367
7368 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7369
7370         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7371           windows. Screws up the returned coordinates for child windows. 
7372           Fixes #78825. I'm hoping this doesn't break something, since the
7373           code was explicitly put in 8 months ago, but no bug was attached.
7374           Menus still seem to work properly.
7375
7376 2006-08-08  Chris Toshok  <toshok@ximian.com>
7377
7378         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7379         supposed to do - delay data binding until the EndInit call.  Also,
7380         make the table style collection's CollectionChangeAction.Refresh
7381         work properly.
7382
7383         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7384         (with action = Refresh) when a consituent table's MappingName is
7385         changed.
7386
7387 2006-08-08  Chris Toshok  <toshok@ximian.com>
7388
7389         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7390         Invalidate, since changing the text can change the size of the all
7391         toolbar buttons.
7392
7393 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7394
7395         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7396           we don't have it yet
7397
7398 2006-08-08  Chris Toshok  <toshok@ximian.com>
7399
7400         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7401         dialog, as this causes X errors later on, since we actually
7402         destroy the window.  Instead, .Hide() it.
7403
7404 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7405
7406         * ComboBox.cs: Added focus reflection for popup window
7407         * XplatUIX11.cs: 
7408           - Removed transient setting for non-app windows for now, not sure it
7409             was needed
7410           - Fixed logic checking if we have captions when deciding 
7411             override_redirect, WS_CAPTION is two bits and a 0 check was not
7412             sufficient
7413           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7414             complicated
7415         * Form.cs: 
7416           - AddOwnedForm: Don't just add the form to the list, call the property
7417             to ensure the driver is informed about the ownership as well
7418           - CreateHandle: Set the TopMost status in the driver if we have an owner
7419         * XplatUI.cs: Fixed debug statement
7420
7421 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7422         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7423           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7424           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7425           TrackBarRenderer.cs: Make constructor private.
7426         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7427         * ProfessionalColorTable.cs: Make properties virtual.
7428
7429 2006-08-06  Duncan Mak  <duncan@novell.com>
7430
7431         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7432         is not changing.
7433
7434 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7435         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7436           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7437           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7438           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7439           Initial import of new 2.0 classes.
7440
7441 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7442         * Application.cs: Add 2.0 VisualStyles properties.
7443
7444 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7445         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7446           XplatUIX11.cs: Create property to allow access to existing private
7447           variable "themes_enabled"
7448
7449 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7450
7451         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7452         file size, as otherwise our class libraries fail using windows. Fixes
7453         bug #78759.
7454
7455 2006-08-04  Jackson Harper  <jackson@ximian.com>
7456
7457         * Form.cs:
7458         * XplatUIX11.cs: Move the toolwindow window manager creation into
7459         the X11 driver, this way on win32 we can let windows create/handle
7460         the toolwindows.
7461
7462 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7463
7464         * PrintDialog.cs: Remove some redundant checks, add some others,
7465         clean some code, and move the focus to the text boxes when the
7466         values are incorrect.
7467
7468 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7469
7470         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7471
7472 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7473
7474         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7475           handled correctly. Fixes bug #79001.
7476
7477 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7478
7479         * PrintDialog.cs: The "Copies" numeric up down must have
7480         set the Minimum property to 1; only if the value is bigger
7481         than 1, activate "Collate" check box. This is the behaviour of .Net.
7482         Also modify the Document elements only if it is not null.
7483
7484 2006-08-03  Jackson Harper  <jackson@ximian.com>
7485
7486         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7487         length. (We have a larger array then actual node count).
7488                 
7489 2006-08-03  Jackson Harper  <jackson@ximian.com>
7490
7491         * ComboBox.cs: Don't show selection by default.
7492         - The SelectAll isn't needed here, since the focus code should do
7493         that
7494         - DDL style lists to manual selection drawing, so when they
7495         get/lose focus they have to invalidate.
7496
7497 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7498
7499         * TextBoxBase.cs: Don't always show all selections by default.
7500
7501 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7502         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7503           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7504           Fixed various typos.
7505
7506 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7507
7508         * Control.cs: Removing the controls in a ControlCollection with
7509           Clear now hides the controls as expected. Fixes bug #78804. 
7510
7511 2006-08-03  Jackson Harper  <jackson@ximian.com>
7512
7513         * Control.cs: Revert previous focus patch, it breaks reflector.
7514
7515 2006-08-03  Jackson Harper  <jackson@ximian.com>
7516
7517         * ComboBox.cs: Cleanup selection and focus with the combobox.
7518         This also eliminates some duplicated keyboard code, since now
7519         everything is handled by the main class.
7520         - Make list selection work on mouse up instead of down, to match
7521         MS.
7522
7523 2006-08-02  Jackson Harper  <jackson@ximian.com>
7524
7525         * Control.cs: Setting focus needs to go through the whole
7526         selection mechanism.
7527
7528 2006-08-02  Chris Toshok  <toshok@ximian.com>
7529
7530         * PrintPreviewDialog.cs: change MinimumSize to use
7531         base.MinimumSize so it works.
7532
7533 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7534
7535         * TextControl.cs:
7536           - UpdateCaret: Added sanity check in case caret isn't defined yet
7537           - Line.Delete: Now updating selection and caret markers if we're
7538             transfering a node (Properly fixes #78323)
7539           - SetSelectionEnd: Added sanity check
7540         * TextBoxBase.cs: Removed broken attempt to fix #78323
7541
7542 2006-08-01  Chris Toshok  <toshok@ximian.com>
7543
7544         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7545         Close() call is handled in Form, not here.
7546
7547 2006-08-01  Chris Toshok  <toshok@ximian.com>
7548
7549         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7550         layout/rendering.
7551
7552         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7553         for sizes < 100% zoom.  The code now aggressively attempts to keep
7554         from calling document.Print (), and tries not to use the scaling
7555         g.DrawImage whenever possible (it still does if you scale to >
7556         100%, since usually that involves huge images).
7557
7558         * PrintPreviewControl.cs: hook up the close button.
7559
7560 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7561         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7562           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7563           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7564           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7565           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7566           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7567           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7568           Removed [Serializable] for 2.0 Event Handlers.
7569
7570 2006-07-31  Jackson Harper  <jackson@ximian.com>
7571
7572         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7573         * TextControl.cs: Uncomment out the body of this method.
7574
7575 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7576
7577         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7578           standard cursors.
7579
7580 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7581
7582         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7583           that embed TextBox and need selections visible even if textbox is not
7584           focused to enforce that behaviour.
7585         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7586           selection drawing
7587
7588 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7589
7590         * TextControl.cs:
7591           - Added new SetSelectionStart/SetSelectionEnd overloads
7592           - Fixed viewport width assignment to be accurate
7593           - Adjusted alignment line shift calculations to allow cursor on right
7594             aligned lines to be always visible at the right border (like MS)
7595         * TextBoxBase.cs:
7596           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7597           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7598           - CalculateScrollBars: Use ViewPort size instead of window size, to
7599             properly consider space occupied by the border and scrollbars 
7600             (Fixes #78661)
7601           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7602             calculations; no longer leaves artifacts
7603           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7604             calculation bugs (Still missing right/center align calculations)
7605
7606 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7607
7608         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7609           use of both scroll rect and clip rect, as they do the same.
7610
7611 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7612
7613         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7614           in the event handler (fixes #78912)
7615
7616 2006-07-31  Chris Toshok  <toshok@ximian.com>
7617
7618         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7619         grid.ListManager.Count, since grid.ListManager might be null.
7620         This of course begs the question "why are we drawing rows for a
7621         grid with no list manager (and therefor no rows)?"  Fixes the
7622         crash in bug #78929.
7623
7624 2006-07-31  Chris Toshok  <toshok@ximian.com>
7625
7626         * RelatedPropertyManager.cs: Don't always chain up to the parent
7627         ctor.  instead, call SetDataSource if the parent's position is !=
7628         -1.  Fixes the crash in #78822.
7629
7630 2006-07-31  Chris Toshok  <toshok@ximian.com>
7631
7632         * DataGrid.cs (get_ListManager): use field instead of property
7633         accessors for datasource and datamember.
7634         (RowsCount): make internal again.
7635         (OnMouseDown): end edits before resizing columns/rows.
7636         (OnMouseUp): restart edits after resizing columns/rows.
7637
7638 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7639
7640         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7641           This fixes the situation where the last set cursor is displayed
7642           whenever the mouse is over scrollbars.
7643
7644 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7645
7646         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7647         Document properties, as well as initial values.
7648
7649 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7650
7651         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7652           and ClientEdge results in a 3-pixel border, which is
7653           wrong.
7654
7655 2006-07-28  Jackson Harper  <jackson@ximian.com>
7656
7657         * TreeNodeCollection.cs: Fix the clear method.
7658         - Fix the Shrink also
7659
7660 2006-07-27  Jackson Harper  <jackson@ximian.com>
7661
7662         * TreeView.cs: Make sure the visible order is computed when we
7663         attempt to size the scrollbars (for trees that mess with the
7664         scrolling when they shouldn't.
7665         - Make sure to give the scrollbars valid values.
7666
7667 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7668
7669         * XplatUIX11.cs: Move motion compression code to where it
7670           has less performance impact
7671
7672 2006-07-26  Jackson Harper  <jackson@ximian.com>
7673
7674         * UpDownBase.cs: When the control is selected make the child
7675         controls non selectable, so that a click on them won't do a
7676         focus/unfocus cycle.
7677         - Don't give focus to the text box when the spinner is selected.
7678         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7679
7680 2006-07-26  Chris Toshok  <toshok@ximian.com>
7681
7682         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7683         satisfied with this solution.  If the bitmaps are small, we should
7684         just cache them in the PrintPreviewDialog and draw them here.
7685         Also, the layout is broken for the 2-up and 3-up cases.
7686
7687         * Theme.cs: add PrintPReviewControlPaint.
7688
7689         * PrintPreviewDialog.cs: first pass implementation.
7690
7691         * PrintPreviewControl.cs: first pass implementation.  No
7692         scrollbars yet.
7693
7694         * PrintDialog.cs: only validate fields if that particular portion
7695         of the UI is enabled.  Also, set the document's controller to a
7696         PrintControllerWithStatusDialog wrapping the document's print
7697         controller.
7698
7699         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7700         bring up a SaveFileDialog (i hope we don't want to match the
7701         behavior of the crappy windows file entry) and set the
7702         PrinterSettings.PrintFileName accordingly.
7703
7704 2006-07-26  Jackson Harper  <jackson@ximian.com>
7705
7706         * ContainerControl.cs: Add a field that disables auto selecting
7707         the next control in a container when the container is activated.
7708         * UpDownBase.cs: Don't select the text box when the up down is
7709         selected.
7710
7711 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7712
7713         * XEventQueue.cs: Added methods for peeking (used for compression
7714           of successive events)
7715         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7716           mouse move events (fixes #78732)
7717
7718 2006-07-25  Jackson Harper  <jackson@ximian.com>
7719
7720         * UpDownBase.cs: Use an internal class for the textbox so that we
7721         can control focus.  the updown control should always have focus,
7722         if either the text area or the buttons are clicked.
7723         - Send the key messages to the textbox, since it never actually
7724         has focus
7725         - Activate and decativate the textbox caret.
7726
7727 2006-07-24  Jackson Harper  <jackson@ximian.com>
7728
7729         * Control.cs: Use the directed select when selecting a control,
7730         this way the container controls override will get called and the
7731         whole ActiveControl chain will get triggered.  TODO: probably need
7732         to make sure this gets done everywhere instead of the old
7733         Select(Control).
7734         * ContainerControl.cs: Implement the directed Select method to
7735         find and activate the correct child control.    
7736         
7737 2006-07-22  Mike Kestner  <mkestner@novell.com>
7738
7739         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7740         menu handling code so that clicks without a grab work too.
7741         [Fixes #78914]
7742
7743 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7744
7745         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7746           Added some small optimizations.
7747
7748 2006-07-21  Matt Hargett  <matt@use.net>
7749
7750         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7751
7752 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7753
7754         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7755           tests pass and match MS in some strange border cases.
7756
7757 2006-07-21  Chris Toshok  <toshok@ximian.com>
7758
7759         * ThemeWin32Classic.cs: handle drawing of the relation links and
7760         parent row buttons.
7761
7762         * Theme.cs: change args to DataGridPaintParentRow.
7763
7764         * DataGrid.cs: Don't use controls for the relation links and
7765         parent buttons, so we have to handle all their interactions in
7766         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7767         when we're navigating through child tables, so we can reinstate
7768         selection, expanded state, current cell, etc.
7769
7770 2006-07-20  Chris Toshok  <toshok@ximian.com>
7771
7772         * ToolBar.cs: When we redraw a button, for whatever reason,
7773         there's no reason to redraw the entire toolbar.  Also, don't call
7774         Control.Refresh from within Redraw, as it's much heavier than
7775         Invalidate (which is really what we want).
7776
7777 2006-07-20  Chris Toshok  <toshok@ximian.com>
7778
7779         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7780         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7781         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7782         traces from within a debug IBindingList datasource
7783         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7784         to work in a similar fashion.
7785
7786 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7787
7788         * ListBox.cs: Don't call Sort () when setting 
7789         the Sorted property to false (avoid an unnecessary sort).
7790
7791 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7792
7793         * ListControl.cs: DataSource should throw an ArgumentException
7794         instead of a normal exception when the argument is not of the 
7795         correct type.
7796
7797 2006-07-20  Mike Kestner  <mkestner@novell.com>
7798
7799         * Control.cs: add InternalPreProcessMessage to allow us to steal
7800         key events before MWF gets its paws on them.  Adapted from a
7801         suggestion by eno.
7802         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7803         up/down/left/right navigation. Override the new internal control
7804         method to steal the events since they never make it to WndProc.
7805         * ToolBarButton.cs: don't worry about pushed when setting hilight
7806         since the drawing code prefers pushed to hilight. Invalidate on 
7807         Hilight changes. Fixes #78547 and #78525.
7808
7809 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7810
7811         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7812           the canvas size. Fixes #78868
7813
7814 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7815
7816         * Splitter.cs: Track requested split position until first layout
7817           is performed. Fixes #78871
7818
7819 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7820
7821         * Application.cs: Removed code that forces 1.x for the version
7822           number if the version started with 0. Not sure why that code was
7823           there and I couldn't find any bugs that indicated we needed it.
7824           Fixes #78869
7825
7826 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7827
7828         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7829           ResetDefaults(), just write some output to the console until it's
7830           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7831
7832 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7833
7834         * PropertyGridView.cs: set StartPosition of drop down forms
7835         so they appear in correct initial spot.  Fixes #78190.
7836
7837 2006-07-19  Mike Kestner  <mkestner@novell.com>
7838
7839         * ThemeWin32Classic.cs: use parent background color when drawing
7840         flat toolbars.  Restructure the conditionals to make sure non-flat
7841         non-Divider toolbars are filled too.  Fixes #78837.
7842
7843 2006-07-19  Mike Kestner  <mkestner@novell.com>
7844
7845         * ListBox.cs: Sort on collection changes even if the handle
7846         isn't created yet.  Fixes #78813.
7847
7848 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7849
7850         * ListControl.cs: DisplayMember should never be null,
7851         and now we assign String.Empty when null is passed to it (this
7852         is the .Net way).
7853
7854 2006-07-17  Mike Kestner  <mkestner@novell.com>
7855
7856         * ListViewItem.cs: restructure Font and subitem Font handling 
7857         to hold a specific font and refer back to owner on null.
7858         Fixes #78761.
7859
7860 2006-07-17  Mike Kestner  <mkestner@novell.com>
7861
7862         * ToolBar.cs: bandaid for side-effect of previous patch which was
7863         discarding explicit heights for non-AutoSize toolbars.  Need to
7864         extend my format tester to deal with AutoSize=false. Fixes #78864.
7865
7866 2006-07-15  Jackson Harper  <jackson@ximian.com>
7867
7868         * LabelEditTextBox.cs:
7869         * TreeView.cs: Use a new LabelEdit class for node editing, this
7870         class automatically 'closes' itself when it gets the enter key or
7871         loses focus.
7872         - Use the client rectangle when setting the trees scrollbars, so
7873         border style is taken into account.
7874         
7875 2006-07-14  Jackson Harper  <jackson@ximian.com>
7876
7877         * TreeNode.cs:
7878         * TreeView.cs: Make the editing work similar to MSs, firing the
7879         events correctly and ending edits correctly.
7880
7881 2006-07-14  Mike Kestner  <mkestner@novell.com>
7882
7883         * ToolBarButton.cs:
7884         * ToolBar.cs: layout restructuring and redraw enhancements to support
7885         formatting changes gracefully, like setting TextAlign, ImageList, 
7886         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7887         of the MS controls.  Things like flat toolbars ignoring button size
7888         but becoming constant sized at the largest button's size.  Normal
7889         toolbars with an image set cannot be shrunk smaller than the image,
7890         but text can be clipped/ignored.
7891         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7892         is zero.  Seems like DrawString should be smart enough to not put
7893         anything on screen though. Also trim labels and ellipsize at the char
7894         boundary, not word.
7895         Fixes #78711 and #78483.
7896
7897 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7898
7899         * FolderBrowserDialog.cs: Disable "New Folder" button and
7900           "New Folder" contextmenu menuitem if a folder like "My Computer"
7901           is selected.
7902
7903 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7904
7905         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7906         * FolderBrowserDialog.cs:
7907           - Use MWFConfig to store and read size and position settings
7908           - Added code to create a new folder (button or context menu).
7909             Use TreeView labeledit to change the name of the new folder.
7910
7911 2006-07-14  Jackson Harper  <jackson@ximian.com>
7912
7913         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7914         when the tree is scrolled we end editing.
7915
7916 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7917
7918         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7919           Down arrows
7920
7921 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7922
7923         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7924         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7925         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7926         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7927         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7928         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7929         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7930         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7931         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7932         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7933         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7934         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7935         ListViewItemSelectionChangedEventHandler.cs,
7936         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7937         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7938         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7939         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7940         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7941         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7942         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7943         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7944         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7945         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7946         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7947         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7948         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7949         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7950         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7951         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7952         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7953         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7954         WebBrowserNavigatingEventHandler.cs, 
7955         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7956
7957 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7958
7959         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7960         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7961         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7962         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7963         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7964         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7965         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7966         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
7967         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
7968         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
7969         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
7970         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
7971         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
7972         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
7973         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
7974         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
7975         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
7976         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
7977         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
7978         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
7979         ListViewItemStates.cs, MaskFormat.cs: Added
7980
7981 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
7982
7983         * PropertyGridView.cs: Fix keyboard navigation of drop down.
7984         Patch from eno for bug 78558.
7985         
7986 2006-07-13  Jackson Harper  <jackson@ximian.com>
7987
7988         * TreeView.cs: When an edit is finished make sure that the
7989         selected node is visible.
7990         - When setting the top/bottom use the scrollbars is_visible, so
7991         everything will be set correctly even if the tree isn't visible
7992         yet.
7993
7994 2006-07-13  Jackson Harper  <jackson@ximian.com>
7995
7996         * ComboBox.cs: Revert the item->index part of my previous patch.
7997         * TreeView.cs: Use LostFocus instead of Leave for detecting when
7998         the edit box has lost focus (duh).
7999         - Just make the edit box not visible when we get return, that will
8000         take the focus, which will call EndEdit
8001         * TreeNode.cs When we start editing, notify the treeview.
8002
8003 2006-07-12  Jackson Harper  <jackson@ximian.com>
8004
8005         * ComboBox.cs: Clear out old items before setting the item list.
8006         This prevents databound controls from having their items added
8007         twice.
8008         - Switch the combobox to use indices whereever possible instead of
8009         using Item's.  This allows usto navigate through lists that have
8010         more then one item with the same string value (ie a, b, b, a).
8011         - Scroll the listboxes scrollbar when a non visible item is
8012         highlighted
8013         - Allow keypress to cycle through all the possible values. For
8014         example if you have b1, b2, b3 and hold down the B key all the
8015         values will be cycled through.
8016         
8017 2006-07-12  Jackson Harper  <jackson@ximian.com>
8018
8019         * TextBoxBase.cs:
8020         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8021         this using the internal methods.
8022         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8023         controls to "override" OnGotFocus and change focus behavior if
8024         needed.
8025         - Same thing for LostFocus
8026         * ComboBox.cs: Pass off focus to the text control properly.
8027
8028 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8029
8030         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8031         * FolderBrowserDialog.cs: Almost a complete rewrite.
8032           - Better support for Environment.Specialfolders
8033           - Added support for MWFVFS
8034           - Made setting SelectedPath work
8035
8036 2006-07-12  Jackson Harper  <jackson@ximian.com>
8037
8038         * Control.cs: Optimze getting all the controls.
8039
8040 2006-07-11  Jackson Harper  <jackson@ximian.com>
8041
8042         * ContainerControl.cs: Override SETFOCUS in the container control,
8043         so that it is not selected on mouse click.
8044
8045 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8046
8047         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8048           Hopefully we will have a better way once all of focus is complete.
8049
8050 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8051
8052         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8053           a compile error with csc.
8054
8055 2006-07-11  Jackson Harper  <jackson@ximian.com>
8056
8057         * Control.cs: When hiding a control only select the next control
8058         if the current control was focused.
8059         - Don't handle enter/leave when setting/killing focus, this is
8060         done by the container control.
8061         - Remove is_selected, it's not needed anymore.
8062         - Add utility methods for selecting a child control, and for
8063         firing the Enter/Leave events.
8064         * ContainerControl.cs: When a control is activated fire the
8065         enter/leave events.
8066         - Don't wrap when processing the tab key, so that focus can be
8067         moved outside of the container.
8068         - Use the correct active control
8069
8070 2006-07-11  Jackson Harper  <jackson@ximian.com>
8071
8072         * ComboBox.cs: Remove some debug code that was blinding me.
8073         * UpDownBase.cs: These controls actually aren't implicit, they are
8074         visible to the user.
8075
8076 2006-07-10  Chris Toshok  <toshok@ximian.com>
8077
8078         * DataGrid.cs: move back to the is_adding boolean field.  god i
8079         hate this is_editing/is_adding/is_changing stuff.
8080
8081 2006-07-10  Chris Toshok  <toshok@ximian.com>
8082
8083         * DataGridTableStyle.cs: just check if the property type is bool.
8084         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8085         Don't use CanRenderType.
8086
8087         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8088         if our text == NullText.  Remove CanRenderType.
8089
8090         * DataGridBoolColumn.cs: nuke CanRenderType.
8091
8092         * DataGrid.cs: reenable some code to end the current edit inside
8093         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8094         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8095         Also, remove the visible_row_count arg from CalcRowHeaders, since
8096         we don't need to worry about the actual height of the area.
8097
8098 2006-07-10  Chris Toshok  <toshok@ximian.com>
8099
8100         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8101         mode, just return.
8102
8103         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8104         the real sense of the IsInEditOrNavigateMode property (true =
8105         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8106
8107         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8108         column style exists, we still need to set its property descriptor
8109         to match up with our list manager.
8110
8111 2006-07-10  Chris Toshok  <toshok@ximian.com>
8112
8113         * ThemeWin32Classic.cs: implement the new row/header painting
8114         approach.  The parent row painting will likely go away and
8115         replaced with label controls, but the rest seems to work ok (and
8116         efficiently).
8117
8118         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8119         the row headers as a block now.  Instead we draw them in the
8120         normal draw-row loop.  Add some calls for drawing parent rows and
8121         relation rows.
8122
8123         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8124         a default table style.  Set the defaults from ThemeEngine.Current,
8125         not SystemColors.  Fix lots of misc issues with property setters.
8126
8127         * DataGrid.cs: move loads of style information out of this class
8128         as it's being duplicated with DataGridTableStyle.  keep track of a
8129         special DataGridTableStyle for the properties we used to mirror
8130         here.  Switch all the style properties to access this table style
8131         instead of instance fields of this class.  Also add a internal
8132         class to represent parent rows (more needs to be stored here, like
8133         the selection state from the parent table, as well as the
8134         expansion state.)  Also, for datasources with relations, do the
8135         right thing for collapse/expand, and add support for the
8136         navigation/parent row buttons.
8137
8138         Lastly, fix the crash in the 1.1.16 build.
8139
8140         * GridTableStylesCollection.cs: make the explicit interface
8141         implementations call the class's methods as opposed to duplicating
8142         them.
8143
8144         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8145         0 so the text doesn't jump around when we move the cursor.
8146
8147 2006-07-10  Jackson Harper  <jackson@ximian.com>
8148
8149         * TextBoxBase.cs:
8150         * ListBox.cs: Match MS's ToString (this makes debugging focus
8151         stuff infinitely easier).
8152
8153 2006-07-10  Jackson Harper  <jackson@ximian.com>
8154
8155         * Control.cs (SelectNextControl): When checking the control's
8156         parent use this instead of ctrl.parent so that null can be passed
8157         to SelectNextControl. (I have unit tests for this).
8158         - Remove unused var.
8159
8160 2006-07-10  Chris Toshok  <toshok@ximian.com>
8161
8162         * CurrencyManager.cs: correct one regression, the removal of the
8163         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8164         Refresh() correctly, and fix some event emission in
8165         ListChangedHandler.
8166
8167 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8168
8169         * FileDialog.cs: Don't use brackets for new folders if they exist
8170           under *nix. Instead use -(number of existing folders +1).
8171
8172 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8173
8174         * FileDialog.cs:
8175           - Fixed really nasty bug #78771
8176           - Don't block the whole GUI when reading directories with a lot of
8177             entries. Use an other thread instead and call BeginInvoke to
8178             update the ListView in MWFFileView
8179
8180 2006-07-07  Chris Toshok  <toshok@ximian.com>
8181
8182         * Control.cs (Dispose): release any Capture when disposing.
8183
8184 2006-07-07  Chris Toshok  <toshok@ximian.com>
8185
8186         * LinkLabel.cs (Select): if we chain up to the parent, set
8187         focused_index to -1 so we'll search for the first available link
8188         the next time the user tabs into us.  Also, if the direction is
8189         backward and focused_index == -1, start the search from the last
8190         element.
8191
8192 2006-07-07  Chris Toshok  <toshok@ximian.com>
8193
8194         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8195         is beyond the end of the text, don't do anything.
8196         (CreateLinkPieces): set our ControlStyles.Selectable based on
8197         whether or not we have any links.
8198         (Link.Invalidate): use a loop instead of foreach.
8199         (Link.set_Start): null out owner.sorted_links so it'll be
8200         recreated by CreateLinkPieces.
8201
8202 2006-07-06  Chris Toshok  <toshok@ximian.com>
8203
8204         * LinkLabel.cs: revert the SetStyle change.
8205
8206 2006-07-06  Chris Toshok  <toshok@ximian.com>
8207
8208         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8209         (OnEnableChanged): s/Refresh/Invalidate
8210         (OnGotFocus): if we have a focused index already, refocus it (so
8211         if we mouse out/in to the window it'll focus the right link).
8212         (OnKeyDown): move the tab handling out of here.
8213         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8214         when we lose focus.
8215         (OnMouseDown): don't Capture here - Control handles it.  Also,
8216         focus the active link.
8217         (OnMouseUp): don't deal with Capture.
8218         (OnPaintBackgroundInternal): remove.
8219         (OnTextAlignChanged): CreateLinkPieces before calling the
8220         superclass's method.
8221         (OnTextChanged): call CreateLinkPieces before calling superclass's
8222         method.
8223         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8224         move around.
8225         (Select): implement this, moving the selection between different
8226         links, and call parent.SelectNextControl if we don't have another
8227         link to focus in the given direction.
8228         (CreateLinkPieces): call Invalidate instead of Refresh.
8229         
8230 2006-07-06  Chris Toshok  <toshok@ximian.com>
8231
8232         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8233         new LinkLabel internals.
8234
8235         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8236         over pieces looking for active/focused/etc links.  also, deal with
8237         runs of text (and links) with embedded \n's in them, and use
8238         MeasureCharacterRanges instead of MeasureString to figure out the
8239         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8240         two-step.
8241
8242 2006-07-04  Jackson Harper  <jackson@ximian.com>
8243
8244         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8245         XKB or key auto repeat, do it manually.  Without key auto repeat,
8246         when a key is held down we get key press, key release, key press,
8247         key release, ... with auto repeat we get key press, key press, key
8248         press ..., and then a release when the key is actually released.
8249
8250 2006-07-03  Jackson Harper  <jackson@ximian.com>
8251
8252         * TabControl.cs:
8253         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8254         rules, they are always control color regardless of the background
8255         color.
8256
8257 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8258
8259         * FileDialog.cs: Added internal class MWFConfig.
8260           Removed Registry support and replaced it with support for the new
8261           MWFConfig class. See MWFConfig comments for more information.
8262
8263 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8264
8265         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8266           rectangle. Added some patches from eno from bug #78490 and fixed
8267           the arrow position for small up and down CPDrawScrollButtons.
8268
8269 2006-06-30  Jackson Harper  <jackson@ximian.com>
8270
8271         * InternalWindowManager.cs: Remove some debug code.
8272         * Form.cs: When an MdiParent is set to null, the window is
8273         "detatched" and becomes a normal window.
8274         * MdiClient.cs: Don't bring the new child form to the front until
8275         it is activated (setting it as active does this), this makes the
8276         previously active forms titlebar get redrawn as inactive.
8277
8278 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8279
8280         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8281           with later controls
8282
8283 2006-06-29  Mike Kestner  <mkestner@novell.com>
8284
8285         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8286         arrow in keynav state.  Fixes #78682.
8287
8288 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8289
8290         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8291           order (fixes #78393)
8292
8293 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8294
8295         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8296           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8297           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8298           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8299           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8300           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8301           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8302           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8303           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8304           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8305           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8306           values)
8307
8308 2006-06-28  Mike Kestner  <mkestner@novell.com>
8309
8310         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8311
8312 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8313
8314         * PropertyGrid.cs,
8315           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8316           item lines from other area (It also makes BackColor consistent and
8317           compatible with .NET). Fixed bug #78564.
8318
8319 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8320
8321         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8322         Patch from Eno for #78555.
8323
8324 2006-06-27  Chris Toshok  <toshok@ximian.com>
8325
8326         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8327
8328         * DataGridColumnStyle.cs: same.
8329
8330         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8331         
8332         * DataGridDrawingLogic.cs: nuke.
8333
8334 2006-06-27  Chris Toshok  <toshok@ximian.com>
8335
8336         * DataGridTableStyle.cs: clean up the constructors, and build the
8337         list of child relations for this table.  I have no idea if this is
8338         where we should be doing it (it probably isn't), but since we're
8339         already iterating over the properties..
8340
8341         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8342         struct and array for keeping track of row information, similar to
8343         what's shown in a hack on
8344         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8345
8346         * Theme.cs: be consistent about the naming of DataGrid methods,
8347         prefering ColumnWidths and RowHeights over columnsWidths and
8348         RowsHeights.
8349
8350         * ThemeWin32Classic.cs: same, and also add support for variable
8351         sized rows (and the +/- expansion icons for related rows).
8352
8353 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8354
8355         * TextBoxBase.cs: Applied Eno's patch from #78660
8356
8357 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8358
8359         * Form.cs (ScaleCore): We don't want to scale our form if it's
8360           state is minimized or maximized, but we still need to scale our
8361           child windows. Also, added try/finally block to ensure layout
8362           gets reset (Fixes #78697)
8363
8364 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8365
8366         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8367
8368 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8369
8370         * Form.cs: Fixed c+p error and added check to resize form if minimum
8371           size is bigger than current size (Fixes #78709)
8372
8373 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8374
8375         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8376
8377 2006-06-26  Mike Kestner  <mkestner@novell.com>
8378
8379         * ComboBox.cs: only do Keypress handling in the combo when there  
8380         are items in the collection. Fixes #78710.
8381
8382 2006-06-26  Chris Toshok  <toshok@ximian.com>
8383
8384         * Binding.cs: make this work bi-directionally.  also, clear up
8385         other mixups between Push/Pull Data (e.g. we're supposed to pull
8386         data when validating).
8387
8388         * BindingManagerBase.cs: trim some fully qualified collection
8389         types.
8390
8391         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8392
8393 2006-06-23  Chris Toshok  <toshok@ximian.com>
8394
8395         * PropertyManager.cs: It appears (according to the unit tests)
8396         that PropertyManager doesn't use
8397         PropertyDescriptor.AddValueChanged to track propery value changes
8398         in its datasource, but uses the same scheme as Binding, where it
8399         looks for a <Property>Changed event and binds to it.
8400
8401         Also, according to the docs, IsSuspended always returns false for
8402         a property manager with a non-null datasource.
8403
8404 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8405
8406         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8407           need to update the actual DialogResult. (Fixes #78613)
8408
8409 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8410
8411         * Form.cs (ShowDialog): Release any captures before running the
8412           new message pump (fixes #78680)
8413
8414 2006-06-22  Mike Kestner  <mkestner@novell.com>
8415
8416         * ListView.cs: Layout column widths properly in details mode even 
8417         if HeaderStyle.None is set.  Fixes #78691.
8418
8419 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8420
8421         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8422
8423 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8424
8425         * Control.cs (ContainsFocus): Using new driver method to get focused
8426           window, instead of trying to use internal tracking var, which can
8427           recursion issues (Fixes #78685)
8428         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8429           XplatUIWin32.cs: Added GetFocus method to return focused window
8430
8431 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8432
8433         * ColorDialog.cs: when the mouse button is pressed inside the color
8434         matrix, don't let the cursor move out of it until the button is
8435         released, which is the behavior on windows. Changed 'colours' by
8436         'colors' to use the same word consistently.
8437
8438 2006-06-21  Chris Toshok  <toshok@ximian.com>
8439
8440         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8441         child relation and back, using a stack).  Also, remove
8442         GetDataSource and the code that calls it - it's not needed.  Also,
8443         track CurrencyManager.ListName's removal.
8444
8445 2006-06-21  Chris Toshok  <toshok@ximian.com>
8446
8447         * CurrencyManager.cs: push some of the original type checking from
8448         BindingContext.CreateBindingManager to here, and remove some of
8449         the finalType stuff.  Need more tests to make sure I've got the
8450         ListName part right, and we might need more in SetDataSource.
8451
8452         * PropertyManager.cs: add a ctor that takes just the datasource,
8453         and no property name.  Make SetDataSource work with a null
8454         property_name, and make Current return the data_source if the
8455         property descriptor is null.  this makes 'string foo = "hi";
8456         BindingContext[foo].Current' return "hi" as it should.
8457
8458         * RelatedCurrencyManager.cs: make this code more generic - there's
8459         no reason the parent manager has to be CurrencyManager, and
8460         there's no reason to pass the DataRelation.  It suffices to use a
8461         BindingManagerBase and PropetyDescriptor.
8462
8463         * RelatedPropertyManager.cs: make a similar change here.
8464         
8465         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8466         flower I knew it could be.
8467
8468 2006-06-20  Chris Toshok  <toshok@ximian.com>
8469
8470         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8471         data in the source has changed and we need to update the control,
8472         so s/PullData/PushData.
8473
8474         * CurrencyManager.cs: Refresh is meant to update the control from
8475         data in the datasource.  So, s/PullData/PushData.
8476
8477         * BindingContext.cs: add more ugliness (we weren't handling the
8478         case where data_source = DataTable and data_member = column_name).
8479
8480         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8481         from the perspective of the datasource.  PullData pulls from the
8482         control, PushData pushes to the control.
8483
8484 2006-06-20  Chris Toshok  <toshok@ximian.com>
8485
8486         * BindingContext.cs: rewrite the CreateBindingManager code to
8487         handle navigation paths more or less properly.  This could
8488         definitely stand some more work, in particular to push the
8489         recursion up to the toplevel.  But that relies on fixes in other
8490         places (System.Data comes to mind).
8491
8492         Also, move to a flat hashtable (and encode the twolevel nature of
8493         the dictionary into the hash key).  This lets us implement the
8494         IEnumerable.GetEnumerator method.
8495
8496         * RelatedCurrencyManager.cs: new class.  Update our view based on
8497         our relation and our parent CurrencyManager's position.
8498
8499         * CurrencyManager.cs: split out some logic from the ctor into
8500         SetView, so it can be called from the new RelatedCurrencyManager
8501         subclass.
8502
8503         * RelatedPropertyManager.cs: new class.  Update our datasource
8504         based on the position of our parent CurrencyManager.
8505
8506         * PropertyManager.cs: split out some logic from the ctor into
8507         SetDataSource, so it can be called from the new RelatedDataSource
8508         subclass.  Also, make the Current getter return the value
8509         of the PropertyDescriptor, not the data_source.
8510
8511         * Binding.cs: no need to duplicate the string splitting code here.
8512
8513 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8514
8515         * Control.cs:
8516           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8517             of the control is not altered, even though  we might be changing the
8518             internal state of the control (#78458)
8519           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8520             OnEnabledChanged, to allow easy altering of any child window state
8521           - OnEnabledChanged: Added code to enable/disable driver window state
8522           - OnParentEnabledChanged: Instead of firing the event, call 
8523             OnEnabledChanged, which will fire the event and also a) set driver
8524             window state and pass the enabled state to any grandchildren (#78458)
8525
8526 2006-06-19  Jackson Harper  <jackson@ximian.com>
8527
8528         * InternalWindowManager.cs: We don't set the cursor explicitly
8529         thats done via the response to NCHITTESTs.
8530         - Don't need to adjust for titlebar heights anymore, the
8531         coordinates are coming in the correct coordinates now (see peters
8532         last patch).
8533
8534
8535 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8536
8537         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8538           being translated relative to whole window, instead of client window.
8539           That caused broken offsets on mouseclick (and caused gas for our
8540           InternalWindowManager)
8541
8542 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8543
8544         * TextControl.cs:
8545           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8546           - Undo(): Added replay of cursor move on DeleteChars action; added
8547             calling Undo() again if a recorded cursor move is invalid (to
8548             ensure that some action is performed on Undo)
8549         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8550
8551 2006-06-16  Jackson Harper  <jackson@ximian.com>
8552
8553         * MdiClient.cs: Instead of just sizing maximized windows when
8554         there is a resize we also have to adjust the Y of minimized
8555         windows, so they stay pinned to the bottom of the mdi container.
8556         - Eliminate separate tracking of the active control, we can just
8557         get this from the controls collection.
8558         - Paint the decorations for the newly activated titlebar so we get
8559         a pretty blue bar.
8560         * InternalWindowManager.cs:
8561         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8562         even if they are a tool window.
8563         
8564 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8565
8566         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8567           undo buffer, these can happen when text was deleted and the cursor
8568           was recorded first. Since we will also have a recorded cursor
8569           after the delete this is not an issue. (Fixes #78651)
8570
8571 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8572
8573         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8574           instead properly track control states internally (allows us to
8575           remove is_selected from Control)
8576
8577 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8578
8579         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8580         whose width is not a multiple of 8.
8581
8582 2006-06-13  Jackson Harper  <jackson@ximian.com>
8583
8584         * MdiClient.cs:  Only maximize the next child if the current one
8585         is maximized.
8586
8587 2006-06-13  Chris Toshok  <toshok@ximian.com>
8588
8589         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8590         modified.  Also, guard against grid or grid_drawing being null in
8591         Invalidate.
8592
8593         * DataGrid.cs: Reformat tons of getters/setters.  In the
8594         DataMember setter, just call SetNewDataSource instead of
8595         duplicating some of its functionality.  In SetNewDataSource, don't
8596         check ListManager for null, since the property getter creates the
8597         object if needed.
8598
8599         * DataGridTableStyle.cs: don't set TableStyle or call
8600         SetDataGridInternal on the column here, it's done in
8601         GridColumnStylesCollection.Add.
8602
8603         * GridColumnStylesCollection.cs: fix all the explicit interface
8604         implementations to just call our methods.  Nuke AddInternal() and
8605         move the body of it to Add().  Also, add a call to
8606         column.SetDataGridInternal to Add().
8607
8608         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8609         base()+duplicate code.  Also, use the Format property instead of
8610         format to generate an Invalidate ala MS.  Lastly, create the
8611         textbox here, unconditionally.
8612         (set_Format): call Invalidate.
8613         (get_TextBox): no need to call EnsureTextBox.
8614         (Commit): remove the message box.
8615         (Edit) remove the call to EnsureTextBox.
8616         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8617         (EnterNullValue): no need to check textbox for null.
8618         (HideEditBox): no need to check textbox for null.
8619         (SetDataGridInColumn): add the textbox to the grid's controls.
8620         (EnsureTextBox): nuke.
8621         
8622 2006-06-13  Jackson Harper  <jackson@ximian.com>
8623
8624         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8625         and redraw the buttons when needed. Unhook when the window is
8626         unmaximized.
8627         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8628         needs this so that it can redraw its buttons when the menu is
8629         repainted.
8630         * InternalWindowManager.cs:
8631         * Form.cs: The method order has changed for DrawMaximizedButtons,
8632         so that it can be a PaintEventHandler.
8633         
8634 2006-06-13  Jackson Harper  <jackson@ximian.com>
8635
8636         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8637         window is activated and maximized, even if it wasn't before.
8638         - When  a new window is activated repaint the decorations of the
8639         old one, so that it no longer has the Active "look" (the blue
8640         titlebar).
8641         * InternalWindowManager.cs: Open up CreateButtons to base classes
8642         so they can recreate the buttons on state changes.
8643         - If a window is maximized give it all three buttons
8644         * MdiWindowManager.cs: Create the titlebar buttons when the state
8645         is changed, this is needed because a toolwindow will not have all
8646         three buttons until it is maximized.
8647
8648 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8649
8650         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8651           Fixed bug #78609.
8652
8653 2006-06-12  Jackson Harper  <jackson@ximian.com>
8654
8655         * KeysConverter.cs: Make sure we handle the Ctrl special case
8656         if its the only key.
8657         
8658 2006-06-12  Jackson Harper  <jackson@ximian.com>
8659
8660         * Theme.cs: Add a method to get the size of a managed window
8661         toolbar button.
8662         * InternalWindowManager.cs: Remove the ButtonSize property, this
8663         should be retrieved from the theme.
8664         * MdiWindowManager.cs: Get the button size from the theme
8665         * ThemeWin32Classic.cs: Make the method to get the managed window
8666         titlebar button size public.
8667         - Handle the different button sizes of maximized toolwindows
8668         (should match any maximized window).
8669         - Get the titlebar height from the theme, not the WM (which gets
8670         it from the theme).
8671
8672 2006-06-12  Jackson Harper  <jackson@ximian.com>
8673
8674         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8675         event down to the mdi window manager.
8676         - Expose some extra stuff to base classes
8677         - Make sure to end the Capture on an NC Mouse up, so that we can
8678         get double clicks properly, and the sizing doens't stick.
8679         - When doing PointToClient contain it in the workable desktop
8680         area, this prevents windows from changing size when the cursor is
8681         pulled outside of the working area while sizing.
8682         * MdiWindowManager.cs: When we get a double click maximize the
8683         window.
8684         - Reset the cursor after handling mode changes.
8685
8686 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8687
8688         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8689           current desktop, instead of just assuming a 0, 0 origin. This
8690           is needed for our internal window manager, to know the top
8691           margin of the desktop
8692
8693 2006-06-12  Chris Toshok  <toshok@ximian.com>
8694
8695         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8696         we need this to get rid of the selected background in the bool
8697         column.
8698         (CancelEditing): move the ConcedeFocus call to above the Abort
8699         call.  Also, set is_changing to false and invalidate the row
8700         header if we were changing before.
8701         (ProcessKeyPreviewInternal): remove, since noone outside this
8702         class calls it anymore.  Roll the code into ProcessKeyPreview.
8703         (EndEdit): remove the internal version.
8704         (InvalidateCurrentRowHeader): make private.
8705
8706         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8707         Keys.Escape handling (and with it the last call to
8708         DataGrid.EndEdit from outside the class.)
8709
8710
8711 2006-06-12  Chris Toshok  <toshok@ximian.com>
8712
8713         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8714         (OnKeyPress): set isedit to true.
8715         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8716         already handled by the grid.
8717
8718         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8719         right.  ugh.
8720         (set_DataSource): SetDataSource always returns true, so stop
8721         putting it in an if statement.
8722         (EndEdit): get rid of some {}'s
8723         (ProcessGridKey): return true in case Keys.Escape.
8724         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8725         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8726         PositionChanged, stopped connecting to CurrentChanged.
8727         (GetDataSource): simplify this a bunch.
8728         (SetDataSource): change return type from bool to void.
8729         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8730         to this, and make sure we don't set ListManager.Position inside
8731         set_CurrentCell.
8732         (OnListManagerItemChanged): if we're passed an actual index,
8733         redraw that row.
8734
8735         * CurrencyManager.cs (set_Position): don't call PullData here.
8736
8737 2006-06-09  Jackson Harper  <jackson@ximian.com>
8738
8739         * TreeNode.cs:  Recalculate the visible order before doing the
8740         Expand/Collapse Below calls, because those calls generate an
8741         expose.
8742         - Reduce calls to the TreeView property, which is mildly expensive
8743         by using a local var.
8744         * Form.cs: Layout the MDI child windows when creating the parent
8745         form.
8746         - Don't use the internal constructor anymore
8747         * MdiClient.cs: use the parent form width/height (if available)
8748         when laying out the child windows, we do this because the
8749         mdiclient isn't docked yet when the initial layout is done.
8750         - Don't need an internal constructor anymore.
8751
8752 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8753
8754         * FileDialog.cs: handle access errors when trying to create a folder
8755         or changing to a directory. No need to initialize out parameters.
8756
8757 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8758
8759         * FileDialog.cs: Append a number when creating a new folder if the
8760           folder already exists (use parenthesis instead of square brackets)
8761
8762 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8763
8764         * FileDialog.cs:
8765           - Disabled registry support for windows and added better registry
8766             error checking for other systems (need to investigate why it
8767             works perfectly on my system)
8768           - If a folder already exist show an error MessageBox instead of
8769             trying to create an indexed name.
8770           - Fixed a non intentional typo.
8771
8772 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8773
8774         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8775
8776 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8777
8778         * FileDialog.cs: When creating a new folder don't crash if the
8779           folder already exists.
8780
8781 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8782
8783         * FileDialog.cs: Allmost a complete rewrite.
8784           - added a "virtual" file system that handles the differences
8785             between unix and windows file systems (especially the directory
8786             structure). Moved most of the directory and file handling code
8787             into the vfs.
8788             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8789             UnixFileSystem and FSEntry.
8790           - Recently used folder/directory, size, location and used file names
8791             (file name ComboBox) are now stored in the registry and get read
8792             before the dialog shows up (fixes part 6 of bug #78446).
8793           - Creation of new folders/directories is now possible (context menu
8794             or ToolBar). Added TextEntryDialog for this that fills in the gap
8795             until ListView.LabelEdit works.
8796           - Fixed cursor handling (bug #78527) and focus handling for
8797             PopupButtonPanel
8798           - Various "Search in" ComboBox enhancements. The content of the
8799             dropdown listbox now almost matches ms.
8800           - Changed the behaviour when the user switches to SpecialFolder
8801             Recent to show the ListView in View.Details.
8802           - Beside using the ToolBar to change the View property of the
8803             file ListView it is now possible to use the context menu too.
8804
8805 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8806
8807         * ComboBox.cs: Don't create a new ObjectCollection when an item
8808           gets inserted. Just insert the item in the existing object_items
8809           ArrayList.
8810
8811 2006-06-08  Jackson Harper  <jackson@ximian.com>
8812
8813         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8814         that the treeview and root node checks are done also, this fixes a
8815         regression i caused in the unit tests.
8816
8817 2006-06-07  Wade Berrier <wberrier@novell.com> 
8818
8819         * RichTextBox.cs: More ISO8859-1 -> unicode
8820
8821 2006-06-07  Mike Kestner  <mkestner@novell.com>
8822
8823         * ComboBox.cs : use items to hold highlight/selection so that
8824         collection insertions don't require synchronization.
8825
8826 2006-06-07  Jackson Harper  <jackson@ximian.com>
8827
8828         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8829         routine.  We now always keep the sized edge at the cursor instead
8830         of computing movement and adjusting rects.  There is one buglet
8831         with this method though when the cursor is moved over area that
8832         the window can not expand too (such as the toolbars on the desktop).
8833
8834 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8835
8836         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8837         here. Fixes crash on startup in AlbumSurfer.
8838
8839 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8840
8841         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8842           values
8843
8844 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8845
8846         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8847         statement to avoid calling XNextEvent which will block if another thread
8848         took the event that we were expecting. Fixes bug #78605.
8849
8850 2006-06-07  Mike Kestner  <mkestner@novell.com>
8851
8852         * ListView.cs : isolated checkbox clicking from the selection logic.
8853         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8854
8855 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8856
8857         * Form.cs: Check that the value passed to Form.DialogResult
8858         is a valid enum value.
8859
8860 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8861
8862         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8863         Computer'. Clicking it in the network view goes to 'My Computer'.
8864         Added CIFS filesystem type. Display the mount point of filesystems.
8865         Avoid duplicate mount points (happens for me with CIFS);
8866
8867 2006-06-06  Jackson Harper  <jackson@ximian.com>
8868
8869         * InternalWindowManager.cs: Draw the maximized windows buttons
8870         when resizing.
8871
8872 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8873
8874         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8875         all other dialogs. Fixes bug #78585.
8876
8877 2006-06-06  Mike Kestner  <mkestner@novell.com>
8878
8879         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8880         Only invalidate checkbox on checkstate changes to avoid flicker.
8881         * ListBox.cs : avoid unselect/select when clicking selected item.
8882         avoid reselection flicker for already multiselected items.
8883         Fixes #78382.
8884
8885 2006-06-06  Jackson Harper  <jackson@ximian.com>
8886
8887         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8888         the parent form so that the menu is removed if needed.
8889
8890 2006-06-06  Mike Kestner  <mkestner@novell.com>
8891
8892         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8893         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8894
8895 2006-06-06  Mike Kestner  <mkestner@novell.com>
8896
8897         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8898
8899
8900 2006-06-06  Jackson Harper  <jackson@ximian.com>
8901
8902         * Control.cs: Use the property (instead of the field) to get the
8903         default cursor so it is instantiated correctly.
8904         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8905         resizes so we need to manually repaint the window decorations here.
8906         - Set the titlebar button locations as soon as they are created,
8907         otherwise they are not set correctly on win32.
8908         
8909 2006-06-06  Chris Toshok  <toshok@ximian.com>
8910
8911         * CurrencyManager.cs (set_Position): call PullData before
8912         OnCurrentChanged.
8913         (AddNew): after calling IBindingList.AddNew, update our
8914         listposition, and call OnCurrentChanged/OnPositionChanged (without
8915         calling PullData).
8916         (OnCurrentChanged): remove the call to PullData from here.
8917         (OnItemChanged): remove the call to PushData from here.
8918         (OnPositionChanged): change the test from == null to != null to
8919         match the other methods.
8920         (ListChangedHandler): the grossest part of the patch.  Implement
8921         this such that it passes the unit tests in CurrencyManagerTest and
8922         the output more or less matches that of MS's implementation.
8923  
8924 2006-06-06  Mike Kestner  <mkestner@novell.com>
8925
8926         * ListView.cs : only update check state on single click.
8927         * ThemeWin32Classic.cs : fix focus drawing for details view without
8928         fullrowselect.  Fixes #78454.
8929         * XplatUIX11.cs : fix for double click emission.
8930
8931 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8932
8933         * PropertyGridView.cs : Applied Atsushi's patch to fix
8934         font dialog bug  (#78197).
8935
8936 2006-06-05  Jackson Harper  <jackson@ximian.com>
8937
8938         * TreeNode.cs: Compute the next node for expanding/collapsing
8939         correctly. We now factor in nodes without a NextNode
8940         correctly. (Fixes somes cases in nunit-gui).
8941         * InternalWindowManager.cs: Set the bounds when updating the
8942         virtual position of a tool window.
8943         
8944 2006-06-05  Chris Toshok  <toshok@ximian.com>
8945
8946         * DataGrid.cs: rename cached_currencymgr to list_manager.
8947         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8948         some.
8949         (CurrentRow, CurrentColumn): single accessors so we can make the
8950         cursor movement code a lot easier to understand.
8951         (CurrentRowIndex): implement this in terms of CurrentRow.
8952         (BeginEdit): clean this up a bit.
8953         (CancelEditing): sort out the is_editing/is_changing/is_adding
8954         stuff a little.
8955         (EndEdit): minor changes.
8956         (OnKeyDown): add a comment about a (most likely) unnecessary
8957         check.
8958         (OnMouseDown): cancel editing when we click on a row header.  And
8959         use the CurrentRow setter, not CurrentCell.
8960         (ProcessDialogKey): directly call ProcessGridKey.
8961         (UpdateSelectionAfterCursorMove): factor out this common block of
8962         code (it's used everywhere that we move the cursor by updating row
8963         or column).
8964         (ProcessGridKey): pretty substantial overhaul.  Use the
8965         CurrentRow/CurrentColumn properties to make the code a lot more
8966         readable.  Only use the CurrentCell property when we have to
8967         modify both row and column at once.  Tab behavior is still broken,
8968         and Delete is untested.
8969         (Select): if we have no selected rows, set selection_start to
8970         @row.
8971         (EditCurrentCell): rename EditCell this.  It was only ever invoked
8972         with CurrentCell as the arg, so drop the arg and rename it.
8973
8974         * DataGridColumnStyle.cs: clean up the constructors a little, and
8975         drop CommonConstructor().
8976
8977         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
8978         actually get notified when the user hits it.
8979         (ProcessKeyMessage): *substantially* simplify this method.
8980         There's no reason (that I can see) for the textbox to be making
8981         calls into the datagrid at all.  Remove all of them but the ones
8982         for Enter handling.  those will take some more work.
8983
8984         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
8985         calling HideEditBox.
8986         (HideEditBox): if we have an active textbox, render it invisible
8987         without causing a re-layout of the datagrid.
8988
8989 2006-06-05  Mike Kestner  <mkestner@novell.com>
8990
8991         * ListView.cs : fix NRE crasher when focuseditem is cleared by
8992         collection changes by resetting it to Items[0].  Fixes #78587.
8993
8994 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8995
8996         * MessageBox.cs: if the height of the text is larger than the icon_size,
8997         use that. Fixes bug #78575.
8998
8999 2006-06-05  Jackson Harper  <jackson@ximian.com>
9000
9001         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9002         node is basically responsible for drawing its entire horizontal
9003         area.  When drawing a node it draws its parent node lines if
9004         needed.
9005         - Adjust the clip area to the viewport rectangle
9006         - Fix Left/Right key handling to match MS. (It expand/collapses
9007         and moves to parents/first child but does not move selection to
9008         sibling nodes).
9009         - Fix SetTop to work with new bound calculation code
9010         - When scrollbars are no longer needed we need to reset scrolling
9011         vars and recalculate the visible order so the redraw is correct
9012         * TreeNode.cs: We can't expand/collapse nodes with no children.
9013
9014 2006-06-03  John Luke  <john.luke@gmail.com> 
9015
9016         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9017         so the colors work without dev packages
9018         
9019 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9020
9021         * Control.cs 
9022           - Select: Implemented to just use activate. Seems to match MS 
9023             behaviour closest. Documented to only do actual control walking 
9024             based on it's parameters if in a container control so I moved 
9025             the code there.
9026           - Removed selection check logic from our internal Select() method
9027         * ContainerControl.cs:
9028           - Select: Moved selection logic from Control here, since MS documents
9029             that containers obey the bool arguments. No longer calling base
9030
9031 2006-06-02  Jackson Harper  <jackson@ximian.com>
9032
9033         * TreeView.cs: If the selected node isn't changed when we get
9034         focus update the previously selected node so that we see the
9035         selection box.
9036
9037 2006-06-02  Mike Kestner  <mkestner@novell.com>
9038
9039         * ComboBox.cs: restructure grab and general mouse event handling.
9040         Make the composite control raise mouse events like it was a single
9041         control for leaves/enters/motion/up/down events.  fix dropdown list
9042         coordinate mangling and refactor it into the scrollbar subclass to
9043         reduce code duplication.  Fixes #78282 #78361 and #78457.
9044
9045 2006-06-02  Mike Kestner  <mkestner@novell.com>
9046
9047         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9048         automatically in the Control.WndProc.
9049
9050 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9051
9052         * FileDialog.cs: fix crash when running SharpChess, which sets the
9053         FilterIndex to 2 with only one Filter.
9054
9055 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9056
9057         * ToolBar.cs: add SizeSpecified property.
9058         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9059         try to figure out our real size, otherwise fallback to what the
9060         container says.
9061
9062 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9063
9064         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9065         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9066           up the event
9067
9068 2006-06-01  Mike Kestner  <mkestner@novell.com>
9069
9070         * ListView.cs: revamp the focus management in ListView.  It still
9071         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9072         better than not handling focus at all.  Will revisit when pdb feels
9073         the general focus handling is solid.  Fixes #78526.
9074
9075 2006-06-01  Jackson Harper  <jackson@ximian.com>
9076
9077         * TreeView.cs: Set the default border style in the constructor.
9078         - Move painting to use OnPaintInternal instead of capturing
9079         WM_PAINT, this is the correct way of doing things
9080         - UpdateBelow shouldn't invalidate the scrollbar area
9081         - Cap the top on update below in case the node was above the top
9082         of the viewport rectangle.
9083         - ExpandBelow and Collapse below need to obey Begin/End Update.
9084         * TreeNode.cs: Make is_expanded internal so the treenode
9085         collection can change it without firing the whole event chain.
9086         * TreeNodeCollection.cs: When clearing all the child nodes make
9087         sure to recalc the visible order.
9088         - Improve algo for remove the top node
9089
9090 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9091
9092         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9093           SendMessage directly calling window procedures, which in turn might
9094           call SetFocus()
9095
9096 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9097
9098         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9099           has focus (works around X11 sending a FocusIn after our SetFocus)
9100         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9101
9102 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9103
9104         * Mime.cs: Fix for the NET_2_0 build.
9105           NameValueCollection needs StringComparer now.
9106
9107 2006-05-31  Chris Toshok  <toshok@ximian.com>
9108
9109         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9110         return (via an out parameter) the starting X of the column.
9111         (UpdateVisibleColumn): track change to FromPixelToColumn.
9112         (HitTest): add a ColumnResize case here.
9113         (DrawResizeLine): new function, probably poorly named.
9114
9115         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9116         only need to keep one reference.
9117         (set_ListManager): same.
9118         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9119         Also, add support for HitTestType.ColumnResize.
9120         (OnMouseMove): add column resize behavior here, and change the
9121         cursor to the correct one as we move around the datagrid.
9122         (OnMouseUp): terminate the column resize if we're resizing.
9123         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9124         for the current cell.
9125         (ConnectListManagerEvents): use cached_currencymgr.
9126         (DisconnectListManagerEvents): fill this in, using
9127         cached_currencymgr.
9128         (SetCurrentCell): remove cached_currencymgr_events handling.
9129         (SetDataMember): only call DisconnectListManagerEvents if
9130         cached_currencymgr is != null.
9131         (SetDataSource): same.
9132         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9133         cached_currencymgr.
9134
9135 2006-05-31  Jackson Harper  <jackson@ximian.com>
9136
9137         * BindingManagerBase.cs: Remove somedebug code that creeped into
9138         SVN.
9139         * TreeNode.cs: We get the indent level dynamically right now, so
9140         don't track it as a member.
9141         * TreeNodeCollection.cs: Make sure all nodes added to the list
9142         have parents, treeviews/topnodes setup properly.
9143         - Don't attempt to track indent level.
9144
9145 2006-05-30  Jackson Harper  <jackson@ximian.com>
9146
9147         * BindingContext.cs: Create the currency manager tables here.
9148         This allows us to more easily create null tables (when bad data
9149         members are used), and more easily create related currency
9150         managers.
9151         * CurrencyManager.cs: All the table creation stuff is done by the
9152         binding context now.
9153         - Current should throw an exception if listposition is -1.
9154         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9155         been bound yet.
9156
9157 2006-05-30  Mike Kestner  <mkestner@novell.com>
9158
9159         * ListView.cs: allow reexpansion of zero-width column headers.
9160         Fixes #78528.
9161
9162 2006-05-28  Chris Toshok  <toshok@ximian.com>
9163
9164         * CurrencyManager.cs (get_Current): after the late binding
9165         listposition = -1 fix, we need to guard against it here and return
9166         null, otherwise we raise an exception (which is swallowed
9167         elsewhere, and breaks datagrid databinding.)
9168
9169 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9170
9171         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9172           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9173
9174 2006-05-26  Jackson Harper  <jackson@ximian.com>
9175
9176         * ControlPaint.cs:
9177         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9178         values, it's faster and it's all we care about (we don't care if
9179         the names aren't equal).
9180         * KeyboardLayouts.cs: Eliminate some dead code.
9181         - Lazy init things
9182         * X11Keyboard.cs: Lazy init keyboard detection.
9183         - Cleanup access modifiers a little.
9184
9185 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9186
9187         * XplatUIX11.cs: Once again, attempting to get layout just right.
9188
9189 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9190
9191         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9192           the sizes of each link section, that will result in sizes that
9193           match DrawString's layout (Fixes #78391)
9194
9195 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9196
9197         * FileDialog.cs: If AddExtension property is true autocomplete the
9198           extensions in SaveFileDialog correctly. Fixes bug #78453.
9199           Set MyNetwork and MyComputer to "C:\" for windows. This should
9200           fix part 8 of bug #78446 for now.
9201
9202 2006-05-26  Chris Toshok  <toshok@ximian.com>
9203
9204         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9205         invalidate the current row header if we need to, but presumably
9206         we'll invalidate the row corrsponding to the bounds or
9207         editingControl.
9208         (GridHScrolled): switch back to this method, as it's part of the
9209         public api.  *sigh*.
9210         (GridVScrolled): same.
9211         (OnMouseWheel): hack up something that more or less works.  Call
9212         GridHScrolled/GridVScrolled directly, instead of duplicating much
9213         of their code here.
9214         (EnsureCellVisibility): reinstate a bunch of this code, since we
9215         can't just set the scrollbar Value and expect to do all the work
9216         in the ValueChanged handler.  Also, Call Update() after scrolling
9217         in one direction so the other XplatX11.ScrollWindow call has the
9218         proper stuff in the proper places.
9219         (EditCell): set is_editing to true before calling .Edit.
9220
9221         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9222         don't bother comparing first.
9223         (OnKeyPress): call grid.ColumnStartedEditing before calling
9224         base.OnKeyPress.  this will set is_changing and invalidate the row
9225         header if necessary.
9226         (ProcessKeyMessage): for WM_CHAR messages, call
9227         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9228         and WM_KEYDOWN.
9229         
9230         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9231         it's done in the DataGrid.
9232         (NextState): call grid.ColumnStartedEditing, which takes care of
9233         invalidating the row header (and setting is_changing).
9234
9235         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9236         here.  it's done in the DataGrid.
9237
9238 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9239
9240         * Control.cs: allow changing the cursor when the mouse position is
9241         out of bounds but Capture is set.
9242         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9243         linklabel but released somewhere else.
9244
9245 2006-05-25  Jackson Harper  <jackson@ximian.com>
9246
9247         * TreeView.cs: When we get focus if there is no selected node make
9248         it the top node
9249         - Remove some uneeded setup code from Draw.
9250         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9251         a new node is inserted make the new node the top.
9252         * XplatUIX11.cs:
9253         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9254         be used (should be faster).
9255         
9256 2006-05-25  Chris Toshok  <toshok@ximian.com>
9257
9258         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9259         problem with the last commit.
9260
9261 2006-05-25  Chris Toshok  <toshok@ximian.com>
9262
9263         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9264         need the invalidate call here, while scrolling right-to-left via
9265         the left arrow key (i.e. moving the editing cell while scrolling).
9266
9267         * DataGrid.cs (.ctor): remove the initialization of
9268         ctrl_pressed/shift_pressed.  We no longer track them using key
9269         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9270         to using ValueChanged handlers on the scrollbars instead of
9271         Scrolled event handlers.  This simplifies a bunch of the scrolling
9272         code.
9273         (GridHValueChanged): rename from GridHScrolled, and change it to
9274         work with the new event args.
9275         (GridVValueChanged): same.
9276         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9277         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9278         selected cell.
9279         (ProcessGridKey): correct all the keyboard navigation stuff I
9280         could find.  Ctrl up/down/left/right/home/end work now.
9281         (EnsureCellVisibility): correct method name spelling.  Also,
9282         simplify this a touch by not explicitly calling the
9283         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9284         scrollbar value.
9285         (OnKeyUpDG): no need for this method now.
9286         
9287 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9288
9289         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9290         Fixes bug #78392.
9291
9292 2006-05-25  Chris Toshok  <toshok@ximian.com>
9293
9294         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9295         r61019.
9296
9297 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9298
9299         * Application.cs: Moved setting of is_modal and closing to before
9300           we create the control, to allow the event handlers called as a
9301           result of creation affect closing. Also removed Gonzalo's previous
9302           change to setting DialogResult, the behaviour has been moved to 
9303           Form.ShowDialog()
9304         * Form.cs: 
9305           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9306             handle it instead
9307           - ShowDialog(): If no dialog result is set, we need to return Cancel
9308           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9309             the close is cancelled
9310
9311 2006-05-25  Jackson Harper  <jackson@ximian.com>
9312
9313         * StatusBar.cs: We only need to update the sizes of the other
9314         panels when we have auto size contents.  Also we are only updating
9315         the contents of the panel, not the borders, so compensate for the
9316         border width (TODO: get this width from the theme somehow).
9317         * TreeView.cs: Scrollable is true by default
9318         - Use invalidate instead of refresh where needed
9319         - Factor the scrollable value into scrollbar updating
9320         - Update the scrollbars if the Scrollable property is altered
9321         - Update the selected node if its ImageIndex is changed
9322         - Handle null nodes in UpdateNode (mainly so we don't have to
9323         check if selected is null when updating it
9324         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9325         are factored into the visible count
9326         - Use VisibleCount for clarity in the code
9327         - When the font is changed we need to recurse through all the
9328         nodes and invalidate their sizes
9329         
9330 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9331
9332         * Application.cs: set the DialogResult to fixed when the main form is
9333         hidden or destroyed while being modal.
9334
9335 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9336
9337         * Theme.cs: Use Tangoified messagebox icons. 
9338
9339         (GetSizedResourceImage): Also cope with width = 0 and do not
9340         trigger a warning in that case (0 means "give me your icon from
9341         the resouce, no special size needed).
9342
9343 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9344
9345         * Application.cs: Leave runloop if the the main modal form is 
9346           hidden (fixes #78484)
9347
9348 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9349
9350         * BindingContext.cs : reject null datasource in Contains() and
9351           Item[].
9352         * CurrencyManager.cs : check data_member validity when data_source
9353           is dataset. When it is late binding, the initial position is -1.
9354
9355 2006-05-24  Jackson Harper  <jackson@ximian.com>
9356
9357         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9358         inserted nodes that aren't visible.  This changes the
9359         max_visible_order which confuses scrollbar settings.
9360         - Use the enumerator to get the prev node instead of duplicating
9361         code.
9362         * TreeView.cs: Use new method for setting scrollbar values
9363         - Don't set the bounds every time the scrollbar is updated
9364         - When updating below the root node use an invalidate instead of a
9365         refresh to prevent the child controls (scrollbars) from being
9366         refreshed. (UpdateBelow still needs to be reworked anyways).
9367         - Reenable SetBottom now that visible orders are set correctly,
9368         added some debug code incase we ever get bad values there again.
9369         - Set the scrollbar max to 2 less then the max value, this
9370         compensates for the max value being one above the node count, and
9371         for scrollbars adding one extra "notch".
9372         - When drawing image nodes if there is an imagelist we draw the
9373         first image in the list if the supplied image index is out of the
9374         image list's bounds.
9375         
9376 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9377
9378         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9379           we receive a size change from the WM (Fixes #78503)
9380
9381 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9382
9383         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9384           rectangle (Fixes #78501)
9385
9386 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9387
9388         * ButtonBase.cs: 
9389           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9390             as a bitfield.
9391           - Fixed MouseMove to no longer switch pressed state unless the left
9392             mouse button is pressed. Atsushi provided the original patch (#78485)
9393           
9394 2006-05-24  Jackson Harper  <jackson@ximian.com>
9395
9396         * ScrollBar.cs: New internal methods that allow us to change a
9397         couple values on the scrollbar (the most common case is maximum
9398         and large change) without getting multiple invalidates.
9399
9400 2006-05-24  Chris Toshok  <toshok@ximian.com>
9401
9402         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9403         (Edit): save off the original state in oldState, and set
9404         grid.is_editing to true.
9405         (OnKeyDown): abort editing if escape is pressed.  also, call
9406         NextState if space is pressed.
9407         (OnMouseDown): call NextState.
9408         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9409         here.  Also, only invalidate the row header once (on the initial
9410         is_changing switch) to save on redraws.
9411
9412 2006-05-24  Chris Toshok  <toshok@ximian.com>
9413
9414         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9415         if the value in the cell is different than it was before.  This
9416         keeps us from triggering a layout when we move around a datarid
9417         with a highlighted cell.
9418         (Edit): suspend layout when creating/positining the text box, and
9419         resume passing false so we don't ever actually re-layout.
9420         (ReleaseHostedControl): same.
9421         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9422
9423         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9424         control-key sequences should go to the datagrid - remove that
9425         lock.  Also, modify the conditions under which we move between
9426         cells when moving the cursor within a cell, and remove the "this"
9427         and "base" from field accesses.  We weren't even consistent, given
9428         they all were in the base class.
9429
9430 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9431
9432         * Binding.cs : (.ctor)
9433           An obvious NRE fix for BindingTest.CtorNullTest().
9434
9435 2006-05-23  Chris Toshok  <toshok@ximian.com>
9436
9437         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9438         them between lines.  This fixes some quirks editing cells in the
9439         datagrid.
9440
9441 2006-05-23  Jackson Harper  <jackson@ximian.com>
9442
9443         * TreeView.cs: Use begin/end update when doing expand/collapse all
9444         so that we don't get flicker on the scrollbar.
9445
9446 2006-05-23  Jackson Harper  <jackson@ximian.com>
9447
9448         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9449         treenode calculations to be independant of the painting code. To
9450         do this nodes track a visible order which is calculated by the
9451         treeview.
9452         - Call new methods for expanding/collapsing nodes.  These methods
9453         use scrollwindow so we don't have to update everything below the
9454         node.
9455         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9456         need to update nodes when drawing anymore or calculate scrollbar
9457         stuff.
9458         - Added new methods for expanding/collapsing nodes. These methods
9459         use ScrollWindow so as to not have to redraw all the nodes below.
9460         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9461         we add/remove nodes or sort.
9462         - Handle removing the selected and the top node properly.
9463
9464 2006-05-23  Chris Toshok  <toshok@ximian.com>
9465
9466         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9467         maybe this should actually happen in the datagrid code?
9468         (EndEdit): no need to invalidate anything, given that
9469         ReleaseHostedControl causes the datagrid to relayout, which
9470         invalidates everything anyway.
9471
9472         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9473         in SetCurrentCell).
9474         (set_SelectionBackColor): call InvalidateSelection instead of
9475         Refresh.
9476         (set_SelectionForeColor): same.
9477         (BeginEdit): Flesh this out a bit.
9478         (CancelEditing): only do any of this if we're editing/adding.
9479         (EndEdit): same.
9480         (OnMouseDown): there's no need to cancel editing here, it's done
9481         in SetCurrentCell.
9482         (SetCurrentCell): only invalidate the current row header if it's a
9483         different row than the new one.
9484         (ShiftSelection): fix this to work like MS does.
9485         (ResetSelection): factor out the invalidation of selected_rows to
9486         InvalidateSelection.
9487         (SetDataSource): cancel any editing that's going on.
9488
9489         * DataGridColumnStyle.cs
9490         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9491         call the non-interface version.
9492
9493         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9494         header rectangle with the clip rectangle so we don't redraw the
9495         entire header for just a small area.  Gets rid of the last flicker
9496         when horizontally scrolling.
9497         (DataGridPaintRow): same.
9498
9499 2006-05-23  Mike Kestner  <mkestner@novell.com>
9500
9501         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9502         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9503         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9504         Critical bug report.
9505
9506 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9507
9508         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9509           and this fixes #78493
9510
9511 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9512
9513         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9514         size is not found.  
9515         
9516         * FileDialog.cs: Do not change the background for the side bar as
9517         it wont work nicely with the theme, and also reduces the artifacts
9518         in rendering the icons (which I want to fix too).
9519
9520         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9521         resources, not resgen resources. 
9522
9523         (PlatformDefaultHandler): Pull images using the new API.
9524
9525 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9526
9527         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9528           a reference to the hwnd and will not remove it unless there are
9529           no pending exposures (fixes #78341)
9530         * XplatUI.cs: Improved debug
9531
9532 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9533
9534         * MenuAPI.cs : don't handle OnClick event when it was not the left
9535           button. Fixed bug #78487.
9536
9537 2006-05-23  Mike Kestner  <mkestner@novell.com>
9538
9539         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9540         prefer submenus to the top menu for item lookup, to avoid popping down
9541         top-row items.
9542
9543 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9544
9545         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9546           Graphics.FillRectangle as the visual results are really bad (even
9547           on win). We now draw perfect arrows (and perfect shadows when the
9548           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9549           Pen.DashPattern to draw the dots of each line.
9550
9551 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9552
9553         * FileDialog.cs: Update the filename combobox when navigating through
9554           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9555
9556 2006-05-22  Mike Kestner  <mkestner@novell.com>
9557
9558         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9559         Fixes #78463.
9560
9561 2006-05-22  Mike Kestner  <mkestner@novell.com>
9562
9563         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9564         requests. Fix a misspelled parameter and a copy paste exception error
9565         in Select.
9566
9567 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9568
9569         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9570           to get the same width/height (5/13) on X11 as the default font has on
9571           win32. This means that our DefaultFont emSize is smaller than the 
9572           the MS SWF equivalent (even thought the width/height stays the same)
9573
9574 2006-05-20  Jackson Harper  <jackson@ximian.com>
9575
9576         * MdiClient.cs:
9577         * MdiWindowManager.cs:
9578         * InternalWindowManager.cs: Make sure to use the border width from
9579         the theme.
9580
9581 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9582
9583         * PrintDialog.cs: Implements printer details
9584
9585 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9586
9587         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9588           Fixes part 1 and 2 of bug #78446
9589
9590 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9591
9592         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9593           instead of sticking to the first ever calculated value
9594
9595 2006-05-19  Mike Kestner  <mkestner@novell.com>
9596
9597         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9598         PointToClient, since Capture is set. Fixes #78344.
9599
9600 2006-05-19  Mike Kestner  <mkestner@novell.com>
9601
9602         * ListView.cs: match MS behavior in Details view where items are not
9603         drawn if Columns.Count == 0. 
9604         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9605         Use a separate pen to draw the check, since changing the width affects
9606         the box as well.  Fixes #78454.
9607
9608 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9609
9610         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9611         exception should throw the name of the invalid argument.
9612
9613         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9614         there are no files listed. 
9615
9616 2006-05-18  Jackson Harper  <jackson@ximian.com>
9617
9618         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9619         up.
9620
9621 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9622
9623         * Control.cs: Brought back our old UpdateZOrder method as a private
9624           function and switched our calls from UpdateZOrder to the new one.
9625           This fixes the Paint.Net canvas disappearing bug.
9626
9627 2006-05-18  Jackson Harper  <jackson@ximian.com>
9628
9629         * Theme.cs:
9630         * ThemeWin32Classic.cs:
9631         * InternalWindowManager.cs: Move the drawing into the theme,
9632         expose everything the theme should need from the window manager.
9633
9634 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9635
9636         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9637           from the call to NativeWindow to avoid walking up the parent chain
9638           further than needed (speeds up setting cursors and avoids setting
9639           the wrong cursor if a parent has another cursor defined)
9640         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9641           the icon as hotspot, not what's contained as hotspot in the icon
9642           file. This fixes the perceived drawing offset seen with Paint.Net
9643         
9644 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9645
9646         * XplatUIX11.cs: 
9647           - Store the calculated rectangle in Hwnd object and use it when 
9648             setting the client size
9649           - Force Toolwindows to always be type Dock, to ensure they're on top
9650
9651 2006-05-18  Mike Kestner  <mkestner@novell.com>
9652
9653         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9654         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9655         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9656         Substantial refactoring to remove confusing nested classes. Coding
9657         standard and Get+Set->property refactorings.  Shift to index based
9658         highlighting in ComboListBox instead of constantly using IndexOf and
9659         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9660         in FileDialog growth.  Draw borders manually since Simple mode needs
9661         to look like two independent controls.  Make listbox border
9662         conditional to DropDownStyle.  Improved OwnerDraw support.
9663
9664 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9665
9666         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9667         Don't set the disposed graphics to null, so we can throw the "right"
9668         exception if the graphics is reused later (added a flag to avoid 
9669         double disposing). Some behaviours are different under 2.0 and are
9670         filled under bug #78448.
9671
9672 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9673
9674         * Control.cs: When double-buffering is enabled, we need to reset
9675           our graphics context between paint calls. Otherwise, any 
9676           transformations and other alterations on the context will 
9677           become cumulative (#77734)
9678
9679 2006-05-18  Mike Kestner  <mkestner@novell.com>
9680
9681         * ListView.cs: do focused item selection like MS on clicks. 
9682         Rework focus handling for ItemControl so LostFocus invalidates as
9683         well.
9684         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9685         the ListView ItemControl has focus.
9686
9687 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9688
9689         * XplatUIX11.cs: If client_window ends up being width or height zero
9690           due to border settings, move it off window inside whole_window (#78433)
9691
9692 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9693
9694         * Mime.cs: Shrink the mime file cache correctly.
9695
9696 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9697
9698         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9699
9700 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9701
9702         * XplatUIX11.cs (AddExpose): More sanity checks
9703
9704 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9705
9706         * XplatUIX11.cs:
9707           - AddExpose: Don't add expose ranges outside the size of our
9708             window
9709           - Cast opacity values to Int32 to avoid crashes with certain
9710             values
9711           - Added disabled code paths that protect against illegal cross-
9712             thread painting (Developers.exe)
9713
9714 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9715
9716         * ProgressBar.cs: Invalidate the control when it's resized
9717           since block size is based on control size. (#78388)
9718
9719 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9720
9721         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9722         of setting the incoming argument to the "reset" value, we set the
9723         this.datamember to string.empty (before we were invalidating the
9724         incoming data).   
9725
9726         Fixes 78420
9727
9728 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9729
9730         * Form.cs: Only apply transparency settings after the form
9731           is created. (Fixes #77800)
9732
9733 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9734
9735         * ApplicationContext.cs: Grab the HandleDestroyed event so
9736           we know when to fire OnMainFormClosed 
9737
9738 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9739
9740         * Application.cs: Introduced sub-class to allow tracking of
9741           threads and centralized triggering of the event mess for
9742           ThreadExit, AppExit, etc..  (#76156)
9743
9744 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9745
9746         * MimeIcon.cs:
9747           - Do not return a null icon index value for a mime subclass.
9748             Instead try the main mime type class too.
9749           - Seems that some newer distributions don't have a link to some
9750             gnome default icons anymore. So check the default gnome dir too.
9751           
9752
9753 2006-05-16  Jackson Harper  <jackson@ximian.com>
9754
9755         * MdiClient.cs: Don't paint the parent background image if we have
9756         our own background image.
9757
9758 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9759
9760         * Control.cs:
9761           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9762             controls, all filled controls are supposed to overlap (#78080)
9763           - UpdateZOrder is supposed to update the control's z-order in the
9764             parent's z-order chain. Fixed to behave like that
9765           - BringToFront: Removed obsolete code
9766           - SendToBack: Simplyfied
9767           - SetChildIndex: Trigger layout calculations when Z-order changes
9768             since layout is done by z-order
9769
9770 2006-05-16  Chris Toshok  <toshok@ximian.com>
9771
9772         [ fixes bug #78410 ]
9773         * DataGrid.cs (set_AlternatingBackColor): use
9774         grid_drawing.InvalidateCells instead of Refresh().
9775         (set_BackColor): call grid_drawing.InvalidateCells.
9776         (set_BackgroundColor): use Invalidate instead of Refresh.
9777
9778         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9779         invalidate the cell area.
9780
9781 2006-05-15  Chris Toshok  <toshok@ximian.com>
9782
9783         [ fixes bug #78011 ]
9784         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9785         on to DataGridPaintRow.
9786         (DataGridPaintRow): take a clip argument, and only draw the cells
9787         which intersect it.  same with the not_usedarea.
9788
9789         * Theme.cs (DataGridPaintRow) add @clip parameter.
9790
9791         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9792         XplatUI.ScrollWindow.
9793         (ScrollToRow): same.
9794
9795         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9796         with last column which was causing a gray swath to appear with the
9797         XplatUI.ScrollWindow code.
9798
9799 2006-05-15  Chris Toshok  <toshok@ximian.com>
9800
9801         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9802         use XplatUI.ScrollWindow.
9803         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9804
9805 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9806
9807         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9808
9809 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9810
9811         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9812           file since there are no equivalent X11 cursors
9813
9814 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9815
9816         * MonthCalendar.cs : DateTimePicker should reflect selected date
9817           on mouse*up*, not mouse*down*. Fixed originally reported part of
9818           bug #76474.
9819
9820 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9821
9822         * TabControl.cs : When argument index is equal or more than tab
9823           count, just ignore. Fixed bug #78395.
9824
9825 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9826
9827         * Control.cs: Dispose all child controls when control is diposed (#78394)
9828
9829 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9830
9831         * ColorDialog.cs: Finally it is possible to select the color with
9832           the text boxes
9833
9834 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9835
9836         * PrintDialog.cs: Fix typo
9837
9838 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9839
9840         * PrintDialog.cs: PrintDialog is not resizable
9841         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9842           color. Made some ToolBar drawing methods protected virtual.
9843
9844 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9845
9846         * PrintDialog.cs: Implementation of the PrintDialog
9847
9848 2006-05-12  Chris Toshok  <toshok@ximian.com>
9849
9850         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9851         thumb, instead use MoveThumb.  This has the side effect of making
9852         most of the other thumb moving machinery use MoveThumb as well.
9853         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9854         need to actually invalidate the rectangle where the new thumb will
9855         go.
9856         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9857         We force an Update() after, so it's not as fast as it could be,
9858         but at least there's zero flicker and no droppings.
9859         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9860         (UpdateThumbPos): add another argument (dirty), which says whether
9861         or not to calculate/add dirty regions which we later invalidate.
9862         For cases where we know we're going to use MoveThumb, we pass
9863         false for this.  Otherwise, pass true.
9864
9865 2006-05-12  Jackson Harper  <jackson@ximian.com>
9866
9867         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9868         the status bar.
9869         
9870 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9871
9872         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9873           and GetClipRegion methods and UserClipWontExposeParent property.
9874         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9875           overriding UserClipWontExposeParent property, setting to false, since
9876           Win32 handles the required expose messages to draw our clipped parent
9877           areas internally
9878         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9879           PaintEventStart to set the user clip region if set.
9880         * Control.cs: 
9881           - Now internally tracking the Region for the control since we need to
9882             store it if the handle is not yet created and only set it when it
9883             becomes created. Before setting the region forced handle creation
9884           - Added code to draw the parents underneath a user-clipped region
9885         * Hwnd.cs: Added UserClip property
9886
9887 2006-05-12  Chris Toshok  <toshok@ximian.com>
9888
9889         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9890         (set_Maximum): same.
9891         (set_Minimum): same.
9892         (set_SmallChange): same.
9893         (OnMouseUpSB): remove the call to refresh when releasing the
9894         thumb.  We shouldn't need it.
9895         
9896 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9897
9898         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9899         AutoSize set to None, we do not need to relayout everything, we
9900         just need to invalidate the current region.
9901
9902         (Draw): Do not draw the entire ClientArea, just redraw the
9903         clip area being passed.
9904
9905         * MdiClient.cs: Make MdiClient constructor with the Form argument
9906         internal. 
9907
9908 2006-05-12  Jackson Harper  <jackson@ximian.com>
9909
9910         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9911         parents background image,  but strangely not their own.
9912         - (DrawStatusBarPanel): Take into account horizontal alignment
9913         when drawing the strings and icons.
9914
9915 2006-05-12  Mike Kestner  <mkestner@novell.com>
9916
9917         * ListBox.cs: avoid invalidations for focus when the collection is
9918         empty. 
9919
9920 2006-05-12  Chris Toshok  <toshok@ximian.com>
9921
9922         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9923         invalidate the entire thumb area.  Call InvalidateDirty which
9924         limits the redraw to the thumb itself and surrounding pixels.
9925
9926         * XplatUIX11.cs (ScrollWindow): optimize copying.
9927         
9928 2006-05-12  Chris Toshok  <toshok@ximian.com>
9929
9930         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9931         Figure out the positioning/layout in a single pass instead of
9932         multiple recursive invocations.  Speeds up the initial display of
9933         the data grid.  Also, make many things private that were
9934         originally public but unused outside this class.
9935
9936 2006-05-11  Jackson Harper  <jackson@ximian.com>
9937
9938         * MdiClient.cs: Improved layout code.
9939
9940 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9941
9942         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9943           not SelectedObject.
9944
9945 2006-05-11  Chris Toshok  <toshok@ximian.com>
9946
9947         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9948         union of that will always be {0,0,width,height}.
9949
9950 2006-05-11  Jackson Harper  <jackson@ximian.com>
9951
9952         * Form.cs: Match MS's DefaultSize for forms (they must have
9953         changed the size in sp2).
9954
9955 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9956
9957         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9958
9959 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9960
9961         * TextControl.cs : Fixed bug #78109. This incorrect position
9962           comparison caused crash on automatic line split.
9963         * TextBoxBase.cs : reduce duplicate code.
9964
9965 2006-05-10  Jackson Harper  <jackson@ximian.com>
9966
9967         * MdiClient.cs: Active form is only sent to the back when using
9968         the Next form functionality, when a form is clicked the current
9969         active shouldn't be sent to the back.
9970         - Layout the mdi windows when the container is first made visible.
9971         * Form.cs: Give the MdiClient a ref to the containing form when we
9972         create it.
9973         
9974 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9975
9976         * LinkLabel.cs : link_font could be uninitialized, so populate one
9977           before actual use. Fixed bug #78340.
9978
9979 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
9980
9981         * XplatUIX11.cs : clipboard format native value is IntPtr.
9982           Fixed bug #78283.
9983
9984 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
9985
9986         * Control.cs: 
9987           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
9988             which is passed up the parent chain by DefWndProc
9989           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
9990             to DefWndProc (#77956)
9991         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
9992
9993 2006-05-10  Jackson Harper  <jackson@ximian.com>
9994
9995         * MdiClient.cs: We need to remove the controls from the mdi
9996         collection, when we close the window.
9997         * MdiWindowManager.cs: Special handling of closing mdi windows.
9998         * InternalWindowManager.cs: Make the close method virtual so the
9999         mdi window manager can handle it specially.
10000
10001 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10002
10003         * DataGrid.cs:
10004           - Recalculate grid when the data source has changed
10005           - Matches styles provided by user from all data sources types
10006         * DataGridTableStyle.cs: For columns that provided by the user set the
10007         with the preferred value is there was unassigned.
10008         * CurrencyManager.cs: throw OnItemChanged event
10009
10010 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10011
10012         * PictureBox.cs: Don't animate until handle is created. Start animation
10013           when handle is created.
10014
10015 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10016
10017         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10018           current codebase.
10019         * XEventQueue.cs: We don't need to provide the extra info
10020
10021 2006-05-10  Jackson Harper  <jackson@ximian.com>
10022
10023         * MdiClient.cs: If the mdi clients parent form has a background
10024         image set, we draw that background image for the mdi area's
10025         background.
10026
10027 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10028
10029         * TextBoxBase.cs: Set IBeam cursor (#78347)
10030
10031 2006-05-10  Mike Kestner  <mkestner@novell.com>
10032
10033         * ToolBar.cs: fix some text padding issues with ButtonSize
10034         calculation. Update the default size to match MS documentation.
10035         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10036         button size. Fixes #78296.
10037
10038 2006-05-10  Mike Kestner  <mkestner@novell.com>
10039
10040         * ListBox.cs: use is_visible for scrollbar positioning in case the
10041         control isn't on screen yet.  Fix off by one with Right vs Width
10042         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10043         
10044 2006-05-10  Jackson Harper  <jackson@ximian.com>
10045
10046         * X11Dnd.cs: Drop to a control with another control on top of it.
10047         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10048         be modified in click handlers. TODO: Look for similar problems in
10049         other controls.
10050
10051 2006-05-09  Jackson Harper  <jackson@ximian.com>
10052
10053         * Form.cs: Window managers need the old window state when setting
10054         window state now.
10055         * InternalWindowManager.cs: Allow the base mdi window manager to
10056         handle more of the MDI only stuff (like maximize buttons).
10057         * MdiWindowManager.cs: Fix some snafus in changing the window
10058         state.  Add all the menu functionality, for both popup and
10059         maximized menus.
10060         * MdiClient.cs: When a new form is selected the currently
10061         activated form is sent to the back, this matches MS.
10062         - Implement a new method to activate the next mdi child window.
10063
10064 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10065
10066         * Control.cs: 
10067           - Added new InternalCapture method to allow controls to prevent
10068             the capture behaviour on the click handlers
10069           - Switched to use InternalCapture
10070         * ComboBox.cs:
10071           - Using InternalCapture to prevent mouse captures from being released
10072             on mouse button release (Fixes #78100)
10073         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10074           returns Form borders if a caption is present. (Fixes #78310)
10075
10076 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10077
10078         * TreeNode.cs: Changed serialization .ctor to not require every field
10079           to be present. (#78265)
10080         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10081
10082 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10083
10084         * MimeIcon.cs: for is faster than foreach for strings.
10085
10086 2006-05-05  Mike Kestner  <mkestner@novell.com>
10087
10088         * CheckedListBox.cs: update check handling code to not use selected.
10089         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10090         behavior for visual feedback, motion response, shift/ctrl handling,
10091         and properly deal with all 4 selection modes. Updates to bounds
10092         handling logic.  Add scroll wheel support. [Fixes #77842]
10093
10094 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10095
10096         * ListView.cs:
10097           - Moved adding of Implicit controls into .ctor. That way, subsequent
10098             creation of the controls will not cause them to think they are 
10099             toplevel windows (fixes #78200 header problem)
10100           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10101           - Switched visibility setting of header control to use internal field
10102             to avoid triggering handle creation
10103           - Now checking if handle is created before causing a refresh when items
10104             are added (This makes us now match handle creation time with MS)
10105         * Splitter.cs: Removed loading of private splitter cursor, switched to
10106           Cursors version now that that is loading the right ones
10107         * Cursors.cs: Load proper splitter cursors from resources
10108         * Cursor.cs: Added second method of loading resource cursors for the 
10109           VS.Net users amongst us
10110
10111 2006-05-05  Mike Kestner  <mkestner@novell.com>
10112
10113         * ListView.cs: give header_control a minimum size based on the
10114         ListView size.
10115
10116 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10117
10118         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10119           window seems to do that with metacity, so set that type. (#78120)
10120
10121 2006-05-05  Mike Kestner  <mkestner@novell.com>
10122
10123         * ListViewItem.cs: fix Details mode checkbox layout bug.
10124         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10125         at the end of the header, if it exists. [Fixes for #78200]
10126
10127 2006-05-04  Jackson Harper  <jackson@ximian.com>
10128
10129         * MdiClient.cs: Add a helper property to get the container form.
10130         * MdiWindowManager.cs: We have to make sure to use the menu origin
10131         when drawing the icons and buttons, this fixes maximized window
10132         icons/buttons on win32.
10133         * InternalWindowManager.cs: Reset the restore captions when a
10134         window goes from Maximized to Minimized and vice versa. Move the
10135         DrawMaximizedButtons into the MdiWindowManager source, tool
10136         windows can't be maximized. NOTE: This could use a little
10137         refactoring if time ever permits.
10138         
10139 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10140
10141         * TextBox.cs: Add MWFCategoryAttributes
10142         * TextBoxBase.cs: Add MWFCategoryAttributes
10143         * Form.cs: Add MWFCategoryAttributes
10144
10145 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10146
10147         * Control.cs: Add MWFCategoryAttributes
10148         * ScrollableControl.cs: Add MWFCategoryAttributes
10149
10150 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10151
10152         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10153           Divider is true. Fix a little glitch in PropertyToolBar
10154           drawing code
10155
10156 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10157
10158         * Control.cs:
10159           - Dispose: Call base.Dispose, this causes the disposed event
10160             to be fired (and probably other, more important stuff)
10161           - SetVisibleCore: Set is_visible to true after creating the
10162             window so that the window still gets created invisible (if
10163             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10164             to generate a WM_ACTIVE message
10165         * Form.cs: Call Dispose when we want to destroy the window, instead of
10166           just destroying the handle (Dispose will do that for us)
10167         * XplatUIX11.cs:
10168           - RootWindow also needs a queue, so we can properly process the
10169             property change events from RootWindow (like Activate)
10170           - Generatic synthetic WM_ACTIVE message when the active window is
10171             being destroyed
10172
10173 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10174
10175         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10176           bounds are changed
10177
10178 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10179
10180         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10181           for determining width and height (image might not be assigned if
10182           we're drawing an imagelist)
10183
10184 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10185
10186         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10187         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10188           height from system
10189         * Theme.cs: No longer returns hardcoded menu height, instead calls
10190           new driver method
10191         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10192           on MS (# 78257)
10193
10194 2006-05-01  Mike Kestner  <mkestner@novell.com>
10195
10196         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10197
10198 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10199
10200         * TextBoxBase.cs: Removed Fixme
10201         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10202
10203 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10204
10205         * XplatUIX11.cs:
10206           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10207             the rectangle relative to the parent, considering borders. We
10208             don't really want that.
10209           - ScrollWindow: Fixed warning to be more understandable
10210         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10211           scrollbars and scroll only the visible area
10212         * RichTextBox.cs: Removed debug output
10213
10214 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10215
10216         * NumericUpDown.cs (Text): Just use base
10217         * UpDownBase.cs: Ensure txtView is created before using it
10218
10219 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10220
10221         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10222           casting to IntPtr to avoid 64bit overflow errors
10223
10224 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10225
10226         * Control.cs:
10227           - AllowDrop: Don't force handle creation.
10228           - CreateHandle: Added call to tell driver if we're allowed to drop
10229
10230 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10231
10232         * FileDialog.cs: Remember the last directory not only for the
10233           current instance but also for new FileDialog instances.
10234
10235 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10236         
10237         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10238           broke sending async messages
10239
10240 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10241
10242         * XplatUIX11.cs:
10243           - ScrollWindow: Fixed method. We finally generate expose events again
10244             for scrolled areas. This was causing 'garbage' when scrolling
10245             textbox and other controls that used ScrollWindow
10246           - Switched from using the regular queue for paint events to the MS 
10247             model of 'generating' paint events when the queue is empty.
10248             We use the new XQueueEvent.Paint subclass to store which windows
10249             need painting.
10250           - AddExpose now takes the x/y/width/height of the exposed area
10251             and inserts the window into the paint queue if not already there
10252           - InvalidateWholeWindow: Switched to use new AddExpose method
10253           - UpdateMessageQueue: Added which queue to monitor for paint events
10254           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10255             the unlikely case nothing above handles it. We reset the expose
10256             pending states to get them off the queue.
10257           - GetMessage: Now pulls a paint event if no other events are in the
10258             queue
10259           - Invalidate: Switched to new AddExpose method
10260           - PeekMessage: Updated to understand pending paint events
10261           - UpdateWindow: Fixed logic bug. We were only updating if the window
10262             didn't need updating. Also switched to sending WM_PAINT directly,
10263             like MS does.
10264         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10265           and random access Remove(). The random access is needed to handle
10266           UpdateWindow() where a WM_PAINT is sent directly without accessing
10267           the queue.
10268         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10269           allow for better feedback when scrolling. Scrollbars are small and
10270           the immediate update should make it 'feel' more responsive without
10271           slowing things down. ScrollBar still needs it's invaliate logic
10272           updated to not always invalidate the whole bar on certain changes.
10273
10274 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10275
10276         * Control.cs:
10277         (BackColor): if the control does not support a transparent background,
10278         return the default backcolor when the parent backcolor is transparent.
10279
10280 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10281
10282         * Application.cs: Updated to new StartLoop/GetMessage API
10283         * RichTextBox.cs: Provide some output on RTF parsing errors
10284         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10285           new queue_id argument to GetMessage and PeekMessage to allow faster
10286           handling of per-thread queues in drivers.
10287         * Hwnd.cs: Added Queue tracking and property
10288         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10289         * XEventQueue.cs: Added thread trackingA
10290         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10291         * XplatUIX11.cs:
10292           - Implemented new per-thread queue
10293           - GetMessage: Fixed return/break behaviour on several cases. We were
10294             returning stale messages in some cases, instead of just processing
10295             the next message
10296
10297 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10298
10299         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10300
10301 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10302
10303         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10304           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10305
10306 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10307
10308         * PropertyGridView.cs: Fix drop down width.
10309
10310 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10311
10312         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10313           a mess in DrawToolBar, so I removed one of them.
10314
10315 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10316
10317         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10318           needed (clip). Otherwise we get artifacts.
10319
10320 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10321
10322         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10323           dimension is fixed
10324         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10325           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10326         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10327           if it matches the scale base font (avoids unneeded scaling)
10328
10329 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10330
10331         * X11DesktopColors.cs: One gtk_init_check should be enough
10332
10333 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10334
10335         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10336           match MS behaviour
10337
10338 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10339
10340         * TextBoxBase.cs: 
10341           - Generate OnTextChanged for Backspace even if we're only deleting
10342             the current selection
10343           - When setting the Text property, only select all text if the
10344             control does not have focus when it is being set. Otherwise
10345             just place the cursor at the beginning of the control
10346
10347 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10348
10349         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10350           Added a little helper to draw PropertyGrid ToolBar with a different
10351           border and a different BackColor.
10352         * PropertyGrid.cs: Some background parts didn't get painted with the
10353           correct background color. Added a class that helps us to draw the
10354           correct border for PropertyGridView and a class that helps us to
10355           draw ToolBars with a different backcolor
10356         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10357
10358 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10359
10360         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10361         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10362
10363 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10364
10365         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10366           into the palette entries. Also, since we're working on a copy
10367           we needed to copy the palette back onto the bitmap.
10368         * Cursor.cs: Same fix as XplatUIWin32.cs.
10369
10370 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10371
10372         * ImageListStreamer.cs: Need to read the var (or we're off)
10373
10374 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10375
10376         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10377           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10378           TextBoxBase.cs: Unused var fixes
10379         * AxHost.cs: Small 2.0 fix
10380         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10381           as it seems that is what at least Metacity expects. This will make
10382           icons show up on 64bit platforms. We still have some 64bit size
10383           issues, though, since the startup app window size still won't match.
10384
10385 2006-04-25  Mike Kestner  <mkestner@novell.com>
10386
10387         * *.cs: cleanup newly reported exception var unused warnings.
10388
10389 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10390
10391         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10392           ms
10393
10394 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10395
10396         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10397           image. The image position is always the same, no matter if the
10398           button is pressed or not.
10399
10400 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10401
10402         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10403           selection and set the correct filename for SaveFileDialog.
10404           Patch by Emery Conrad.
10405
10406 2006-04-24  Mike Kestner  <mkestner@novell.com>
10407
10408         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10409         check for item.X outside the ClientRect instead of item.Y. Fixes
10410         #78151.
10411
10412 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10413
10414         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10415         trust that value blindly and do some sanity check. Fixes bug #77814.
10416
10417 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10418
10419         * ImageListStreamer.cs: save the mask as a 1bpp image.
10420
10421 2006-04-21  Mike Kestner  <mkestner@novell.com>
10422
10423         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10424         pass Checked and Indeterminate to the Theme Engine. Improve
10425         encapsulation with ListBox.
10426         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10427         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10428         nested types.  Move all CheckState functionality to CheckedListBox.
10429         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10430         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10431         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10432         single base list. Fix scrollbar sizing and placement to mirror MS.
10433         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10434         used.
10435         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10436         for CheckedListBox by using new DrawItemState info.  Center the
10437         checkboxes on the items. Use new StringFormat property.
10438
10439 2006-04-18  Jackson Harper  <jackson@ximian.com>
10440
10441         * Form.cs: MdiChildren don't do default locations the same way as
10442         regular forms.  This prevents a crash when trying to position the
10443         mdi windows.
10444
10445 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10446
10447         * PropertyGridTextBox.cs: Formatting, copyright
10448         * PropertiesTab.cs: Formatting
10449         * PropertyGrid.cs: Formatting
10450         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10451           click toggling of values
10452           
10453 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10454
10455         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10456         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10457           every time a control is created
10458         * Application.cs: Removed obsolete EnableRTLMirroring method
10459
10460 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10461
10462         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10463         SelectedIndex to -1. Fixes bug #78121.
10464
10465 2006-04-17  Jackson Harper  <jackson@ximian.com>
10466
10467         * Binding.cs: Handle null values for Current and BindingContext.
10468         This occurs when binding is a little delayed.
10469         * CurrencyManager.cs: return null for Current when there are no
10470         items in the list.
10471         - Hookup to the listchanged event on the DataView and update
10472         bindings when the list is changed.  This fixes late binding of
10473         controls.
10474
10475 2006-04-17  Jackson Harper  <jackson@ximian.com>
10476
10477         * X11Dnd.cs:
10478         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10479         Ringenbach.
10480
10481 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10482
10483         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10484           place
10485         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10486           with the correct ButtonState
10487
10488 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10489
10490         * XplatUIX11.cs: Improved distinguishing between window types to
10491           tell the WM a type closer to what the app wants (Fixes #78107)
10492
10493 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10494
10495         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10496           GrabHandle
10497
10498 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10499
10500         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10501           drawing code to reflect the size grip changes
10502
10503 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10504
10505         * ImageListStreamer.cs: fix handling of the mask that follows the main
10506         bitmap when deserializing and serialize it properly. The generated mask
10507         should better be a 1bpp image, but I'll do that later.
10508
10509 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10510
10511         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10512           path doesn't fit into some of our Current.Places
10513
10514 2006-04-13  Jackson Harper  <jackson@ximian.com>
10515
10516         * ComboBox.cs: Use borders instead of drawing our own decorations,
10517         try to obey correct rules for heights.
10518         * Theme.cs:
10519         * ThemeNice.cs:
10520         * ThemeClearLooks.cs:
10521         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10522         this is now handled by borders.
10523         - Remove unused DrawListBoxDecorationSize method.
10524         
10525 2006-04-13  Mike Kestner  <mkestner@novell.com>
10526
10527         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10528         reported by Alex.
10529
10530 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10531
10532         * ThemeWin32Classic.cs: 
10533           - Fixed CPDrawStringDisabled
10534           - Corrected drawing of disabled menu items
10535           - Fixed drawing of disabled radio buttons (bug #78095)
10536           - Draw check in a disabled CheckBox with color ControlDark 
10537
10538 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10539
10540         * Form.cs: Use the provided width when calculating the menu size;
10541           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10542           and ClientSize.Width won't be updated yet
10543         * Application.cs: Use Visible instead of Show() to make form visible,
10544           this way we create the handle later and menusize is considered
10545
10546 2006-04-12  Mike Kestner  <mkestner@novell.com>
10547
10548         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10549         reporting.
10550
10551 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10552
10553         * TextBox.cs: Implemented context menu
10554
10555 2006-04-12  Mike Kestner  <mkestner@novell.com>
10556
10557         * ListView.cs: implement box selection. fixes #77838.
10558         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10559
10560 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10561
10562         * XplatUIX11.cs: Added setting of window type when transient window
10563           is created (metacity would move it otherwise)
10564         * X11Structs.cs: Added WINDOW_TYPE atoms
10565         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10566           background (the control is Opaque but still wants transparent
10567           backgrounds)
10568
10569 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10570
10571         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10572           that set Opaque but don't mean it (like all ButtonBase-derived
10573           controls) to still draw their background
10574         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10575           the background
10576
10577 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10578
10579         * Control.cs (PaintControlBackground): Set the graphics object
10580           on our PaintEvent to null to prevent it from being disposed
10581           when the PaintEvent gets disposed
10582
10583 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10584
10585         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10586         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10587
10588 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10589
10590         * Control.cs: 
10591           - Added transparency check to BackColor property. Transparent
10592             backgrounds are only allowed if the control styles permit it
10593           - Added recursive painting of parent control background and
10594             foreground if a control with a transparent backcolor is drawn
10595             (Thanks to Tim Ringenback for providing his 'hack' as a base
10596              for this patch) Fixes #77985 and #78026.
10597           - Added Opaque style check before calling OnPaintBackground, no
10598             need to draw the background if the control is opaque
10599           - Removed ControlAccessibleObject owner variable (inherited from
10600             base, no need to define again)
10601           - Added some documentation links explaining the drawing events
10602             and styles
10603
10604 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10605
10606         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10607           that the affected control is the located at the left border of our
10608           parent (Fixes #77936)
10609
10610 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10611
10612         * TextBoxBase.cs: When rendering disabled or readonly controls,
10613           draw the background with 'Control' instead of 'Window' color as
10614           long as the user hasn't specifically set a color
10615
10616 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10617
10618         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10619           since that won't be updated if the user types text (only if it's
10620           programatically set)
10621
10622 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10623
10624         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10625           layout changes do to app-triggered resizes will have the proper
10626           display rectangle for layout
10627
10628 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10629
10630         * ThemeWin32Classic.cs:
10631           - Make use of the SystemBrushes and SystemPens wherever possible
10632           - Corrected some highlight colors
10633           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10634             drawing
10635         * Theme.cs: Added Empty field to CPColor struct
10636
10637 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10638
10639         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10640           is displayed when calculating the display rectangle. Thanks to Mike
10641           for teaching me the err of my ways.
10642
10643 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10644
10645         * ScrollableControl.cs:
10646           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10647             (instead of 0,0) and we now return the real width/height instead of
10648             just the clientrectangle, adjusted for padding. The rectangle is
10649             now cached and created by the new CalculateDisplayRectangle method.
10650           - Created new CalculateDisplayRectange method, which basically does
10651             what get_DisplayRectangle() did originally, but now using the 
10652             right edge instead of DisplayRectangle to determine the size of
10653             our scrollbars
10654           - get_Canvas(): Fixed it to properly calculate canvas for 
10655             right/bottom controls which seem to be placed to the right/bottom
10656             of any controls that have a fixed location
10657           - Removed TODO that's taken care of
10658           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10659             and SetDisplayRectLocation according to new MSDN2 docs
10660           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10661             event when that is called, this is added for compatibility
10662           - ScrollControlIntoView(): Implemented.
10663           - Switched scrollbars to be implicit, they shouldn't be selectable
10664         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10665           call it when the active control is set/changed
10666         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10667         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10668           implicit_control variable (used for native Win32 message generation)
10669         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10670           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10671         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10672         * XplatUIStructs.cs: Added ScrollBarCommands enum
10673
10674 2006-04-10  Jackson Harper  <jackson@ximian.com>
10675
10676         * ButtonBase.cs:
10677         * CheckedListBox.cs:
10678         * ComboBox.cs:
10679         * DataGrid.cs:
10680         * DataGridView.cs:
10681         * Form.cs:
10682         * GroupBox.cs:
10683         * ListBox.cs:
10684         * PrintPreviewControl.cs:
10685         * ProgressBar.cs:
10686         * PropertyGrid.cs:
10687         * Splitter.cs:
10688         * StatusBar.cs:
10689         * TrackBar.cs:
10690         * UpDownBase.cs: Fixup base event overrides.
10691         
10692 2006-04-06  Mike Kestner  <mkestner@novell.com>
10693
10694         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10695         all user-initiated value changes to min <= value <= max-thumbsz+1.
10696         (set_Value): check for vert/horiz when calculating new thumb position.
10697         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10698         like MS does.
10699         (OnMouseMoveSB): refactor the thumb dragging code and refine
10700         invalidation logic to reduce flicker.
10701         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10702         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10703         (UpdateThumbPosition): small code readability cleanup
10704
10705 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10706
10707         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10708           different
10709
10710 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10711
10712         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10713
10714 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10715
10716         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10717         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10718           This dramatically reduces the number of Pen.Dispose calls. 
10719           Where possible call ResPool methods only once instead of calling it
10720           over and over again (for example for the same color).
10721
10722 2006-04-06  Mike Kestner  <mkestner@novell.com>
10723
10724         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10725         Also remove an unused private field on the collection. Fixes #77972.
10726
10727 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10728
10729         * ThemeNice.cs: Added ToolBar drawing code
10730
10731 2006-04-06  Mike Kestner  <mkestner@novell.com>
10732
10733         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10734         I'm assuming that means we need to look up the toplevel for the
10735         provided control. Fixes the crash trace in #77911 but exposes another
10736         crash in some strange reflection usage in NDocGui.
10737
10738 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10739
10740         * ThemeNice.cs: Gave it a little silver touch and added Images
10741           method
10742         * FontDialog.cs: FontDialog is not resizable
10743         * FileDialg.cs: Added SizeGripStyle.Show
10744
10745 2006-04-05  Jackson Harper  <jackson@ximian.com>
10746
10747         * KeyboardLayouts.cs: Remove warning.
10748
10749 2006-04-05  Jackson Harper  <jackson@ximian.com>
10750
10751         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10752         all of our controls instead of Paint +=.
10753         * ListBox.cs:
10754         * ListView.cs:
10755         * MenuAPI.cs:
10756         * MessageBox.cs:
10757         * NotifyIcon.cs:
10758         * ProgressBar.cs:
10759         * ScrollBar.cs:
10760         * Splitter.cs:
10761         * StatusBar.cs:
10762         * TabControl.cs:
10763         * TextBoxBase.cs:
10764         * ToolBar.cs:
10765         * TrackBar.cs:
10766         * UpDownBase.cs:
10767         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10768         use OnPaintInternal. Remove Width/Height and Visible checks in
10769         paint handler, this is done at a higher level now.
10770         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10771         * PaintEventArgs.cs: Add a handled flag so controls that don't
10772         want anymore painting after OnPaintInternal can make sure OnPaint
10773         isn't called.
10774
10775 2006-04-05  Mike Kestner  <mkestner@novell.com>
10776
10777         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10778         state of the form, so that we don't process events when Modal dialogs
10779         are up. Fixes #77922.
10780
10781 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10782
10783         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10784           checking is done.
10785
10786 2006-04-05  Mike Kestner  <mkestner@novell.com>
10787
10788         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10789
10790 2006-04-05  Mike Kestner  <mkestner@novell.com>
10791
10792         * ListView.cs (HeaderMouseMove): null guarding for the over column
10793         when setting up the drag_to_index.  Fixes #78015.
10794
10795 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10796
10797         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10798           in the taskbar. Transient windows seem to accomplish that.
10799
10800 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10801
10802         * Form.cs:
10803           - Re-enabled CreateParams.X/Y code for FormStartPosition
10804           - Added code for manual placement when creating the Control
10805           - Incomplete patch to treat MDI forms differently when
10806             setting the ClientSizeCore. (Still need to figure out handling
10807             x/y coords there)
10808         * XplatUIX11.cs:
10809           - When we're explicitly setting the X/Y position of a non-Child
10810             window, let the WM know. Metacity really wants this.
10811
10812 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10813
10814         * ThemeNice.cs: Added CPDrawButton
10815
10816 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10817
10818         * ThemeNice.cs: Changed the color for focused buttons and activated
10819           the arrows for small scroll buttons.
10820
10821 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10822
10823         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10824           anymore. Changed some method modifiers to protected (virtual)
10825         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10826           changes
10827         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10828           Updated drawing of menus, buttons and progressbars; added
10829           CPDrawBorder3D 
10830
10831 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10832
10833         * ImageListStreamer.cs: implemented serialization/deserialization
10834         of the images.
10835
10836 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10837
10838         * ThemeWin32Classic.cs:
10839           - Removed all the DrawFrameControl stuff; CPDrawButton,
10840             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10841             inside the methods
10842           - Updated and corrected the drawing code of CPDrawButton,
10843             CPDrawCheckBox and CPDrawRadioButton to better match ms
10844           - Updated theme checkbox and radiobutton code to use the CP*
10845             methods
10846
10847 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10848
10849         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10850           bug is fixed
10851
10852 2006-03-31  Jackson Harper  <jackson@ximian.com>
10853
10854         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10855         sometimes.
10856         * UpDownBase.cs: Don't CreateGraphics manually, use a
10857         Refresh. Ideally we would invalidate the correct areas here.
10858
10859 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10860
10861         * XplatUIX11.cs: 
10862           - We now track the mapping state of windows. If a window (or 
10863             one of it's parents) is not mapped we no longer permit
10864             WM_PAINT messages to be generated since we'd otherwise get 
10865             lots of BadMatch X errors. Jackson did all the work figuring
10866             out the problem.
10867           - Destroying the caret if the window it's contained in is 
10868             destroyed. Can't use regular DestroyCaret method since it
10869             might fall into a drawing function (trying to remove the
10870             caret) and with that generate new BadMatch errors. Again,
10871             Jackson tracked this down.
10872           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10873             make sure we send the messages to all windows. (The old code
10874             would send the WM_DESTROY to the window, and then all child
10875             windows would be 'gone' because the WM_DESTROY handle lookup
10876             would no longer find the destroyed window)
10877         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10878         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10879
10880 2006-03-31  Jackson Harper  <jackson@ximian.com>
10881
10882         * ScrollableControl.cs: Dont recalc if we are not visible.
10883
10884 2006-03-31  Mike Kestner  <mkestner@novell.com>
10885
10886         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10887         the visibility branch.
10888
10889 2006-03-31  Jackson Harper  <jackson@ximian.com>
10890
10891         * ScrollBar.cs: Cap values when incrementing/decrementing.
10892
10893 2006-03-31  Mike Kestner  <mkestner@novell.com>
10894
10895         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10896         * ToolTip.cs: guard against timer expirations with no active control.
10897         Not sure why it happened.
10898
10899 2006-03-31  Mike Kestner  <mkestner@novell.com>
10900
10901         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10902         text.
10903         * ToolTip.cs: Position the tooltip based on where the cursor is at
10904         popup time, not at MouseEnter time.  Add a Down state so that we don't
10905         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10906         positioning offset. Lookup DisplaySize at positioning time, since it
10907         can theoretically change during invocation.
10908         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10909         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10910
10911 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10912
10913         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10914           Fixes behaviour when the Text property of the box is String.Empty
10915
10916 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10917
10918         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10919           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10920           a window)
10921
10922 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10923
10924         * FileDialog.cs: Visual enhancement for the popup buttons in 
10925           PopupButtonPanel
10926
10927 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10928
10929         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10930           code
10931
10932 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10933
10934         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10935           highlighted menu items to match ms
10936
10937 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10938
10939         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10940
10941 2006-03-30  Mike Kestner  <mkestner@novell.com>
10942
10943         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10944         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10945         go active to account for HotLight to Selected transition.
10946         * MenuItem.cs: add internal Selected prop. Fill out the Status
10947         property by calculating it from item info. Add HotLight,
10948         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10949
10950 2006-03-30  Mike Kestner  <mkestner@novell.com>
10951
10952         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10953
10954 2006-03-29  Jackson Harper  <jackson@ximian.com>
10955
10956         * Form.cs: Implement TODO.
10957
10958 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10959
10960         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10961           missing proper dialog setup in the constructor
10962
10963 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10964
10965         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10966         * Control.cs:
10967           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
10968           - Fixed ResetBindings and removed TODO
10969           - Added check for cross-thread calls to get_Handle()
10970           - Added Marshaller attribute for set_Font to satisfy class status
10971         * FontDialog.cs: Removed TODOs that seemed implemented
10972         * UpDownBase.cs: Removed unneeded TODO and Fixme
10973         * MessageBox.cs: Implemented support for Default button and removed TODO
10974         * FileDialog.cs: Removed obsolete TODO
10975         * DomainUpDown.cs: Removed obsolete TODO
10976         * ButtonBase.cs: Removed obsolete TODO
10977         * XplatUIWin32.cs: Removed obsolete TODO
10978         * Form.cs:
10979           - Removed obsolete TODO
10980           - Calling CheckAcceptButton when the acceptbutton is changed to allow
10981             internal status updates
10982           - Making sure the active control is selected when the control is created
10983         * CurrencyManager.cs: Removed obsolete TODO
10984
10985 2006-03-29  Mike Kestner  <mkestner@novell.com>
10986
10987         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
10988         of PrintPreviewDialog and RichTextBox.
10989
10990 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
10991
10992         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
10993           DarkDark, Light and LightLight colors for a specific color
10994         * ThemeWin32Classic.cs:
10995           - Use Button drawing code to draw RadioButtons and CheckBoxes with
10996             Appearance = Button 
10997           - Make use of the new ResPool helper CPColor
10998           - Draw ProgressBar and StatusBar with correct 3D borders
10999
11000 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11001
11002         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11003
11004 2006-03-28  Mike Kestner  <mkestner@novell.com>
11005
11006         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11007         calculating col/row counts.
11008
11009 2006-03-28  Mike Kestner  <mkestner@novell.com>
11010
11011         * ColumnHeader.cs:
11012         * ListView.cs:
11013         * ListViewItem.cs:
11014         * Menu.cs: 
11015         switch to explicit interface method implementation for some methods
11016         corcompare identifies as inconsistent with MS.
11017
11018 2006-03-28  Mike Kestner  <mkestner@novell.com>
11019
11020         * MainMenu.cs: 
11021         * Menu.cs:
11022         add a few missing methods from the class status output.
11023
11024 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11025
11026         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11027           correct.
11028
11029 2006-03-28  Mike Kestner  <mkestner@novell.com>
11030
11031         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11032
11033 2006-03-27  Mike Kestner  <mkestner@novell.com>
11034
11035         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11036         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11037
11038 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11039
11040         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11041
11042 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11043
11044         * ThemeWin32Classic.cs:
11045           - GroupBox: Inserted a little gap between the text and the lines
11046             on the right side
11047           - Made the code in CPDrawBorder3D more readable
11048           - Corrected the drawing location of the up and down arrows in 
11049             CPDrawScrollButton
11050
11051 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11052
11053         * ControlPaint.cs: Corrected line widths in DrawBorder for
11054           ButtonBorderStyle Inset and Outset
11055
11056 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11057
11058         * ThemeWin32Classic.cs:
11059           - Rewrote the totally broken CPDrawBorder3D method. That was
11060             one of the main problems for the terrific ThemeWin32Classic
11061             look
11062           - Updated and corrected Button drawing
11063           - Correct the dimensions of the SizeGrip to match ms ones
11064           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11065         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11066           Border3DStyle.Sunken to match ms.
11067
11068 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11069
11070         * ThemeWin32Classic.cs: First small part of the "de-uglify
11071           ThemeWin32Classic" effort, SizeGrip
11072
11073 2006-03-24  Jackson Harper  <jackson@ximian.com>
11074
11075         * XplatUIX11.cs: Give a max idle time of one second, this matches
11076         MS and forces an Idle event every second when there are no other
11077         events in the queue.
11078
11079 2006-03-24  Mike Kestner  <mkestner@novell.com>
11080
11081         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11082         * ListView.Item.cs: fix layout issues with null image lists and images
11083         smaller than checkbox size.
11084         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11085         mode like MS does.  It's weird, but consistent.  ;-)
11086         Fixes #77890.
11087
11088 2006-03-24  Mike Kestner  <mkestner@novell.com>
11089
11090         * ListView.cs: Scroll wheel support for the item control.  Fixes
11091         #77839.
11092
11093 2006-03-23  Jackson Harper  <jackson@ximian.com>
11094
11095         * ScrollableControl.cs: Special case negative sized areas, not
11096         zero.
11097         * MonthCalendar.cs: Save the rect of the clicked date so we can
11098         use it for invalidation.
11099         - Try to cut down on the number of invalidates
11100         - Invalidate the rect the mouse is over and was over when moving
11101         the mouse, so we get the focus box following the cursor.
11102
11103 2006-03-23  Mike Kestner  <mkestner@novell.com>
11104
11105         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11106         focus rectangle drawing. Fixes #77835.
11107
11108 2006-03-23  Mike Kestner  <mkestner@novell.com>
11109
11110         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11111         the if and else if and reverting back to the original == check on the
11112         None conditional.
11113
11114 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11115
11116         * FontDialog.cs: Update the example panel if the selected index of
11117           the fontListBox changes.
11118
11119 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11120
11121         * FileDialog.cs: Make FileDialog remember which directory it was in
11122           last in the same execution.
11123
11124 2006-03-22  Mike Kestner  <mkestner@novell.com>
11125
11126         * FileDialog.cs: make the DropDownMenu on the toolbar display
11127         RadioChecks since they are mutually exclusive and that's what MS does.
11128
11129 2006-03-22  Mike Kestner  <mkestner@novell.com>
11130
11131         * Theme.cs: add Color param to CPDrawMenuGlyph.
11132         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11133         checks and radio marks and arrows are visible on highlighted items.
11134         * ControlPaint.cs: update to use new Theme signature.
11135
11136 2006-03-22  Mike Kestner  <mkestner@novell.com>
11137
11138         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11139         is active. Fixes #77870.
11140
11141 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11142
11143         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11144           to be focused/selected after startup
11145
11146 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11147
11148         * ColorDialog.cs: 
11149           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11150             CustomColors and ShowHelp properties
11151           - Some internal rewrites to get better results when using the
11152             ColorMatrix
11153
11154 2006-03-22  Mike Kestner  <mkestner@novell.com>
11155
11156         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11157         HoverSelection.  Fixes #77836.
11158
11159 2006-03-22  Mike Kestner  <mkestner@novell.com>
11160
11161         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11162         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11163         1, not 0.  Update ButtonSize based on a pixel count of the win32
11164         control.  Adjust the toolbar size/location for new button size.
11165
11166 2006-03-22  Jackson Harper  <jackson@ximian.com>
11167
11168         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11169         true.
11170         * ScrollBar.cs: When doing increments and decrements we need to
11171         set the Value property so that ValueChanged gets raised. A
11172         possible optimization here would be to make an internal SetValue
11173         that doesn't invalidate immediately.
11174         * ToolTip.cs: Tooltips get added to their container (when
11175         supplied) so they get disposed when the container is disposed.
11176         - Don't create tooltips for String.Empty. This prevents all these
11177         little 2-3 pixel windows from showing up when running nunit-gui
11178         and driving me mad.
11179         * Form.cs: Don't set topmost when setting the owner if the handles
11180         haven't been created yet.  The topmost set will happen when the
11181         handles are created.
11182
11183 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11184
11185         * XplatUIX11.cs:
11186           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11187           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11188             visible (to allow them to recalculate their sizes)
11189
11190 2006-03-21  Mike Kestner  <mkestner@novell.com>
11191
11192         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11193         methods. Removed a ton of redundant code.  Still not really happy with
11194         the border rendering, but I think that's mainly because of the
11195         ControlDarkDark being black instead of a dark grey. Depending on how 
11196         close we want to be, we might want to revisit those color choices.
11197         Among the new features added during the refactor were DropDownArrow
11198         pressed rendering, Disabled image rendering.  Proper flat appearance
11199         boundary rendering.  Removed the Divider and Wrapping dividers since I
11200         can't figure out any combination of themes and conditions to make the
11201         MS control draw a horizontal line on a toolbar despite what the
11202         Divider property docs indicate.
11203         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11204         conditions and incorrect layout.  Updated to coding standard.
11205         * ToolBarButton.cs: refactored layout and positioning code from
11206         ToolBar to here.  Invalidate wherever possible instead of forcing
11207         redraws of the whole toolbar. 
11208         (Known remaining issues: explicit ButtonSize smaller than provided
11209         images.)
11210
11211 2006-03-21  Mike Kestner  <mkestner@novell.com>
11212
11213         * ContextMenu.cs (Show): use the position parameter instead of just
11214         showing at the MousePosition.
11215
11216 2006-03-21  Jackson Harper  <jackson@ximian.com>
11217
11218         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11219         control handle this.
11220         * TreeNodeCollection.cs: If we are clearing the root node we need
11221         to reset top_node so calcs can still happen.
11222         * ThemeWin32Classic.cs: This is a Flags so we need to check
11223         properly.
11224         
11225 2006-03-21  Jackson Harper  <jackson@ximian.com>
11226
11227         * DataGrid.cs: Create columns when the binding context has been
11228         changed.
11229         * X11Structs.cs: Keysyms are uints.
11230         - Add size to fix build.
11231
11232 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11233
11234         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11235           XplatUIOSX.cs: 
11236           - Added ResetMouseHover method to allow controls to retrigger
11237             hovering if they need it more than once
11238           - Implemented MouseHoverTime and MouseHoverSize properties
11239         * Timer.cs: Start() must reset the interval
11240         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11241           properties
11242
11243 2006-03-21  Jackson Harper  <jackson@ximian.com>
11244
11245         * X11Keyboard.cs: improved layout detection. Move the nonchar
11246         tables into this file.
11247         * KeyboardLayouts.cs: Move the tables into resource files.
11248
11249 2006-03-21  Mike Kestner  <mkestner@novell.com>
11250
11251         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11252
11253 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11254
11255         * Mime.cs: Various speed optimizations. Looking up mime types
11256           is now 2 times faster than before
11257
11258 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11259
11260         * CreateParams.cs: Added internal menu field
11261         * Control.cs: 
11262           - Switched call order for UpdateBounds; now we always call
11263             the one that also takes ClientSize, and we're calculating the 
11264             client size via driver method in the others. The previous
11265             method of tracking client size by difference wasn't working
11266             for forms where even the starting client size wouldn't match
11267             the overall form size (due to borders) (Part of fix for #77729)
11268           - CreateParams(): Do not use parent.Handle unless the handle is
11269             already created. Causes havoc with Nexxia and throws off our
11270             creation of controls
11271         * XplatUIX11.cs:
11272           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11273           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11274             method (consolidates code)
11275           - Changed RequestNCRecalc to use new PerformNCCalc method
11276           - Added calls to RequestNCRecalc when menus and borders are changed
11277             to allow app to set NC size. (Part of fix for #77729) This matches
11278             when MS send a WM_NCRECALC on Win32 windows.
11279           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11280             (Part of fix for #77729). This matches what MS does, they also
11281             send that message when the form is made visible.
11282           - XException.GetMessage: Improved usability of X errors by including
11283             a translation of the window into Hwnd and Control class
11284           - Improved debug info for window creation, reparenting and destruction
11285           - Created helper method WindowIsMapped() [Currently not used]
11286         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11287         * Form.cs:
11288           - CreateParams: Now setting our menu on the new internal menu field
11289           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11290             avoid calculating the same property twice
11291         * Hwnd.cs:
11292           - Improved usability of ToString() for debugging purposes
11293           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11294             determine the height of the menu, instead of just the font. This
11295             required to also create a graphics context and to keep a bmp 
11296             around (for performance reasons)
11297
11298 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11299
11300         * MenuAPI.cs: Added OnMouseUp method
11301         * Form.cs:
11302           - Now remembering the requested client size, avoids size errors
11303           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11304             instead of base if the menu is active. This is required due to
11305             control now capturing and releasing on down/up and it would
11306             prematurely release our menu capture
11307
11308 2006-03-17  Jackson Harper  <jackson@ximian.com>
11309
11310         * KeyboardLayouts.cs: Add the czech layouts.
11311
11312 2006-03-16  Jackson Harper  <jackson@ximian.com>
11313
11314         * Control.cs: Use the viewport space when sizing not the controls
11315         client size, so things like ScrollableControl that effect the
11316         viewport size (when scrollbars are added) are computed correctly.
11317         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11318         of ManagerEntrys.
11319         - Handle creating BindingManagers for null data sources.
11320         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11321         source, otherwise when rows are added they are added to the 'fake'
11322         datasource and we will crash when trying to set the position in
11323         those rows.
11324         - Use Implicit scrollbars on the datagrid so they arent
11325         selectable.
11326         
11327 2006-03-16  Jackson Harper  <jackson@ximian.com>
11328
11329         * Binding.cs:
11330         * InternalWindowManager.cs:
11331         * MdiWindowManager.cs:
11332         * X11Keyboard.cs: I really want Mike to love me again (fix
11333         compiler warnings).
11334
11335 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11336
11337         * DataGrid.cs:
11338           - OnMouseDown: Switch to editing mode when clicking on the cell
11339                          even if we're clicking on the cell that's currently 
11340                          selected
11341           - ProcessGridKey: Left/Right now wrap like MS.Net does
11342           - ProcessGridKey: Tab now knows to add a new row when tab is
11343                             pressed in the cell of the last column of the 
11344                             last row
11345           - ProcessGridKey: Enter now adds another row  if pressed in the last
11346                             row and selectes the new row, same column cell
11347           - ProcessGridKey: Home/End navigate columns, not rows, like 
11348                             originally implemented
11349           - Broke ProcessKeyPreview code out into an extra Internal method
11350             so it can be called from the edit code
11351         * DataGridTextBox.cs (ProcessKeyMessage):
11352           - Switched to accept Tab keypresses
11353           - Added F2 handling to allow jumping to the end of the edited cell
11354           - Added logic to allow moving caret left/right inside edited cell
11355             and making the edited cell jump when the caret hits cell borders
11356           - Tab and Enter are now passed to the datagrid after being handled
11357         * TextBoxBase.cs:
11358           - Removed capture code now that Control handles it
11359           - set_SelectionStart now ensures caret is visible
11360
11361 2006-03-16  Jackson Harper  <jackson@ximian.com>
11362
11363         * TrackBar.cs: Debackwards the increment/decrement for handling
11364         mouse clicks on the bar with vertical trackbars.
11365         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11366         bottom to match MS.
11367
11368 2006-03-16  Mike Kestner  <mkestner@novell.com>
11369
11370         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11371         consistent with the MS control. Fix a bug in
11372         SelectedListViewItemCollection.Clear that was pissing me off for the
11373         better part of a day because the collection was being altered
11374         underneath us as we walked the list.
11375
11376 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11377
11378         * Control.cs: Not sure how we could miss this so long, but it seems
11379           that MS.Net has Capture set all the way from before calling 
11380           OnMouseDown through sending the mouse events until after
11381           OnMouseUp. This will fix DataGrid's selection being set to end
11382           at the location of the MouseUp.
11383
11384 2006-03-15  Jackson Harper  <jackson@ximian.com>
11385
11386         * BindingContext.cs: Check the binding after its added so that it
11387           can initialize the binding managers and hookup to events.
11388         * Binding.cs: Data members seem to sometimes include rows/cols in
11389           the format Row.Column we now take this into account.
11390           - Hookup to the position changed event so we can update the
11391           control when the position has changed in the data set.
11392         * CurrencyManager.cs: Take into account the row/col naming
11393           convention when creating dataset tables.
11394         * BindingContext.cs: Using a newer better way of storing
11395           datasource/datamember pairs.  Hopefully this better matches MS for
11396           looking up binding managers.
11397
11398
11399 2006-03-15  Jackson Harper  <jackson@ximian.com>
11400
11401         * BindingContext.cs: The currency manager needs the data member
11402         name, if the member is a data set we use the name to find the
11403         correct table.
11404         * CurrencyManager.cs: When creating the list prefer an IList over
11405         an IListSource.
11406         - Attempt to create a DataTable from a DataSet (TODO: might need
11407         some better error checking here, although MS doesn't seem to have much)
11408         - If we have a DataTable create a view and use it as our list.
11409
11410 2006-03-15  Mike Kestner  <mkestner@novell.com>
11411
11412         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11413         keyboard navigation. Support Up/Down/Left/Right selection correctly
11414         for all 4 View modes.
11415         * ListViewItem.cs: add internal row/col fields for icon layouts.
11416
11417 2006-03-15  Jackson Harper  <jackson@ximian.com>
11418
11419         * TabControl.cs: Redraw the tabs when we resize so their newly
11420         calculated sizes are drawn on screen.
11421         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11422         composite characters.
11423         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11424         - filter events so that composite characters can be created
11425         patches by peter
11426         * X11Structs.cs: Add XIMProperties enum.
11427
11428 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11429
11430         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11431           unless it's created
11432
11433 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11434
11435         * Control.cs (PerformLayout): We don't need to consider visiblity
11436           for anchoring, only for docking. This fixes 'whacky' alignment
11437           in listbox and other controls that use implicit scrollbars after
11438           the previous PerformLayout patch
11439         * ListBox.cs: Switched to use implicit scrollbars
11440           
11441 2006-03-14  Mike Kestner  <mkestner@novell.com>
11442
11443         * ToolBar.cs: 
11444         * VScrollBar.cs:
11445         - chain up the "new event" overrides to base and use
11446         OnEvent to raise them.  Part of fix for bug #76509.
11447
11448 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11449
11450         * FileDialog.cs: Do not select an item in the parent directory
11451           on backspace
11452
11453 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11454
11455         * Control.cs (PerformLayout): It would seem that we considered
11456           invisible windows for our layout. Not quite the right thing
11457           to do. Now we don't any longer, thereby fixing bug #76889.
11458
11459 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11460
11461         * Control.cs (CanFocus): I goofed. A control can have focus 
11462           even though it's not selectable. Made it match MS docs.
11463
11464 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11465
11466         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11467           center by default (fixes #76895)
11468         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11469           all uses of Border3DSides.All with the explicit ORd together
11470           Left|Right|Top|Bottom because I assume that nobody was aware 
11471           that All also implies a center fill. Most places I checked had
11472           a fill right above.
11473         * ProgressBarStyle.cs: Added
11474
11475 2006-03-13  Mike Kestner  <mkestner@novell.com>
11476
11477         * ListView.cs: fix breakage in drag shadow header positioning 
11478         from Peter's csc compilation fix.
11479
11480 2006-03-13  Mike Kestner  <mkestner@novell.com>
11481
11482         * ListView.cs: fix NRE produced by backspacing twice in a focused
11483         FileDialog.
11484
11485 2006-03-13  Mike Kestner  <mkestner@novell.com>
11486
11487         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11488
11489 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11490
11491         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11492           be changed
11493         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11494           the allowed size before making programmatic size changes
11495
11496 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11497
11498         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11499           set, metacity is broken and will still use the emty sizes in 
11500           the struct. (Fix for #77089)
11501
11502 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11503
11504         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11505           WindowExStyles and marked both enums as Flags
11506         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11507           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11508           to match WindowStyles split
11509         * XplatUIX11.cs:
11510           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11511           - Updated to match WindowStyles split
11512         * XplatUIWin32.cs:
11513           - Fixed FosterParent creation, was using ExStyle on the Style field
11514             (This should help with Popup focus issues)
11515           - Updated to match WindowStyles split
11516
11517 2006-03-13  Jackson Harper  <jackson@ximian.com>
11518
11519         * MdiWindowManager.cs: Use the system menu height. Fixes some
11520         strange sizing issues.
11521
11522 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11523
11524         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11525         * TextBoxBase.cs:
11526           - Scroll to caret after inserting text (#77672)
11527           - Make scroll range one pixel higher, fixes off-by-one error (and
11528             makes underlines visible on the last line)
11529
11530 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11531
11532         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11533           the keyboard state from being stuck with keys in 'pressed' state when
11534           focus is switched away via keyboard
11535         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11536           reset the keyboard if no X11 KeyUp events are expected to come
11537         * X11Structs.cs: Switched type of Visible to bool to match driver
11538
11539 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11540
11541         * TextControl.cs:
11542           - Switched caret to be just 1 pixel wide, matches MS and looks less
11543             clunky
11544           - Moved caret display 1 pixel down from the top of the control
11545             to improve view
11546           - InsertCharAtCharet: Update the selection start if moving the caret
11547             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11548           - No longer always creating the caret when the caret methods are
11549             called. Only the actual ShowCaret/HideCaret will do that now
11550           - Only setting caret visible if the owner control has focus
11551           - UpdateView: Added invalidation-shortcut logic for center and right 
11552             aligned text. Previously we'd update all according to the left
11553             logic which caused drawing errors. Also fixed height of invalidated
11554             areas, now properly invalidating the whole area (was off-by-one)
11555           - owner_HandleCreated: Always generate the document when the
11556             handle is created; this ensures that 
11557         * TextBoxBase.cs:
11558           - Fixed situation where caret would disappear under the right
11559             window border, also improved scrolling behaviour on left-
11560             aligned textboxes
11561           - Fixed right-aligned textboxes to have a border to the
11562             right instead of the caret being under the right border
11563         * XplatUIX11.cs:
11564           - Switched from 'nested' to simple visible/not visible tracking 
11565             for caret (part of fix for #77671)
11566           - No longer passing through translated FocusIn/FocusOut messages
11567             since we were notifying too often and the wrong windows. Instead
11568             we just notify our focussed window of receiving or loosing focus
11569         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11570           counting for caret to simple visible yes/no behaviour (part of 
11571           fix for #77671)
11572
11573 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11574
11575         * Mime.cs: Remove debug code...
11576
11577 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11578
11579         * MimeGenerated.cs: Removed
11580         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11581           and subclasses) from /usr/(local/)share/mime and
11582           $HOME/.local/share/mime.
11583
11584 2006-03-10  Jackson Harper  <jackson@ximian.com>
11585
11586         * MdiWindowManager.cs: Recalc the NC area when a window is
11587         maximized/restored so that the menu area is drawn on forms that
11588         don't have a menu.
11589
11590 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11591
11592         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11593           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11594           us to force a WM_NCCALCRESIZE message being sent. This is needed
11595           for MDI maximizing.
11596
11597 2006-03-10  Jackson Harper  <jackson@ximian.com>
11598
11599         * Form.cs: We need to use the ActiveMenu when calculating menu
11600         height.
11601         - Fix nullref when the window manager hasn't been created yet.
11602         * Control.cs: Fix nullref when we try to bring a control to the
11603         front that has no parent.
11604         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11605         height.
11606         - Add a dummy item to the maximized menu so it always has the
11607         correct height. Otherwise when there are no menus we don't get our
11608         icon and buttons.
11609         
11610
11611 2006-03-10  Jackson Harper  <jackson@ximian.com>
11612
11613         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11614         stuff.
11615         * Form.cs: Make the window_state internal so the window managers
11616         can track it.
11617         - When an MDI child is maximized let its window manager create the
11618         main menu (so it can add its icon).
11619         - Notify the window managers of state changes
11620         - Let the window manager paint its buttons and handle button
11621         clicks on the menu when it is maximized.
11622         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11623         window manager, since tool windows don't use it, only mdi windows.
11624         - Tell the main form that we don't want it to handle NCPAINT
11625         itself to avoid extra painting.
11626         - Handle clicks on a maximized windows menu.
11627         - Handle window state changes
11628         - Handle minimize/maximize clicks correctly by setting the window state.
11629         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11630         when clicking on the forms icon).
11631         - New method to create a forms maximized menu. This is its normal
11632         menu + an icon.
11633         - Handle window state changes.
11634         - Handle sizing of maximized windows.  Maximized windows are just
11635         drawn bigger then the parent visible area. All controls are still
11636         there, they are just outside the visible area (this matches windows).
11637         * MdiClient.cs: No scrollbars when a child window is maximized.
11638         - Let the children windows figure out how big they should be when
11639         sizing maximized windows.
11640         - Implement a version of ArrangeIconicWindows somewhat similar to
11641         Windows version.  There are some little differences, but I don't
11642         think any app will rely on the layout of minimized mdi windows.
11643
11644 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11645
11646         * Padding.cs: Several fixes to allow compiling with csc 2.0
11647
11648 2006-03-09  Jackson Harper  <jackson@ximian.com>
11649
11650         * Menu.cs:
11651         * MenuItem.cs: Cheap hack so we can add items to the list without
11652         the events being raised.  This allows adding mdi items during
11653         drawing. TODO: Should probably find a better time to add the items.
11654
11655 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11656
11657         * ThemeWin32Classic.cs:
11658           - CheckBox_DrawText: Added logic to not wrap if not enough space
11659             is available (Fix for bug #77727)
11660           - RadioButton_DrawText: Added logic not to wrap if not enough
11661             space is available (Fix for bug #77727). Also removed some
11662             duplicate code, DrawString always drawing the regular text
11663             before hitting the if statement.
11664
11665 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11666
11667         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11668
11669 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11670
11671         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11672         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11673           methods. Moved the new 2.0 properties into alphabetical order with
11674           other properties and added MonoTODO tags
11675
11676 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11677
11678         * AutoScaleMode.cs: Added. Fix build.
11679
11680 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11681
11682         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11683           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11684           and was requiring premature handle creation for calls from above
11685         * Form.cs, Control.cs: Removed handle arguments from calls to
11686           CalculateClientRect()
11687
11688 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11689
11690         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11691           drag_column.column_rect is MarshalByRef and can't be used that way
11692
11693 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11694
11695         * AxHost.cs: Added deserialization constructor for 
11696           AxHost+State (fixes 77743)
11697
11698 2006-03-09  Mike Kestner  <mkestner@novell.com>
11699
11700         * ListView.cs: 
11701         - Added column drag reordering for details view.
11702         - fixed behavior when mouse is dragged off column and
11703         AllowColumnReorder is false.
11704         * ColumnHeader.cs: clone the format too in Clone.
11705         * Theme.cs: add DrawListViewHeaderDragDetails method.
11706         * ThemeWin32Classic.cs:
11707         - impl new method for drawing drag column shadows and targets.
11708         - support column offset for details mode in DrawListViewItem.
11709
11710 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11711
11712         * TextControl.cs: Reset the char_count when the document is cleared
11713           (Fixes bug reported on mono-winforms mailing list)
11714
11715 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11716
11717         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11718           of calling base we simply process the key ourselves, since both
11719           DefWindowProc and the handled method would set m.Result. 
11720           (Fixes #77732)
11721
11722 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11723
11724         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11725           method also moves the window; instead implemented a copy of
11726           Control.ScaleCore (Part of fix for #77456)
11727         * TextBoxBase.cs: 
11728           - Created new CreateGraphicsInternal method to allow providing
11729             a graphics context when no handle is created without triggering
11730             handle creation. (Part of fix for #77456)
11731           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11732         * TextControl.cs: 
11733           - Switched Constructor to require TextBoxBase instead of Control (to
11734             allow uncast access to CreateGraphicsInternal)
11735           - Safeguarded use of owner.Handle property. No longer accessing it
11736             unless the handle is already created.
11737           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11738           - Now triggering a recalc when owning control becomes visible
11739         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11740           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11741           premature handle creation (Part of fix for #77456)
11742         * Control.cs:
11743           - We now only destroy our double-buffering buffers when the
11744             control is resized or disposed, but not when visibility
11745             changes. (The code even re-created them twice every time)
11746           - Now requiring a redraw of the buffer on visibility changes
11747             (fixes bug 77654 part 2)
11748           - Not passing OnParentVisibleChanged up unless the control
11749             is visible
11750           - CanFocus: Fixed to match MS documentation
11751           - Focus: Fixed to return actual focus state and to check if
11752             setting focus is legal before setting it
11753
11754 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11755
11756         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11757           when to draw focus rectangle by looking at parent focus and
11758           selected state instead. This fixes TabPages on Linux sometimes
11759           having none or multiple focus rectangles.
11760         * XplatUIX11.cs (SetFocus): 
11761           - Don't set the focus if the same window already has focus
11762           - Use SendMessage instead of PostMessage (like it's Win32
11763             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11764             to match MS behaviour
11765         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11766           are not selectable.
11767
11768 2006-03-07  Jackson Harper  <jackson@ximian.com>
11769
11770         * PictureBox.cs: Revert line I accidently committed last week.
11771
11772 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11773
11774         * Control.cs: 
11775           - Added new IsRecreating and ParentIsRecreating properties to
11776             allow testing if RecreateHandle has been called on ourselves
11777             or one of our parents
11778           - WndProc(WM_DESTROY): If our control handle is being recreated
11779             we immediately need to create the handle when receiving the
11780             destroy, that way our child windows find a valid parent handle
11781             when they themselves are being recreated upon WM_DESTROY receipt
11782             (fix for bug #77654 part 1)
11783         * XplatUIX11.cs:
11784           - DestroyWindow: WM_DESTROY must be sent to our own window before
11785             notifying any child windows. MS documents that child windows
11786             are still valid when WM_DESTROY is received. (Control now relies on
11787             this behaviour)
11788           - Added some fine-grain debug options
11789
11790 2006-03-06  Jackson Harper  <jackson@ximian.com>
11791
11792         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11793         box and base calculations off this.
11794         * MdiChildContext.cs:
11795         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11796         anymore.
11797         
11798 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11799
11800         * Splitter.cs: In situations where the affected control is added
11801           to the parent's control list after the splitter, we would not
11802           populate affected. Now we try populating it on mousedown, if
11803           it's not already set, and force it to be re-set whenever our
11804           parent changes.
11805
11806 2006-03-03  Matt Hargett  <matt@use.net>
11807
11808         * Control.cs: implement Control.Padding
11809         * Padding.cs: -Padding.All returns -1 when constructing with the
11810         implicit default ctor
11811         -Padding.ToString() matches MS.NET
11812         * ContainerControl.cs: implement
11813         ContainerControl.AutoScaleDimensions
11814         * ListControl.cs: implement ListControl.FormattingEnabled
11815         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11816         * ButtonBase.cs:
11817         * TabPage.cs: Implement UseVisualStyleBackColor.
11818         * PictureBox.cs: Implement PictureBox.InitialImage.
11819
11820 2006-03-03  Mike Kestner  <mkestner@novell.com>
11821
11822         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11823         event declarations to proxy to base event.
11824         * ListViewItem.cs: update to use ItemControl.
11825         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11826         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11827         column header label rendering for 0 width columns.
11828
11829 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11830
11831         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11832           that causes the control to be created. Fixes #77476.
11833
11834 2006-03-02  Jackson Harper  <jackson@ximian.com>
11835
11836         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11837         expose_pending.
11838
11839 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11840
11841         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11842           passed in for the EventArgs (fixes #77690)
11843
11844 2006-03-01  Jackson Harper  <jackson@ximian.com>
11845
11846         * ScrollBar.cs: Refresh afterbeing resized.
11847
11848 2006-02-28  Mike Kestner  <mkestner@novell.com>
11849
11850         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11851         Clean up a tracker compile warning.
11852         * MenuItem.cs: add internal PerformPopup method.
11853         [Fixes #77457]
11854
11855 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11856
11857         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11858           implicit expose) when the text is set to null
11859
11860 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11861
11862         * RichTextBox.cs (FlushText): When newline is true, we always
11863           need to split the line, even if no text is on it and we may
11864           never eat newlines. (Fixes #77669)
11865
11866 2006-02-28  Mike Kestner  <mkestner@novell.com>
11867
11868         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11869         and set Selected instead.
11870         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11871         collections.
11872
11873 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11874
11875         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11876
11877 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11878
11879         * FontDialog.cs:
11880           - Got rid of the panel. All controls are now directly added to
11881             the dialog form
11882           - It is now possible to set a font with the Font property
11883           - MinSize and MaxSize property do now what they should
11884           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11885           - Searching and selecting a font with the font textbox works now,
11886             the same applies to the style and size textbox
11887           - Draw the correct 3D border in the example panel
11888           - Fixed a little mem leak (unused fonts didn't get disposed)
11889           - Many other internal updates/rewrites...
11890           - Fix typo
11891
11892 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11893
11894         * TextControl.cs: 
11895           - InsertRTFFromStream: Added 'number of characters inserted' argument
11896           - set_SelectedRTF: Now using the number of characters to calculate
11897             the new location for the selection and cursor (x/y cannot be used
11898             due to potentially already wrapped text)
11899
11900 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11901
11902         * TextControl.cs: Added property and implemented means to allow 
11903           disabling recalculation of a document (can be used to speed up
11904           multiple inserts and is needed to make RTF inserts predictable, see
11905           bug #77659)
11906         * RichTextBox.cs: Using the new NoRecalc property of Document to
11907           keep x/y insert locations predictable. Also makes it faster inserting
11908           large chunks of RTF
11909
11910 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11911
11912         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11913           it's easier for a child control to handle the other messages without
11914           having to duplicate the special functionality
11915         * TextBoxBase.cs
11916           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11917             code to handle processing the key ourselves, in order to get 
11918             access to the result of KeyEventArgs.Handled. We now only call 
11919             ProcessKey if they key hasn't been handled already. Fixes #77526.
11920           - set_Text: If null or empty string is given, just clear the 
11921             document. Fixes part of #77526
11922
11923 2006-02-27  Jackson Harper  <jackson@ximian.com>
11924
11925         * SizeGrip.cs: Paint the background color before painting the grip
11926         so things look right.
11927         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11928
11929 2006-02-27  Mike Kestner  <mkestner@novell.com>
11930
11931         * ListView.cs:
11932           - Restructure layout and invalidation model to remove a ton of
11933           flicker from the control and speed up performance in general.
11934           - Add manual column resize, flickers like crazy, but I already have
11935           some ideas on how I'll fix that. (#76822)
11936           - Merge the three Icon-based views into a single layout method.
11937           - Move item selection interaction logic from the item since 
11938           interaction with the collections is more appropriate to the view.
11939           - Deselection on non-item clicks.
11940         * ListViewItem.cs:
11941           - Encapsulate most of the layout. Add some internal props to trigger
11942           layout.  Move to a model where Items invalidate themselves instead
11943           of just invalidating the whole control every time something changes.
11944           - Invalidate on Text/Caption changes.
11945           - switch to an offset based layout model to avoid having to absolute
11946           position every element on item moves.
11947           - correct checkbox layout to conform to MS layout.
11948         * ThemeWin32Classic.cs:
11949           - refactor some column header drawing code.
11950           - fix string justification for column headers (#76821)
11951           - make SmallIcon labels top justified for compat with MS impl.
11952         * ThemeClearlooks.cs:
11953           - adjust to new ListViewItem internal checkbox bounds api.
11954
11955 2006-02-27  Jackson Harper  <jackson@ximian.com>
11956
11957         * Control.cs:  Change where implicit controls fall in the zorder.
11958         They are now on top of all children.
11959         - Synced AddImplicit code with Add
11960         - Removed unused enumerator.
11961         * SizeGrip.cs: Remove the TODO as its been TODONE.
11962
11963 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11964
11965         * TextControl.cs(Insert): Combine the last lines unless the insertion
11966           string ends with \n\n, otherwise we leave one line too many (Fixes
11967           something I noticed with the testapp for #77526; the bug itself was
11968           already fixed in the previous checkin)
11969
11970 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
11971
11972         * RichTextBox.cs:
11973           - SelectionColor and SelectionFont methods no longer set absolute
11974             styles. Instead, the keep font or color respectively (This 
11975             resolves a long-standing FIXME in the code)
11976           - When flushing RTF text, the insert code now considers text trailing
11977             behind the insertion point (Fixes the bug where when replacing
11978             the selected text via SelectedRTF the remainder of the line behind 
11979             the selection would stay on the first insertion line)
11980         * TextBoxBase.cs:
11981           - AppendText now updates the selection points after inserting text
11982           - AppendText now ensures that the last tag (sometimes 0-length) of
11983             the document is used for the style information (Fixes part of 
11984             bug #77220)
11985         * TextControl.cs:
11986           - Created new FontDefiniton class to allow describing partial style
11987             changes
11988           - StreamLine() now takes a lines argument, to allow it to decide
11989             whether an encountered zero-length tag is the last in the document
11990             (which must be kept to not loose the font/color contained in it,
11991             for later appends)
11992           - Created Combine() and Split() methods for Marker structs, to 
11993             support marker updates due to reformatted documents (soft line
11994             wraps)
11995           - Implemented Document.CaretTag setter
11996           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
11997             of the last line (Not the cause, but also exposed by bug #77220)
11998           - Added LineTag argument to InsertString method, to allow callers
11999             to force a certain tag to be used (required to force use of the
12000             trailing zero-length tag of a document)
12001           - Now updating markers in Combine(), to avoid stale tag markers
12002           - Added some method descriptions to aid maintenance
12003           - Implemented new FormatText concept, allowing additive/subtractive
12004             formatting by only specifying the components that are to be 
12005             changed. This was needed for resolving the RTB.SelectedColor/
12006             RTB.SelectedFont fixmes
12007           - Added Break() support method to allow breaking up linetags (used
12008             for partial formatting)
12009           - Added GenerateTextFormat() method. It is used for partial 
12010             formatting and allows to generate a full font/color from given
12011             attributes and an existing tag.
12012
12013 2006-02-26  Jackson Harper  <jackson@ximian.com>
12014
12015         * XplatUIX11.cs:  Use the correct caption height.
12016         - Translate hittest coordinates to screen coords to match MS.
12017         * XplatUIWin32.cs: When we create MDI windows we need to reset
12018         some of the style flags, so we get a nice blank window, and can
12019         draw all the decorations ourselves.
12020         - Set a clipping rectangle on the non client paint event, the
12021         window manager drawing code needs one.
12022         * Form.cs: The window manager needs to know when the window state
12023         has been updated.
12024         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12025         don't need to factor in border and title sizes in these
12026         methods. TODO: Remove the args and fix the call points.
12027         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12028         properly.
12029         - Let the driver set the cursors.
12030         - Improve active window handling
12031         - Correct sizes for title bars and buttons.
12032         - Match MS drawing better
12033         * MdiWindowManager.cs: We don't need to handle border style
12034         updates specially anymore.
12035         - Check for scrollbars when windows are done moving
12036         - Handle Active properly.
12037         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12038         correctly. I am spewing the exception though, so we don't hide the
12039         bugs.
12040         
12041 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12042
12043         * DataGridViewRowPostPaintEventArgs.cs,
12044           DataGridViewCellPaintingEventArgs.cs,
12045           DataGridViewRowCollection.cs,
12046           DataGridViewRowPrePaintEventArgs.cs,
12047           DataGridViewCell.cs: Clear a few warnings and implement a few
12048           exceptions that should be thrown.
12049
12050 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12051
12052         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12053           'inheriting' our parent's (non-default) cursor. (Part of
12054            the fix for #77479)
12055
12056 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12057
12058         * XplatUIX11.cs: Fixed cast to make csc happy
12059
12060 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12061
12062         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12063           it's for the client area (part of fix for #77479 and needed
12064           for MDI window cursor handling)
12065         * XplatUIX11.cs
12066           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12067             the appropriate default cursors and also passing the message
12068             up the parent chain 
12069           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12070             for non-client areas
12071
12072 2006-02-15  Jackson Harper  <jackson@ximian.com>
12073
12074         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12075         is a real MDI window
12076
12077 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12078
12079         * X11DesktopColors.cs: Instead of checking the desktop session
12080           string for "KDE" check if it starts with "KDE"
12081
12082 2006-02-10  Jackson Harper  <jackson@ximian.com>
12083
12084         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12085         systems).
12086
12087 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12088
12089         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12090           errors
12091         * ColorDialog.cs:
12092           - Got rid of the panel. All controls are now directly added to
12093             the dialog form
12094           - Changed to mono coding style
12095
12096 2006-02-10  Jackson Harper  <jackson@ximian.com>
12097
12098         * InternalWindowManager.cs: We don't need the set visibility to
12099         false hack anymore now that peter has written beautiful shutdown
12100         code.
12101
12102 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12103
12104         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12105           where already explicitly destroyed
12106
12107 2006-02-10  Jackson Harper  <jackson@ximian.com>
12108
12109         * MdiClient.cs: Handle the case where windows are too high or to
12110         the left and we need scrollbars.
12111
12112 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12113
12114         * MimeIcon.cs: Added some icons
12115         * FileDialog.cs:
12116           - Fixed bug #77477
12117           - Got rid of the panel. All controls are now directly added to
12118             the dialog form
12119           - Changed to mono coding style
12120           - On Linux "My Computer" and "My Network" will now show some
12121             more usefull information. A new class, MasterMount, gathers
12122             this information from /proc/mount. Updated MWFFileView to make
12123             use of this information
12124           - Fixed a bug that caused FileDialog to crash when
12125             ".recently_used" file had a zero size
12126           - FilterIndex does now what it should
12127           - Some Refactoring
12128         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12129             FileDialog changes
12130
12131 2006-02-09  Jackson Harper  <jackson@ximian.com>
12132
12133         * ComboBox.cs: Don't touch if null.
12134
12135 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12136
12137         * Cursor.cs: 64bit safeness fix
12138         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12139
12140 2006-02-09  Jackson Harper  <jackson@ximian.com>
12141
12142         * Form.cs: If a form is made into an MDI form update the styles so
12143         all the props can get set correctly.
12144         - Kill the mdi_container when we dont need it anymore.
12145         * InternalWindowManager.cs: Add missing NOT
12146
12147 2006-02-08  Jackson Harper  <jackson@ximian.com>
12148
12149         * InternalWindowManager.cs: Respek clipping when drawing MDi
12150         decorations.
12151
12152 2006-02-08  Jackson Harper  <jackson@ximian.com>
12153
12154         * Hwnd.cs: Add bits to track non client expose events.
12155         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12156         gives us a proper invalid rect and will allow for some nice
12157         optimizations with NC client drawing
12158         - MDI windows are children windows, so move their style handling
12159         into the child window block.
12160         * InternalWindowManager.cs: Remove a state reset that was
12161         getting invoked at the wrong time. Fixes managed windows getting
12162         into a 'stuck' captured state.
12163
12164 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12165
12166         * TextControl.cs (Document.ctor): Now initializing 
12167           selection_anchor. Fixes #77493
12168
12169 2006-02-07  Jackson Harper  <jackson@ximian.com>
12170
12171         * TrackBar.cs: The increment/decrements were backwards.
12172
12173 2006-02-07  Mike Kestner  <mkestner@novell.com>
12174
12175         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12176         to the instance itself.
12177
12178 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12179
12180         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12181           on ulongs and pointers, the size differs between 32bit and 64bit
12182           systems. 
12183
12184 2006-02-07  Mike Kestner  <mkestner@novell.com>
12185
12186         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12187         for 64 bit platforms to work around a metacity bug. 
12188
12189 2006-02-07  Jackson Harper  <jackson@ximian.com>
12190
12191         * TrackBar.cs: Process the input keys we need, and hookup to
12192         KeyDown instead of using WndProc, so we get key messages.
12193
12194 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12195
12196         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12197           machine we're on. 
12198         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12199           we need to translate the XdndVersion atoms array before sending it
12200
12201 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12202
12203         * XplatUIX11.cs: 
12204           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12205             number of bits for the property, not the number of bytes. The
12206             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12207             but would not crash since it specified 8 bits instead of 4 bits)
12208           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12209             defined as XID -> long in the C headers)
12210           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12211             references since those are now IntPtr to begin with
12212           - Switched all Atom.XXX 'int' casts to IntPtr casts
12213           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12214           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12215           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12216         * X11Structs.cs:
12217           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12218           - Changed atom in HoverStruct to be IntPtr
12219         * X11DnD.cs:
12220           - Removed local DllImports, switched code to use those from XplatUIX11
12221           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12222
12223 2006-02-06  Mike Kestner  <mkestner@novell.com>
12224
12225         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12226         method signatures in the import region.  There may still be some
12227         lingering struct marshaling issues, as I didn't drill down into those.
12228         Yet.
12229
12230 2006-02-06  Jackson Harper  <jackson@ximian.com>
12231
12232         * ComboBox.cs: Dont manually set the top_item, this is computed
12233         when the scrollbar position is set.
12234
12235 2006-02-06  Mike Kestner  <mkestner@novell.com>
12236
12237         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12238         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12239         usage of Atom needs to be mapped to IntPtr for example.  And there are
12240         likely other int/long issues to be addressed.
12241
12242 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12243
12244         * FileDialog.cs: One more...
12245
12246 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12247
12248         * FileDialog.cs: Next try
12249
12250 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12251
12252         * FileDialog.cs: First part of fix for #77464
12253
12254 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12255
12256         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12257           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12258           AcceptButton border drawing.
12259
12260 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12261
12262         * Form.cs: Moved positioning of form after auto scaling is applied,
12263           otherwise it would possibly use wrong form size.
12264
12265 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12266
12267         * Control.cs (RecreateHandle): No need to re-create any child
12268           controls, the child windows will get destroyed automatically by
12269           the windowing system or driver, and re-created when the handle
12270           is being accessed the first time. Fixes #77456
12271         * Form.cs: No longer setting the form to closing if the handle is 
12272           being recreated. This seems like the right thing to do, don't
12273           have a bug or testcase for this, though.
12274
12275 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12276
12277         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12278           controls to avoid unwanted side effects
12279
12280 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12281
12282         * Control.cs: 
12283           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12284             control. Fixes #77416.
12285           - DefaultSize is 0,0 for control
12286         * TextBoxBase.cs: 
12287           - DefaultSize is 100, 20
12288           - SetBoundsCore: Now enforcing the height, no matter if the provided
12289             height is more or less than the preferred one, as long as AutoSize
12290             is on
12291         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12292
12293 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12294
12295         * Control.cs:
12296           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12297             call unless both performLayout is true *and* we have a pending
12298             layout change
12299           - ResumeLayout: MS does not completely nest Suspend and Resume,
12300             they bottom out at 0, fixed our code to match that.
12301           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12302             SetBoundsCore, we were updating even when we shouldn't. This fixes
12303             swf-anchors mis-anchoring when resizing the app fast and lots.
12304           - UpdateDistances: Now only setting the left and top distance if 
12305             we have a parent and are not suspended, this is based on
12306             a suggestion by Don Edvaldson in bug #77355.
12307           - OnVisibleChanged: Fixed logic when to create the control. We may
12308             not create the control if we have no parent or if it's not visible;
12309             switched to using Visible property instead of is_visible field 
12310             since the property also considers parent states. This fixes a bug
12311             when starting Paint.Net
12312
12313 2006-02-02  Jackson Harper  <jackson@ximian.com>
12314
12315         * Form.cs: If the forms handle hasn't been created yet don't call
12316         into xplatui to make it top most, just set the topmost flag on the
12317         form in CreateParams
12318         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12319
12320 2006-02-01  Jackson Harper  <jackson@ximian.com>
12321
12322         * ScrollableControl.cs: Refactored the Recalculate method a
12323         little, this wasn't handling all the variants of bottom and right
12324         bars needed to be added and added/removed based on their
12325         counterparts being added/removed (which changes the drawable
12326         size). Also we special case client widths and heights of 0 and
12327         don't add the scrollbar for those.
12328
12329 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12330
12331         * XplatUIX11.cs: 
12332           - Added method to get AbsoluteGeometry(); currently unused, but might
12333             be used in the future, if we try again to figure out toplevel
12334             coordinates with some more crappy window managers
12335           - Added FrameExtents() method to retrieve the WM set decoration size
12336           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12337             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12338         * Hwnd.cs: 
12339           - Added whacky_wm tracking var for metacity
12340           - Added logic to have default menu height if the actual menu height
12341             has not yet been calculated (part of fix for #77426)
12342         * Form.cs: Keep track whether client size has been set and re-set 
12343           it if a menu is added/removed afterwards (Fixes #77426)
12344
12345 2006-01-31  Jackson Harper  <jackson@ximian.com>
12346
12347         * Control.cs: When a new Site is set on the component attempt to
12348         pull the AmbientProperties from it.
12349
12350 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12351
12352         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12353           in the background of the owning form. Fixes #77332
12354
12355 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12356
12357         * MimeIcon.cs: Fix for #77409
12358
12359 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12360
12361         * XplatUIX11GTK.cs: Initial import
12362
12363 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12364
12365         * FixedSizeTextBox: fixes class signature
12366
12367 2006-01-30  Jackson Harper  <jackson@ximian.com>
12368
12369         * FixedSizeTextBox.cs: New internal class that represents a
12370         textBox that will not be scaled.
12371         * TreeView.cs:
12372         * ComboBox.cs:
12373         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12374         standard TextBox.
12375                 
12376 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12377
12378         * XplatUIX11.cs: Retrieve default screen number instead of
12379           assuming 0. Attempted fix for #77318
12380
12381 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12382
12383         * XplatUIWin32.cs: 
12384           - GetWindowPos: When a window is parented by FosterParent, use 
12385             the desktop instead of FosterParent as the base to get coordinates
12386           - CreateWindow: Don't make FosterParent the parent window for Popups
12387             if we don't want a taskbar entry, Popups automatically don't get one
12388         * Hwnd.cs: Need to call remove to actually remove the key from the
12389           hash table
12390
12391 2006-01-30  Mike Kestner  <mkestner@novell.com>
12392
12393         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12394
12395 2006-01-30  Jackson Harper  <jackson@ximian.com>
12396
12397         * TreeView.cs:
12398         * TreeNode.cs: Raise events no matter how the treenode is
12399         checked. Patch by Don Edvalson.
12400
12401 2006-01-30  Jackson Harper  <jackson@ximian.com>
12402
12403         * TreeNode.cs: Signature fix.
12404
12405 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12406
12407         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12408
12409 2006-01-20  Mike Kestner  <mkestner@novell.com>
12410
12411         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12412         event forwarding when menus are active.
12413         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12414         Most of the patch is pdb's with a little rework.
12415
12416 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12417
12418         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12419           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12420           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12421         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12422         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12423           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12424           the PaintWindowDecorations method
12425         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12426         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12427         * MenuAPI.cs: Made tracker window invisible
12428         * XplatUIWin32.cs:
12429           - Removed GetMenuDC and ReleaseMenuDC methods
12430           - Implemented the client=false path for PaintEventStart and
12431             PaintEventEnd
12432
12433 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12434
12435         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12436         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12437           styles
12438         * Form.cs: 
12439           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12440             the style
12441           - CreateParams: Reworked the styles to match MS look'n'feel,
12442             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12443             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12444
12445 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12446
12447         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12448           window is not mapped, since otherwise every form that's being 
12449           created is considered minimized, which is wrong.
12450         * Form.cs: Catching the exception and returning our internal value
12451           instead
12452
12453 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12454
12455         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12456           SetWindowMinMax() to have means to tell the driver about the minimum,
12457           maximum and maximized state window sizes. (Part of the fix for #76485)
12458         * Form.cs:
12459           - Implemented tracking of minimum and maximum window size, now calling
12460             new SetWindowMinMax() driver method to tell the driver (Part of the
12461             fix for #76485)
12462           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12463             (Completes fix for #76485)
12464           - Calling new SetWindowMinMax driver method when the handle for a 
12465             form is created, to make sure the driver knows about it even if
12466             the values have been set before the window was created
12467           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12468             to avoid messing up our anchoring calculations (partial fix
12469             for #77355)
12470         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12471         * XplatUIX11.cs:
12472           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12473           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12474             (and presumably other freedesktop.org compliant WMs). Left the
12475             assumption unmapped=minimized, needed for SetVisible to work.
12476           - Now setting the window state when creating windows
12477           - Fixed SetVisible to consider/set the window state when mapping
12478             a Form. We cannot set the state before it's mapped, and we cannot
12479             use Form.WindowState once it's mapped (since it would ask the
12480             driver and get 'normal'. Therefore, we grab the state before
12481             mapping, map, and then set state.
12482           - Implmemented SetWindowMinMax method; Metacity does not seem to
12483             honor the ZoomHints, though.
12484         * XplatUIWin32.cs:
12485           - Removed MINMAXINFO (moved to XplatUIStructs)
12486           - Added SetWindowMinMax stub (on Win32 the only way to set that
12487             information is in response to the WM_GETMINMAXINFO message, which
12488             is handled in Form.cs)
12489           - Added logic to SetVisible to set the proper window state when a 
12490             form is made visible (fixes #75720)
12491
12492 2006-01-26  Jackson Harper  <jackson@ximian.com>
12493
12494         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12495         same way we handle them with Invoke.
12496
12497 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12498
12499         * Form.cs:
12500           - Added tracking of window state so CreateParams can return
12501             the appropriate style
12502           - Moved setting of WS_CAPTION style in CreateParams to allow
12503             styles without caption
12504         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12505           control if the TextBox property is accessed. Fixes #77345
12506         * Control.cs:
12507           - get_Created: now uses is_disposed and is_created to determine
12508             return value (suggested by Jackson)
12509           - CreateHandle: No longer exits if the handle is being recreated
12510           - RecreateHandle: If the handle is not yet created call the 
12511             appropriate method to create either control or handle. If the
12512             control is already created CreateHandle will simply exit instead
12513             of just creating the handle
12514         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12515           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12516           is called.
12517         * XplatUIX11.cs: 
12518           - When DestroyWindow is called, instead of waiting for the 
12519             DestroyNotification from X11, we directly post it to the WndProc
12520             and immediately dispose the hwnd object.
12521             Same applies to DestroyChildWindows, and this obsoletes the
12522             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12523             child windows before our own, to avoid X11 errors.
12524           - Removed the direct sending of WM_PAINT on UpdateWindow
12525         * XplatUIWin32.cs:
12526           - Reworked DoEvents and GetMessage to allow access to internal queue
12527             even when trying non-blocking access to the queue.  Fixes #77335. 
12528             Based on a patch suggestion by Don Edvalson. The new private
12529             GetMessage can now also be used as a backend for a PeekMessage
12530             frontend version.
12531         * XplatUI.cs: Improved debug output for CreateWindow
12532
12533 2006-01-25  Jackson Harper  <jackson@ximian.com>
12534
12535         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12536
12537 2006-01-24  Jackson Harper  <jackson@ximian.com>
12538
12539         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12540         when we have a MaxDropItems lower then the selected index.
12541
12542 2006-01-24  Jackson Harper  <jackson@ximian.com>
12543
12544         * Control.cs: Don't allow selection of non visible controls, allow
12545         selection of controls without parents.
12546
12547 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12548
12549         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12550         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12551
12552 2006-01-23  Jackson Harper  <jackson@ximian.com>
12553
12554         * UpDownBase.cs: Make the textbox handle all the selection and
12555         tabbing. This fixes tabing to updown controls.
12556
12557 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12558
12559         * TextBoxBase.cs: fixes exception thown the object was null
12560
12561 2006-01-23  Jackson Harper  <jackson@ximian.com>
12562
12563         * ButtonBase.cs: Just use the base CreateParams. They set
12564         visibility and enabled correctly.
12565         * ComboBox.cs:
12566         * TrackBar.cs:
12567         * MonthCalendar.cs: Lets let the base set as much of the
12568         createparams as possible so we don't have duplicate code all over
12569         the place.
12570
12571 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12572
12573         * ThemeGtk.cs: Added TrackBar and some experimental code to
12574           get double buffering back
12575
12576 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12577
12578         * DataGrid.cs: Allows row number set internally higher than the last
12579         when creating a new row. Restores the editing functionality.
12580
12581 2006-01-20  Mike Kestner  <mkestner@novell.com>
12582
12583         * MimeIcon.cs: delay Image creation until the icons are accessed
12584         instead of creating 190 scaled images on GnomeHandler startup.
12585
12586 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12587
12588         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12589           first call base before processing the event. Fixes #77279
12590
12591 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12592
12593         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12594           that the stride for the GDI bitmap would match the stride of
12595           a DIB or a Cursor.
12596
12597 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12598
12599         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12600
12601 2006-01-19  Jackson Harper  <jackson@ximian.com>
12602
12603         * ComboBox.cs: Hookup the text controls keydown event so we get
12604         those when the text control has the focus.
12605
12606 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12607
12608         * Label.cs: Now using the base events instead of defining new ones;
12609           this allows us to just call the base properties without having to
12610           duplicate all base property logic 
12611
12612 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12613
12614         * Label.cs: A label by default is not a tabstop (Fixes one of our
12615           failing nunit tests)
12616
12617 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12618
12619         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12620         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12621
12622 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12623
12624         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12625           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12626           This fixes #77218
12627         * XplatUIWin32.cs: 
12628           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12629             constructor creates images that can't be saved. Part of the fix
12630             for #76103
12631           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12632           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12633             bug fix for handling window state in forms properly)
12634
12635 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12636
12637         * ThemeGtk.cs: Simplify ScrollBar drawing
12638
12639 2006-01-18  Jackson Harper  <jackson@ximian.com>
12640
12641         * Splitter.cs: Set the default dock style for the splitter control
12642         in the constructor.
12643
12644 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12645
12646         * ThemeGtk.cs: Corrected StateType and ShadowType for
12647           gtk_paint_box
12648
12649 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12650
12651         * Control.cs: Make use of Theme.DoubleBufferingSupported
12652         * ThemeGtk.cs:
12653           - Added drawing for flat style buttons
12654           - Added ScrollBar drawing
12655
12656 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12657
12658         * ThemeClearlooks.cs: Removed some unneeded code.
12659         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12660
12661 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12662
12663         * LinkLabel.cs: We need to update the hover drawing when
12664           leaving the control as well.
12665
12666 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12667
12668         * DataGrid.cs: Clicking on non empty areas in the columns
12669            area was giving an exception
12670
12671 2006-01-17  Jackson Harper  <jackson@ximian.com>
12672
12673         * ThemeWin32Classic.cs:
12674         * ListView.cs: Do not draw/clip the headers when the header style
12675         is None.
12676
12677 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12678
12679         * DataGrid.cs: Fixes 77260
12680         
12681 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12682
12683         * DataGrid.cs: Clicking on a column on a empty grid was giving
12684           an exception
12685
12686 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12687
12688         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12689           or any keypress will crash the grid.
12690
12691 2006-01-17  Mike Kestner  <mkestner@novell.com>
12692
12693         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12694         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12695         invisible/previously-visible items.
12696         [Fixes #76909]
12697
12698 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12699
12700         * ThemeClearlooks.cs:
12701         - Added CL_Draw_Button method; now other theme controls that are 
12702           not derived from button or do not have a button can draw buttons
12703           too
12704         - Updated ComboBox drawing
12705         - Beautified RadioButton drawing
12706         - Corrected drawing of bottom and left tabs
12707         - Beautified DateTimePicker and MonthCalendar
12708         - Added CPDrawButton and CPDrawRadioButton
12709
12710 2006-01-16  Jackson Harper  <jackson@ximian.com>
12711
12712         * ComboBox.cs: Set the initial value of the scrollbar to the
12713         current index. Reduce the numbers of refreshs and IndexOfs called.
12714
12715 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12716
12717         * FileDialog.cs: When the file listview is focused hitting the
12718           backspace key moves the fileview to the parent directory
12719
12720 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12721
12722         * Form.cs: 
12723           - Added RecreateHandle call when changing taskbar visibility to 
12724             trigger reparenting in Win32 driver (Fixes #75719)
12725           - If a window has minimize or maximize buttons, it cannot have
12726             a help button
12727         * XplatUIWin32.cs:
12728           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12729             the toplevel form with FosterParent (A toolwindow not on the
12730             taskbar) (Fixes #75719)
12731           - Made FosterParent a toolwindow
12732
12733 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12734
12735         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12736
12737 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12738
12739         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12740           is currently over that control, make sure that tooltip_window.Text
12741           gets updated
12742
12743 2006-01-13  Mike Kestner  <mkestner@novell.com>
12744
12745         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12746
12747 2006-01-13  Jackson Harper  <jackson@ximian.com>
12748
12749         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12750         value passed.  Also redraw the selected node when we recieve
12751         focus, so tabbing between trees works correctly.
12752
12753 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12754
12755         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12756           ~/.gconf/%gconf-tree.xml, so use
12757           .gconf/desktop/gnome/interface/%gconf.xml
12758
12759 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12760
12761         * TextControl.cs: Draw text in gray if control is disabled
12762
12763 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12764
12765         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12766           make sure it's always visible. Fixes #76680.
12767
12768 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12769
12770         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12771
12772 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12773
12774         * PageSetupDialog.cs: Added.
12775         * PrintDialog.cs: Attributes.
12776         * PrintPreviewControl.cs: Updates.
12777         * PrintPreviewDialog.cs: Updates.
12778         
12779 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12780
12781         * Control.cs: Undid my selection check fix, since it's not needed
12782         * TextBoxBase.cs:
12783           - Now considering the presence of hscroll/vscroll when sizing
12784             vscroll/hscroll respectively. Fixed bug #77077
12785           - Added Left/Up/Down/Right to IsInputKey list to prevent
12786             ContainerControl from stealing them. This fixes what I broke
12787             with my last checkin.
12788
12789 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12790
12791         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12792           I finally understand how the property can be set without a setter :-)
12793
12794 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12795
12796         * Application.cs:
12797           - Switched RunLoop to use static Message.Create to create a 
12798             Message object
12799           - Added PreProcessMessage call in runloop for keyboard events; this
12800             is part of the fix for #77219, I overlooked this originally in the
12801             MSDN doc for PreProcessMessage
12802         * Control.cs:
12803           - Removed call to PreProcessMessage from handling of keyboard 
12804             messages; it's supposed to be done in the message pump
12805           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12806             per MSDN documentation.
12807           - IsInputChar: All chars are input chars by default; removed the 
12808             parent calling chain, MS does not document that
12809           - PreProcessMessage: If IsInputChar is true, we want to return false
12810             to allow dispatching of the message
12811           - When selecting the next control, now also check that we're not
12812             selecting ourselves again and therefore return a false positive.
12813         * TextBoxBase.cs:
12814           - Tried to match return values for IsInputKey and ProcessDialogKey
12815             to what MS returns; moved processing of our special keys outside
12816             ProcessDialogKey since MS does not seem to return true on those.
12817           - Moved code that previously was in ProcessDialogKey into new private
12818             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12819           - Reworked handling of WM_CHAR to not have to duplicate code from
12820             Control.cs anymore, instead we simply call down to base.
12821            
12822 2006-01-12  Jackson Harper  <jackson@ximian.com>
12823
12824         * ComboBox.cs: We always need to refresh the text area when
12825         EndUpdate is called. Fixes the combobox in the file dialog.
12826         * Control.cs: Don't create the creator_thread until the controls
12827         handle is created.  Also in InvokeRequired we check if the
12828         creator_thread is null. This gives the effect of InvokeRequired
12829         returning true if the controls handle is not created yet, and
12830         matches MS.
12831
12832 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12833
12834         * XplatUI.cs:
12835           - Added StartLoop() driver method. This is used to allow drivers to
12836             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12837             loop for a particular thread
12838           - Added EndLoop() driver method. This is called once the message
12839             pump for the thread is shut down
12840           - Added SupportsTransparency method to allow the driver to indicate
12841             opacity support for windows
12842         * Form.cs:
12843           - Removed TODO attribute, completed AllowTransparency property
12844           - Added documented logic to Opacity
12845         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12846           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12847           versions of CompatibleTextRendering
12848         * X11Structs.cs: Added opacity atom to our atom enumeration
12849         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12850           of a form might be set before it's reparented by the WM, and we need
12851           the opacity value without calling up to Form)
12852         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12853           SupportsTransparency() driver methods
12854         * Application.cs: Now calling StartLoop and EndLoop driver methods
12855         * XplatUIX11.cs:
12856           - Added opacity atom registration
12857           - Added StartLoop()/EndLoop() methods. They're empty right now but
12858             will need to get implemented when we switch to a per-thread queue
12859           - Implemented SupportsTransparency() method
12860           - Implemented SetWindowTransparency() method
12861           - Added support for setting the opacity value when a window is
12862             reparented (since the opacity needs to be set on the WM frame)
12863         * XplatUIOSX.cs, XplatUIWin32.cs:
12864           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12865
12866 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12867
12868         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12869
12870 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12871
12872         * FileDialog.cs: Added ToolTip for MWFFileView
12873         * MimeIcon.cs: Rewrote GnomeHandler.
12874           - Get currently used gnome icon theme from
12875             ($HOME)/.gconf/%gconf-tree.xml
12876           - Make use of inherited icon themes
12877           - Support SVG icon themes like Tango via librsvg
12878
12879 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12880
12881         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12882         builds. 
12883         
12884         * Application.cs: Move the use_compatible_text_rendering outside
12885         the NET_2_0 define.  If we ever need to use the
12886         use_compatible_text_rendering on the individual controls they will
12887         access the variable from the common shared code paths.
12888
12889 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12890
12891         * XplatUI.cs:
12892           - Added more granular debug options
12893           - Added method to print both window text and id
12894           - Switched debug output to use new Window() debug method
12895           - Added IsEnabled() driver method
12896           - Added EnableWindow() driver method
12897         * Form.cs:
12898           - Removed end_modal; no longer needed, new loop handles termination
12899             via 'closing' variable
12900           - If form is modal, setting DialogResult will now initiate loop
12901             termination via 'closing' variable
12902           - Added support for is_enabled/WS_DISABLED to CreateParams
12903           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12904             does all the work
12905           - Removed code that's now in RunLoop from ShowDialog()
12906           - Added various documented sanity checks to ShowDialog()
12907           - Added handling of WM_DESTROY message; we set 'closing' on getting
12908             the message to indicate the message pump to terminate
12909           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12910             send by the Application.ExitThread method. (We send the message
12911             to destroy the window after all other events have been
12912             processed through the queue, instead of destroying the handle 
12913             directly)
12914           - Moved code from Close() method to WM_CLOSE handler; added logic
12915             to only send close-related events if the form is not displayed
12916             modal
12917         * Splitter.cs (..ctor): Fixed typo in resource name
12918         * Control.cs:
12919           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12920             brush now
12921           - set_Cursor: Now only setting calling into XplatUI if the handle for
12922             the control is already created; this avoids implict handle creation
12923             or crashes if it's not created
12924           - set_Enabled: Now setting the enabled state via the new driver method
12925             instead of just tracking it
12926           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12927           - CreateControl: Reordered event firing and method calls to more
12928             closely fire events in the order MS does. Now setting the
12929             enabled state in the driver when creating the control.
12930           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12931             match MS order
12932         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12933           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12934         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12935         * Hwnd.cs:
12936           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12937           - Added EnabledHwnd property to easily allow a driver to find the
12938             handle of the first enabled window in the parent chain (this is
12939             used by drivers to pass up input events of disabled windows)
12940         * XplatUIDriver.cs: Added IsEnabled() method
12941         * Application.cs:
12942           - Removed crude and obsolete exiting tracking variable
12943           - Removed internal ModalRun(); replaced by RunLoop()
12944           - Implemented private CloseForms() method to allow closing all 
12945             windows owned by a particular (or all) threads
12946           - Exit() now properly closes all windows without forcing the message
12947             pump to quit
12948           - Removed obsolete InternalExit() method
12949           - Changed Run() methods to use new RunLoop() message pump
12950           - Implemented new RunLoop() method for both modal and non-modal forms
12951         * CommonDialog.cs:
12952           - get_CreateParams: Added setting of WS_DISABLED
12953           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12954             invoked via Form.ShowDialog()
12955         * NativeWindow.cs: We don't remove the window from the collection when
12956           the handle is destroyed; there might still be messages for it in the
12957           queue (mainly the resulting WM_DESTROY); instead it will be removed
12958           when Control calls InvalidateHandle in the WM_DESTROY handler
12959         * XplatUIX11.cs:
12960           - CreateWindow: Added logic to handle the WS_DISABLED window style
12961           - EnableWindow: Implemented based on Hwnd.Enabled
12962           - GetMessage: Reset PostQuitState so the method can be called again
12963           - Implemented support for disabled windows (passing messages to the
12964             first enabled parent) in handling all input messages
12965           - Added optimizations for handling Expose events
12966           - Implemeted new driver method IsEnabled()
12967           - Now always resetting paint pending tracking vars when we start paint
12968           - Re-implemented UpdateWindow via just sending a WM_PAINT message
12969         * XplatUIOSX.cs: Added IsEnabled method stub
12970         * XplatUIWin32.cs: Implemented new IsEnabled() method
12971
12972 2006-01-11  Jackson Harper  <jackson@ximian.com>
12973
12974         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12975         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
12976         variables a little.
12977         * ColorDialog.cs: Clear out the old form before adding the new
12978         panel.  
12979
12980 2006-01-11  Jackson Harper  <jackson@ximian.com>
12981
12982         * X11Dnd.cs: Make sure to add all the text formats when adding
12983         strings to the data object.
12984         * TreeNodeCollection.cs: When adding to a sorted tree we need to
12985         do some redrawing too.  Also change the UpdateNode to an
12986         UpdateBelow so the newly added node gets painted.
12987         
12988 2006-01-11  Miguel de Icaza  <miguel@novell.com>
12989
12990         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
12991         LinkLabel.cs, PropertyGrid.cs: Implement the
12992         UseCompatibleTextRendering property for 2.x
12993
12994         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
12995
12996 2006-01-11  Jackson Harper  <jackson@ximian.com>
12997
12998         * TreeView.cs: Use the property for setting the selected node so
12999         the correct events get raised.
13000         * TreeNode.cs: Update the tree when the fore/back colours of a
13001         node are set.
13002
13003 2006-01-10  Jackson Harper  <jackson@ximian.com>
13004
13005         * TreeView.cs: Allow setting SelectedNode to null.
13006
13007 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13008
13009         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13010
13011 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13012
13013         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13014
13015 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13016
13017         * PrintDialog.cs: Added attributes and set default property values.
13018
13019 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13020
13021         * PrintControllerWithStatusDialog.cs: 
13022         Added PrintControllerWithStatusDialog.
13023
13024 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13025
13026         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13027         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13028
13029 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13030
13031         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13032
13033 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13034
13035         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13036         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13037
13038 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13039
13040         * MimeIcon.cs: Added internal class SVGUtil.
13041
13042 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13043
13044         * FileDialog.cs: Don't crash if there are two files with the
13045           same name but different locations.
13046
13047 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13048
13049         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13050         dates across multiple month grids. Used to not highlight entire 
13051         month, but does now.
13052         
13053 2006-01-06  Jackson Harper  <jackson@ximian.com>
13054
13055         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13056         message loop. Change timer intervals to numbers that seem more
13057         natural.
13058
13059 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13060
13061         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13062           object for location info since screen object is now implemented.
13063
13064 2006-01-05  Jackson Harper  <jackson@ximian.com>
13065
13066         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13067         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13068         AsyncMethodResult, this is because we ALWAYS want the
13069         ManualResetEvent to get set.
13070         * Control.cs: When disposing use an async invoke to call shutdown
13071         code, so that thigns don't block on the finalizer thread.  Also
13072         check if we even have a message loop before trying to send
13073         messages, if we don't then don't bother sending messages.
13074         - No more weak references for async methods
13075         * XplatUIDriver.cs: No more weak references for async methods.
13076
13077 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13078
13079         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13080           returns two FontFamily with the same name
13081
13082 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13083
13084         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13085           drawing disabled text. Instead using the ColorGrayText color
13086
13087 2006-01-04  Jackson Harper  <jackson@ximian.com>
13088
13089         * TreeNode.cs: redraw the node when its image index is changed.
13090
13091 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13092
13093         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13094           time I checked there are no others like it.
13095
13096 2006-01-04  Jackson Harper  <jackson@ximian.com>
13097
13098         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13099         this gives the behavoir I was looking for.
13100         * Control.cs: Special case Invoking EventHandlers, this matches MS
13101         and fixes part of bug #76326.
13102
13103 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13104
13105         * ThemeClearlooks.cs, FileDialog.cs:
13106           - Reflect the latest Theme class changes
13107           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13108             with DateTime
13109             
13110 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13111
13112         * Theme.cs: Cache UI resource images and resize them if needed
13113
13114 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13115
13116         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13117           is called. This fixes the crash in Nexxia when setting the font
13118           attributes in the chat. [However, RTF needs a look-over to make sure
13119           that all SelectionXXX methods handle the special case that selection
13120           is empty and therefore the change must be applied to all text starting
13121           at the cursor/selection start]
13122
13123 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13124
13125         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13126           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13127         * X11Keyboard.cs: Switched to new way of calling PostMessage
13128
13129 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13130
13131         * Theme.cs: Added theme interface for images to allow the theme to
13132           control what images are used for things like FileDialog, MessageBox
13133           icons, etc.
13134         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13135
13136 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13137
13138         * FileDialog.cs:
13139           - Removed some dead code
13140           - Opening a recently used file does work now
13141           - Small UI enhancements
13142           - Refactoring
13143
13144 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13145
13146         * FileDialog.cs: Forgot too add __MonoCS__
13147
13148 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13149
13150         * FileDialog.cs: We are able to read recently used files now let's
13151           go on and write them.
13152
13153 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13154
13155         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13156           button
13157         * MimeIcon.cs: Do a check for the top level media type also
13158
13159 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13160
13161         * ThemeClearlooks.cs:
13162           - Added CPDrawStringDisabled
13163           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13164             some chars if the text doesn't fit into text_rect
13165           - DrawListViewItem: If View = View.LargeIcon center the image;
13166             rewrote the drawing of ListViewItem.Text if View = 
13167             View.LargeIcon
13168
13169 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13170
13171         * MimeIcon.cs: Use default KDE icon theme if there is no
13172           "48x48" directory for the current icon theme, fixes #77114
13173         * Mime.cs: Disable not working and actually not used code. 
13174         * ThemeWin32Classic.cs:
13175           - Replace "new SolidBrush" in GetControlBackBrush and
13176             GetControlForeBrush with ResPool.GetSolidBrush
13177           - Changed DrawListViewItem from private to protected virtual
13178         * FileDialog.cs:
13179           - Added form.MaximizeBox = true
13180           - Don't throw an exception if there is a broken symbolic link
13181
13182 2005-12-23  Jackson Harper  <jackson@ximian.com>
13183
13184         * TabControl.cs: Give the panels focus, keyboard navigation is
13185         fixed so this works correctly now.
13186         - We need these key events also.
13187         * ToolBar.cs: Remove some of the poor mans double buffering.
13188         
13189 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13190
13191         * ComboBox.cs: The internal TextBox now returns the focus.
13192
13193 2005-12-23  Jackson Harper  <jackson@ximian.com>
13194
13195         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13196
13197 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13198
13199         * Control.cs: Removed debug code
13200         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13201           implicit children
13202
13203 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13204
13205         * Control.cs: When creating the control, update the Z-order after
13206           all it's children are created, too. (Fixes nexxia not showing
13207           picturebox bug)
13208
13209 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13210
13211         * Control.cs: Do not update the anchoring distances if layout is
13212           suspended, instead do it once layout is resumed
13213
13214 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13215
13216         * Control.cs: 
13217           - After many hours of debugging, for both Jackson and
13218             myself, it turns out that it helps to set the parent of a control
13219             if you want to actually see it onscreen. In the spirit of that
13220             discovery, we're now setting the parent of the control and
13221             it's children when the control's handle is created. This fix
13222             will make Lutz Roeder's Reflector run happily. 
13223           - now just creating the handle instead of the whole control when
13224             getting a graphics context for the control.
13225
13226 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13227
13228         * ScrollableControl.cs: When calculating the canvas, don't consider
13229           the scrollbar widths. Instead, predict if horizontal scrollbar
13230           will affect canvas when deciding on vertical display and vice versa.
13231
13232 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13233
13234         * RichTextBox.cs: Set default RTF font for documents that don't
13235           have a font table (Fixes #77076)
13236
13237 2005-12-22  Jackson Harper  <jackson@ximian.com>
13238
13239         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13240         clipboard. This prevents a NullRef in that case.
13241         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13242         clipboard. PRIMARY is for the currently selected text only. (We
13243         should implement PRIMARY at some point.
13244
13245 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13246
13247         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13248           a Unicode function with a structure that was defined in Ansi way.
13249           This fixes #76942.
13250
13251 2005-12-21  Jackson Harper  <jackson@ximian.com>
13252
13253         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13254         on. Because thats how it rolls. (and this avoids it using ambient
13255         colours).
13256         * ThemeWin32Classic.cs: Use the proper back color for filling.
13257         * Menu.cs: Use the system menu bar color for drawing menu
13258         bars. Using the window back color will bring ambient colours into
13259         the picture.
13260
13261 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13262
13263         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13264           Bitmaps were created and not disposed.
13265
13266 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13267
13268         * Control.cs (CreateControl): Don't do anything if the control is
13269           already created, otherwise we'd fire the OnCreated event more than
13270           once
13271
13272 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13273
13274         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13275           will always match. Instead return -1. Fixes #76464.
13276
13277 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13278
13279         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13280           neither the beginning nor the end of the line (Fixes bug #76479)
13281
13282 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13283
13284         * Control.cs:
13285           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13286             where handle is invalid
13287           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13288             instead of slower linear search
13289         * NativeWindow.cs: Don't remove the window from the hashtable until
13290           after the driver has destroyed it (since the driver might use
13291           Control.FromHandle to lookup the control object
13292         * Hwnd.cs: Added DestroyPending property to track if a window is 
13293           already destroyed as far as the driver is concerned and only hasn't
13294           yet notified the control
13295         * XplatUIX11.cs:
13296           - Activate(): Check if the window is still valid before using the 
13297             handle
13298           - Implemented DestroyChildWindow() method to mark child windows as
13299             destroyed when a window is destroyed. This prevents situations 
13300             where we might call an X method based on queued events for a
13301             window that already has been destroyed but we haven't yet pulled
13302             the destroy method from the queue.
13303           - Added a call to the new DestroyChildWindow() method to the drivers
13304             DestroyWindow code. Also now marking the destroyed window itself
13305             as pending
13306
13307 2005-12-20  Jackson Harper  <jackson@ximian.com>
13308
13309         * StatusBar.cs:
13310         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13311         anymore. Just do them when needed, also track the rects of panels
13312         so that we can optimize refreshing more in the future.
13313
13314 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13315
13316         * ColorDialog.cs: Fixed focus drawing in small color controls
13317
13318 2005-12-19  Jackson Harper  <jackson@ximian.com>
13319
13320         * InternalWindowManager.cs:
13321         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13322         moving windows works properly.
13323
13324 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13325
13326         * Control.cs: 
13327           - Removed call to InitLayout() from SetBoundsCore(); doc says
13328             it's only called when a control is added to a container
13329           - Split InitLayout logic, moved to separate UpdateDistances() method
13330             since we need to perform those calculations more often than just
13331             when adding the control to a container. (Needed to fix #77022)
13332           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13333           - Reduced the OnBindingContextChanged events count, don't send them
13334             unless the control is created, we still aren't totally matching
13335             MS, but I can't quite figure out some of their rules
13336
13337 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13338
13339         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13340           stripes
13341
13342 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13343
13344         * ThemeClearlooks.cs:
13345           - Updated ProgressBar drawing
13346           - Corrected drawing of ScrollBars and scroll buttons
13347           - Some temporary fixes for minor pixel artefacts
13348
13349 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13350
13351         * Control.cs:
13352           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13353             cause events to be sent in the same order as MS does.
13354           - Added ChangeParent() method to trigger various OnXXXChanged events
13355             that need to be fired when a parent changes (This is a reworking
13356             of the patch from r54254, with the X11 errors fixed)
13357           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13358             since on MS we get OnLayoutChanged events when calling Clear()
13359           - Changed Enabled property to consider parent state as well, if a
13360             parent is not enabled, the control will not be either
13361           - Changed Parent property to simply call Controls.Add() since that
13362             now does all the work required, this way we avoid code duplication
13363           - Threw in a few OnBindingsContextChanged calls to try and match
13364             when MS sends them. We seem to send a few too many, though.
13365           - Added call to CreateControl when adding the control to a parent.
13366             We were never calling CreateControl. Still needs some work, in
13367             some places we treat HandleCreated and ControlCreated as equal, 
13368             which is wrong
13369           - Removed obsolete commented out code from UpdateZOrder()
13370
13371 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13372
13373         * ThemeClearlooks.cs: Updated TrackBar drawing.
13374
13375 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13376
13377         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13378
13379 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13380
13381         * FileDialog.cs: Add the Help button and the open readonly
13382           checkbox only if needed
13383
13384 2005-12-16  Jackson Harper  <jackson@ximian.com>
13385
13386         * Control.cs: Make sure we have an active menu before trying to
13387         process commands on it. Prevents menu-less forms from crashing
13388         when Alt is pressed.
13389         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13390         Dieter Bremes.
13391         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13392         2.0 build.
13393
13394 2005-12-16  Jackson Harper  <jackson@ximian.com>
13395
13396         * InternalWindowManager.cs: Don't translate tool windows screen
13397         coordinates. This fixes windows 'bouncing' around when being moved.
13398
13399 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13400
13401         * TextBoxBase.cs:
13402           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13403             not quite MS compatible, MS uses that number only for single line
13404             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13405             the limit at 2GB)
13406           - Now enforcing the MaxLength limit when entering characters
13407           - Added argument to internal Paste() method to track if it's called
13408             from programatically or via keyboard, since keyboard driven pastes
13409             need to enforce max-length
13410           - Added logic to Paste to only paste as many chars as MaxLength 
13411             allows
13412         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13413         * TextControl.cs:
13414           - Added Length property to return number of characters in document
13415           - Added private CharCount property which only tracks actual chars
13416             in the document (no linefeeds) and fires event when CharCount
13417             changes
13418           - Added tracking of character count to all methods that alter it
13419           - Added LengthChanged event to allow applications to subscribe
13420             to any changes to the document
13421
13422 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13423
13424         * TextBox.cs: 
13425           - Removed local password_char field (moved to TextBoxBase)
13426           - Now setting the document's password var when password is
13427             set
13428         * TextBoxBase.cs:
13429           - Added password_char field (needed here so MultiLine can
13430             access it)
13431           - Added logic to MultiLine property setter to set the document's
13432             variable when password display is allowed
13433           - Removed debug code and made some debug code conditional
13434         * TextControl.cs:
13435           - Added RecalculatePasswordLine() method to handle special password
13436             char only lines
13437           - Added PasswordChar property, also added related tracking vars
13438           - Draw() method now uses local text var for grabbing text to draw,
13439             this var is set to line.text unless we're doing password display,
13440             then it is set to the pre-generated all-password-chars line
13441           - Added calling RecalculatePasswordLine() method for password lines
13442
13443 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13444
13445         * Hwnd.cs: 
13446           - Added Reparented property to allow tracking of Window Manager
13447             reparenting actions (which affect X/Y calculations of toplevel 
13448             windows)
13449           - Made ToString() print window handles in hex
13450         * XplatUIX11.cs:
13451           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13452             determine if X/Y needs offsetting
13453           - AddConfigureNotify(): Fixed offset calculations
13454           - Now adds ReparentNotify messages into the queue
13455           - Now processes ReparentNotify messages and causes a 
13456             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13457             is reparented (as most likely it's X/Y coordinates are changed
13458             due to that)
13459
13460 2005-12-14  Jackson Harper  <jackson@ximian.com>
13461
13462         * XplatUIX11.cs: Tool windows still need to respek focus.
13463
13464 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13465
13466         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13467           have a working release
13468
13469 2005-12-13  Jackson Harper  <jackson@ximian.com>
13470
13471         * Form.cs: Update styles after setting the border style regardless
13472         of whether or not the window is using a window manager.
13473
13474 2005-12-13  Jackson Harper  <jackson@ximian.com>
13475
13476         * Form.cs: We now hook into an internal window manager instead of just an
13477         MDI subsystem, this is so we can have properly behaving tool windows.
13478         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13479         * InternalWindowManager.cs: New internal class that acts as a
13480         window manager for tool windows and as a base for mdi windows.
13481         * MdiWindowManager.cs: New class that acts as a window manager for
13482         mdi windows.
13483
13484 2005-12-12  Jackson Harper  <jackson@ximian.com>
13485
13486         * Control.cs: Updates so we match behavoir for for implicit
13487         controls. Fixes explosions in MDI.
13488
13489 2005-12-12  Jackson Harper  <jackson@ximian.com>
13490
13491         * Control.cs: Implement Invalidate (Region).
13492
13493 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13494
13495         * Control.cs: 
13496           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13497             the same events as MS does. MS fires events for each property 
13498             except, for unknown reasons, Cursor, when the control is reparented. 
13499             I can't seem to totally match add/remove since MS also fires some 
13500             VisibleChanged events, which makes no sense. Consolidated the
13501             parenting code into a separate method so it can be called from
13502             both Add and Remove. set_Parent no longer needs any special logic
13503             as it calls the parent's add method which implicitly fires
13504             all events
13505           - Removed some obsolete code and debug output
13506           - Enabled state is inherited from parents, if this is enabled
13507
13508 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13509
13510         * Form.cs: Removed commented out code
13511
13512 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13513
13514         * Control.cs:
13515           - Added internal version of Invoke, with additional argument 
13516             indicating if we're calling it from a Dispose() handler. That
13517             way we can avoid BeginInvoke throwing an exception if we're
13518             calling for an already destroyed window.
13519           - Added a dispose argument to BeginInvokeInternal, and made the
13520             check if a valid window handle chain exists conditional on
13521             it not being a dispose call
13522           - Removed code in DestroyHandle to destroy our children. Since we
13523             now handle the WM_DESTROY message we will catch all our children
13524             being destroyed.
13525           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13526         * Form.cs:
13527           - Added a field to track the application context of the form.
13528           - No need to set closing variable as response to WM_CLOSE, instead
13529             we destroy the window. We also call PostQuitMessage if the form
13530             has an application context (which makes it the main app form,
13531             which, when closed terminates the app)
13532         * XplatUI.cs:
13533           - Dropped Exit() method, it's naming was confusing
13534           - Added PostQuitMessage() which causes GetMessage to return false
13535             once the message queue is empty
13536         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13537           PostQuitMessage()
13538         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13539           no longer a valid XplatUI method, but left it in since it's used
13540           internally. Added empty PostQuitMessage() method.
13541         * MenuAPI.cs: Replaced call to Exit() with call to
13542           PostQuitMessage, even though this is probably no longer needed.
13543         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13544         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13545         * Application.cs:
13546           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13547           - Removed old debug code that would call XplatUI for exception
13548             display, enabled standard exception handling (Still not enabled
13549             though, until NativeWindow's ExternalExceptionHandler define
13550             is removed
13551         * NativeWindow.cs:
13552           - Added internal method to allow control to update NativeWindow
13553             after a window has been destroyed
13554           - Added handling of already destroyed windows when calling i
13555             DestroyWindow
13556           - Added removal of handle from list on ReleaseHandle
13557         * XplatUIX11.cs:
13558           - Dropped GetMessageResult var and related code
13559           - Added PostQuitState to field to track if PostQuitMessage has been
13560             called
13561           - Dropped Exit() method
13562           - Added PostQuitMessage() method
13563           - GetMessage now will return false if PostQuitState is set and no
13564             more messages are in the queue.
13565           - Expose handler will no longer generate WM_PAINT messages if we are
13566             in PostQuitState since it's very likely any windows have already
13567             been destroyed, and since Hwnd won't get updated until we have
13568             processed the DestroyNotify we'd be causing X errors.
13569         
13570 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13571
13572         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13573           Thanks to Mike for pointing out the err of my ways.
13574
13575 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13576
13577         * Control.cs(PreProcessMessage): Moved menu handling back, but
13578           after all other key handling, to match MS (who handles Menu in
13579           DefWndProc)
13580         * Menu.cs (WndProc): Removed my brainfart
13581
13582 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13583
13584         * Control.cs(PreProcessMessage): Removed special menu handling 
13585         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13586
13587 2005-12-07  Mike Kestner  <mkestner@novell.com>
13588
13589         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13590         state according in tracker.
13591         * Menu.cs : promote tracker field to base class and provide a tracker
13592         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13593         has a tracker. Unparent items that are removed from the collection.
13594         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13595         * Theme*.cs: add always_show_hotkeys field to support configurability
13596         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13597         pressed.
13598
13599 2005-12-07  Jackson Harper  <jackson@ximian.com>
13600
13601         * MdiChildContext.cs: Use Control.ResetCursor.
13602         * Control.cs: ResetCursor needs to set the property so that the
13603         correct XplatUI call gets made.
13604
13605 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13606
13607         * Control.cs: More fixes to make our key events match MS. We
13608           were not setting the modifier state on KeyData, and we were
13609           not generating any events when Alt was pressed with a key
13610           since handling of WM_SYSxxx was missing for the OnKey methods.
13611
13612 2005-12-07  Jackson Harper  <jackson@ximian.com>
13613
13614         * MdiChildContext.cs: reenable the sizing code.
13615         - When the mouse leaves a window reset its cursor.
13616
13617 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13618
13619         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13620
13621 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13622
13623         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13624           widths of Fixed3D borders
13625
13626 2005-12-07  Jackson Harper  <jackson@ximian.com>
13627
13628         * MdiClient.cs: Fix warnings. Earn Mike's love.
13629
13630 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13631
13632         * ThemeClearlooks.cs:
13633           - Adjusted mouse over button color
13634           - Added first parts of CheckBox drawing
13635           - Added correct color for selected text background
13636           - Fixed ComboBox drawing
13637           - Added CPDrawBorder3D and CPDrawBorder
13638
13639 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13640
13641         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13642
13643 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13644
13645         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13646           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13647           alert users via sound. We could add an enum arg with different
13648           types of alerts in the future
13649
13650 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13651
13652         * Control.cs: Fix behaviour problems pointed out by Mike
13653
13654 2005-12-05  Mike Kestner  <mkestner@novell.com>
13655
13656         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13657         prop setters.  Calls parent.Refresh for now, but could be maybe be
13658         optimized with an internal method on StatusBar at some point.
13659         [Fixes #76513]
13660
13661 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13662
13663         * RichTextBox.cs: Implemented get_SelectionColor
13664
13665 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13666
13667         * ThemeClearlooks.cs:
13668           - Removed dead code
13669           - Draw black button border only if button is Form.AcceptButton
13670           - Draw correct button color for pressed RadioButton if the mouse 
13671             has entered the button
13672           - Updated ProgressBar drawing!
13673           - Updated CPDrawSizeGrip drawing
13674           - Updated StatusBarPanel drawing
13675
13676 2005-12-05  Mike Kestner  <mkestner@novell.com>
13677
13678         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13679         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13680
13681 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13682
13683         * ThemeClearlooks.cs: Initial check-in, activate with
13684           export MONO_THEME=clearlooks
13685         * ThemeEngine.cs: Added ThemeClearlooks
13686
13687 2005-12-03  Mike Kestner  <mkestner@novell.com>
13688
13689         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13690         [Fixes #76897]
13691
13692 2005-12-02  Jackson Harper  <jackson@ximian.com>
13693
13694         * Form.cs: If the child form has no menu the default main menu is
13695         used as the active menu.
13696
13697 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13698
13699         * ListBox.cs: Check if any items exist before trying to resolve 
13700           coordinates into items
13701
13702 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13703
13704         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13705           as the second color for the background hatch
13706
13707 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13708
13709         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13710         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13711           sure that what we pass to FormatText is always 1-based. Fixes #76885
13712
13713 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13714
13715         * NumericUpDown.cs (EndInit): When we are done initializing,
13716         reflect any updates on the UI.
13717
13718 2005-12-02  Jackson Harper  <jackson@ximian.com>
13719
13720         * ImplicitHScrollBar.cs:
13721         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13722         their container controls.
13723         * TreeView.cs: Use the new implicit scrollbars.
13724
13725 2005-12-02  Jackson Harper  <jackson@ximian.com>
13726
13727         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13728         can play with it.
13729         * TreeNodeCollection.cs: If we remove the topnode we need to
13730         update topnode to the next node in line.
13731         - When clearing nodes go through the same process as removing
13732         them, so they get depareneted and checked if they are top node.
13733
13734 2005-12-01  Jackson Harper  <jackson@ximian.com>
13735
13736         * TreeView.cs: When imagelists are used the image area is
13737         selectable as well as the text.
13738         - If there are no selected nodes select the first one.
13739         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13740         so don't do it more then we need to.
13741
13742 2005-12-01  Jackson Harper  <jackson@ximian.com>
13743
13744         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13745         that arrows can be scaled.
13746
13747 2005-12-01  Jackson Harper  <jackson@ximian.com>
13748
13749         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13750         fail. Patch by Dieter Bremes
13751
13752 2005-11-30  Jackson Harper  <jackson@ximian.com>
13753
13754         * Form.cs: Property is 2.0 only
13755         * PrintDialog.cs: Signature fix.
13756
13757 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13758
13759         * TextControl.cs: 
13760           - No longer artificially moves text 2 pixels down (now that we have
13761             borders this is no longer needed)
13762           - Added calcs for left, hanging and right indent
13763
13764 2005-11-23  Mike Kestner  <mkestner@novell.com>
13765
13766         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13767
13768 2005-11-30  Jackson Harper  <jackson@ximian.com>
13769
13770         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13771         get cloned as part of CloneMenu ().
13772         * Menu.cs: Make sure the parent of the items get set correctly
13773         when they are added.  And the owners are notified of the changes.
13774         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13775         we can change the menu being displayed/handled by the form without
13776         changing the menu assosciated with the form.
13777         - Don't let Mdi children draw/handle menus.
13778         
13779 2005-11-30  Jackson Harper  <jackson@ximian.com>
13780
13781         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13782         a MenuChanged event. Just to make the API a little more
13783         consistent.
13784         * MainMenu.cs:
13785         * MenuItem.cs: Use the new OnMenuChanged
13786         * MdiChildContext.cs: Handle menu merging.
13787         * Form.cs: Implement MergedMenu.
13788         
13789 2005-11-30  Jackson Harper  <jackson@ximian.com>
13790
13791         * Menu.cs: We were misusing Add. Add goes behind the specified
13792         index according to the docs, and does not replace the specified
13793         index. So I added an Insert method.
13794
13795 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13796
13797         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13798           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13799           is for Jackson
13800         * RichTextBox.cs: Added calls to base for DnD events
13801
13802 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13803
13804         * TextControl.cs:
13805           - Fixed drag-selection related crash; style fixes
13806           - Implemented undo class
13807             o Implemented method to capture document state for specified
13808               range in document tree
13809             o Implemented method to restore captured document state
13810             o Implemented cursor tracking
13811             o Implemented basic undo stack
13812           - Added undo cursor tracking to methods altering cursor location
13813           - Added undo tracking to selection deletion (still missing
13814             other text-altering hookups)
13815         * RichTextBox.cs:
13816           - Added SelectionLength property
13817           - Implemented CanPaste()
13818           - Implemented Paste()
13819           - Added missing protected methods
13820           - Fixed RTF->Document conversion; now uses font index 0 and color 
13821             index 0 as the default font for the parsed text
13822           - Fixed RTF<->Document font size translation
13823           - Fixed RTF generation, now properly handles cross-tag boundaries
13824             for single line selection
13825           - No longer always appends blank line to generated RTF
13826           - Removed TODOs
13827           - Added missing attributes
13828           - Hooked up undo-related methods
13829         * TextBoxBase.cs:
13830           - Implemented Copy()
13831           - Implemented Paste()
13832           - Implemented Cut()
13833           - Fixed caret mis-behaviour on backspace across line-boundaries
13834
13835 2005-11-29  Jackson Harper  <jackson@ximian.com>
13836
13837         * MdiClient.cs: Add a method for activating mdi children. Very
13838         basic right now. I imagine someday it might need more girth.
13839         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13840         children windows names are added to the menu item.
13841         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13842         mdilist. This happens regardless of whether or not there are any
13843         mdi windows to see in the list, and according to my tests happens
13844         before the items are even added. Also happens if there isn't even
13845         an mdi client to get windows from.
13846
13847 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13848
13849         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13850         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13851
13852 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13853
13854         * DataGridTableStyle.cs:
13855           - Create always the styles for the missing columns even if they are
13856             provided by the user (not default table style)
13857         * DataGrid.cs:
13858           - Fixes bug 76770
13859           - Fixes SetDataBinding (always re-attach source)
13860           - Fixes SetNewDataSource (only clear styles if they are not for 
13861             this source)
13862          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13863             and remove properly
13864
13865 2005-11-29  Jackson Harper  <jackson@ximian.com>
13866
13867         * FileDialog.cs: Implement missing bits, remove some dead
13868         code.
13869         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13870         creation of the panel so that the options set on the dialog are
13871         seen when the panel is created.
13872         * TreeView.cs: raise a click when items are clicked.
13873         
13874 2005-11-29  Jackson Harper  <jackson@ximian.com>
13875
13876         * MdiClient.cs: Pass some signature methods through to base.
13877
13878 2005-11-28  Jackson Harper  <jackson@ximian.com>
13879
13880         * ListView.cs: Raise the click event when items are clicked.
13881
13882 2005-11-28  Jackson Harper  <jackson@ximian.com>
13883
13884         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13885         a nullref.
13886
13887 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13888
13889         * ThemeNice.cs: - Removed 1 pixel bitmaps
13890           - Use SmoothingMode.AntiAlias where it makes sense
13891             (ScrollButton arrow for example)
13892           - Enhanced Button focus drawing
13893           - Fixed ComboBox drawing (no artefacts anymore, focus
13894             rectangle is back again, reduced size of ComboButton, etc.)
13895           - Fixed RadioButton focus drawing for Appearence.Button
13896           - Slight ScrollButton redesign
13897           - Some LinearGradientBrush size fixes
13898           - GroupBoxes have now rounded edges
13899           - Fixed StatusBar drawing
13900
13901 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13902
13903         * ThemeNice.cs: - Remove dead code
13904           - use correct background colors for menus, etc.
13905           - Fake pixel drawing with 1 pixel bitmaps
13906
13907 2005-11-24  Jackson Harper  <jackson@ximian.com>
13908
13909         * MdiClient.cs: Size the scrollbars when resizing the window.
13910         - Resize the maximized windows when the client is resized
13911         * Form.cs: Make the child context available
13912         
13913 2005-11-23  Jackson Harper  <jackson@ximian.com>
13914
13915         * MdiChildContext.cs: Don't size windows if they are maximized.
13916
13917 2005-11-23  Mike Kestner  <mkestner@novell.com>
13918
13919         * ContextMenu.cs: use MenuTracker.
13920         * Control.cs: remove menu handle usage.
13921         * Form.cs: remove menu handle usage.
13922         * Hwnd.cs: remove menu handle usage.
13923         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13924         motion and clicks to the new Tracker handlers.
13925         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13926         and handle usage.
13927         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13928         Killed the MENU and MENUITEM data types and associated collections
13929         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13930         MenuTracker class that exposes the leftovers from the old MenuAPI
13931         static methods. Restructured Capture handling so that only one grab is
13932         done for the entire menu hierarchy instead of handing off grabs to
13933         submenus. Tracker now has an invisible control to Capture when active.
13934         * MenuItem.cs: add sizing accessors, kill Create
13935         and handle usage.
13936         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13937         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13938         MENU(ITEM). remove menu handle usage, use Menu directly.
13939         * XplatUIDriver.cs: remove menu handle usage.
13940         * XplatUIOSX.cs: remove menu handle usage.
13941         * XplatUIWin32.cs: remove menu handle usage.
13942         * XplatUIX11.cs: remove menu handle usage.
13943
13944 2005-11-22  Jackson Harper  <jackson@ximian.com>
13945
13946         * Hwnd.cs: Don't compute the menu size for
13947         DefaultClientRectangle.
13948         - Reenable menu sizes being computed for GetClienRectangle.
13949         * Form.cs: Remove comment of trechery
13950         
13951 2005-11-22  Jackson Harper  <jackson@ximian.com>
13952
13953         * Hwnd.cs: The adjustments for the menu bar are made when it is
13954         attached to the form.
13955
13956 2005-11-19  Jackson Harper  <jackson@ximian.com>
13957
13958         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13959         (just like on windows).
13960
13961 2005-11-19  Jackson Harper  <jackson@ximian.com>
13962
13963         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13964         use real buttons anymore because they are in non client area. The
13965         one TODO here is that I need to somehow invalidate a section of
13966         the non client area.
13967
13968 2005-11-18  Jackson Harper  <jackson@ximian.com>
13969
13970         * Control.cs: Put the enum check back in now that MDI doesnt have
13971         to use this to set border styles.
13972         * Form.cs: Only set mdi child windows borders if the handle has
13973         been created.
13974         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
13975         this directly on to the driver.
13976         - Get the move start position before adjusting for the titlebar
13977         height, this fixes the windows "skipping" when they are first
13978         moved.
13979
13980 2005-11-18  Jackson Harper  <jackson@ximian.com>
13981
13982         * XplatUIX11.cs: Just compute the mdi borders separately as they
13983         don't totally match up with normal form borders.
13984
13985 2005-11-18  Jackson Harper  <jackson@ximian.com>
13986
13987         * Control.cs: Set WS_ styles for borders, so that the driver does
13988         not have to retrieve the control instance to figure out what kind
13989         of borders it should have.
13990         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
13991         driver can know its an mdi child easily.
13992         * XplatUIX11.cs: Get the border styles and whether the window is
13993         MDI from the Styles and ExStyles params instead of having to get a
13994         control. This prevents a chicken and egg problem.       
13995
13996 2005-11-18  Jackson Harper  <jackson@ximian.com>
13997
13998         * MdiClient.cs: Fix typo so scrollbars show up correctly.
13999
14000 2005-11-18  Jackson Harper  <jackson@ximian.com>
14001
14002         * MdiClient.cs: Calculate when to add and remove scrollbars
14003         correctly.
14004         * MdiChildContext.cs: Adjust the y position to take the titlebar
14005         into account.
14006         - No height for FormBorderStyle.None
14007
14008 2005-11-18  Jackson Harper  <jackson@ximian.com>
14009
14010         * Control.cs: Allow non enum values to be used for
14011         InternalBorderStyle.  MDI does this to set a special border style.
14012         - New utility methods for converting points to/from client coords
14013         - Add the newly created control to the Controls collection before
14014         updating its style. This way UpdateStyle can walk the control
14015         heirarchy to find the control if needed.
14016         so I don't need to create a new Point object all the time.
14017         * Form.cs: Let MDI windows handle their border styles.
14018         - Set styles on MDI windows so the correct title style is derived.
14019         * MdiChildContext.cs: Move all the painting and window handling
14020         into the non client area.
14021         - Use correct sizing and put correct buttons on frames based on
14022         the FormBorderStyle.
14023         - Notify the mdi client about scrolling
14024         - Need to handle the buttons ourselves now, because they are all
14025         in non client areas and we can't add controls there.
14026         * MdiClient.cs: Halfway to scrolling, this implementation is
14027         somewhat broken though, we need to check to make sure other
14028         windows aren't causing scrolling before removing the bars. Also
14029         the bars need to be drawn on top, maybe I can switch implicit
14030         controls to be on top.
14031         * Hwnd.cs: caption_height and tool_caption_height are now
14032         properties of an hwnd, this way they can be set by the driver
14033         based on the type of window they are.  In X11 the window manager
14034         handles the decorations so caption_height is zero unless its an
14035         MDI window.
14036         - Add 3 pixel borders for MDI windows (0xFFFF).
14037         - Get rid of some code duplication, have DefaultClientRectanle
14038         just call GetClientRectangle.
14039         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14040         Hwnd now.
14041         - Set border styles differently for mdi windows.
14042         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14043         Hwnd now.
14044         
14045 2005-11-15  Mike Kestner  <mkestner@novell.com>
14046
14047         * Menu.cs: when adding an item to the collection, if item is already 
14048         parented, remove it from the parent.
14049
14050 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14051
14052         * X11DesktopColors.cs: Added KDE support
14053
14054 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14055
14056         * XplatUIWin32.cs: 
14057           - Clipboard methods now can translate Rtf format
14058           - No longer removes clipboard contents whenever a new format is added
14059             to allow placing multiple formats on the clipboard
14060         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14061           will place all formats contained in it onto the clipboard. Also
14062           now cleans the clipboard before placing a new object onto it
14063         * RichTextBox.cs:
14064           - Implemented set_Rtf
14065           - Implemented set_SelectedRtf
14066           - Created InsertRTFFromStream() method to allow single code base
14067             for all properties and methods that insert RTF into document
14068           - Removed debug output
14069         * TextControl.cs:
14070           - Fixed Delete(int) to fix up line numbers
14071           - Fixed ReplaceSelection to combine start and end line
14072           - Fixed serious DeleteChars bug that would leave the document tree
14073             broken
14074           - Improved DumpTree with several logic checks to detect broken
14075             document trees
14076           - Removed debug lines
14077           - Fixed Caret.WordForward/WordBack moving code, now always also 
14078             updates caret.tag (fixes crash when word-selecting across tag
14079             boundaries via keyboard)
14080           - Added Insert() method for inserting multiline text into documents
14081           - Fixed DeleteChars() calculation errors that would cause a broken
14082             tag chain with multiple tag lines
14083           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14084           - Split() no longer moves caret if split is at caret location
14085           - ReplaceSelection() now updates the cursor and re-displays it
14086           - ReplaceSelection() now uses new Insert() method to avoid code
14087             duplication
14088           - FormatText() can now handle formatting partial lines
14089         * TextBoxBase.cs:
14090           - Append now uses new TextControl.Insert() method (this avoids 
14091             duplicate code)
14092           - Implemented Ctrl-X (Cut) (
14093           - Implemented Ctrl-C (Copy)
14094           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14095             regeneration when pasting text; roundtripping Copy&Paste within
14096             edit control still fails due to some calculation bugs in GenerateRTF)
14097           - The Delete key will now remove the current selection if it is visible
14098         * TextBox.cs: Removed debug lines
14099         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14100           driver to be initialized and can't therefore be done via a static ctor)
14101
14102 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14103
14104         * TextControl.cs: Added backend code for finding char arrays and strings
14105         * TextBoxBase.cs:
14106           - Added mouse wheel scroll support
14107           - Added support for VScroll and HScroll events
14108         * RichTextBox.cs:
14109           - Implemented all seven Find() variants
14110           - Implemented GetCharFromPosition()
14111           - Implemented GetCharIndexFromPosition()
14112           - Implemented GetLineFromIndex()
14113           - Implemented GetPositionFromCharIndex();
14114           - Implemented SaveFile for PlainText and UnicodeText
14115           - Fixed set_Font, now setting a new font applies that font to
14116             the whole document
14117           - Implemented generic Document to RTF converter
14118           - Implemented SaveFile for RichText format (still missing unicode
14119             conversion for non-ansi chars)
14120           - Implemented get_Rtf
14121           - Implemented get_SelectedRtf
14122
14123 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14124
14125         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14126           to allow any captures to be released before triggering OnClick. This
14127           way a click handler may capture the mouse without interference.
14128         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14129           This way we send them even though X may not allow a grab (if the window
14130           isn't visible, for example)
14131
14132 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14133
14134         * DataGridViewRowEventArgs.cs: DataGridView implementation
14135         * DataGridViewElement.cs: DataGridView implementation
14136         * DataGridViewComboBoxCell.cs: DataGridView implementation
14137         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14138         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14139         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14140         * ImageLayout.cs: DataGridView implementation
14141         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14142         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14143         * DataGridViewSelectionMode.cs: DataGridView implementation
14144         * IDataGridViewEditingControl.cs: DataGridView implementation
14145         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14146         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14147         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14148         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14149         * DataGridViewColumnSortMode.cs: DataGridView implementation
14150         * DataGridView.cs: DataGridView implementation
14151         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14152         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14153         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14154         * Padding.cs: DataGridView implementation
14155         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14156         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14157         * DataGridViewRowEventHandler.cs: DataGridView implementation
14158         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14159         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14160         * DataGridViewButtonCell.cs: DataGridView implementation
14161         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14162         * DataGridViewEditMode.cs: DataGridView implementation
14163         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14164         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14165         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14166         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14167         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14168         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14169         * DataGridViewCellEventHandler.cs: DataGridView implementation
14170         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14171         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14172         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14173         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14174         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14175         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14176         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14177         * QuestionEventArgs.cs: DataGridView implementation
14178         * IDataGridViewEditingCell.cs: DataGridView implementation
14179         * DataGridViewTriState.cs: DataGridView implementation
14180         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14181         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14182         * DataGridViewColumnCollection.cs: DataGridView implementation
14183         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14184         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14185         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14186         * DataGridViewColumn.cs: DataGridView implementation
14187         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14188         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14189         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14190         * DataGridViewRow.cs: DataGridView implementation
14191         * DataGridViewImageCellLayout.cs: DataGridView implementation
14192         * DataGridViewImageCell.cs: DataGridView implementation
14193         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14194         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14195         * DataGridViewHeaderCell.cs: DataGridView implementation
14196         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14197         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14198         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14199         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14200         * QuestionEventHandler.cs: DataGridView implementation
14201         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14202         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14203         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14204         * DataGridViewCell.cs: DataGridView implementation
14205         * DataGridViewCellEventArgs.cs: DataGridView implementation
14206         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14207         * DataGridViewCellStyle.cs: DataGridView implementation
14208         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14209         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14210         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14211         * TextFormatFlags.cs: DataGridView implementation
14212         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14213         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14214         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14215         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14216         * DataGridViewButtonColumn.cs: DataGridView implementation
14217         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14218         * HandledMouseEventArgs.cs: DataGridView implementation
14219         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14220         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14221         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14222         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14223         * DataGridViewRowCollection.cs: DataGridView implementation
14224         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14225         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14226         * DataGridViewHitTestType.cs: DataGridView implementation
14227         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14228         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14229         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14230         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14231         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14232         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14233         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14234         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14235         * DataGridViewContentAlignment.cs: DataGridView implementation
14236         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14237         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14238         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14239         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14240         * DataGridViewPaintParts.cs: DataGridView implementation
14241         * DataGridViewCellCollection.cs: DataGridView implementation
14242         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14243         * DataGridViewImageColumn.cs: DataGridView implementation
14244         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14245         * DataGridViewElementStates.cs: DataGridView implementation
14246         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14247         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14248         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14249         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14250         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14251         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14252         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14253         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14254         * DataGridViewTextBoxCell.cs: DataGridView implementation
14255         * DataGridViewBand.cs: DataGridView implementation
14256         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14257         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14258         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14259         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14260         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14261         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14262         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14263         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14264         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14265         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14266         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14267
14268 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14269
14270         * ThemeWin32Classic.cs: 
14271           - Draw the outside focus rectangle around buttons
14272           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14273             doesn't use end caps for every dash of a line anymore. This
14274             workaround ignores the forecolor.
14275
14276 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14277
14278         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14279           endian safe.
14280
14281 2005-11-07  Jackson Harper  <jackson@ximian.com>
14282
14283         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14284
14285 2005-11-07  Jackson Harper  <jackson@ximian.com>
14286
14287         * ScrollableControl.cs: Calculate the maximum and change vars
14288         (more) correctly so that scrollbars appear as a sensible size.
14289
14290 2005-11-04  Jackson Harper  <jackson@ximian.com>
14291
14292         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14293         collection.
14294         * TreeView.cs: When the tree is sorted null out the top_node so
14295         that it is recalculated.
14296         - Use dotted lines instead of dashed lines to match MS better.
14297
14298 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14299
14300         * ListView.cs: 
14301           - Implements key search for items. Useful when browsing files with FileDialog
14302           - When changing view mode or when clear the items reset scrollbar positions
14303
14304 2005-11-04  Jackson Harper  <jackson@ximian.com>
14305
14306         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14307         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14308         as to what the method may do as there is no real way of creating a
14309         derived CurrencyManager and calling the method. 
14310
14311 2005-11-03  Jackson Harper  <jackson@ximian.com>
14312
14313         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14314         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14315         method which seems to just be used internally to refresh the tabs.
14316
14317 2005-11-03  Jackson Harper  <jackson@ximian.com>
14318
14319         * TabControl.cs: Implement the remove method. Fix some broken
14320         comments.
14321
14322 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14323
14324         * DateTimePicker.cs:
14325           - Added missing DateTimePickerAccessibleObject class
14326           - Added missing events
14327           - Added OnFontChanged method
14328         * Form.cs: Added missing attributes
14329         * TreeView.cs: Added missing attributes
14330
14331 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14332
14333         * GridItemCollection.cs: Fix signatures
14334
14335 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14336
14337         * XplatUI.cs: Updated build rev/date
14338         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14339           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14340         * Application.cs: Trigger context-specific ExitThread events
14341
14342 2005-11-03  Jackson Harper  <jackson@ximian.com>
14343
14344         * Menu.cs:
14345         * MainMenu.cs:
14346         * GridTableStylesCollection.cs:
14347         * Timer.cs:
14348         * TabPage.cs:
14349         * HelpProvider.cs:
14350         * StatusBar.cs:
14351         * MonthCalendar.cs: Signature fixes
14352
14353 2005-11-03  Jackson Harper  <jackson@ximian.com>
14354
14355         * TreeNodeCollection.cs: Remove should not be virtual.
14356         * TreeView.cs: Implement the last of the missing methods.
14357
14358 2005-11-03  Jackson Harper  <jackson@ximian.com>
14359
14360         * TreeNodeConverter.cs: Implement to get off my class-status back.
14361
14362 2005-11-03  Jackson Harper  <jackson@ximian.com>
14363
14364         * TreeView.cs: Hookup the bits for drag and drop.
14365         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14366         that nodes can be moved from tree to tree easily this just causes
14367         all sorts of problems.
14368         * TreeNodeCollection: Don't need to give treenodes an index and
14369         treeview anymore when they are added, these are computed on the
14370         fly. Also make sure to remove a node before its added.
14371
14372 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14373
14374         * TextControl.cs:
14375           - Added CaretSelection enum
14376           - Added comparison methods to Marker struct, makes selection code
14377             more readable
14378           - Added SelectionStart and SelectionEnd as 'moveable' location for
14379             the CaretDirection enum and handler
14380           - Added selection_prev variable to track optimized invalidation for
14381             word and line selection
14382           - Added SelectionVisible property (returns true if there is a valid 
14383             selection)
14384           - Switched CaretHasFocus to only display the caret if there is no
14385             visible selection
14386           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14387             using the direct character index; should be much faster
14388           - Added various conditional debug statements
14389           - Fixed invalidation calculation for selection ranges
14390           - Added ExpandSelection() method to support word and line selection
14391           - Switched SetSelectionToCaret to use new Marker compare overloads
14392           - Added central IsWordSeparator() method to determine word 
14393             separators/whitespace and FindWordSeparator() to streamline common
14394             usage of IsWordSeparator()
14395         * TextBoxBase.cs:
14396           - Removed unneeded grabbed variable, it was just mirroring
14397             Control.Capture
14398           - No longer firing OnTextChanged event when Text setter is called,
14399             since the base will fire the event for us
14400           - Added handling of Ctrl-Up/Down selection
14401           - Added handling of Shift-Cursorkey selection
14402           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14403             words
14404           - Added handling of Shift and Ctrl-Shift-Home/End selection
14405           - Removed some debug output
14406           - Added handling for single/double/tripple-click to place caret/
14407             select word/select line respectively (Fixes bug #76031)
14408           - Added support for drag expansion of word/line selection
14409         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14410           current selection
14411
14412 2005-11-02  Jackson Harper  <jackson@ximian.com>
14413
14414         * X11Dnd.cs: If the drag is going to and from a MWF window just
14415         copy the data instead of sending it out through the X Selection
14416         mechanism.
14417
14418 2005-11-02  Jackson Harper  <jackson@ximian.com>
14419
14420         * X11Dnd.cs:
14421         * XplatUIX11.cs: When in a drag we don't want motion notify
14422         messages to get passed on to the other controls. This prevents
14423         mouse move messages from showing up in the drag source.
14424
14425 2005-11-02  Jackson Harper  <jackson@ximian.com>
14426
14427         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14428         the correct button is release to end a drag.
14429         * XplatUIX11.cs: Make the button state internal so the drag system
14430         can access it.  Dragging needs to know about all button releases,
14431         not just left button.
14432
14433 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14434
14435         * Form.cs (Icon): If the icon is null, reset the icon to the
14436         default value. 
14437
14438         * Cursor.cs: When writing the AND-mask bitmap do not include the
14439         number of colors, but hardcode those to two (black and white),
14440         fixes the loading of color cursors (Paint Dot Net).
14441
14442         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14443         turn off autoscaling.
14444
14445         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14446
14447 2005-11-02  Jackson Harper  <jackson@ximian.com>
14448
14449         * X11Dnd.cs: Make sure to send a status message if the pointer
14450         enters a control that can not accept a drop, otherwise the cursor
14451         isn't updated correctly. Also tried to compress the lines of code
14452         a bit.
14453
14454 2005-11-02  Jackson Harper  <jackson@ximian.com>
14455
14456         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14457         set actions correctly.  This isn't perfect as XDND and win32 have
14458         some differences on how you allow actions. I'll clear this up by
14459         adding a path for drag from MWF to MWF windows.
14460         * XplatUIX11.cs: Hook into the dnd system.
14461
14462 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14463
14464         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14465         previously shown but they are no longer need it. Very obvious when 
14466         browsing files with FileDialog.
14467
14468 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14469
14470         * Control.cs: We always need to call OnPaintBackground. We pretty much
14471           ignore AllPaintingInWmPaint and always do the painting there, whether 
14472           it's set or not, since we always ignore the WM_ERASEBKGND message 
14473           (which we don't generate on X11). This fixes #76616.
14474         * Panel.cs: Removed unneeded background painting. This happens properly
14475           in Control.cs already
14476
14477 2005-10-31  Mike Kestner  <mkestner@novell.com>
14478
14479         * Menu.cs: Add items to collection before setting their index.
14480         * MenuItem.cs : add range checking with ArgumentException like MS.
14481         [Fixes #76510]
14482
14483 2005-10-31  Jackson Harper  <jackson@ximian.com>
14484
14485         * ListBox.cs: Invalidate if the area is visible at all not just
14486         contained in the visible rect. Fixes unselection of semi visible
14487         items.
14488
14489 2005-10-31  Jackson Harper  <jackson@ximian.com>
14490
14491         * Control.cs: Consistently name the dnd methods. Make them
14492         internal so we can override them to match some MS behavoir
14493         internally.
14494         * Win32DnD.cs: Use the new consistent names.
14495
14496 2005-10-31  Jackson Harper  <jackson@ximian.com>
14497
14498         * TreeView.cs: Don't draw the selected node when we lose focus.
14499
14500 2005-10-31  Jackson Harper  <jackson@ximian.com>
14501
14502         * X11Dnd.cs: We still need to reset the state even though a full
14503         reset isn't being done, otherwise status's still get sent all over
14504         the place.
14505
14506 2005-10-31  Jackson Harper  <jackson@ximian.com>
14507
14508         * Control.cs: Make the dnd_aware flag internal so the dnd
14509         subsystem can check it. Catch exceptions thrown in dnd handlers to
14510         match MS behavoir.
14511         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14512         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14513         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14514         flags to reduce the number of dnd enters/status's sent.
14515
14516 2005-10-31  Jackson Harper  <jackson@ximian.com>
14517
14518         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14519
14520 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14521
14522         * PictureBox.cs: Fixes 76512
14523
14524 2005-10-28  Jackson Harper  <jackson@ximian.com>
14525
14526         * X11Dnd.cs: Early implementation to support winforms being a drag
14527         source for data on X11. Also restructured the converters so they
14528         can go both ways now.
14529         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14530         
14531 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14532
14533         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14534           clipboard requests
14535
14536 2005-10-27  Jackson Harper  <jackson@ximian.com>
14537
14538         * TreeNode.cs: Implement serialization so my DnD examples will work.
14539
14540 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14541
14542         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14543           TreeView.cs: Don't dispose objects that are not owned.
14544           
14545 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14546
14547         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14548           should retrieve the current cursor and report that, but XplatUI
14549           doesn't (yet) have an interface for that (and I'm not sure I even
14550           can, on X11)
14551         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14552           until any message loop processing is done (and the WM_SETCURSOR
14553           replaces the cursor to the proper one)
14554         * XplatUIX11.cs: 
14555           - Fixed override behaviour, we can't set the cursor globally on X11, 
14556             just for our windows.
14557           - Invalidating the System.Drawing X11 display handle when we are
14558             shutting down
14559         * Control.cs: Fix to make csc happy
14560
14561 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14562
14563         * TextBoxBase.cs: 
14564           - get_Text: Add last line (without trailing newline) to returned
14565             value (Fixes 76212)
14566           - get_TextLength: Count last line in returned length
14567           - ToString: Call Text property instead of duplicating code
14568
14569 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14570
14571         * ImageList.cs: Dispose ImageAttributes objects.
14572
14573 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14574
14575         * ImageList.cs: Use attribute constructors with less arguments where
14576           possible.
14577
14578 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14579
14580         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14581           Use typeof instead of strings when assembly is referenced. Added
14582           some more comments.
14583
14584 2005-10-21  Jackson Harper  <jackson@ximian.com>
14585
14586         * ListView.cs: Raise a double click event. Also tried to somewhat
14587         fix when the selectedindexchanged event is raised. Its still
14588         broken though.
14589
14590 2005-10-21  Jackson Harper  <jackson@ximian.com>
14591
14592         * TreeView.cs: New method to invalidate the plus minus area of a
14593         node without invalidating the whole node (maybe this can be used
14594         in some more places).
14595         * TreeNodeCollection.cs: When adding to an empty node we need to
14596         invalidate its plus minus area so the little block shows up.
14597         
14598 2005-10-21  Jackson Harper  <jackson@ximian.com>
14599
14600         * TreeView.cs: Make sure that when we invalidate a node the bounds
14601         are big enough to cover the selected box and the focus
14602         rectangle. Use a different colour for the lines connecting nodes
14603         so they show up with all themes.
14604
14605 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14606
14607         * NativeWindow.cs: Don't call anything that could call into the driver,
14608           we might be on a different thread.
14609
14610 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14611
14612         * Control.cs(Dispose): Since Dispose might run on a different thread,
14613           make sure that we call methods that could call into the driver via
14614           invoke, to avoid thread issues
14615
14616 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14617
14618         * XplatUI.cs: Removed finalizer
14619         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14620           not allowing to be called on the finalizer thread.
14621
14622 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14623
14624         * ImageList.cs:
14625           - Reverted r51889 and r51891.
14626           - Added ImageListItem class that stores unmodified image items and image
14627             properties required to create list images until handle is created.
14628           - Added AddItem and moved image creation logic to AddItemInternal.
14629           - Added CreateHandle method that creates images based on unmodified items.
14630           - Added DestroyHandle that changes state to store unmodified items.
14631           - Add and AddStrip methods no more create handle.
14632           - ReduceColorDepth has no return value.
14633           - Dispose destroys handle.
14634           - Modified other methods to reflect the above changes.
14635           - Implemented key support.
14636           - Added profile 2.0 members and attributes.
14637           - Added private Reset and ShouldSerialize methods that provide the same
14638             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14639             them as they are private.
14640           - Added some more comments about implementation details.
14641
14642 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14643
14644         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14645
14646 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14647
14648         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14649
14650 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14651
14652         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14653         * DataGridColumnStyle.cs: Remove debug message
14654
14655 2005-10-20  Jackson Harper  <jackson@ximian.com>
14656
14657         * TreeView.cs: We can always get input keys regardless of whether
14658         or not editing is enabled. They are used for navigation.
14659
14660 2005-10-20  Jackson Harper  <jackson@ximian.com>
14661
14662         * TreeNode.cs: Use the viewport rect for determining if a node
14663         needs to be moved for visibility. Don't use Begin/End edit. This
14664         calls a full refresh when its done.
14665         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14666         rect property internal so the treenodes can see it. When clicking
14667         on a node we need to ensure that its visible because it might just
14668         be partly visible when clicked.
14669
14670 2005-10-20  Jackson Harper  <jackson@ximian.com>
14671
14672         * TreeNodeCollection.cs: Remove debug code.
14673
14674 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14675
14676         * Datagrid.cs: Implements column sorting in Datagrid
14677         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14678
14679 2005-10-20  Jackson Harper  <jackson@ximian.com>
14680
14681         * TreeNodeCollection.cs: Remove items properly. Update the correct
14682         area after removing them.
14683
14684 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14685
14686         * Datagrid.cs: Should not call base.OnPaintBackground
14687
14688 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14689
14690         * XplatUIX11.cs (GetMessage):
14691           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14692             window instead of client window
14693           - Now properly calculates NC_xBUTTONUP message coordinates
14694           - ScreenToMenu now properly calculates it's coordinates of whole 
14695             window, since menus are in the whole window, not in the client
14696             window
14697           - Added WholeToScreen coordinate translation method
14698
14699 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14700
14701         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14702           want to return a message, loop back to the beginning of the function
14703           and grab the next real message to process instead.
14704
14705 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14706
14707         * Splitter.cs: Properly set limits if no filler control is used
14708
14709 2005-10-19  Jackson Harper  <jackson@ximian.com>
14710
14711         * ColorDialog.cs: Don't show the help button if it is not enabled
14712         instead of disabling it (this is what MS does). Don't create the
14713         panel until the dialog is run, otherwise the vars (such as
14714         ShowHelp) are not set yet.
14715
14716 2005-10-19  Jackson Harper  <jackson@ximian.com>
14717
14718         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14719         are reduced when adding nodes.
14720         * TreeNode.cs:
14721         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14722         tree.
14723         
14724 2005-10-19  Jackson Harper  <jackson@ximian.com>
14725
14726         * FolderBrowserDialog.cs: End editing our treeview so the window
14727         actually gets refreshed.
14728
14729 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14730
14731         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14732           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14733           inside of WM_PAINT
14734
14735 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14736
14737         * MenuAPI.cs: Returns after Hidding window
14738         * XplatUIX11.cs: Added TODO found while debugging menu issues
14739
14740 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14741
14742         * XplatUIX11.cs: Do not re-map the whole window when it's size
14743           becomes non-zero unless it's supposed to be actually visible
14744
14745 2005-10-18  Jackson Harper  <jackson@ximian.com>
14746
14747         * TreeView.cs: We don't need to keep a count anymore.
14748         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14749         use the Grow method.
14750
14751 2005-10-18  Jackson Harper  <jackson@ximian.com>
14752
14753         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14754         implement it manually here.
14755
14756 2005-10-18  Jackson Harper  <jackson@ximian.com>
14757
14758         * ImageList.cs: Dont kill the list when the colour depth is
14759         changed, just change the colour depth of all the images.
14760         - Same goes for setting the image size. Just resize them all
14761         instead of killing the list softly.
14762
14763 2005-10-18  Jackson Harper  <jackson@ximian.com>
14764
14765         * Control.cs: Don't invalidate empty rectangles.
14766
14767 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14768
14769         * ListViewItem.cs:
14770           - Adds checked item to the Checked/Item lists (where empty before)
14771           - Do not add items to the Selected lists if they are already present
14772         * ListView.cs:
14773           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14774           - When deleting items make sure that we delete them for the Selected
14775           and Checked list also.
14776
14777 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14778
14779         * Label.cs: Dispose objects no longer used
14780         * ThemeWin32Classic.cs: Dispose objects no longer used
14781
14782 2005-10-18  Jackson Harper  <jackson@ximian.com>
14783
14784         * TabControl.cs: Don't refresh the whole control when the tabs are
14785         scrolled, we just need to refresh the tab area.
14786
14787 2005-10-17  Jackson Harper  <jackson@ximian.com>
14788
14789         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14790         after handle when we need it.
14791
14792 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14793
14794         * Control.cs: When the parent size changes, recalculate anchor 
14795           positions. Partial fix for #76462
14796
14797 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14798
14799         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14800           drawn. Fixes #76462
14801
14802 2005-10-17  Jackson Harper  <jackson@ximian.com>
14803
14804         * MonthCalendar.cs: Don't create the numeric up down until our
14805         handle is created. Otherwise our handle is created in the
14806         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14807         yet.
14808
14809 2005-10-17  Jackson Harper  <jackson@ximian.com>
14810
14811         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14812         correctly.
14813
14814 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14815         * TreeNode.cs : small logical fix (was using local var instead of field)
14816         
14817 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14818
14819         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14820
14821 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14822
14823         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14824
14825 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14826
14827         * Control.cs: 
14828           - Re-implemented anchoring code. My first version was really broken.
14829             This fixes bug #76033. Unlike the previous implementation we will
14830             no longer have round errors since all numbers are calculated from
14831             scratch every time. Removed various anchor-related obsolete vars.
14832           - InitLayout no longer causes layout event firing and layout to be 
14833             performed
14834
14835 2005-10-16  Jackson Harper  <jackson@ximian.com>
14836
14837         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14838         which was broken).
14839
14840 2005-10-16  Jackson Harper  <jackson@ximian.com>
14841
14842         * TabControl.cs: Remove debug code.
14843
14844 2005-10-16  Jackson Harper  <jackson@ximian.com>
14845
14846         * XEventQueue.cs: Increase the default queue size (very simple
14847         apps needed to grow the queue).
14848         * Hwnd.cs: No finalizer so we don't need to suppress
14849         finalization. Compute the invalid area manually so a new rectangle
14850         does not newto be created.
14851         * ScrollableControl.cs: Don't set any params (otherwise visibility
14852         isn't set correctly).
14853         * MdiChildContext.cs: New constructor takes the mdi parent so it
14854         doesn't have to be computed and avoids a crash on windows. Draw
14855         the window icon properly, and allow the text to be seen.
14856         * Form.cs: Use new MdiChildContext constructor. Make sure the
14857         child context isn't null in wndproc.
14858         * TabControl.cs: Don't set focus, this is muddling keyboard
14859         behavoir. Expand the tab rows when a window size increase will
14860         allow extra tabs to be seen. Don't allow tabs smaller than the
14861         width of a window to be scrolled out of view.
14862         * TreeNode.cs:
14863         * TreeView.cs: Use measure string to calculate a nodes width, the
14864         width is cached and only updated when the text or the font is
14865         changed. Don't check for expand/collapse clicks on the first level
14866         nodes if root lines are disabled.
14867         
14868 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14869
14870         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14871
14872 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14873
14874         * DataGridBoolColumn.cs: fixes warning
14875
14876 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14877
14878         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14879         to match more to match more precisely the MS Net behavior
14880
14881 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14882
14883         * Hwnd.cs: Added field to track if window is mapped
14884         * XplatUIX11.cs: 
14885           - Unmap windows if they become 0-size, re-map when 
14886             they are >0 again; fixes #76035
14887           - Re-set our error handler after initializing X11Desktop
14888             to override any error handlers Gtk or whatever was called
14889             may have set.
14890
14891 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14892
14893         * CheckedListBox.cs: Removed unused vars
14894         * ListView.cs: Fixed signatures
14895         * RichTextBox.cs: Removed unused vars
14896         * TextBoxBase.cs: Removed unused vars
14897         * XplatUIWin32.cs: Removed unused vars
14898         * XplatUIX11.cs: Removed unused vars
14899         * XplatUI.cs: Updated version and date to latest published
14900
14901 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14902
14903         * Cursor.cs: Added private .ctor to work around a bug in
14904           resourceset (Thanks to Geoff Norton for the help on this)
14905         * SplitterEventArgs.cs: Made fields accessible so we don't
14906           waste boatloads of objects and can reuse the same one
14907           in Splitter
14908         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14909           any captions and borders when generating screen coordinates
14910         * Splitter.cs: Reimplemented control, now fully complete, uses
14911           rubberband drawing, supports and obeys all properties, has
14912           proper cursors
14913
14914 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14915
14916         * Form.cs (Form): Setup default values for autoscale and
14917         autoscale_base_size;  Make these instance variables, not static
14918         variables. 
14919
14920         (OnLoad): on the first load, adjust the size of the form.
14921
14922 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14923
14924         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14925           width argument to DrawReversibleRectangle()
14926         * XplatUIWin32.cs, XplatUIX11.cs: 
14927           - Implemented width for DrawReversibleRectangle()
14928           - Added logic to DrawReversibleRectangle that recognizes a zero
14929             width or height and only draws a line in that situation
14930         
14931 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14932
14933         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14934         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14935         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14936           method (it uses our FosterParent window to get a graphics context)
14937
14938 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14939
14940         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14941           and SetWindowBackground methods
14942         * Control.cs:
14943           - Setting proper ControlStyles
14944           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14945             EraseWindowBackground, instead we draw the window background
14946             ourselves in PaintControlBackground. This behaviour is
14947             required to match MS, where, when OnPaintBackground is not
14948             called, the background is not drawn.
14949           - Removed unneeded Refresh() in set_Text
14950         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14951         * XplatUIX11.cs:
14952           - Created DeriveStyles method to translate from CreateParams to
14953             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14954             matches FormBorderStyle enum values)
14955           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14956             style calculations into single DeriveStyles method
14957           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14958             from redrawing the whole window on any resize or expose.
14959           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14960             all styles were applied to our whole/client window appropriately
14961           - Removed EraseWindowBackground() and SetWindowBackground() methods
14962           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14963             no longer clear/redraw the background through X
14964           - Removed handling of erase_pending bit, we have no use for it (or
14965             so it seems)
14966         * XplatUIOSX.cs:
14967           - Removed generation and handling of WM_ERASEBKGND message
14968           - Removed EraseWindowBackground() and SetWindowBackground() methods
14969           - Removed handling of hwnd.ErasePending flag
14970         * XplatUIWin32.cs:
14971           - Removed EraseWindowBackground() and SetWindowBackground() methods
14972           - We no longer call EraseWindowBackground on PaintEventStart, we 
14973             ignore the fErase flag, erasing is handled in Control in the
14974             background handler
14975         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
14976           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
14977           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
14978           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
14979           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
14980           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
14981           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
14982
14983 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
14984
14985         * PropertyGrids.cs: Get sub properties
14986         * PropertyGridView.cs: Fix drawing code
14987
14988 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14989
14990         * ListBox.cs: Fixes 76383
14991
14992 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
14993
14994         * DataGridTextBoxColumn.cs: Sets location and size before attachment
14995         * ThemeWin32Classic.cs: Fixes border drawing and calculations
14996         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
14997
14998
14999 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15000
15001         * ComboBox.cs: Fixes border drawing
15002
15003 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15004
15005         * MimeIcon.cs: Ignore errors if the file can not be read.
15006
15007 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15008
15009         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15010          - Fixed border calculations
15011          - Fixed horizontal scrolling in single column listboxes
15012          - Fixed drawing issues
15013
15014 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15015
15016         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15017           FormBorderStyle enum
15018         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15019           code to determine FormBorderStyles from CreateParams
15020         * Form.cs:
15021           - Fixed bug where we'd set the wrong window styles if we were
15022             not creating an MDI window
15023           - Added call to XplatUI.SetBorderStyle when form borders are set
15024         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15025         * Hwnd.cs:
15026           - Removed obsolete edge style
15027           - Switched from BorderStyle to FormBorderStyle
15028         
15029 2005-10-10  Jackson Harper  <jackson@ximian.com>
15030
15031         * Form.cs: Use the property to get the window handle instead of
15032         accessing it directly. Prevents a null reference exception.
15033
15034 2005-10-10  Jackson Harper  <jackson@ximian.com>
15035
15036         * TreeView.cs: Don't adjust the rect given to DrawString now that
15037         our libgdiplus draws correctly.
15038
15039 2005-10-08  Jackson Harper  <jackson@ximian.com>
15040
15041         * TreeView.cs: Don't try to find the clicked on node if there are
15042         no nodes in the tree.
15043
15044 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15045
15046         * RichTextBox.cs:
15047
15048           restore
15049
15050 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15051
15052         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15053           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15054           ErrorProvider.cs:
15055           Use ResPool for brushes and dispose System.Drawing objects that
15056           are not used anymore.
15057
15058 2005-10-07  Jackson Harper  <jackson@ximian.com>
15059
15060         * MdiChildContext.cs: Use the new borders instead of drawing them
15061         ourselves.
15062
15063 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15064
15065         * Calling UpdateBounds after changing the window's BorderStyle 
15066         since the style can change the ClientSize
15067
15068 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15069
15070         * Control.cs: Made PaintControlBackground virtual
15071         * Panel.cs: Overriding PaintControlBackground instead of using paint
15072           event; paint event method was interfering with 'real' users of the
15073           event.
15074
15075 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15076
15077         * ThemeWin32Classic.cs: remove border drawing since it is handled
15078         by the base control class now and was causing double border drawing.
15079
15080 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15081
15082         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15083           but it does seem to match MS behaviour. This fixes bug #75324
15084
15085 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15086
15087         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15088           somewhat hackish looking
15089
15090 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15091
15092         * TextBoxBase.cs:
15093           - We now accept Enter even if AcceptEnter is false, if the containing
15094             form does not have an AcceptButton configured (fixes bug #76355)
15095           - Calculations are now fixed to no longer use Width/Height, but
15096             ClientSize.Width/Height, since we now support borders (this was
15097             a result of fixing borders and therefore bug #76166)
15098           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15099             true (fixes bug #76354)
15100         
15101 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15102
15103         * Control.cs: 
15104           - Defaulting BorderStyle and setting it in XplatUI when our window 
15105             is created
15106           - Added enum check to InternalBorderStyle setter
15107         * XplatUIX11.cs: 
15108           - Added drawing of window borders
15109           - Now properly calculates WM decorations offset for toplevel 
15110             windows (fixes bug #74763)
15111         * XplatUIWin32.cs: 
15112           - Implemented BorderStyles for windows (we're letting win32 draw 
15113             the border for us)
15114           - Fixed the signature for SetWindowLong
15115         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15116           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15117           setting borders
15118         * UpDownBase.cs: Remove drawing of borders, this is handled by
15119           the driver, outside the client area
15120         * ListView.cs: Removed bogus border calculations. The control should
15121           be oblivious to borders, since those are not part of the client
15122           area. 
15123         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15124         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15125           drawing code
15126
15127 2005-10-06  Jackson Harper  <jackson@ximian.com>
15128
15129         * MdiChildContext.cs: Clear out the old virtual position remove
15130         all the unneeded calls to CreateGraphics.
15131
15132 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15133
15134         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15135
15136 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15137
15138         * Form.cs: 
15139           - Added loading and setting of our new default icon
15140           - Only set icon if window is already created
15141
15142 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15143
15144         * Label.cs:
15145           - Do not explicitly set the foreground and background colors, to
15146             allow inheriting from parents (fixes #76302)
15147           - Use Control's InternalBorderStyle property to deal with borders
15148
15149 2005-10-06  Jackson Harper  <jackson@ximian.com>
15150
15151         * MdiChildContext.cs: Use the new xplatui function to draw a
15152         reversible rect.
15153
15154 2005-10-06  Jackson Harper  <jackson@ximian.com>
15155
15156         * Form.cs: Add the parent before creating the child context cause
15157         we need the parent when setting up the child.
15158
15159 2005-10-06  Jackson Harper  <jackson@ximian.com>
15160
15161         * FolderBrowserDialog.cs: redo the tree population code so a
15162         second thread isn't used. Should be a lot faster and more stable
15163         now.
15164
15165 2005-10-05  Jackson Harper  <jackson@ximian.com>
15166
15167         * TreeView.cs: There are no expand/collapse boxes if the node has
15168         no children.
15169
15170 2005-10-05  Jackson Harper  <jackson@ximian.com>
15171
15172         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15173
15174 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15175
15176         * FileDialog.cs: Fix InitialDirectory
15177
15178 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15179
15180         * ComboBox.cs:
15181                 - Fixes changing between styles
15182                 - Fixes simple mode
15183                 - Fixes last item crashing when navigating with keyboard
15184
15185 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15186
15187         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15188
15189 2005-10-05  Jackson Harper  <jackson@ximian.com>
15190
15191         * TreeView.cs: If updating the root node do a full refresh.
15192         * TreeNode.cs: The root node should be expanded by default. Also
15193         added a utility prop to tell if we are the root node.
15194         * TreeNodeCollection.cs: Only refresh if the node we are being
15195         added to is expanded. Also added a comment on a potential
15196         optimization.
15197         
15198 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15199
15200         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15201           in dispose method. Fixes #76330
15202
15203 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15204
15205         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15206
15207                 - Implements vertical and horizontal scrolling using XplatUI
15208                 - Fixes keyboard navagation
15209                 - Fixes EnsureVisible
15210                 - Drawing fixes
15211                 - Handles and draws focus properly
15212
15213
15214 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15215
15216         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15217           Create handle. NET_2_0: Destroy handle when value is null.
15218
15219 2005-10-03  Jackson Harper  <jackson@ximian.com>
15220
15221         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15222         revert and a new patch to prevent the thumb from refreshing so
15223         much.
15224
15225 2005-10-02  Jackson Harper  <jackson@ximian.com>
15226
15227         * ScrollBar.cs: Don't update position if it hasn't actually
15228         changed. This occurs when you hold down the increment/decrement
15229         buttons and the thumb gets to the max/min.
15230
15231 2005-10-01  Jackson Harper  <jackson@ximian.com>
15232
15233         * Form.cs:
15234         * MdiChildContext.cs:
15235         * MdiClient.cs: Implement ActiveMdiChild in Form.
15236
15237 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15238
15239         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15240
15241 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15242
15243         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15244           be found
15245
15246 2005-09-30  Jackson Harper  <jackson@ximian.com>
15247
15248         * ListBox.cs: Don't do a full refresh unless some data has
15249         actually changed.
15250
15251 2005-09-30  Jackson Harper  <jackson@ximian.com>
15252
15253         * TreeView.cs: Make sure that the checkboxes size is factored in
15254         even when not visible.
15255
15256 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15257
15258         * FileDialog.cs: Fix Jordi's build break
15259
15260 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15261
15262         * FileDialog.cs: 
15263                 - Use standard the Windows colours for the combobox as espected
15264                 - Dispose objects that use resouces when no longer need them
15265
15266 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15267
15268         * X11DesktopColors.cs: Initial incomplete implementation
15269         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15270
15271 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15272
15273         * Theme.cs: 
15274           - Switched Theme color names to match the names defined in 
15275             System.Drawing.KnownColors. Life's hard enough, no need to make 
15276             it harder.
15277           - Added setters to all theme color properties so themes can set
15278             their color schemes. The setters also propagate the color changes
15279             to System.Drawing.KnownColors via reflection
15280         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15281           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15282           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15283           use the new, more logical theme color names
15284         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15285           post-NT colors
15286         * ThemeWin32Classic.cs:
15287           - Removed code to set the old classic Windows colors. Instead it
15288             now relies on the colors returned by System.Drawing.KnownColors
15289             which will be either modern static colors (Unix) or colors
15290             read from the user's configuration (Win32)
15291           - Updated to use the new, more logical theme color names
15292           - Switched DataGrid drawing code to use only Theme colors instead of
15293             a mix of System.Drawing.KnownColors and Theme colors
15294           - DrawFrameControl(): Removed code that fills the button area, the
15295             fill would overwrite any previous fill done by a control. This
15296             fixes bug #75338 
15297           - Added DrawReversibleRectangle() stub
15298         * ScrollableControl.cs: Set visible state to false when scrollbars
15299           are removed (pdn fix)
15300         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15301           DrawReversibleRectangle() method to allow drawing primitive 
15302           'rubber bands'
15303         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15304
15305 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15306
15307         * ImageList.cs: Add(Icon): Create handle.
15308
15309 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15310
15311         * ListView.cs:
15312         * ThemeWin32Classic.cs:
15313                 - Fixes detail mode
15314                 - Sets clippings
15315                 - Issues with drawing
15316
15317 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15318
15319         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15320           source has to be the ImageList.
15321
15322 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15323
15324         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15325
15326 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15327
15328         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15329
15330 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15331
15332         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15333
15334 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15335         * GridItem.cs: Fixed TODOs
15336         * GridItemCollection.cs: Added ICollection interface
15337
15338 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15339
15340         * ImageList.cs: Resize icons when needed.
15341
15342 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15343
15344         * ListViewItem.cs
15345                 - Fixes GetBounds and returns on screen rects
15346         * ListView.cs:
15347                 - Fixes vertical and horzintal scrolling of items
15348         * ThemeWin32Classic.cs:
15349                 - Fixes drawing
15350                 
15351 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15352
15353         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15354
15355 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15356
15357         * ImageList.cs: Added comments about handle creation. Moved Handle,
15358           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15359           Handle is created in Add methods.
15360
15361 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15362          
15363         * DataGridDrawingLogic.cs: 
15364                 - Takes rows into account on Colum calculations
15365                 - Returns the column when clickig
15366         * DataGrid.cs:
15367                 - Fixes default HitTestInfo values
15368                 - Fixes HitTestInfo.ToString
15369                 - Fixes ResetBackColor          
15370         
15371 2005-09-28  Jackson Harper  <jackson@ximian.com>
15372
15373         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15374         sizing or cursor changes). Also added some temp code to draw the
15375         titlebars text (Makes dev a little easier).
15376
15377 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15378
15379         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15380
15381 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15382          
15383         * ListBox.cs: Fixes bug 76253
15384
15385 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15386
15387         * ImageList.cs: Added comments about the current implementation. Added
15388           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15389           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15390           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15391           with Bitmap.LockBits for better performance. Revised the whole file to
15392           match MS.NET behaviour and provide better performance. Non-public
15393           interface members are calling public members even when they throw
15394           NotSupportedException for better maintainability. Moved ColorDepth,
15395           ImageSize, ImageStream and TransparentColor implementations to
15396           ImageCollection for better performance as these properties are not used
15397           by ImageList.
15398         * ImageListStreamer.cs: Added a new internal constructor that takes an
15399           ImageList.ImageCollection and serializes Images based on
15400           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15401           match ImageList property name.
15402
15403 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15404
15405         * ListBox.cs: Fixes IndexFromPoint for last item
15406
15407 2005-09-27  Jackson Harper  <jackson@ximian.com>
15408
15409         * Form.cs: Set the position of new mdi children correctly.
15410
15411 2005-09-27  Jackson Harper  <jackson@ximian.com>
15412
15413         * MdiClient.cs: New mdi children need to be added to the back of
15414         the controls collection so the zorder is set correctly. Also add a
15415         count of all the child windows that have been created.
15416
15417 2005-09-27  Jackson Harper  <jackson@ximian.com>
15418
15419         * Form.cs (CreateParams): Setup MDI forms correctly.
15420
15421 2005-09-27  Jackson Harper  <jackson@ximian.com>
15422
15423         * MdiChildContext.cs:
15424         * MonthCalendar.cs:
15425         * UpDownBase.cs:
15426         * ListBox.cs:
15427         * ListView.cs:
15428         * TextBoxBase.cs:
15429         * TreeView.cs:
15430         * ScrollableControl.cs:
15431         * ComboBox.cs: Add implicit controls using the new implict control
15432         functionality in ControlCollection. Also try to block multiple
15433         control add in a suspend/resume layout to save some cycles.
15434         
15435 2005-09-27  Jackson Harper  <jackson@ximian.com>
15436
15437         * Control.cs: Add functionality to the controls collection to add
15438         'implicit controls' these are controls that are created by the
15439         containing control but should not be exposed to the user. Such as
15440         scrollbars in the treeview.
15441         * Form.cs: The list var of the ControlsCollection is no longer
15442         available because of the potential of implicit controls getting
15443         ignored by someone accessing the list directly.
15444
15445 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15446
15447         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15448           loose it's parent. (Fixed bug introduced in r49103 when we added
15449           setting the child parent to null on Remove)
15450
15451 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15452
15453         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15454         * Splitter.cs: Added missing attributes for BorderStyle property.
15455         * TextBoxBase.cs: Marked Calculate* methods internal.
15456         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15457         MS.NET.
15458
15459 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15460          
15461         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15462
15463 2005-09-25  Jackson Harper  <jackson@ximian.com>
15464
15465         * TreeView.cs: Update the node bounds correctly regardless of
15466         whether the node is visible.
15467
15468 2005-09-25  Jackson Harper  <jackson@ximian.com>
15469
15470         * ImageList.cs: Don't dispose the image after it is added to the
15471         image list. Only reformat images that need to be resized.
15472
15473 2005-09-25  Jackson Harper  <jackson@ximian.com>
15474
15475         * ImageList.cs: Don't set the format when changing the image.
15476
15477 2005-09-25  Jackson Harper  <jackson@ximian.com>
15478
15479         * TreeView.cs: We can't just assume the node has a font. Use the
15480         treeviews font if no node font is available.
15481
15482 2005-09-25  Jackson Harper  <jackson@ximian.com>
15483
15484         * TreeView.cs: Allow the scrollbars to be reset with negative
15485         values.
15486         - Don't add scrollbars to negative sized windows.
15487
15488 2005-09-23  Jackson Harper  <jackson@ximian.com>
15489
15490         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15491         old Mono.Posix. Also remove some stray code that shouldn't have
15492         been committed.
15493
15494 2005-09-23  Jackson Harper  <jackson@ximian.com>
15495
15496         * TreeView.cs: Attempt at proper sizing of the horizontal
15497         scrollbar. Also don't resize the scrollbars unless they are
15498         visible.
15499
15500 2005-09-23  Jackson Harper  <jackson@ximian.com>
15501
15502         * TreeView.cs: We don't need to expand the invalid area when the
15503         selection changes, as this is all drawn in the node's bounding
15504         box. The area needs to be expanded (previous typo was contracting
15505         it) when the focus rect moves.
15506
15507 2005-09-23  Jackson Harper  <jackson@ximian.com>
15508
15509         * TreeView.cs: Display the selection box under the correct
15510         circumstances. We were rendering white text with no selection box
15511         before.
15512
15513 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15514
15515         * TextControl.cs(Split): Now updates selection start/end if it points 
15516           into a line that's being split. Fixes a FIXME and bug #75258
15517
15518 2005-09-23  Jackson Harper  <jackson@ximian.com>
15519
15520         * Binding.cs:
15521         * ListControl.cs: Don't use the path when retrieving binding
15522         managers from the binding context. My bat sense tells me that the
15523         path is only used on insertion.
15524
15525 2005-09-22  Jackson Harper  <jackson@ximian.com>
15526
15527         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15528
15529 2005-09-22  Jackson Harper  <jackson@ximian.com>
15530
15531         * Splitter.cs: There are special cursors used for splitting.
15532         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15533
15534 2005-09-22  Jackson Harper  <jackson@ximian.com>
15535
15536         * Splitter.cs: Change the cursor appropriately when the splitter
15537         is moused over, so the user actually knows there is a splitter
15538         there.
15539
15540 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15541
15542        * Label.cs : Fix ToString method to give same output as MS.NET
15543
15544 2005-09-22  Jackson Harper  <jackson@ximian.com>
15545
15546         * TreeView.cs: Create the scrollbars when the handle is created
15547         and add them right away, just make them invisble. Also account for
15548         the window being shrunk vertically to the point that the vert
15549         scrollbar needs to be added.
15550         - Remove some 0.5 adjustments to get around anti aliasing issues.
15551         
15552 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15553          
15554         * MainMenu.cs: Fixes default value
15555         * MenuItem.cs: Fixes default value
15556
15557 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15558
15559         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15560
15561 2005-09-21  Jackson Harper  <jackson@ximian.com>
15562
15563         * Control.cs: Don't try to set the border style on the window if
15564         it hasn't been created. When the window is created the border
15565         style will be used.
15566
15567 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15568
15569         * Control.cs (Update): Don't call XplatUI if we don't have a
15570           window handle yet
15571
15572 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15573
15574         * ContainerControl.cs: Instead of throwing an exception, print
15575           a one-time warning about Validate not being implemented
15576         * XplatUIWin32.cs: Removed debug output
15577
15578 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15579
15580         * Control.cs: Only set XplatUI background if we expect the windowing
15581           system to handle the background. This stops controls that draw their
15582           own background from flickering
15583
15584         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15585           creation. This allows, amongst other things, using MWF X11 windows 
15586           with OpenGL.
15587
15588 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15589
15590         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15591           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15592           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15593           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15594           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15595           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15596           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15597           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15598           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15599           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15600           GridColumnStylesCollection.cs, 
15601           IDataGridColumnStyleEditingNotificationService.cs,
15602           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15603           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15604           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15605           TreeNodeCollection.cs, AmbientProperties.cs, 
15606           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15607           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15608           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15609           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15610           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15611           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15612           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15613           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15614           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15615           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15616           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15617           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15618           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15619           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15620           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15621           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15622           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15623           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15624           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15625           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15626           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15627           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15628           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15629           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15630           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15631           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15632           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15633           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15634           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15635           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15636           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15637           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15638           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15639           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15640           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15641           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15642           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15643
15644 2005-09-21  Jackson Harper  <jackson@ximian.com>
15645
15646         * TreeNode.cs: Call Before/After Expand not Collapse when
15647         expanding.
15648
15649 2005-09-20  Jackson Harper  <jackson@ximian.com>
15650         
15651         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15652
15653 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15654          
15655         * ListViewItem.cs:
15656                 - Fixes bug 76120
15657                 - Fixes proper storing of subitems
15658                 - Fixes not updated items
15659
15660 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15661
15662         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15663           things if our window handle isn't created yet. Also disabled 
15664           debug for TextBoxBase
15665
15666 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15667
15668         * MenuAPI.cs: Remove filtering of events to allow menu usage
15669
15670 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15671
15672         * Cursor.cs: Allow null to be passed to Cursor.Current.
15673
15674 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15675
15676         * ThemeWin32Classic.cs:
15677           - Change some private methods/fields to protected virtual so that 
15678             they can be accessed and overriden in derived classes
15679           - First refactoring of some methods. Derived themes now don't 
15680             need to duplicate the complete code from ThemeWin32Classic
15681         * ThemeNice.cs:
15682           - Added nice StatusBar
15683           - Derive from ThemeWin32Classic and not Theme
15684           - Removed duplicate ThemeWin32Classic code
15685
15686 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15687
15688         * Control.cs (ControlCollection.Add): If the value null is passed
15689         the control is ignored. 
15690
15691         Optimize this loop.
15692
15693 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15694
15695         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15696           PostQuitMessage state.
15697         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15698
15699 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15700
15701         * Application.cs: Our constructor will never get called, move 
15702           initialization to fields; fixes bug #75933
15703
15704 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15705
15706         * FileDialog.cs :
15707                 - Allow files to be selected properly using file name
15708                 combo box.
15709                 - Add ability to change diretory (absolute / relative)
15710                 using file name combo box.
15711
15712 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15713          
15714         * ListBox.cs: 
15715                 - Fixes Multicolumn listboxes item wrong calculations
15716                 - Allows to click when only one item is in the listbox
15717                 - Fixes crash when no items using keyboard navigation
15718
15719 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15720
15721         * ComboBox.cs: Reverted almost everything from the latest patch which
15722           broke ComboBox
15723
15724 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15725         
15726         * ToolTip.cs:
15727                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15728         * ComboBox.cs:
15729                 - When DropDownStyle is Simple, it does not show scrollbar 
15730                 to the last item of the list.
15731                 - When DropDownStyle is Simple, it crashed when the list was 
15732                 scrolled down with the down cursor key.
15733                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15734                 selected item was not shown.
15735                 - The position of the selected item was not preserved when 
15736                 the next dropdown happened.
15737         * ThemeWin32Classic.cs:
15738                 - Items were wrapped at the right end.
15739         * CheckedListBox.cs:
15740                 - Fixed Add method
15741         * ListBox.cs:
15742                 - Items should be fully shown.
15743                 - When resizing and vertical scrollbar disappeared, the item 
15744                 of index 0 should be on the top of the list.
15745                 - GetItemRectangle should consider the size of ver. scrollbar
15746         * StatusBar.cs:
15747                 - SizingGrip area should not be allocated when it is not 
15748                 displayed.
15749                 - Now it reflects MinWidth of the containing panel and 
15750                 fixed a crash that happens when its width becomes so small.
15751
15752 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15753
15754         * CheckedListBox.cs: Fixes bug 76028
15755         * ListBox.cs: Fixes bug 76028
15756
15757 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15758
15759         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15760         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15761
15762 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15763
15764         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15765
15766 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15767
15768         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15769
15770 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15771
15772         * IRootGridEntry.cs: Added
15773         * PropertyGridCommands.cs: Added
15774         * PropertiesTab.cs: Added missing methods and property
15775         * PropertyGridView.cs: Made class internal
15776         * PropertyGridTextBox.cs: Made class internal
15777
15778 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15779
15780         * MimeIcon.cs: Try to check some other environment variables
15781           if "DESKTOP_SESSION" returns "default"
15782
15783 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15784
15785         * ThemeNice.cs: Corrected background colors (e.g. menus)
15786         * ColorDialog.cs: Use correct background colors for controls
15787
15788 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15789
15790         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15791
15792 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15793
15794         * RichTextBox.cs: Added initial implementation
15795         * lang.cs: Removed. Was accidentally checked in long time ago
15796         * TODO: Removed. Contents were obsolete
15797
15798 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15799                                                                                 
15800         * PropertiesTab.cs : Added
15801
15802 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15803                                                                                 
15804         * PropertyGrid.cs : Update
15805         * PropertyGridView.cs : Update
15806         * System.Windows.Forms.resx : Added images and strings
15807
15808 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15809
15810         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15811  
15812 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15813
15814         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15815           a busy loop right after the Ungrab the X11 display is otherwise 
15816           blocked
15817
15818 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15819
15820         * ThemeWin32Classic.cs: Optimise the use of clipping
15821
15822 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15823
15824         * DataGrid.cs: fixes recursion bug
15825
15826 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15827
15828         * ThemeNice.cs: 
15829           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15830           - Cleanup
15831
15832 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15833
15834         * ThemeNice.cs: Draw nice ProgressBars
15835
15836 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15837
15838         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15839
15840         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15841         bug finder.
15842
15843 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15844
15845         * ThemeNice.cs:
15846           - Added nicer menu drawing
15847           - Updated DrawTab
15848           - some refactoring
15849
15850 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15851
15852         * CreateParams.cs (ToString): Made output match MS
15853         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15854             handle is already created (to avoid forcing window creation)
15855         * XplatUIX11.cs: Set window text to caption after creating window,
15856           in case Text was set before window was created
15857         * Form.cs: Use this.Text instead of a static string as caption
15858
15859 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15860
15861         * NotifyIcon.cs: Don't set the window to visible; this screws
15862           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15863           OnPaint without a bitmap)
15864         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15865           happen very often anyway; we could add the check to the WM_PAINT 
15866           event generation code
15867
15868 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15869
15870         * NotifyIcon.cs: Fill the icon area with a background color, to 
15871           avoid 'residue' when transparent icons are drawn
15872         * XplatUIX11.cs:
15873           - Handle whole_window == client_window when destroying windows
15874           - SystrayAdd(): Set client_window to whole_window value to
15875             get mouse and other events passed to NotifyIcon
15876
15877 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15878
15879         * Form.cs: Set proper default for Opacity property
15880         * NotifyIcon.cs:
15881           - ShowSystray(): Don't bother creating telling the OS
15882             about the systray item if no icon is provided
15883           - Now handles WM_NCPAINT message to deal with whole/client window
15884             split
15885           - Create window as visible to not get caught by Expose optimization
15886         * Hwnd.cs: Removed debug message
15887         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15888           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15889             PaintEventStart/End to use new client argument
15890         * TextBoxBase.cs:
15891           - Commented out debug messages
15892           - Switched PaintEventStart/End to use new client argument
15893         * XplatUI.cs: Added client window bool to PaintEventStart()/
15894           PaintEventEnd() calls, to support drawing in non-client areas
15895         * XplatUIDriver.cs: 
15896           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15897             calls, to support drawing in non-client areas
15898           - Added conditional compile to allow using MWF BeginInvoke 
15899             on MS runtime
15900         * XplatUIX11.cs:
15901           - Added some conditional debug output
15902           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15903             whole/client window split
15904           - Implemented handling of client argument to PaintEventStart()/End()
15905         * Control.cs:
15906           - Throw exception if BeginInvoke() is called and the window handle
15907             or one of the window's parent handles is not created
15908           - Added conditional compile to allow using MWF BeginInvoke on
15909             MS runtime
15910           - get_Parent(): Only sets parent if handle is created. This avoids
15911             forcing window handle creation when parent is set.
15912           - Now fires Layout and Parent changed events in proper order
15913           - Switched to use Handle instead of window.Handle for Z-Order setting,
15914             the get_Parent() patch above causes us to possibly get null for 'window'
15915           - Implemented handling of client argument to PaintEventStart()/End()
15916           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15917             default handling)
15918           - Now sends a Refresh() to all child windows when Refresh() is called
15919
15920 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15921
15922         * Form.cs: Added (non-functional) Opacity property
15923         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15924
15925 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15926         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15927           use export MONO_THEME=nice to activate it.
15928           Currently supported controls:
15929           - Button
15930           - ComboBox
15931           - ScrollBar
15932           - TabControl (TabAlignment.Top only, other will follow)
15933         * ThemeEngine.cs: Add theme nice
15934         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15935           if enabled
15936
15937 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15938
15939         * Splitter.cs: Resize docked control and its neighbor.
15940
15941 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15942         -- Making Windows with Menus layout correctly --
15943         * Form.cs : The first leg of the fix
15944                 Menu setter - adjust Client Size as needed to make space for the menu
15945                 SetClientSizeCore - doesn't call base version to be able to pass the 
15946                         menu handle to XplatUI.CalculateWindowRect
15947         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15948         * XplatUIX11.cs: The critical second leg of the fix
15949                 GetWindowPos needs to use a recalculated client_rect
15950                 so that resizing the window doesn't break layout of child controls. 
15951                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15952                 Lots of \t\n killed
15953
15954 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15955
15956         * Label.cs: Now properly recalculates width and height on Font and Text
15957           changes if AutoSize is set
15958
15959 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15960         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15961
15962 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15963
15964         * ImageList.cs: Makes ToString method compatible with MS
15965
15966 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
15967
15968         * MenuAPI.cs: fixes bug 75716
15969
15970 2005-08-11 Umadevi S <sumadevi@novell.com>
15971         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
15972
15973 2005-08-11 Umadevi S <sumadevi@novell.com>
15974         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
15975
15976 2005-08-10  Umadevi S <sumadevi@novell.com>
15977         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
15978
15979 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
15980
15981         * Menu.cs: fixes bug 75700
15982         * MenuAPI.cs: fixes navigation issues
15983
15984 2005-08-09  Umadevi S <sumadevi@novell.com>
15985         * CheckedListBox.cs - simple fix for GetItemChecked.
15986
15987 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
15988
15989         * ComboBox.cs: Serveral fixes
15990         * ListBox.cs: Serveral fixes
15991
15992 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15993
15994         * ComboBox.cs: Fixes FindString methods and GetItemHeight
15995         * ListBox.cs: Fixes FindString methods
15996
15997 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
15998
15999         * DataGrid.cs: fixes bugs exposed by new tests
16000
16001 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16002
16003         * Mime.cs: Compile Mono assembly references only if compiling
16004           with Mono (Allows to build with VS.Net again)
16005
16006 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16007
16008         * Control.cs (PaintControlBackground): Draw background image
16009         corrrectly.
16010         (CheckForIllegalCrossThreadCalls): Stubbed.
16011         
16012         * Form.cs (OnCreateControl): Center when should be centered.
16013         
16014         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16015
16016 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16017
16018         * Binding.cs: Binding to properties should be case unsensitive
16019
16020 2005-07-18 vlindos@nucleusys.com
16021
16022         * DataGrid.cs: fixes setmember order
16023
16024 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16025
16026         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16027         * FileDialog.cs: FileDialog is now resizable and uses the new
16028           MimeIconEngine
16029
16030 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16031
16032         * DataGridTextBoxColumn.cs: default value
16033         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16034         * GridTableStylesCollection.cs: fixes checking MappingName
16035         * DataGridDrawingLogic.cs: fixes drawing logic issues
16036         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16037         * DataGrid.cs: fixes    
16038
16039 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16040
16041         * MimeGenerated.cs: Use case sensitive comparer for
16042           NameValueCollections
16043
16044 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16045
16046         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16047         * ThemeWin32Classic.cs: bug fixes, code refactoring
16048         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16049         * DataGrid.cs: bug fixes, code refactoring
16050         * DataGridTextBox.cs: bug fixes, code refactoring
16051         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16052         * Theme.cs:  bug fixes, code refactoring
16053
16054 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16055
16056         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16057           and other text box usage
16058
16059 2005-07-01  Jackson Harper  <jackson@ximian.com>
16060
16061         * TabControl.cs: Make sure the bottom of the tab covers the pages
16062         border.
16063
16064 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16065
16066         * Form.cs (ShowDialog): Assign owner of the dialog
16067         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16068           might have been moved to a tag with different height
16069
16070 2005-06-30  Jackson Harper  <jackson@ximian.com>
16071
16072         * Form.cs: Don't create an infinite loop when setting focus
16073         * MenuItem.cs: Don't dirty the parents if we don't have any
16074
16075 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16076
16077         * LibSupport.cs: Rename
16078
16079 2005-06-29  Peter Bartok  <pbartok@novell.com>
16080
16081         * TextBoxBase.cs: Re-align caret after deleting a character
16082         * TextControl.cs:
16083           - DeleteChars(): Ensure that tag covers the provided position
16084           - StreamLine(): Drop reference for dropped tag
16085
16086 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16087
16088         * TextControl.cs: 
16089           - Selections now work properly, anchoring at the initial location
16090             and properly extending in either direction (SetSelectionToCaret(),
16091             SetSelectionStart() and SetSelectionEnd())
16092           - No longer redraws the whole control on selection change, now
16093             calculates delta between previous and new selection and only
16094             invalidates/redraws that area
16095           - Fixed FindPos() math off-by-one errors
16096           - Changed DeleteChars() to verify the provided tag covers the
16097             provided position, selections may have a tag that doesn't cover
16098             the position if the selection is at a tag border
16099           - Fixed off-by-one errors in DeleteChars()
16100           - Added missing streamlining check in DeleteChars() to remove
16101             zero-length tags
16102           - Implemented Invalidate() method, now properly calculates exposures
16103             between two given lines/positions
16104           - Implemented SetSelection()
16105           - Obsoleted and removed FixupSelection()
16106           - Improved RecalculateDocument() logic, removing code duplication
16107
16108 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16109
16110         * LibSupport.cs: changes to match different input/output arguments.
16111
16112 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16113
16114         * LibSupport.cs: added libsupport.so init routine.
16115
16116 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16117         
16118         * ControlBindingsCollection.cs
16119                 - Throws an exception on null datasource when adding
16120                 - Checks for duplicated bindings when adding
16121
16122 2005-06-28  Jackson Harper  <jackson@ximian.com>
16123
16124         * TreeView.cs (OnKeyDown): Support left and right properly
16125         (navigates as well as expanding and collapsing.
16126         - Add support for Multiply, this expands all the selected nodes
16127         children.
16128         - Fix some tabbing.
16129
16130 2005-06-28  Jackson Harper  <jackson@ximian.com>
16131
16132         * TreeView.cs: Implement keyboard navigation, currently supports,
16133         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16134         support for toggling checkboxes with the space bar.
16135
16136 2005-06-28  Jackson Harper  <jackson@ximian.com>
16137
16138         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16139         tree.
16140
16141 2005-06-28  Jackson Harper  <jackson@ximian.com>
16142
16143         * TreeView.cs: Add missing event.
16144
16145 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16146
16147         * TextControl.cs:
16148           - Made line ending size configurable (now allows for counting 
16149             lineendings as \n or \r\n)
16150           - Added margin to viewport to keep caret visible on right side
16151           - Fixed translation routines for line/pos to documentpos to consider
16152             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16153           - Fixed some line-endings to be unix style
16154           - Fixed Document.FormatText to perform it's calculations 1-based
16155           - Added descriptions for a few methods that might otherwise get 
16156             used wrong
16157           - Added NOTE section with some basic conventions to remember at 
16158             the top of the file
16159           - Major fixup for RichTextBox selection drawing:
16160             * Fixed crashes when multiple tags on a single line were selected
16161             * fixed selection box drawing not overlaying text
16162             * fixed bogus offset calculation for tags not starting at index 1
16163             * Switched behaviour from using multiple Substrings of a 
16164               StringBuilder.ToString() to using multiple 
16165               StringBuilder.ToString(start, length) statements, hoping this is
16166               faster (kept original version commented out in the code, in case
16167               original version was faster)
16168         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16169           alignment != Left
16170         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16171           call it as well
16172
16173 2005-06-27  Jackson Harper  <jackson@ximian.com>
16174
16175         * TabControl.cs: Move to the left and right with the arrow
16176         keys. These keys don't cycle beyond first and last like
16177         tab. Refresh all the tabs when scrolling them to the left or
16178         right.
16179
16180 2005-06-27  Jackson Harper  <jackson@ximian.com>
16181
16182         * TabControl.cs:
16183           - ToString: Added method
16184           - CreateParams: Remove TODO and comment
16185           - OnKeyDown: Cycle through bounds properly.
16186           - SelectedIndex: Scroll to the right or left if we need to
16187           display the newly selected tab.
16188
16189 2005-06-23  Jackson Harper  <jackson@ximian.com>
16190
16191         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16192         set.
16193
16194 2005-06-23  Jackson Harper  <jackson@ximian.com>
16195
16196         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16197         CTRL-SHIFT-TAB, and HOME, END are there any others?
16198
16199 2005-06-23  Jackson Harper  <jackson@ximian.com>
16200
16201         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16202
16203 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16204         
16205         * DataGridTextBoxColumn.cs: fixes and enhancements
16206         * ThemeWin32Classic.cs: fixes and enhancements
16207         * DataGridBoolColumn.cs:  fixes and enhancements
16208         * DataGridDrawingLogic.cs:  fixes and enhancements
16209         * CurrencyManager.cs: fixes and enhancements
16210         * DataGrid.cs: fixes and enhancements
16211         * DataGridColumnStyle.cs:  fixes and enhancements
16212
16213 2005-06-22  Jackson Harper  <jackson@ximian.com>
16214
16215         * TabControl.cs: Add some missing methods that just call into the
16216         base. Make the TabPageCollection's IList interface behave in the
16217         same manner as the MS implementation.
16218
16219 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16220
16221         * TextControl.cs: Added sanity check
16222         * TextBoxBase.cs: 
16223           - Fixed wrapping behaviour, don't set wrap on single line controls
16224             (this fixes the breakage of colordialog introduced in an earlier
16225              checkin)
16226           - Added rudimentary support for autoscrolling right-aligned controls
16227             (still needs fixing, also, center alignment scroll is missing)
16228
16229 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16230         
16231         * ScrollBar.cs: Fixes thumbpos on Maximum values
16232
16233 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16234         
16235         * PropertyGridView.cs: Pass context information to UITypeEditors 
16236
16237 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16238
16239         * TextBoxBase.cs:
16240           - Now calling PositionCaret with absolute space coordinates
16241           - Enabled vertical scrolling
16242           - Better tracking of scrollbar changes, tied into WidthChange
16243             event
16244           - Improved cursor tracking
16245           - Removed debug output
16246         * TextControl.cs:
16247           - PositionCaret coordinates are now works in absolute space, not 
16248             the canvas
16249           - Improved tracking of document size
16250           - Added events for width and height changes
16251
16252 2005-06-21  Peter Bartok  <pbartok@novell.com>
16253
16254         * Form.cs: Set focus to active control when form is activated
16255         * TextControl.cs: 
16256           - Added word-wrap functionality to RecalculateLine() 
16257           - Added some short function descriptions for VS.Net to aid in
16258             writing dependent controls
16259           - Added Caret property, returning the current coords of the caret
16260           - Added ViewPortWidth and ViewPortHeight properties
16261           - Added Wrap property
16262           - Added CaretMoved event
16263           - Removed some old debug code
16264           - Split() can now create soft splits
16265           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16266           - Added method to format existing text
16267           - Fixed size/alignment calculations to use viewport
16268           - RecalculateDocument now can handle changing line-numbers while
16269             calculating lines
16270
16271         * TextBox.cs:
16272           - Added some wrap logic, we don't wrap if alignment is not left
16273           - Added casts for scrollbar var, base class switched types to
16274             also support RichTextBoxA
16275           - Implemented handling of scrollbar visibility flags
16276
16277         * TextBoxBase.cs:
16278           - Switched scrollbars type to RichTextBoxScrollBars to support
16279             RichTextBox
16280           - Added tracking of canvas width/height
16281           - Switched scrollbars to be not selectable (to keep focus on text)
16282           - Added central CalculateDocument() method to handle all redraw
16283             requirements
16284           - Added ReadOnly support
16285           - Added WordWrap support
16286           - Fixed handling of Enter key (we now treat it as a DialogKey)
16287           - Fixed caret positioning when h or v scroll is not zero
16288           - Fixed placing/generation of vertical scrollbar
16289           - Added CalculateScrollBars() method to allow updating scrollbar
16290             limits and visibility
16291           - Fixed handling of horizontal scroll
16292           - Added handling of vertical scroll
16293           - Implemented auto-'jump' when caret moves to close to a left or
16294             right border and there is text to be scrolled into view (currently
16295             there's the potential for a stack overflow, until a bug in
16296             scrollbar is fixed)
16297
16298 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16299         
16300         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16301
16302 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16303
16304         * Mime.cs:
16305         - added inodes.
16306         - return application/x-zerosize for files with size zero
16307           (if no extension pattern matches).
16308         - check matches collection for strings too.
16309         - return only the first mime type if the name value
16310           collection has more than one mime type.
16311
16312 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16313         
16314         * PropertyGrid.cs: Cleaned up some TODOs
16315         * PropertyGridView.cs: Added support for UITypeEditors
16316
16317 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16318         
16319         * DataGrid.cs: clears cached value
16320
16321 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16322
16323         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16324         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16325         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16326         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16327         
16328 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16329
16330         * ThemeWin32Classic.cs: fixes colour
16331
16332 2005-06-15  Peter Bartok  <pbartok@novell.com>
16333
16334         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16335         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16336         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16337         * Control.cs: Added some MWFCategory and MWFDescription attributes
16338         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16339
16340 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16341
16342         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16343         usage
16344
16345 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16346
16347         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16348         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16349         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16350         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16351         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16352         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16353
16354 2005-06-13  Jackson Harper  <jackson@ximian.com>
16355
16356         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16357         isn't printed when the user enables dropping. (X11 does accept
16358         drops).
16359         
16360 2005-06-13  Jackson Harper  <jackson@ximian.com>
16361
16362         * TreeView.cs: Remove some TODOS.
16363
16364 2005-06-13  Jackson Harper  <jackson@ximian.com>
16365
16366         * Form.cs: Hook into the mdi framework.
16367         * MdiClient.cs: Use the base control collections add method so
16368         parents get setup correctly. Set the default back colour and dock
16369         style.
16370         * MdiChildContext.cs: New class, this bad actor handles an
16371         instance of an MDI window. Right now there is only basic
16372         support. You can drag, close, and resize windows. Minimize and
16373         Maximize are partially implemented.
16374
16375 2005-06-13  Jackson Harper  <jackson@ximian.com>
16376
16377         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16378         freaky when both vals are negative. NOTE: There are probably other
16379         places in XplatUIX11 that this needs to be done.
16380
16381 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16382
16383         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16384         * DataGridColumnStyle.cs: fixes signature
16385
16386 2005-06-12  Jackson Harper  <jackson@ximian.com>
16387
16388         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16389         windows.
16390
16391 2005-06-11  Jackson Harper  <jackson@ximian.com>
16392
16393         * StatusBarPanel.cs: Signature cleanups. Implement
16394         BeginInit/EndInit.
16395
16396 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16397
16398         * DataGridTextBoxColumn.cs: Honors aligment
16399         * GridColumnStylesCollection.cs: Contains is case unsensitive
16400         * GridTableStylesCollection.cs: several fixes
16401         * DataGridTableStyle.cs: default column creation
16402         * DataGridDrawingLogic.cs: fixes
16403         * CurrencyManager.cs: ListName property
16404         * DataGrid.cs: multiple styles support
16405         * DataGridColumnStyle.cs: fixes
16406         
16407
16408 2005-06-10  Peter Bartok  <pbartok@novell.com>
16409
16410         * Control.cs(Select): Moved SetFocus call to avoid potential
16411           loops if controls change the active control when getting focus
16412         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16413           the up/down buttons
16414
16415 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16416
16417         * ImageListConverter.cs: Implemented
16418
16419 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16420
16421         * MonthCalendar.cs: Wired in NumericUpDown control for year
16422
16423 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16424
16425         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16426           DoubleClick events, since they are not meant to be fired.
16427
16428 2005-06-09  Peter Bartok  <pbartok@novell.com>
16429
16430         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16431           Jonathan's standalone controls into MWF, implemented missing
16432           events, attributes and methods; added xxxAccessible classes
16433         * AccessibleObject.cs: Made fields internal so other classes
16434           can change them if needed
16435
16436 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16437
16438         * UpDownBase.cs: Complete implementation
16439         * NumericUpDown.cs: Complete implementation
16440         * DomainUpDown.cs: Complete implementation
16441
16442 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16443
16444         * DataGridTextBoxColumn.cs: drawing fixes
16445         * DataGridCell.cs: fixes ToString method to match MSNet
16446         * DataGridTableStyle.cs: fixes
16447         * DataGridBoolColumn.cs: fixes, drawing
16448         * DataGridDrawingLogic.cs: fixes, new methods
16449         * DataGridTextBox.cs: Keyboard and fixes
16450         * DataGrid.cs:
16451                 - Keyboard navigation
16452                 - Scrolling fixes
16453                 - Row selection (single, multiple, deletion, etc)
16454                 - Lots of fixes
16455         
16456 2005-06-07  Jackson Harper  <jackson@ximian.com>
16457
16458         * ThemeWin32Classic.cs: Clear the background area when drawing
16459         buttons.
16460
16461 2005-06-06  Peter Bartok  <pbartok@novell.com>
16462
16463         * ImageListStreamer.cs: Fixed signature for GetData
16464         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16465         * ComboBox.cs:
16466           - Added missing ChildAccessibleObject class
16467           - Added missing OnXXXFocus overrides, switched to using those
16468             instead of the event handler
16469         * Control.cs:
16470           - Added Parent property for ControlAccessibleObject
16471           - Fixed signatures
16472           - Fixed attributes
16473           - Added ResetBindings()
16474         * ListBindingConverter.cs: Implemented some methods
16475         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16476         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16477         * ContainerControl.cs: Fixed signature, now subscribing to the
16478           ControlRemoved event instead of overriding the handler, LAMESPEC
16479         * CurrencyManager.cs: Added missing attribute
16480         * MonthCalendar.cs: Added missing properties
16481
16482 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16483
16484         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16485         
16486 2005-06-06  Gaurav Vaish and Ankit Jain
16487
16488         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16489         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16490         
16491 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16492
16493         * Control.cs: fixes CreateParams Width / Height.
16494
16495 2005-06-05  Peter Bartok  <pbartok@novell.com>
16496
16497         * Win32DnD.cs: Removed compilation warnings
16498
16499 2005-06-05  Peter Bartok  <pbartok@novell.com>
16500
16501         * Control.cs (CreateParams): Since we don't know if one of the
16502           properties we use is overridden, lets make sure if we fail accessing
16503           we continue with a backup plan
16504
16505 2005-06-05  Peter Bartok  <pbartok@novell.com>
16506
16507         * Win32DnD.cs:
16508           - Removed debug output
16509           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16510             struct
16511           - Plugged resource leak
16512         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16513           MS size
16514
16515 2005-06-05  Peter Bartok  <pbartok@novell.com>
16516
16517         * XplatUIWin32.cs: Removed DnD code
16518         * Win32DnD.cs: Implemented drop source and drop target functionality
16519
16520 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16521
16522         * UpDownBase.cs: remove duplicate addition of event, enable some code
16523         that was commented out.
16524         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16525         Validate input when a key is pressed. It works fine now for every
16526         combination of Hexadecimal. Only missing some drawing love when sharing
16527         space with other controls.
16528
16529 2005-06-04  Peter Bartok  <pbartok@novell.com>
16530
16531         * Control.cs:
16532           - We need to pass a window for DragDrop, so enable callback events
16533           - Added DnD callback events when being a DragSource
16534         * XplatUI.cs (StartDrag): Added window handle argument
16535         * XplatUIDriver.cs (StartDrag): Added window handle argument
16536         * QueryContinueDragEventArgs: Made fields internally accessible so
16537           drivers can set them
16538         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16539           can set them
16540
16541 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16542
16543         * DataGridTextBoxColumn.cs: column text editing
16544         * DataGridTableStyle.cs: Respect columns styles created by the user
16545         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16546         * DataGridBoolColumn.cs: bool column editing
16547         * DataGrid.cs: fixes to scrolling, properties, etc
16548         * DataGridTextBox.cs: handle keyboard
16549         * DataGridColumnStyle.cs: fixes
16550
16551 2005-06-02  Jackson Harper  <jackson@ximian.com>
16552
16553         * ImageListStreamer.cs: Somewhat broken implementation of
16554         GetObjectData. The RLE needs some work to match MS properly.
16555
16556 2005-06-02  Jackson Harper  <jackson@ximian.com>
16557
16558         * X11Dnd.cs: Attempting to keep at least one file in MWF
16559         monostyled.
16560
16561 2005-06-02  Peter Bartok  <pbartok@novell.com>
16562
16563         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16564           that way
16565
16566 2005-06-02  Peter Bartok  <pbartok@novell.com>
16567
16568         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16569         * XplatUI.cs: Added DoDragDrop() method
16570         * XplatUIDriver.cs: Added DoDragDrop() method
16571
16572 2005-06-02  Jackson Harper  <jackson@ximian.com>
16573
16574         * Splitter.cs: Implement BorderStyle.
16575
16576 2005-06-02  Jackson Harper  <jackson@ximian.com>
16577
16578         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16579         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16580         X11 using XDND.
16581
16582 2005-06-02  Peter Bartok  <pbartok@novell.com>
16583
16584         * DataObject.cs:
16585           - Added Data setter
16586           - Fixed broken insertion code for SetData, now also
16587             overwrites any existing entry of the same format name
16588         * Hwnd.cs: Added list of pointers that automatically gets
16589           freed when the window is disposed
16590         * XplatUI.cs: Call driver initialization method when loading
16591           a driver
16592         * Control.cs:
16593           - OnDragLeave takes EventArgs, not DragEventArgs
16594           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16595             supported
16596           - Forces style update when drop state changes
16597         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16598           not perfect since we cannot (yet) call the IDataObject.GetData()
16599           method, we keep getting 0x80004005 error, dunno why)
16600
16601 2005-06-02  Peter Bartok  <pbartok@novell.com>
16602
16603         * DragEventArgs.cs: Make fields internal so we can cache the
16604           object and re-set the fields from XplatUI
16605
16606 2005-06-02  Jackson Harper  <jackson@ximian.com>
16607
16608         * Control.cs: Add some internal methods so the DnD subsystem can
16609         raise DnD events. Also call into the driver when AllowDrop is set.
16610         * XplatUI.cs:
16611         * XplatUIDriver.cs: New method for setting whether or not a window
16612         is allowed to accept drag and drop messages.
16613                 
16614 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16615         
16616         * ScrollBar.cs: Make sure that values sent in Scroll events
16617         are always between Maximum and Minimum.
16618
16619 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16620
16621         * Menu.cs: Call MenuChanged when menuitem visibility has been
16622         changed.
16623         * MenuItem.cs: Rebuild menu when item is (not) visible.
16624         * MainMenu.cs: MainMenu has special MenuChanged.
16625         * Theme.cs: Caption and FrameBorderSize are not fixed.
16626         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16627         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16628         * XplatUIX11.cs,
16629         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16630         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16631
16632 2005-05-30  Jackson Harper  <jackson@ximian.com>
16633
16634         * DataFormat.cs: We can't statically initialize this stuff because
16635         it calls into the xplatui and could create a loop. So we lazy init
16636         it.
16637
16638 2005-05-28  Jackson Harper  <jackson@ximian.com>
16639
16640         * Control.cs: Proper implementation of Product(Name/Version).
16641
16642 2005-05-27  Jackson Harper  <jackson@ximian.com>
16643
16644         * DataObject.cs: Dont crash if no data is found.
16645
16646 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16647         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16648                 as per status page, guessing it should be set to true
16649
16650 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16651
16652         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16653         * DataGridTableStyle.cs: set proper formatting text, def header text
16654         * ThemeWin32Classic.cs: new themable paramaters
16655         * DataGridBoolColumn.cs: paint check box, get data, fixes
16656         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16657         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16658         * DataGridColumnStyle.cs: fixes
16659         * Theme.cs: new themable paramaters
16660                 
16661 2005-05-26  Peter Bartok  <pbartok@novell.com>
16662
16663         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16664
16665 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16666         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16667
16668 2005-05-24  Peter Bartok  <pbartok@novell.com>
16669
16670         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16671           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16672           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16673           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16674           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16675           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16676           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16677           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16678           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16679           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16680           missing attributes, etc
16681         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16682
16683 2005-05-24  Peter Bartok  <pbartok@novell.com>
16684
16685         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16686           when user tries to get help
16687         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16688           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16689           to suppress warnings
16690         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16691           avoid unreachable code warning
16692
16693 2005-05-20  Peter Bartok  <pbartok@novell.com>
16694
16695         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16696
16697 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16698
16699         * DataGridTextBoxColumn.cs: Basic painting methods
16700         * DataGridTableStyle.cs: Set table style in the column
16701         * ThemeWin32Classic.cs: Use Theme for colors
16702         * DataGridDrawingLogic.cs: Implement more drawing
16703         * DataGrid.cs: drawing, theming, enhacements, fixes
16704         * DataGridColumnStyle.cs: fixes, drawing
16705         * Theme.cs: theming for Datagrid
16706
16707 2005-05-20  Peter Bartok  <pbartok@novell.com>
16708
16709         * Cursor.cs: Implemented GetObjectData() method
16710
16711 2005-05-20  Peter Bartok  <pbartok@novell.com>
16712
16713         * Cursors.cs: Added setting of cursor name
16714         * Cursor.cs:
16715           - Implemented constructors
16716           - Implemented Draw and DrawStretched
16717           - Implemented Current property
16718           - Implemented == and != operators
16719           - Implemented Dispose()
16720           - Implemented ToString
16721           - Added missing attributes
16722         * XplatUIX11.cs:
16723           - Added missing reset for OverrideCursor when DoEvents is called
16724           - Fixed creation of cursor, logic was wrong
16725         * XplatUIWin32.cs:
16726           - Added missing reset for OverrideCursor when DoEvents is called
16727           - Fixed creation of cursor, bit arrays were swapped
16728         * Clipboard.cs: Removed obsolete MonoTODO attribute
16729
16730 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16731
16732         * ComboBox.cs: fixes OnSelectedItemChanged
16733         * ControlBindingsCollection.cs: fixes item range check
16734
16735 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16736
16737         * UpDownBase.cs:
16738                 - Calc preferred height properly
16739                 - Implement missing properties
16740                 
16741         * NumericUpDown.cs: Implement missing events
16742
16743 2005-05-19  Jackson Harper  <jackson@ximian.com>
16744
16745         * TabControl.cs: New method that resizes the tab pages before
16746         redrawing them. This as needed as the control is double buffered
16747         and sizing will not be recalculated unless ResizeTabPages is
16748         called.
16749         * TabPage.cs: Set base.Text instead of Text in the constructor so
16750         that UpdateOwner does not get called. Use the new Redraw method of
16751         TabControl instead of Refresh so the sizing is recalculated.
16752         * ThemeWin32Classic.cs: Draw the text for button tabs.
16753
16754 2005-05-19  Jackson Harper  <jackson@ximian.com>
16755
16756         * Control.cs: Paint control background images. Fix typo where
16757         PaintControlBackground was not getting called correctly.
16758
16759 2005-05-19  Peter Bartok  <pbartok@novell.com>
16760
16761         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16762           I can investigate, apparently I broke FileDialog
16763
16764 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16765
16766         * AxHost.cs: Some simple properties.
16767         * Control.cs: window must be accessible after ctor.
16768         * Form.cs: Added TransparencyKey property.
16769         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16770         * XplatUIWin32.cs: SetBorderStyle implemented.
16771
16772 2005-05-18  Peter Bartok  <pbartok@novell.com>
16773
16774         * DataObject.cs: Entries are not global but particular to the
16775           DataObject, now it behaves that way
16776         * XplatUIWin32.cs: Implemented Clipboard methods
16777         * Clipboard.cs: Implemented
16778         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16779         * XplatUIOSX.cs: Updated to final clipboard prototypes
16780         * XplatUIX11.cs: Implemented Clipboard methods
16781         * XplatUIDriver.cs: Updated to final clipboard prototypes
16782         * XplatUIStructs.cs:
16783           - Added BITMAPINFOHEADER struct
16784           - Added ClipboardFormats enum
16785         * X11Structs.cs:
16786           - Added ClipboardStruct
16787           - Added Atom enum items for clipboard types
16788           - Fixed atom types for Selection event structures
16789         * DataFormats.cs:
16790           - Added internal properties and methods for drivers to enumerate
16791             all known formats
16792           - Switched initialization method to allow drivers to assign their
16793             own IDs even for the MS predefined clipboard IDs
16794         * XplatUI.cs: Updated to final clipboard interface
16795
16796 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16797         * PropertyGridView.cs: Fixed compiler warnings.
16798
16799 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16800         * PropertyGrid.cs: Added some event calls
16801         * PropertyGridView.cs: Change drawing code to use double buffering
16802         * PropertyGridTextBox.cs: Changed Text property name
16803         * GridItem.cs: Added Bounds property.
16804         * GridEntry.cs: Added Bounds property.
16805
16806 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16807
16808         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16809         since GetType() may not return the correct type if the object is
16810         a remoting proxy.
16811
16812 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16813
16814         * TreeNodeCollection.cs: fixes get/set item ranges
16815         
16816 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16817
16818         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16819                 
16820 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16821
16822         * ComboBox.cs: Fix item range comparation
16823         * ListView.cs: Fix item range comparation
16824
16825 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16826
16827         * FontDialog.cs:
16828           - Clear example panel when OnPaint is called
16829           - Better solution for displaying the example panel text
16830           - Select default indexes in the ListBoxes
16831
16832 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16833
16834         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16835
16836 2005-05-11  Peter Bartok  <pbartok@novell.com>
16837
16838         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16839         * SelectionRangeConverter.cs: Implemented
16840         * PropertyGrid.cs: Fixed attribute value
16841         * Control.cs:
16842           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16843           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16844         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16845           that's common to all drivers. First methods to go there are
16846           Sebastien Pouliot's CAS Stack Propagation helper methods
16847         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16848           Sebastien Pouliot for CAS Stack Propagation
16849
16850 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16851
16852         * OSXStructs.cs:
16853           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16854
16855 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16856
16857         * DataGridTextBoxColumn.cs: fixed some members
16858         * GridColumnStylesCollection.cs: indexed column is case insensitive
16859         * DataGridTableStyle.cs: fixes
16860         * ThemeWin32Classic.cs: add new theme parameter
16861         * Theme.cs: add new theme parameter
16862         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16863         * DataGrid.cs: fixes, new internal properties, etc.
16864         * DataGridColumnStyle.cs: allows to set grid value
16865         *
16866
16867 2005-05-10  Peter Bartok  <pbartok@novell.com>
16868
16869         * AccessibleObject.cs:
16870           - Removed MonoTODO attribute on help, method is correct
16871           - Fixed Bounds property
16872         * AxHost.cs: Moved MonoTODO
16873         * ButtonBase.cs: Now setting AccessibleObject properties
16874         * RadioButton.cs: Setting proper AccessibleObject role
16875         * CheckBox.cs: Setting proper AccessibleObject role
16876         * ControlBindingsCollection.cs: Added properties, methods and attributes
16877         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16878           userdefined DataFormats.Format items as well
16879         * ListControl.cs: Removed data_member from the public eye
16880         * OpenFileDialog.cs:
16881           - Made class sealed
16882           - Added missing attributes
16883         * SaveFileDialog.cs: Added missing attributes
16884         * ImageListStreamer.cs: Fixed code that caused warnings
16885         * LinkLabel.cs: Removed unreachable code
16886         * TreeView.cs: Fixed code that caused warnings
16887         * PropertyGridView.cs: Fixed code that caused warnings
16888         * GridColumnStylesCollection.cs: Added missing attributes
16889         * GridTableStylesCollection: Added missing attribute
16890         * PropertyManager: Added .ctor
16891         * SecurityIDType: Added
16892         * DataObject.cs: Implemented class
16893         * LinkArea.cs: Added missing attribute
16894
16895 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16896
16897         * RadioButton.cs: call base method to allow to fire OnClick event
16898         * UpDownBase.cs: OnMouseUp call base method
16899         * CheckedListBox.cs: call base method before returning
16900         * TrackBar.cs: call base method before returning
16901         
16902
16903 2005-05-10  Peter Bartok  <pbartok@novell.com>
16904
16905         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16906           for messages
16907
16908 2005-05-10  Peter Bartok  <pbartok@novell.com>
16909
16910         * DataFormats.cs: Implemented
16911         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16912           XplatUIX11.cs: Added Clipboard APIs
16913         * XplatUIWin32.cs: Implemented Clipboard APIs
16914         * FolderBrowserDialog.cs: Added missing event, attributes
16915
16916 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16917
16918         * CheckBox.cs: call base method to allow to fire OnClick event
16919
16920 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16921
16922         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16923
16924 2005-05-06  Peter Bartok  <pbartok@novell.com>
16925
16926         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16927         * Screen.cs: Implemented
16928         * HelpNavigator.cs: Added
16929         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16930           property
16931         * HelpProvider.cs: Implemented all we can do until we have a CHM
16932           help library (which means that "What's This" does work now)
16933
16934 2005-05-06  Jackson Harper  <jackson@ximian.com>
16935
16936         * XplatUIX11.cs: Fix waking up the main loop.
16937                 
16938 2005-05-05  Peter Bartok  <pbartok@novell.com>
16939
16940         * XplatUI.cs: Updated revision
16941         * Form.cs: Removed enless loop
16942         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16943         * Label.cs (OnPaint): Added call to base.OnPaint()
16944         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16945         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16946         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16947         * AxHost.cs: Added
16948         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16949         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16950           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16951           reuse of ToolTipWindow by other controls
16952         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16953         * XplatUIX11.cs: Now clipping drawing area (experimental)
16954         * PictureBox.cs: Moved base.OnPaint() call to end of method
16955         * Theme.cs: Fixed ToolTip abstracts to match new format
16956         * ErrorProvider.cs: Implemented
16957
16958 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16959
16960         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16961         * LinkLabel.cs:
16962                 - Adds cursors
16963                 - Handles focus
16964                 - Implements LinkBehavior
16965                 - Fixes many issues
16966
16967 2005-05-03  Jackson Harper  <jackson@ximian.com>
16968
16969         * ListView.cs: Calculate the scrollbar positioning on resize and
16970         paint, so they get put in the correct place.
16971
16972 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16973
16974         * ColorDialogs.cs: The small color panels are now handled by
16975           SmallColorControl. This fixes drawing of the focus rectangle
16976           and adds a 3D border.
16977
16978 2005-05-03  Peter Bartok  <pbartok@novell.com>
16979
16980         * Control.cs: Modified version of Jonathan Chamber's fix for
16981           double-buffering
16982
16983 2005-05-03  Jackson Harper  <jackson@ximian.com>
16984
16985         * ListView.cs: Remove redraw variable. Control now handles whether
16986         or not a redraw needs to be done, and will only raise the paint
16987         event if redrawing is needed.
16988
16989 2005-05-03  Jackson Harper  <jackson@ximian.com>
16990
16991         * Splitter.cs: No decorations for the splitter form. Cache the
16992         hatch brush.
16993
16994 2005-05-03  Jackson Harper  <jackson@ximian.com>
16995
16996         * TreeView.cs: Use dashed lines to connect nodes. Use the
16997         ControlPaint method for drawing the focus rect instead of doing
16998         that in treeview.
16999
17000 2005-05-02  Peter Bartok  <pbartok@novell.com>
17001
17002         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17003
17004 2005-04-29  Jackson Harper  <jackson@ximian.com>
17005
17006         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17007         entire image buffer. Just clear the clipping rectangle.
17008
17009 2005-04-29  Jackson Harper  <jackson@ximian.com>
17010
17011         * ThemeWin32Classic.cs: Don't draw list view items that are
17012         outside the clipping rectangle.
17013
17014 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17015
17016         * ListBox.cs: added horizontal item scroll
17017
17018 2005-04-29  Jackson Harper  <jackson@ximian.com>
17019
17020         * ThemeWin32Classic.cs: Remove some old debug code that was
17021         causing flicker with the new double buffering code.
17022
17023 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17024
17025         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17026         behave like combobox and comboboxlist (still not sure if this is
17027         correct though).
17028
17029 2005-04-28  Jackson Harper  <jackson@ximian.com>
17030
17031         * ThemeWin32Classic.cs: Don't fill the middle of progress
17032         bars. This fills areas outside of the clip bounds that don't need
17033         to be filled.
17034
17035 2005-04-28  Jackson Harper  <jackson@ximian.com>
17036
17037         * Control.cs: Don't expose functionality to touch the image buffers.
17038         * ProgressBar.cs:
17039         * ListView.cs: We do not need to (and no longer can) manipulate
17040         the image buffers directly. All of this is handled by Control.
17041
17042 2005-04-28  Peter Bartok  <pbartok@novell.com>
17043
17044         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17045           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17046           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17047
17048 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17049
17050         * Combobox:
17051                 - Adjust control's height for non-simple comboboxes (bug fix)
17052                 - Remove dead code
17053         * MenuAPI.cs: remove unused var
17054         * ScrollBar.cs: remove unsed var
17055                  
17056         * ListBox.cs: unselect items when clearing
17057
17058 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17059
17060         * ListControl.cs: honors OnPositionChanged and default Selected Item
17061         * ListBox.cs: unselect items when clearing
17062
17063 2005-04-27  Jackson Harper  <jackson@ximian.com>
17064
17065         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17066         if a "correct" keyboard is not found. This will make us not crash,
17067         but might give some users bad keyboard layouts...seems to be the
17068         same thing rewind does.
17069
17070 2005-04-27  Jackson Harper  <jackson@ximian.com>
17071
17072         * BindingManagerBase.cs: Attach the current/position changed
17073         handlers to their respective events.
17074
17075 2005-04-27  Jackson Harper  <jackson@ximian.com>
17076
17077         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17078         not just a blit.
17079         * ThemeWin32Classic.cs: Don't fill the background for picture
17080         boxes. This could overright user drawing.
17081         * ComboBox.cs: Just fill the clipping rect not the entire client
17082         rect when drawing the background. This prevents pieces of the
17083         image buffer from getting overwritten and is theoretically faster.
17084
17085 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17086
17087         * ComboBox.cs: Databinding support fixes, fire missing events
17088         * ListControl.cs: implement missing methods and properties, fixes
17089         * ThemeWin32Classic.cs: Databiding support on Drawing
17090         * CheckedListBox.cs: Databinding support fixes, fire missing events
17091         * ListBox.cs: Databinding support fixes, fire missing events
17092         
17093 2005-04-25  Peter Bartok  <pbartok@novell.com>
17094
17095         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17096
17097 2005-04-25  Jackson Harper  <jackson@ximian.com>
17098
17099         * TreeView.cs: Use the horizontal scrollbars height not width when
17100         determining how much of the client area is available.
17101
17102 2005-04-25  Jackson Harper  <jackson@ximian.com>
17103
17104         * Control.cs: Double buffering is handled differently now. As per
17105         the spec, the extra buffer is created in the WM_PAINT message and
17106         passed down to the control's drawing code.
17107         * GroupBox.cs:
17108         * Label.cs:
17109         * CheckBox.cs:
17110         * ProgressBar.cs:
17111         * RadioButton.cs:
17112         * ColorDialog.cs:
17113         * ComboBox.cs:
17114         * PropertyGridView.cs:
17115         * UpDownBase.cs:
17116         * MessageBox.cs:
17117         * MenuAPI.cs:
17118         * ListView.cs:
17119         * ButtonBase.cs:
17120         * SizeGrip.cs:
17121         * ScrollBar.cs:
17122         * ListBox.cs:
17123         * TrackBar.cs:
17124         * ToolBar.cs:
17125         * PictureBox.cs:
17126         * DateTimePicker.cs:
17127         * StatusBar.cs:
17128         * TreeView.cs: Update to new double buffering system.
17129         * MonthCalendar.cs: Uncomment block, as Capture is now
17130         working. Update to new double buffering
17131         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17132         * PaintEventArgs.cs: New internal method allows us to set the
17133         graphics object. This is used for double buffering.
17134         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17135         rectangle. The internal paint_area var has been removed from
17136         StatusBar. The clipping rect should be used instead.
17137         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17138         * TabPage.cs: The RefreshTabs method was removed, so just call the
17139         tab controls Refresh method now.
17140         * TabControl.cs: Update to new double buffering. Make sure the
17141         handle is created before sizing the tab pages, otherwise we will
17142         get stuck in a loop.
17143
17144 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17145
17146         * LinkLabel.cs: Fix typo, bug #74719; patch
17147           from Borja Sanchez Zamorano
17148
17149 2005-04-22  Jackson Harper  <jackson@ximian.com>
17150
17151         * TreeNode.cs: Implement Handle stuff.
17152         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17153
17154 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17155
17156         * DataGridTextBoxColumn.cs: call base constructors, fixes
17157         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17158         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17159         * DataGridTableStyle.cs: implements create default column styles
17160         * DataGridBoolColumn.cs: which types can handle
17161         * DataGrid.cs: missing methods, fixes, new functionality
17162         * DataGridColumnStyle.cs: fixes
17163
17164 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17165         * FolderBrowserDialog.cs:
17166         - Use a thread to fill the TreeView
17167         - Adjusted some sizes
17168
17169 2005-04-19  Peter Bartok  <pbartok@novell.com>
17170
17171         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17172           property. Fixes #74360.
17173
17174 2005-04-19  Jackson Harper  <jackson@ximian.com>
17175
17176         * XEventQueue.cs: Lock when getting the lockqueue size.
17177         * PictureBox.cs: Call base OnPaint
17178         
17179 2005-04-19  Peter Bartok  <pbartok@novell.com>
17180
17181         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17182           messages were no longer being processed (this broke BeginInvoke)
17183
17184           
17185 2005-04-18  Jackson Harper  <jackson@ximian.com>
17186
17187         * TreeView.cs: buglet that caused node images to get drawn
17188         regardless of whether or not they were in the clipping rectangle.
17189
17190 2005-04-18  Jackson Harper  <jackson@ximian.com>
17191
17192         * CurrencyManager.cs: There are four rules for GetItemProperties:
17193         - If the type is an array use the element type of the array
17194         - If the type is a typed list, use the type
17195         - If the list contains an Item property that is not an object, use
17196         that property
17197         - use the first element of the list if there are any elements in
17198         the list.
17199         
17200 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17201
17202         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17203         click. This handles offsets for scrolling properly and reduces
17204         memory. Also fixed GetNode to not offset now that TopNode works
17205         properly.
17206         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17207         
17208 2005-04-17  Jackson Harper  <jackson@ximian.com>
17209
17210         * CursorConverter.cs: Initial implementation.
17211
17212 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17213
17214         * ListControl.cs: work towards complex data binding support on ListControl
17215         * CurrencyManager.cs: work towards complex data binding support on ListControl
17216         * ListBox.cs: work towards complex data binding support on ListControl
17217
17218
17219 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17220
17221         * GridTableStylesCollection.cs: fixes name and constructor
17222         * DataGridTableStyle.cs: fixes
17223         * DataGridBoolColumn.cs: fixes names and constructors
17224         * DataGrid.cs: define methods and properties. Some init implementations
17225         * DataGridCell.cs: define methods and properties. Some init implementations
17226         * GridTablesFactory.cs: Define methods and properties
17227
17228 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17229
17230         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17231         graphics port changes.  We still want the coordinates in global screen
17232         coordinates.
17233
17234 2005-04-14  Jackson Harper  <jackson@ximian.com>
17235
17236         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17237         check plus minus or checkbox clicks unless those features are enabled.
17238
17239 2005-04-14  Jackson Harper  <jackson@ximian.com>
17240
17241         * TreeView.cs: Add methods for setting the top and bottom visible
17242         nodes. TreeNode::EnsureVisible uses these methods.
17243         * TreeNode.cs: Implement EnsureVisible
17244
17245 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17246
17247         * Form.cs: Pospone menu assignation if the window has not been created yet
17248         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17249         size and position
17250
17251 2005-04-12  Jackson Harper  <jackson@ximian.com>
17252
17253         * TreeView.cs: Set the TopNode properly when scrolling
17254         occurs. This has the added benifit of reducing the amount of
17255         walking that needs to be done when drawing. Also removed an old
17256         misleading TODO.
17257         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17258         
17259 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17260
17261         * Timer.cs: fixes interval setting when the timer is already enabled
17262         
17263 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17264
17265         * FolderBrowserDialog.cs: First approach
17266
17267 2005-04-09  Peter Bartok  <pbartok@novell.com>
17268
17269         * FolderBrowserDialog: Added
17270
17271 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17272
17273         * LinkLabel.cs: move drawing code into the theme
17274         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17275         * Theme.cs: define DrawLinkLabel method
17276
17277 2005-04-05  Jackson Harper  <jackson@ximian.com>
17278
17279         * BindingContext.cs: Use weak references so these bad actors don't
17280         stay alive longer then they need to.
17281
17282 2005-04-05  Jackson Harper  <jackson@ximian.com>
17283
17284         * ListControl.cs: Basic implementation of complex databinding.
17285         * ComboBox.cs:
17286         * ListBox.cs: Add calls to ListControl databinding methods.
17287
17288 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17289
17290         * FileDialog.cs:
17291           - Don't change PopupButtonState to Normal when the
17292             PopupButton gets pressed several times.
17293           - Renamed ButtonPanel to PopupButtonPanel
17294
17295 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17296
17297         * ColorDialog.cs: Use cached objects instead of creating them
17298         * LinkLabel.cs: Use cached objects instead of creating them
17299         * Splitter.cs: Use cached objects instead of creating them
17300         * FontDialog.cs: Use cached objects instead of creating them
17301         * PropertyGridView.cs: Use cached objects instead of creating them
17302         * MessageBox.cs: Use cached objects instead of creating them
17303         * FileDialog.cs: Use cached objects instead of creating them
17304         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17305         * TreeView.cs: Use cached objects instead of creating them
17306         
17307 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17308
17309         * Control.cs: use Equals to compare the font since no == op
17310         * ScrollBar.cs: use Equals to compare the font since no == op
17311
17312 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17313
17314         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17315
17316 2005-04-01  Jackson Harper  <jackson@ximian.com>
17317
17318         * Binding.cs: Implement IsBinding.
17319         * BindingManagerBase.cs:
17320         * PropertyManager.cs:
17321         * CurrencyManager.cs: Add IsSuspended property.
17322
17323 2005-04-01  Jackson Harper  <jackson@ximian.com>
17324
17325         * Binding.cs: Had some IsAssignableFrom calls backwards.
17326
17327 2005-04-01  Jackson Harper  <jackson@ximian.com>
17328
17329         * Binding.cs: Handle null data members when pulling data.
17330         * PropertyManager.cs: Handle the data member being a property that
17331         does not exist.
17332
17333 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17334
17335         * DataGridTextBoxColumn.cs: fixes signature
17336         * DataGrid.cs: calls right constructor
17337
17338 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17339
17340         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17341         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17342         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17343         * DataGridTableStyle.cs: implements DataGridTableStyle
17344         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17345         * DataGridTextBox.cs: implements DataGridTextBox
17346         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17347
17348 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17349
17350         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17351
17352 2005-03-29  Peter Bartok  <pbartok@novell.com>
17353
17354         * Application.cs:
17355           - Properly implemented CompanyName property
17356           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17357             returns a path that includes CompanyName, ProductName and
17358             Version (fixes bug #70330)
17359
17360 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17361
17362         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17363           fixes bug #72588.
17364
17365 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17366
17367         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17368         
17369           - Added ReadOnly CheckBox
17370           - Further refactoring: moved some code from Open-/SaveFileDialog
17371             to FileDialog
17372
17373 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17374
17375         * OpenFileDialog.cs: Fixed CheckFileExists
17376         * FileDialog.cs:
17377           Moved FileView and DirComboBox outside FileDialog class.
17378           They can now be used outside FileDialog
17379
17380 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17381
17382         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17383         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17384
17385 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17386
17387         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17388           - Added missing CreatePrompt property in SaveDialog
17389           - Overall SaveDialog handling should be better now
17390           - Added non standard ShowHiddenFiles property
17391           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17392           - Added InitialDirectory and RestoreDirectory support
17393
17394 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17395
17396         * FileDialog.cs: Made dirComboBox usable
17397
17398 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17399
17400         * FileDialog.cs: Added Filter support (case sensitiv)
17401
17402 2005-03-24  Jackson Harper  <jackson@ximian.com>
17403
17404         * TabControl.cs: Need a couple more pixels for the lines.
17405
17406 2005-03-23  Jackson Harper  <jackson@ximian.com>
17407
17408         * TabControl.cs: Give the tab page focus when it is selected.
17409
17410 2005-03-23  Jackson Harper  <jackson@ximian.com>
17411
17412         * TabControl.cs: Account for the drawing of tabs borders when
17413         invalidating. If the slider was clicked dont do click detection on
17414         the tabs.
17415
17416 2005-03-23  Jackson Harper  <jackson@ximian.com>
17417
17418         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17419
17420 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17421
17422         * CategoryGridEntry.cs: Added
17423         * GridItem.cs: Added helper properties
17424         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17425         * GridEntry.cs: Updated code for collection
17426         * PropertyGrid.cs: Cleaned up some formatting
17427         * PropertyGridView.cs: Added drop down functionality for enums.
17428         * GridItemCollection.cs: Added enumerator logic
17429         * PropertyGridEntry.cs: Added
17430
17431 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17432
17433         * FileDialog.cs:
17434           - Removed unnecessary commented code
17435           - Fixed handling for entering the filename manually in the combobox
17436
17437 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17438
17439         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17440
17441 2005-03-18  Peter Bartok  <pbartok@novell.com>
17442
17443         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17444           them being touching the border
17445
17446 2005-03-18  Peter Bartok  <pbartok@novell.com>
17447
17448         * TextControl.cs: Quick hack to center text better
17449
17450 2005-03-18  Peter Bartok  <pbartok@novell.com>
17451
17452         * ControlPaint.cs:
17453           - Don't throw NotImplemented exceptions, just print a notice once
17454             instead (requested by Miguel). This makes running existing SWF
17455             apps a bit easier
17456         * Control.cs:
17457           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17458           - Added context menu trigger on right click
17459         * Panel.cs: Trigger invalidate on resize
17460         * StatusBar.cs:
17461           - Removed old double-buffer drawing
17462           - Added ResizeRedraw style to force proper update of statusbar
17463         * ListView.cs:
17464           - Removed debug output
17465         * ThemeWin32Classic.cs:
17466           - Fixed drawing of status bar, now draws Text property if there
17467             are no defined panels
17468
17469 2005-03-18  Jackson Harper  <jackson@ximian.com>
17470
17471         * ImageList.cs: When the image stream is set pull all the images
17472         from it.
17473         * ImageListStreamer.cs: Implement reading image list streams.
17474
17475 2005-03-18  Peter Bartok  <pbartok@novell.com>
17476
17477         * ThemeWin32Classic.cs (DrawPictureBox):
17478           - Fixed calculations for centered drawing
17479           - Fixed drawing for normal mode, not scaling the image on normal
17480
17481 2005-03-18  Peter Bartok  <pbartok@novell.com>
17482
17483         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17484           textbox
17485         * FileDialog.cs:
17486           - Made Open/Save button the accept button for FileDialog
17487           - Tied the cancel button to the IButtonControl cancel button
17488           - Save/Open now properly builds the pathname
17489           - Now handles user-entered text
17490           - Preventing crash on right-click if no item is selected
17491           - Fixed Text property, now uses contents of textbox
17492           - Fixed SelectedText property, now just returns the text part that
17493             is selected in the text box
17494
17495 2005-03-18  Jackson Harper  <jackson@ximian.com>
17496
17497         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17498         rect, make sure to de-adjust the interior rect after drawing the
17499         tab text.
17500
17501 2005-03-18  Peter Bartok  <pbartok@novell.com>
17502
17503         * MenuAPI.cs: Remove menu *before* executing selected action to
17504           prevent the menu from 'hanging around'
17505           
17506 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17507
17508         * XplatUIOSX.cs: Implemented WorkingArea property
17509
17510 2005-03-17  Peter Bartok  <pbartok@novell.com>
17511
17512         * XplatUIX11.cs: Fixed menu coord calculations
17513         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17514           for calculating offsets
17515
17516 2005-03-17  Peter Bartok  <pbartok@novell.com>
17517
17518         * Hwnd.cs: Do not consider menu presence for default client
17519           rectangle location/size
17520         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17521           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17522           translation functions
17523         * FileDialog.cs: Fixed (what I presume is a) typo
17524
17525 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17526
17527         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17528           X access (avoids X-Async errors)
17529
17530 2005-03-16  Jackson Harper  <jackson@ximian.com>
17531
17532         * TabControl.cs: Raise the SelectedIndexChanged event.
17533
17534 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17535
17536         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17537           - Removed vertical ToolBar and replaced it with a custom panel
17538             (desktop and home button already work)
17539           - Added Help button (some controls get resized or relocated then)
17540           - Draw correct text depending on Open or Save.
17541           - Fixed some typos...
17542
17543 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17544
17545         * ScrollBar.cs:
17546           - Only change Maximum and Minimum when need it (bug fix)
17547
17548 2005-03-15  Peter Bartok  <pbartok@novell.com>
17549
17550         * Form.cs: Use Handle for icon, to trigger creation if
17551           the window does not yet exist
17552         * Control.cs:
17553           - CanSelect: Slight performance improvement
17554           - Focus(): Preventing possible recursion
17555           - Invalidate(): Removed ControlStyle based clear flag setting
17556           - WM_PAINT: fixed logic for calling OnPaintBackground
17557           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17558             EraseWindowBackground if the control doesn't paint background
17559         * XplatUIWin32.cs:
17560           - Moved EraseWindowBackground() method to internal methods
17561           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17562             is sent via SendMessage on BeginPaint call on Win32
17563         * XplatUIX11.cs:
17564           - Added EraseWindowBackground() method
17565           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17566             PaintEventStart, which more closely matches Win32 behaviour
17567           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17568           - Fixed SetFocus() to properly deal with client and whole windows
17569         * Hwnd.cs: Added ErasePending property
17570         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17571         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17572
17573 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17574
17575         * XplatUIOSX.cs:
17576           - Fix hard loop when timers exist.
17577           - Fix bugs with middle and right click for 3 button mice.
17578
17579 2005-03-11  Peter Bartok  <pbartok@novell.com>
17580
17581         * XplatUIX11.cs:
17582           - get_WorkingArea: Need to call X directly, GetWindowPos only
17583             returns cached data now
17584           - Added sanity check to GetWindowPos hwnd usage
17585
17586 2005-03-11  Jackson Harper  <jackson@ximian.com>
17587
17588         * BindingManagerBase.cs: This method isn't used anymore as
17589         PullData now updates the data in the control.
17590
17591 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17592
17593         * Form.cs: fixes menu drawing on X11
17594         * MenuAPI.cs:  fixes menu drawing on X11
17595
17596 2005-03-11  Peter Bartok  <pbartok@novell.com>
17597
17598         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17599           from Jonathan Gilbert; should fix bug #73606
17600         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17601           in Screen coordinates. Thanks, Jordi.
17602         * Form.cs: Added missing attribute
17603
17604 2005-03-11  Peter Bartok  <pbartok@novell.com>
17605
17606         * Form.cs:
17607           - Rudimentary Mdi support
17608           - Removed outdated FormParent code
17609           - Implemented lots of missing properties and methods, still missing
17610             transparency support
17611           - Added missing attributes
17612           - Implemented support for MaximumBounds
17613           - Added firing of various events
17614         * XplatUI.cs: Added SetIcon() method
17615         * XplatUIDriver.cs: Added SetIcon() abstract
17616         * XplatUIOSX.cs: Stubbed out SetIcon() method
17617         * XplatUIX11.cs:
17618           - Implemented SetIcon() support
17619           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17620           - Switched to unix line endings
17621         * XplatUIWin32.cs:
17622           - Made POINT internal so for can access it as part of MINMAX
17623           - Implemented SetIcon() support
17624           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17625             native Mdi support again, might have to go managed)
17626         * Control.cs: Now fires the StyleChanged event
17627         * MdiClient.cs: Added; still mostly empty
17628
17629 2005-03-10  Peter Bartok  <pbartok@novell.com>
17630
17631         * SaveFileDialog.cs: Added emtpy file
17632
17633 2005-03-08  Peter Bartok  <pbartok@novell.com>
17634
17635         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17636           in turn triggers OnCreateContro) when creating a handle for the
17637           first time.
17638         * TextControl.cs: Fixed endless loop in certain cases when
17639           replacing the current selection
17640
17641 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17642
17643         * ScrollBar.cs:
17644           - Honors NewValue changes in Scroll events allowing apps to change it
17645           - Adds First and Last Scroll events
17646           - Fixes Thumb events
17647
17648 2005-03-07  Peter Bartok  <pbartok@novell.com>
17649
17650         * Hwnd.cs: Added DefaultClientRectangle property
17651         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17652           more detailed debug information
17653         * XplatUIX11.cs:
17654           - Fixed size-change feedback loop, where we would pull an old size
17655             off the queue and mistakenly change our window's size to an
17656             earlier value
17657           - Now compressing ConfigureNotify events, to reduce looping and
17658             redraw issues
17659         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17660           is called
17661
17662 2005-03-07  Jackson Harper  <jackson@ximian.com>
17663
17664         * Binding.cs: Push data pushes from data -> property. Check if the
17665         property is readonly when attempting to set it.
17666
17667 2005-03-07  Jackson Harper  <jackson@ximian.com>
17668
17669         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17670         instead of IsSubclassOf. Pulling data now sets the value on the
17671         control.
17672         * PropertyManager.cs:
17673         * CurrencyManager.cs: Just need to pull data when updating now,
17674         because PullData will set the value on the control.
17675
17676 2005-03-04  Jackson Harper  <jackson@ximian.com>
17677
17678         * Binding.cs: Implement data type parsing and converting on pulled
17679         data. TODO: Are there more ways the data can be converted?
17680
17681 2005-03-04  Jackson Harper  <jackson@ximian.com>
17682
17683         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17684         controls Validating method so we can repull the data when the
17685         control loses focus.
17686
17687 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17688
17689         * ColumnHeader.cs:
17690           - Fixes null string format
17691           
17692         * ListView.cs:
17693           - Adds enum type checks
17694           - Fixes redrawing and recalc need after changing some properties
17695           - Fixes on focus_item set after the event
17696           - Fixes adding columns after the control has been created
17697           
17698         * ThemeWin32Classic.cs:
17699           - Fixes CheckBox focus rectangle
17700           - Fixes ColumnHeader drawing
17701
17702
17703 2005-03-03  Jackson Harper  <jackson@ximian.com>
17704
17705         * Binding.cs: Bind to <Property>Changed events so we can detect
17706         when properties are changed and update the data.
17707
17708 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17709
17710         * ImageList.cs:
17711           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17712           - Fixes ImageList constructor with ImageList container
17713           - Fixes image scaling (wrong parameters at DrawImage)
17714
17715 2005-02-02  Jackson Harper  <jackson@ximian.com>
17716
17717         * Binding.cs: Make property searches case-insensitive. Eliminate
17718         some duplicated code.
17719
17720 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17721
17722         * ComboBox.cs:
17723                 - Handle focus event
17724                 - Fix scrollbar events
17725                 - Discard highlighted item if remove it
17726                 - Fixes SelectedItem with strings
17727
17728 2005-03-01  Peter Bartok  <pbartok@novell.com>
17729
17730         * Control.cs:
17731           - Fixed Visible property, now follows (once again) parent chain
17732             to return false if any control in the chain is visible=false
17733           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17734           - Fixed several places where is_visible instead of Visible was used
17735           - Implemented FIXME related to focus selection when setting focused
17736             control to be invisible
17737
17738         * XplatUIWin32.cs: Now using proper method to find out if window is
17739           visible. Thanks to Jordi for pointing it out
17740
17741 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17742
17743         * ComboBox.cs: show/hide scrollbar instead of creating it
17744
17745 2005-02-27  Jackson Harper  <jackson@ximian.com>
17746
17747         * CurrencyManager.cs: Add PositionChanged stuff.
17748
17749 2005-02-27  Peter Bartok  <pbartok@novell.com>
17750
17751         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17752         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17753         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17754         * XplatUIX11.cs:
17755           - Implemented GetMenuDC()
17756           - Implemented GetMenuOrigin()
17757           - Implemented ReleaseMenuDC()
17758           - Implemented generation of WM_NCPAINT message
17759           - Implemented generation and handling of WM_NCCALCSIZE message
17760         * Form.cs: Added debug helper message for Jordi's menu work
17761         * Hwnd.cs:
17762           - Modified ClientRect property; added setter, fixed getter to handle
17763             setting of ClientRect
17764           - Added MenuOrigin property
17765
17766 2005-02-26  Peter Bartok  <pbartok@novell.com>
17767
17768         * XplatUIX11.cs:
17769           - Destroys the caret if a window that's being destroyed contains it
17770           - Ignores expose events coming from the X11 queue for windows that
17771             already are destroyed
17772           - Now uses the proper variable for handling DestroyNotify, before we
17773             marked the wrong window as destroyed
17774           - Improved/added some debug output
17775
17776 2005-02-26  Peter Bartok  <pbartok@novell.com>
17777
17778         * X11Keyboard.cs: Fixes to work on 64bit systems
17779
17780 2005-02-26  Peter Bartok  <pbartok@novell.com>
17781
17782         * Control.cs:
17783           - Now calling OnHandleDestroyed from DestroyHandle()
17784             instead of Dispose()
17785           - Removed bogus call to controls.Remove() from DestroyHandle()
17786
17787 2005-02-26  Peter Bartok  <pbartok@novell.com>
17788
17789         * Control.cs: Properly destroy child windows when our handle is
17790           destroyed
17791
17792 2005-02-25  Peter Bartok  <pbartok@novell.com>
17793
17794         * XplatUI.cs:
17795           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17796           - Alphabetized Static Methods and Subclasses
17797
17798         * XplatUIX11.cs:
17799           - Added XException class to allow custom handling of X11 exceptions
17800           - Created custom X11 error handler, tied into XException class
17801           - Added support for MONO_XEXCEPTIONS env var to allow the user
17802             to either throw an exception on X errors or continue running
17803             after displaying the error
17804           - Added handling of DestroyNotify message
17805           - Added handler for CreateNotify message (still disabled)
17806           - Improved (tried to at least) Where method to provide file and lineno
17807         * X11Structs.cs:
17808           - Added XErrorHandler delegate
17809           - Added XRequest enumeration (to suppor translation of errors)
17810
17811 2005-02-25  Jackson Harper  <jackson@ximian.com>
17812
17813         * PropertyManager.cs: Implement editing features
17814         * CurrencyManager.cs:
17815         * Binding.cs: First attempt at UpdateIsBinding
17816         * BindingManagerBase.cs: Call UpdateIsBinding before
17817         pushing/pulling data.
17818
17819 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17820
17821         * MenuAPI.cs: Respect disabled items
17822         * ThemeWin32Classic.cs
17823                 - Caches ImageAttributes creation for DrawImageDisabled
17824                 - Fixes vertical menu line drawing
17825                 - Draws disabled arrows in disable menu items
17826
17827 2005-02-24  Peter Bartok  <pbartok@novell.com>
17828
17829         * Hwnd.cs:
17830           - Added UserData property to allow associating arbitrary objects
17831             with the handle
17832           - Fixed leak; now removing Hwnd references from static windows array
17833         * XplatUIWin32.cs:
17834           - Fixed Graphics leak in PaintEventEnd
17835           - Removed usage of HandleData, switched over to Hwnd class
17836         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17837
17838 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17839
17840         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17841         * ScrollBar.cs: Fixes bug
17842         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17843          keyboard navigation enhancements
17844
17845 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17846
17847         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17848         * GroupBox.cs: Add control styles
17849         * Label.cs: Add control styles
17850         * UpDownBase.cs: Add control styles
17851         * ListBox.cs: Add control styles
17852         * XplatUIWin32.cs: Fixes wrong parameter order
17853
17854
17855 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17856
17857         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17858
17859 2005-02-23  Jackson Harper  <jackson@ximian.com>
17860
17861         * PropertyManager.cs: Implement property binding. This doesn't
17862         seem to work yet though as (I think) there are some bugs in
17863         System.ComponentModel.PropertyDescriptor.
17864         * BindingContext.cs: Use new PropertyManager constructor.
17865
17866 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17867
17868         * ProgressBar.cs: use clip region in ProgressBar
17869         * ThemeWin32Classic.cs: use clip region in ProgressBar
17870
17871 2004-02-22  Jackson Harper  <jackson@ximian.com>
17872
17873         * BindingsCollection.cs: Remove some debug code.
17874
17875 2005-02-22  Jackson Harper  <jackson@ximian.com>
17876
17877         * BindingContext.cs:
17878         * ControlBindingsCollection.cs:
17879         * CurrencyManager.cs:
17880         * Binding.cs:
17881         * BindingManagerBase.cs: Initial implementation
17882         * BindingsCollection.cs: Add an internal contains method that the
17883         BindingManagerBase uses to ensure bindings aren't added twice to
17884         the collection.
17885         * PropertyManager.cs: Stubbed out.
17886         * Control.cs:
17887         * ContainerControl.cs: Hook up databinding
17888         
17889 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17890
17891         * XplatUIOSX.cs:
17892           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17893           Fixed Invalidate/Update chain.
17894           Fixed tons of other minor bugs (this is almost a complete rewrite).
17895
17896 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17897
17898         * ComboBox.cs: do subcontrol creation when the control is created
17899
17900 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17901
17902         * Label.cs: fixes image drawing (image and imagelist)
17903         * ThemeWin32Classic.cs: cache brushes
17904         
17905 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17906
17907         * Form.cs: Move menu drawing code to Theme class
17908         * ComboBox.cs: Move ComboBox drawing code to Theme class
17909         * MenuItem.cs: Move menu drawing code to Theme class
17910         * MenuAPI.cs: Move menu drawing code to Theme class
17911         * ThemeWin32Classic.cs: New methods
17912         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17913         * ListBox.cs: Move Listbox drawing code to Theme class
17914         * Theme.cs: New methods
17915
17916 2005-02-20  Peter Bartok  <pbartok@novell.com>
17917
17918         * Control.cs:
17919           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17920             only process mnemonics on those)
17921           - Fixed event sequence for key handling; first calling
17922             ProcessKeyEventArgs now
17923         * TextBoxBase.cs:
17924           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17925             for processing non-character keys
17926           - Fixed WM_CHAR to generate proper event sequence before processing
17927         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17928           generation
17929
17930 2005-02-19  Peter Bartok  <pbartok@novell.com>
17931
17932         * UserControl.cs: Added TextChanged event; added attributes
17933         * SizeGrip.cs: Implemented resizing and optional display of grip
17934         * Form.cs: Fixed attribute
17935         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17936           Changed meaning of ScrollWindow bool argument; instead of the
17937           clear attribute (which will be true usually anyway), it gives the
17938           option of moving child controls as well.
17939         * XplatUIX11.cs:
17940           - Changed to match new ScrollWindow argument
17941           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17942             now handles the implicit parent window a WM puts around us
17943         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17944           to work)
17945         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17946         * TreeView.cs: Adjusted to new ScrollWindow arguments
17947
17948 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17949
17950         * Form.cs: Menu integration with non-client area
17951         * MenuItem.cs: Menu integration with non-client area
17952         * MenuAPI.cs: Menu integration with non-client area
17953
17954 2005-02-18  Peter Bartok  <pbartok@novell.com>
17955
17956         * MethodInvoker.cs: Added
17957         * MdiLayout.cs: Added
17958         * SendKeys.cs: Started implementation
17959         * ErrorIconAlignment.cs: Added
17960
17961 2005-02-18  Peter Bartok  <pbartok@novell.com>
17962
17963         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17964         * Form.cs: Added handling for Menu-related Non-client messages
17965
17966 2005-02-17  Peter Bartok  <pbartok@novell.com>
17967
17968         * UpDownBase.cs: Fixed typo, compilation errors
17969         * DomainUpDown.cs: Fixed attribute value
17970
17971 2005-02-16  Miguel de Icaza  <miguel@novell.com>
17972
17973         * UpDownBase.cs: Attach entry events.
17974         Propagate events.
17975         Add ForeColor property, Focused, InterceptArrowKeys (interception
17976         does not work yet).
17977
17978 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
17979
17980         * Form.cs:
17981                 - Redraw non client are on Setmenu
17982                 - Calc proper menu starting point
17983
17984 2005-02-17  Peter Bartok  <pbartok@novell.com>
17985
17986         * Application.cs: Fixed message_filter check
17987
17988 2005-02-17  Peter Bartok  <pbartok@novell.com>
17989
17990         * Application.cs: Now calls registered message filters
17991         * DockStyle.cs: Fixed attribute
17992         * Form.cs: Fixed attribute
17993         * Menu.cs: Fixed attribute
17994         * ToolTip.cs: Fixed attribute
17995         * TreeNode.cs: Added missing attributes and arranged in regions
17996         * PropertyGrid.cs: Fixed signatures
17997         * TreeNodeCollection.cs: Added attributes
17998         * Splitter.cs: Added missing attributes; arranged into regions
17999         * TabPage.cs: Added missing attributes; arranged into regions
18000         * TextBoxBase.cs: Added missing attributes
18001         * TextBox.cs: Added missing attributes
18002         * ArrangeDirection.cs: Added missing attributes
18003         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18004         * ToolBarButton.cs: Fixed attributes
18005         * AnchorStyles.cs: Fixed attribute
18006         * TrackBar.cs: Fixed attributes
18007         * TabControl.cs: Added missing attributes and arranged into regions
18008         * ToolBar.cs: Fixed attribute
18009         * StatusBar.cs: Fixed signature, organized into regions and added
18010           attributes
18011         * StatusBarPanel.cs: Fixed attributes
18012         * ContentsResizedEventArgs.cs: Implemented
18013         * ContentsResizedEventHandler.cs: Implemented
18014         * DateBoldEventArgs.cs: Implemented
18015         * DateBoldEventHandler.cs: Implemented
18016         * UpDownEventArgs.cs: Implemented
18017         * UpDownEventHandler.cs: Implemented
18018         
18019 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18020
18021         * Form.cs: first Menu NC refactoring
18022         * MenuAPI.cs: first Menu NC refactoring
18023         
18024 2005-02-16  Peter Bartok  <pbartok@novell.com>
18025
18026         * ImeMode.cs: Added missing attributes
18027         * Menu.cs: Fixed attribute
18028         * GroupBox.cs: Fixed attribute
18029         * Label.cs: Fixed attribute
18030         * ColorDialog.cs (RunDialog): Removed TODO attribute
18031         * ComboBox.cs: Fixed attributes
18032         * ListControl.cs: Added missing attributes
18033         * PropertyGrid.cs: Fixed attributes
18034         * Control.cs: Fixed attributes
18035         * ListViewItem.cs: Added TypeConverter attribute
18036         * NotifyIcon.cs: Fixed attributes
18037         * ListView.cs: Fixed attributes
18038         * ButtonBase.cs: Fixed attribute
18039         * ImageList.cs: Added missing attributes
18040         * ContainerControl.cs: Fixed signature
18041         * CheckedListBox.cs: Fixed attribute; added missing attributes
18042         * Panel.cs: Fixed attributes
18043         * PropertyTabChangedEventArgs.cs: Added missing attribute
18044         * PropertyValueChangedEventArgs.cs: Added missing attribute
18045         * Binding.cs: Fixed attribute
18046         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18047         * ListBox.cs: Fixed attribute; added missing attributes;
18048         * ScrollableControl.cs: Added missing attributes
18049         * PictureBox.cs: Added missing attributes; implemented missing property
18050         * DateTimePicker.cs: Added missing attributes
18051         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18052         * MonthCalendar.cs: Fixed attributes
18053         * StatusBarPanel.cs: Added missing attributes
18054         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18055
18056 2005-02-16  Peter Bartok  <pbartok@novell.com>
18057
18058         * TextBoxBase.cs: The previous method to enforce height yet remember
18059           the requested high was less than ideal, this is an attempt to do
18060           it better.
18061         * Control.cs: Added comment about possible problem
18062         * Copyright: Updated format
18063         * GridItemType.cs: Fixed swapped values
18064
18065 2005-02-15  Jackson Harper  <jackson@ximian.com>
18066
18067         * BaseCollection.cs: Use property so we never access an
18068         uninitialized list. Also initialize the list in the property.
18069
18070 2005-02-15  Peter Bartok  <pbartok@novell.com>
18071
18072         * GroupBox.cs (ProcessMnemonic): Implemented
18073         * Label.cs (ProcessMnemonic): Implemented
18074         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18075           hotkeys
18076
18077 2005-02-15  Peter Bartok  <pbartok@novell.com>
18078
18079         * RadioButton.cs (ProcessMnemonic): Implemented
18080         * CheckBox.cs (ProcessMnemonic): Implemented
18081         * Control.cs:
18082           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18083             handling
18084           - Added internal method to allow calling ProcessMnemonic from other
18085             controls
18086         * ContainerControl.cs:
18087           - Started support for handling validation chain handling
18088           - Implemented ProcessMnemonic support
18089           - Added Select() call to Active, to make sure the active control
18090             receives focus
18091         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18092           FormParent rewrite)
18093         * ThemeWin32Classic.cs:
18094           - DrawCheckBox(): Fixed stringformat to show hotkeys
18095           - DrawRadioButton(): Fixed stringformat to show hotkeys
18096         * CommonDialog.cs: Removed WndProc override, not needed
18097
18098 2005-02-14  Peter Bartok  <pbartok@novell.com>
18099
18100         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18101           missed those in the rewrite
18102
18103 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18104
18105         * NumericUpDown.cs (Increment, ToString): Add.
18106         (DecimalPlaces): implement.
18107         
18108         Add attributes.
18109         
18110         * UpDownBase.cs: Add the designer attributes.
18111
18112 2005-02-13  Peter Bartok  <pbartok@novell.com>
18113
18114         * Panel.cs: Removed border_style, now in Control
18115         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18116           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18117
18118 2005-02-13  Peter Bartok  <pbartok@novell.com>
18119
18120         * MouseButtons.cs: Added missing attributes
18121         * XplatUIStructs.cs: Added enumeration for title styles
18122         * LeftRightAlignment.cs: Added missing attributes
18123         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18124           it compatible with Graphics.FromHwnd()
18125         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18126         * Keys.cs: Added missing attributes
18127         * SelectionRange.cs: Added missing attributes
18128         * SelectionRangeConverter.cs: Added
18129         * XplatUI.cs:
18130           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18131             ReleaseMenuDC methods
18132           - Renamed ReleaseWindow to UngrabWindow
18133           - Added proper startup notice to allow version identification
18134         * Form.cs:
18135           - Added missing attributes
18136           - Removed FormParent concept
18137         * Label.cs: Removed border_style field, now in Control
18138         * RadioButton.cs: Now properly selects RadioButton when focus is
18139           received
18140         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18141         * Control.cs:
18142           - Added missing attributes
18143           - Added borderstyle handling
18144           - Removed FormParent concept support
18145           - Fixed calls to XplatUI to match changed APIs
18146           - Fixed bug that would case us to use disposed Graphics objects
18147           - Removed unneeded internal methods
18148           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18149           - SelectNextControl(): Fixed to properly check common parents
18150         * TextBoxBase.cs: Removed border_style field (now in Control)
18151         * MessageBox.cs:
18152           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18153             fixed calculations for form size
18154           - Added support for localized strings and icons
18155           - Improved form size calculations, added border
18156         * ListView.cs: Removed border_style field (now in Control)
18157         * X11Structs.cs: Moved several structs from X11 driver here
18158         * X11Keyboard.cs: Changed debug message
18159         * Application.cs: Removed FormParent concept support
18160         * CommonDialog.cs:
18161           - Resetting end_modal flag
18162           - Removed FormParent concept support
18163         * NativeWindow.cs: Removed FormParent concept support
18164         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18165           Client area and Non-Client whole window to allow support for WM_NC
18166           messages
18167         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18168           prevent using it until it supports Hwnd as per Geoff Norton's request
18169         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18170         * PictureBox.cs: Removed border_style field, now in Control
18171         * XplatUIWin32.cs: Added new driver methods
18172
18173 2005-02-12  Peter Bartok  <pbartok@novell.com>
18174
18175         * OpacityConverter.cs: Implemented
18176         * Hwnd.cs: Internal class to support drivers that need to emulate
18177           client area/non-client area window behaviour
18178
18179 2005-02-11  Peter Bartok  <pbartok@novell.com>
18180
18181         * KeysConverter.cs: Implemented
18182
18183 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18184
18185         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18186         * LinkLabel: Added missing attributes
18187         * MainMenu.cs: fixes ToString
18188         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18189         * ListBox.cs: fixes event position
18190         * TrackBar.cs: adds missing attributes and events
18191         
18192 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18193
18194         * MenuItem.cs: Use SystemInformation and bug fixes
18195         * MenuAPI.cs: Use SystemInformation and bug fixes
18196
18197 2005-02-09  Jackson Harper  <jackson@ximian.com>
18198
18199         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18200         their keystate otherwise things like VK_MENU get stuck "on".
18201
18202 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18203
18204         * ListBox.cs: Fixes AddRange bug
18205         
18206 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18207
18208         * ProgressBar.cs
18209                 - Add missing attributes
18210                 - Add missing method
18211                 
18212         * CheckedListBox.cs: Added missing attributes
18213                 - Add missing attributes
18214                 - Remove extra method
18215         
18216         * ComboBox.cs: Added missing attributes
18217         * VScrollBar.cs: Added missing attributes
18218         * ScrollBar.cs:  Added missing attributes
18219         * ListBox.cs: Fixes signature, add missing consts
18220         * LinkArea.cs:   Added missing attributes
18221         
18222
18223 2005-02-08  Peter Bartok  <pbartok@novell.com>
18224
18225         * Menu.cs: Added missing attributes
18226         * MainMenu.cs: Added missing attributes
18227         * GroupBox.cs: Added missing attributes
18228         * Label.cs: Added missing attributes
18229         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18230         * ColorDialog.cs:
18231           - Added Instance and Options properties
18232           - Added missing attributes
18233         * Cursor.cs: Made Serializable
18234         * NotifyIcon: Added missing attributes
18235         * MenuItem.cs: Added missing attributes
18236         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18237         * Panel.cs: Added Missing attributes
18238         * MonthCalendar.cs: Fixed CreateParams
18239
18240 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18241         
18242         * LinkLabel.cs:
18243                 - Fixes signature
18244                 - Fixes issues with links
18245                 - Adds the class attributes
18246
18247 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18248         
18249         * ComboBox.cs:
18250                 - Fixes button when no items available in dropdown
18251                 - Fixes repainting problems
18252                 - Adds the class attributes
18253                 
18254 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18255
18256         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18257         the current theme.  Cache these on startup.
18258
18259 2005-02-07  Jackson Harper  <jackson@ximian.com>
18260
18261         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18262         the scrollbar buttons when they are depressed.
18263
18264 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18265
18266         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18267         Get the display size from the main displayid.  We currently dont
18268         support multiple display configurations.
18269
18270 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18271
18272         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18273
18274 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18275
18276         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18277
18278 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18279
18280         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18281
18282 2005-02-04  Jackson Harper  <jackson@ximian.com>
18283
18284         * ThemeWin32Classic.cs: Respect the clipping rect when
18285         drawing. Only fill the intersection of clips and rects so there
18286         isn't a lot of large fills.
18287         * ScrollBar.cs: Pass the correct clipping rect to the theme
18288         engine. Remove some debug code.
18289
18290 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18291         
18292         * DateTimePicker.cs:
18293                 - Fixed crash on DateTime.Parse, use Constructor instead
18294
18295 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18296         
18297         * MenuItem.cs:
18298         * MenuAPI.cs:
18299                 - Owner draw support (MeasureItem and DrawItem)
18300
18301 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18302         
18303         *  Menu.cs:
18304                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18305                 - Fixes MenuItems.Add range
18306         * MenuItem.cs:
18307                 - MergeMenu and Clone and CloneMenu functions
18308
18309 2005-02-03  Jackson Harper  <jackson@ximian.com>
18310
18311         * ScrollBar.cs: Make abstract
18312         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18313         is abstract.
18314
18315 2005-02-03  Jackson Harper  <jackson@ximian.com>
18316
18317         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18318         all the unneeded refreshes and uses invalidates with properly
18319         computed rects.
18320
18321 2005-02-03  Peter Bartok  <pbartok@novell.com>
18322
18323         * ComponentModel.cs: Added
18324         * IDataGridEditingService.cs: Added
18325         * Timer.cs: Added missing attributes
18326         * ToolTip.cs: Added missing attributes
18327
18328 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18329
18330         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18331
18332 2005-02-03  Peter Bartok  <pbartok@novell.com>
18333
18334         * ListBox.cs: Added missing attributes
18335
18336 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18337         
18338         * ListBox.cs:
18339                 - Fixes font height after font change
18340                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18341                 
18342 2005-02-02  Peter Bartok  <pbartok@novell.com>
18343
18344         * HandleData.cs: Introduced static methods to allow class
18345           to be more self-contained and track it's own HandleData objects
18346         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18347           HandleData to use new static methods
18348
18349 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18350
18351         * Combobox.cs:
18352                 - Fixes default size and PreferredHeight
18353                 - Missing events
18354                 - ObjectCollection.Insert implementation
18355                 
18356         * ListControl.cs
18357                 - Fixes signature
18358         * ListBox.cs:
18359                 - Several fixes
18360                 - ObjectCollection.Insert implementation
18361                 - No selection after clean
18362                 - Small fixes
18363
18364 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18365
18366         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18367
18368 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18369
18370         * Combobox.cs:
18371                 - Caches ItemHeight calculation for OwnerDrawVariable
18372                 - Handles dropdown properly
18373                 - Fixes several minor bugs
18374
18375 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18376
18377         * ListBox.cs:
18378                 - Fixes 71946 and 71950
18379                 - Fixes changing Multicolumn on the fly
18380                 - Fixes keyboard navigation on Multicolumn listboxes
18381
18382 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18383         
18384         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18385         crash reporter log.
18386
18387 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18388
18389         * XplatUIOSX.cs: Allow applications to actually exit.
18390
18391 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18392
18393         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18394         their parent at creation time rather than lazily later.  Fixes a major
18395         regression we were experiencing.
18396
18397 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18398
18399         * ThemeWin32Classic.cs: more date time picker painting fixes
18400         * DateTimePicker.cs: more monthcalendar drop down fixes
18401         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18402
18403 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18404
18405         * ScrollBar.cs:
18406                 - When moving the thumb going outside the control should stop the moving
18407                 - Adds the firing of missing events
18408                 - Fixes no button show if Size is not specified
18409                 - End / Home keys for keyboard navigation
18410
18411 2005-01-30  Peter Bartok  <pbartok@novell.com>
18412
18413         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18414           sanity check to prevent theoretical loop
18415         * XplatUIWin32.cs (SetVisible): Removed debug output
18416         * XplatUIX11.cs (SystrayChange): Added sanity check
18417         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18418         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18419           behaviour, valid until the X11 client window rewrite is done
18420         * TextBox.cs (ctor): Setting proper default foreground and background
18421           colors
18422
18423 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18424
18425         * Theme: Added DrawDateTimePicker to interface
18426         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18427         * DateTimePicker.cs: Created (still needs keys and painting code)
18428         * DateTimePickerFormat.cs: added
18429         * MonthCalendar.cs: fixed CreateParams for popup window mode
18430           
18431 2005-01-29  Peter Bartok  <pbartok@novell.com>
18432
18433         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18434           this should also the calculations for ligher/darker
18435         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18436
18437 2005-01-29  Peter Bartok  <pbartok@novell.com>
18438
18439         * ArrangeDirection.cs: Added
18440         * ArrangeStartingPositon.cs: Added
18441         * SystemInformation.cs: Implemented
18442         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18443           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18444           used by SystemInformation class
18445         * X11Strucs.cs: Added XSizeHints structure
18446         * MenuAPI.cs:
18447           - Fixed CreateParams to make sure the menu window is always visible
18448           - TrackPopupMenu: Added check to make sure we don't draw the
18449             menu offscreen
18450
18451 2005-01-29  Peter Bartok  <pbartok@novell.com>
18452
18453         * HandleData.cs: Added method for altering invalid area
18454         * TextBoxBase.cs: Implemented TextLength
18455
18456 2005-01-28  Peter Bartok  <pbartok@novell.com>
18457
18458         * XplatUIX11.cs: Improvement over last patch, not sending
18459           the WM_PAINT directly anymore, instead we scroll any pending
18460           exposed areas and let the system pick out the WM_PAINT later
18461
18462 2005-01-28  Peter Bartok  <pbartok@novell.com>
18463
18464         * SWF.csproj: Deleted, no longer used. Instead,
18465           Managed.Windows.Forms/SWF.csproj should be used
18466         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18467           directly, to avoid a potential race condition with the next
18468           scroll
18469
18470 2005-01-28  Peter Bartok  <pbartok@novell.com>
18471
18472         * XplatUI.cs: Made class internal
18473
18474 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18475
18476         * CheckedListBox.cs:
18477                 - Draw focus
18478                 - Fixed Drawing
18479                 - Missing methods and events
18480
18481 2005-01-27  Peter Bartok  <pbartok@novell.com>
18482
18483         * Application.cs (Run): Don't use form if we don't have one
18484
18485 2005-01-27  Peter Bartok  <pbartok@novell.com>
18486
18487         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18488
18489 2005-01-27  Peter Bartok  <pbartok@novell.com>
18490
18491         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18492         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18493         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18494         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18495         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18496         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18497         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18498         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18499         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18500         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18501         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18502         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18503
18504 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18505
18506         * Combobox.cs:
18507                 - Draw focus on Simple Combobox
18508                 - Fixes drawing issues
18509                 - fixes 71834
18510
18511 2005-01-27  Peter Bartok  <pbartok@novell.com>
18512
18513         * Form.cs:
18514           - Place window in default location, instead of hardcoded 0/0
18515           - Send initial LocationChanged event
18516         * Control.cs:
18517           - UpdateBounds after creation to find out where the WM placed us
18518           - Make sure that if the ParentForm changes location the Form
18519             is notified
18520         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18521             to the root, but to whatever the WM placed around us.
18522             Translate to root coordinates before returning toplevel
18523             coordinates
18524         * XplatUIWin32.cs: Removed debug output
18525         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18526           flag to GetWindowPos, to allow translation of coordinates on X11
18527
18528 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18529
18530         * ListBox.cs: connect LostFocus Event
18531
18532 2005-01-27  Peter Bartok  <pbartok@novell.com>
18533
18534         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18535           XplatUIX11.cs: Extended the Systray API
18536         * Form.cs: Removed debug output
18537         * Application.cs: Fixed focus assignment, always need to call
18538           XplatUI.Activate() since Form.Activate() has rules that may
18539           prevent activation
18540         * NotifyIcon.cs: Should be complete now
18541         * ToolTip.cs: Worked around possible timer bug
18542
18543 2005-01-27  Jackson Harper  <jackson@ximian.com>
18544
18545         * TabControl.cs:
18546         - Only invalidate the effected tabs when the
18547         selected index changes. This reduces drawing and gets rid of some
18548         flicker.
18549         - Only refresh if the tabs need to be shifted, otherwise only
18550         invalidate the slider button.
18551         - On windows the tabs are not filled to right if the slider is
18552         visible.
18553         
18554 2005-01-27  Jackson Harper  <jackson@ximian.com>
18555
18556         * TabControl.cs: Only refresh on mouseup if we are showing the
18557         slider. Also only invalidate the button whose state has changed.
18558
18559 2005-01-26  Peter Bartok  <pbartok@novell.com>
18560
18561         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18562         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18563           and SystrayRemove() methods
18564         * XplatUIOSX.cs: Stubbed Systray methods
18565         * XplatUIX11.cs:
18566           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18567             methods
18568           - Fixed broken XChangeProperty calls (marshalling messed up things)
18569         * X11Structs.cs: Added enums and structs required for Size hinting
18570         * NotifyIcon.cs: Added & implemented
18571
18572 2005-01-26  Jackson Harper  <jackson@ximian.com>
18573
18574         * TabControl.cs: Space vertically layed out tabs properly.
18575
18576 2005-01-26  Peter Bartok  <pbartok@novell.com>
18577
18578         * Form.cs (CreateClientParams): Always set the location to 0,0
18579           since we're a child window.
18580
18581         * Control.cs (SetVisibleCore): Always explicitly setting the location
18582           of a toplevel window, apparently X11 doesn't like to move windows
18583           while they're not mapped.
18584
18585 2005-01-26  Jackson Harper  <jackson@ximian.com>
18586
18587         * TabControl.cs: Implement FillToRight size mode with vertically
18588         rendered tabs.
18589
18590 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18591
18592         * ControlPaint.cs, ThemeWin32Classic.cs
18593                 - Fixes DrawFocusRectangle
18594
18595 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18596
18597         * MenuAPI.cs:
18598                 - MenuBar tracking only starts when item is first clicked
18599                 - Fixes menu hidding for multiple subitems
18600                 - Unselect item in MenuBar when item Executed
18601                 - Fixes bug 71495
18602
18603 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18604
18605         * ListControl.cs:
18606                 - IsInputKey for ListBox
18607         * ListBox.cs:
18608                 - Focus item
18609                 - Shift and Control item selection
18610                 - Implement SelectionMode.MultiExtended
18611                 - Fixes RightToLeft
18612         * ComboBox.cs:
18613                 - IsInputKey implemented
18614                 - Do not generate OnTextChangedEdit on internal txt changes
18615                 
18616 2005-01-23  Peter Bartok  <pbartok@novell.com>
18617
18618         * AccessibleObject.cs: Partially implemented Select()
18619         * MonthCalendar.cs: Added missing attributes and events
18620         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18621           form can properly override CreateParams.
18622         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18623           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18624           Control performs Invalidate & Update
18625         * NativeWindow (CreateHandle): Added special handling for Form
18626           and Form.FormParent classes to allow overriding of From.CreateParams
18627         * Control.cs:
18628           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18629             name 'owner'
18630           - ControlNativeWindow: Added Owner property
18631           - Removed usage of Refresh() on property changes, changed into
18632             Invalidate(), we need to wait until the queue is processed for
18633             updates, direct calls might cause problems if not all vars for
18634             Paint are initialized
18635           - Added call to UpdateStyles() when creating the window, to set any
18636             styles that CreateWindow might have ignored.
18637           - Added support for Form CreateParent overrides to UpdateStyles()
18638         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18639           CreateParams are now properly overridable
18640         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18641           CreateParams are now properly overridable
18642
18643 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18644
18645         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18646         OnTextBoxChanged.
18647
18648         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18649         recursive invocation that I have not figured out yet.
18650
18651         Reset the timer when not using (it was accumulating).
18652
18653
18654         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18655         user has made changes that require validation.
18656
18657         Reset changing to avoid loops.
18658
18659 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18660
18661         * NumericUpDown.cs: Display value at startup.
18662
18663         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18664         ValidateEditText.
18665
18666         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18667         filled in.  Added some basic parsing of text.
18668
18669         Still missing the OnXXX method overrides, and figuring out the
18670         events that must be emitted.
18671
18672         * UpDownBase.cs: Handle UserEdit on the Text property.
18673         
18674 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18675
18676         * ComboBox.cs:
18677           - Fixes IntegralHeight
18678           - ToString method
18679
18680 2005-01-21  Jackson Harper  <jackson@ximian.com>
18681
18682         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18683         is set so that the page visibility is updated and the tabs are
18684         sized correctly.
18685
18686 2005-01-21  Jackson Harper  <jackson@ximian.com>
18687
18688         * TabControl.cs: Use cliping rectangle for blitting. Give the
18689         theme the clipping rect so we can do clipping while
18690         drawing. Remove some debug code.
18691
18692 2005-01-21  Jackson Harper  <jackson@ximian.com>
18693
18694         * TabPage.cs: Add a new method so tab pages can force the tab
18695         control to recalculate the tab page sizes.
18696         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18697         sizes.
18698
18699 2005-01-20  Jackson Harper  <jackson@ximian.com>
18700
18701         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18702
18703 2005-01-20  Jackson Harper  <jackson@ximian.com>
18704
18705         * TreeView.cs: Set the bounds for nodes properly. They were
18706         getting screwed up when checkboxes were not enabled, but images
18707         were.
18708
18709 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18710
18711         * ListBox.cs:
18712                 - Owner draw support
18713                 - Fixes
18714                 
18715 2005-01-20  Jackson Harper  <jackson@ximian.com>
18716
18717         * XplatUIStructs.cs: More misc keys
18718         * X11Keyboard.cs: Ignore some control keys.
18719
18720 2005-01-20  Jackson Harper  <jackson@ximian.com>
18721
18722         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18723         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18724
18725 2005-01-19  Peter Bartok  <pbartok@novell.com>
18726
18727         * Control.cs: Un-selecting the control when it is loosing focus
18728
18729 2005-01-19  Jackson Harper  <jackson@ximian.com>
18730
18731         * TreeView.cs: Hook up to the text controls leave event so we can
18732         end editing when the users clicks outside the text box.
18733         
18734 2005-01-19  Jackson Harper  <jackson@ximian.com>
18735
18736         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18737         get set in the conversion array.
18738
18739 2005-01-19  Peter Bartok  <pbartok@novell.com>
18740
18741         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18742           focus is properly set
18743         * Button.cs:
18744           - Added missing attributes
18745           - removed styles, those are already set in the base class
18746         * ButtonBase.cs:
18747           - Added missing attributes
18748           - Added clip window styles
18749         * CheckBox.cs: Added missing attributes
18750         * CommonDialog.cs:
18751           - FormParentWindow.CreateParams: Added required clip styles
18752         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18753           also filters modifier keys
18754         * MessageBox.cs:
18755           - Added assignment of Accept and Cancel button to enable Enter
18756             and Esc keys in MessageBox dialogs
18757           - FormParentWindow.CreateParams: Added required clip styles
18758         * RadioButton.cs: Added missing attributes
18759         * TextControl.cs: No longer draws selection if control does not
18760           have focus
18761         * TextBoxBase.cs:
18762           - Now draws simple rectangle around test area to make it obvious
18763             there's a control. This is a hack until we properly support borders
18764           - A few simple fixes to support selections better, now erases selected
18765             text when typing, and resets selection when using movement keys
18766
18767 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18768
18769         * UpDownBase.cs: Added some new properties.
18770
18771         * DomainUpDown.cs: Implement a lot to get my test working.
18772
18773 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18774
18775         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18776
18777 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18778
18779         * OSXStructs (WindowAttributes): Fixed csc complaints
18780
18781 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18782
18783         * XplayUIOSX.cs:
18784           OSXStructs.cs: Initial refactor to move enums and consts into
18785           OSXStructs and use them in the driver for greater readability.
18786
18787 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18788
18789         * XplatUIOSX.cs: Initial support for Standard Cursors.
18790         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18791
18792 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18793
18794         * ComboBox.cs: ability to change style when the ctrl is already
18795         created, missing methods and events, bug fixes, signature fixes
18796
18797 2005-01-19  Peter Bartok  <pbartok@novell.com>
18798
18799         * Cursors.cs (ctor): Added ctor to fix signature
18800
18801 2005-01-18  Peter Bartok  <pbartok@novell.com>
18802
18803         * Button.cs: Implemented DoubleClick event
18804         * ButtonBase.cs:
18805           - Fixed keyboard handling to behave like MS, where the press of
18806             Spacebar is equivalent to a mousedown, and the key release is
18807             equivalent to mouseup. Now a spacebar push will give the same
18808             visual feedback like a mouse click.
18809           - Added missing attributes
18810           - Added ImeModeChanged event
18811           - Added support for generating DoubleClick event for derived classes
18812         * CheckBox.cs:
18813           - Implemented DoubleClick event
18814           - Added missing attributes
18815         * CommonDialog.cs: Added missing attribute
18816         * ContextMenu.cs: Added missing attributes
18817         * RadioButton.cs:
18818           - AutoChecked buttons do not allow to be unselected when clicked
18819             (otherwise we might end up with no selected buttons in a group)
18820           - Added missing attributes
18821           - Implemented DoubleClickEvent
18822         * ThreadExceptionDialog.cs: Enabled TextBox code
18823
18824 2005-01-18  Peter Bartok  <pbartok@novell.com>
18825
18826         * Form.cs: Removed debug output
18827         * Button.cs: Added support for DoubleClick method
18828
18829 2005-01-18  Peter Bartok  <pbartok@novell.com>
18830
18831         * Form.cs:
18832           - Added method to parent window that allows triggering size
18833             calculations when a menu is added/removed
18834           - set_Menu: Cleaned up mess from early days of Form and Control,
18835             now properly triggers a recalc when a menu is added/removed
18836           - Added case to select form itself as focused form if no child
18837             controls exist
18838           - Added PerformLayout call when showing dialog, to ensure properly
18839             placed controls
18840         * Control.cs:
18841           - Select(): Made internal so Form can access it
18842           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18843             status
18844         * Application.cs (Run): Removed hack and calls PerformLayout instead
18845           to trigger calculation when Form becomes visible
18846
18847 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18848
18849         * ComboBox.cs: fixes for ownerdraw
18850
18851 2005-01-18  Peter Bartok  <pbartok@novell.com>
18852
18853         * TextControl.cs:
18854           - Sentinel is no longer static, each Document gets it's own, this
18855             avoids locking or alternatively overwrite problems when more
18856             than one text control is used simultaneously.
18857           - Switched to use Hilight and HilightText brushes for text selection
18858
18859         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18860
18861 2005-01-18  Peter Bartok  <pbartok@novell.com>
18862
18863         * Control.cs:
18864           - Hooked up the following events:
18865                 o ControlAdded
18866                 o ControlRemoved
18867                 o HandleDestroyed
18868                 o ImeModeChanged
18869                 o ParentChanged
18870                 o TabStopChanged
18871                 o Invalidated
18872                 o SystemColorsChanged
18873                 o ParentFontChanged
18874                 o Move
18875           - Removed debug output
18876           - Added a call to the current theme's ResetDefaults when a color change
18877             is detected
18878         * Form.cs: Now setting the proper ImeMode
18879         * Theme.cs: Defined a method to force recreation of cached resources
18880           and rereading of system defaults (ResetDefaults())
18881         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18882
18883 2005-01-17  Peter Bartok  <pbartok@novell.com>
18884
18885         * Control.cs: Added missing attributes
18886
18887 2005-01-17  Jackson Harper  <jackson@ximian.com>
18888
18889         * TreeNode.cs: Implement editing. Add missing properties selected
18890         and visible.
18891         * TreeView.cs: Implement node editing. Also some fixes to use
18892         Invalidate (invalid area) instead of Refresh when selecting.
18893
18894 2005-01-17  Peter Bartok  <pbartok@novell.com>
18895
18896         * Control.cs:
18897           - Implemented InvokeGotFocus() method
18898           - Implemented InvokeLostFocus() method
18899           - Implemented InvokePaint() method
18900           - Implemented InvokePaintBackground() method
18901           - Implemented InvokeClick() method
18902           - Implemented FindForm() method
18903           - Implemented RectangleToClient() method
18904           - Implemented ClientToRectangle() method
18905           - Implemented ResetBackColor() method
18906           - Implemented ResetCursor() method
18907           - Implemented ResetFont() method
18908           - Implemented ResteForeColor() method
18909           - Implemented ResetImeMode() method
18910           - Implemented ResetLeftToRight() method
18911           - Implemented ResetText() method
18912           - Implemented Scale() methods
18913           - Implemented ScaleCore() method
18914           - Implemented Update() method
18915           - Removed unused variables
18916           - Stubbed AccessibilityNotifyClients and
18917             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18918             with those yet)
18919           - Now setting proper default for RightToLeft property
18920           - Fixed bug in SetClientSizeCore that would cause windows to get
18921             really big
18922           - Now sending Click/DoubleClick events
18923           - Now selecting controls when left mouse button is clicked on
18924             selectable control
18925         * AccessibleEvents.cs: Added
18926         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18927         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18928         * XplatUIWin32.cs: Implemented UpdateWindow() method
18929         * XplatUIX11.cs: Implemented UpdateWindow() method
18930         * Form.cs: Removed stray semicolon causing CS0162 warning
18931         * ThemeWin32Classic.cs: Fixed unused variable warnings
18932         * ScrollableControl.cs: Now calls base method for ScaleCore
18933         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18934           style to avoid interference with internal click handler (which is
18935           different than standard Control click handling)
18936         * RadioButton.cs:
18937           - Now unchecks all sibling radio buttons when control is
18938             selected (Fixes #68756)
18939           - Removed internal tabstop variable, using the one inherited from
18940             Control
18941
18942 2005-01-17  Jackson Harper  <jackson@ximian.com>
18943
18944         * NavigateEventArgs.cs: Fix base type.
18945         * LinkLabel.cs: Sig fix
18946         
18947 2005-01-17  Jackson Harper  <jackson@ximian.com>
18948
18949         * TreeView.cs: Only invalidate the effected nodes bounds when
18950         selecting nodes.
18951
18952 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18953
18954         * XplatUIWin32.cs: fixes Win32 marshaling
18955         * XplatUIX11.cs: fixes method signature
18956
18957 2005-01-17  Peter Bartok  <pbartok@novell.com>
18958
18959         * XplatUIX11.cs: Clean up resources when we no longer need them
18960
18961 2005-01-17  Peter Bartok  <pbartok@novell.com>
18962
18963         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18964           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18965           and DestroyCursor() methods.
18966         * Cursor.cs: Partially implemented, now supports standard cursors;
18967           still contains some debug code
18968         * Cursors.cs: Implemented class
18969         * Control.cs:
18970           - WndProc(): Added handling of WM_SETCURSOR message, setting the
18971             appropriate cursor
18972           - Implemented Cursor property
18973           - Replaced break; with return; more straightforwar and possibly
18974             faster
18975           - Now properly setting the result for WM_HELP
18976         * X11Structs.cs: Added CursorFontShape enum
18977         * XplatUIStructs.cs:
18978           - Added StdCursor enum (to support DefineStdCursor() method)
18979           - Added HitTest enum (to support sending WM_SETCURSOR message)
18980         * XplatUIX11.cs:
18981           - Now sends the WM_SETCURSOR message
18982           - Implemented new cursor methods
18983         * XplatUIOSX.cs: Stubbed new cursor methods
18984         * XplatUIWin32.cs:
18985           - Implemented new cursor methods
18986           - Added GetSystemMetrics function and associated enumeration
18987
18988 2005-01-15  Peter Bartok  <pbartok@novell.com>
18989
18990         * Control.cs:
18991           - WndProc(): Now handles EnableNotifyMessage
18992           - SelectNextControl(): Fixed bug where if no child or sibling
18993             controls exist we looped endlessly
18994
18995 2005-01-14  Jackson Harper  <jackson@ximian.com>
18996
18997         * TreeView.cs: Recalculate the tab pages when a new one is added
18998         so that the proper bounding rects are created.
18999
19000 2005-01-14  Jackson Harper  <jackson@ximian.com>
19001
19002         * TreeView.cs: Draw a gray box instead of a grip in the lower
19003         right hand corner when there are both horizontal and vertical
19004         scroll bars.
19005
19006 2005-01-14  Jackson Harper  <jackson@ximian.com>
19007
19008         * Control.cs: When erasing backgrounds use FromHwnd instead of
19009         FromHdc when there is a NULL wparam. This occurs on the X driver.
19010         * XplatUIX11.cs: Set the wparam to NULL.
19011
19012 2005-01-13  Jackson Harper  <jackson@ximian.com>
19013
19014         * PictureBox.cs: Implement missing methods (except ToString, need
19015         to test that on windows) and events. When visibility is changed we
19016         need to redraw the image because the buffers are killed. When size
19017         is changed refresh if the sizemode needs it.
19018
19019 2005-01-13  Peter Bartok  <pbartok@novell.com>
19020
19021         * Control.cs (SelectNextControl): Was using wrong method to select
19022           a control
19023
19024 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19025
19026         * ComboBox.cs: fixes dropstyle
19027
19028 2005-01-13  Peter Bartok  <pbartok@novell.com>
19029
19030         * Form.cs:
19031           - Implemented Select() override
19032           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19033           - Now sets keyboard focus on startup
19034         * Control.cs (SelectNextControl): Now properly handles directed=true
19035         * TextBoxBase.cs:
19036           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19037           - Added (really bad) focus rectangle (mostly for testing)
19038         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19039           to enforce redraw on focus changes
19040         * ContainerControl.cs:
19041           - Fixed detection of Shift-Tab key presses
19042           - Fixed traversal with arrow keys
19043         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19044           gonna keep this or if it's complete yet
19045         
19046 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19047
19048         * ComboBox.cs: missing properties, fixes
19049
19050 2005-01-13  Peter Bartok  <pbartok@novell.com>
19051
19052         * Panel.cs (ctor): Setting Selectable window style to off
19053         * Splitter.cs (ctor): Setting Selectable window style to off
19054         * GroupBox.cs (ctor): Setting Selectable window style to off
19055         * Label.cs (ctor): Setting Selectable window style to off
19056
19057 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19058
19059         * UpDownBase.cs (InitTimer): If the timer has been already
19060         created, enable it.
19061
19062         Use a TextBox instead of a Label.
19063
19064 2005-01-12  Jackson Harper  <jackson@ximian.com>
19065
19066         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19067         draw the connecting node lines (when ShowLines is true).
19068         * TreeNode.cs: The nodes index can now be updated. This is used
19069         when a node collection is sorted.
19070         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19071         insert or an existing unsorted node collection can be sorted.
19072         
19073 2005-01-12  Peter Bartok  <pbartok@novell.com>
19074
19075         * ContainerControl.cs: Implemented ProcessDialogKeys()
19076
19077 2005-01-12  Peter Bartok  <pbartok@novell.com>
19078
19079         * Control.cs:
19080           - Implemented SelectNextControl() method
19081           - Several focus related bug fixes
19082           - Fixed Docking calculations to match MS documentation and
19083             behaviour
19084
19085 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19086
19087         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19088         bug fixes
19089
19090 2005-01-12  Peter Bartok  <pbartok@novell.com>
19091
19092         * Control.cs:
19093           - Fixed broken Contains() method
19094           - Implemented GetNextControl() method. Finally. This is the pre-
19095             requisite for focus handling.
19096
19097 2005-01-12  Peter Bartok  <pbartok@novell.com>
19098
19099         * OSXStrucs.cs: Added
19100
19101 2005-01-12  Peter Bartok  <pbartok@novell.com>
19102
19103         * XplatUIWin32.cs:
19104           - Removed PeekMessageFlags
19105           - Implemented SetWindowStyle() method
19106         * XplatUIStructs.cs: Added PeekMessageFlags
19107         * X11Structs: Added missing border_width field to XWindowChanges struct
19108         * XplatUIX11.cs:
19109           - PeekMessage: Now throws exception if flags which are not yet
19110             supported are passed
19111           - Implemented SetWindowStyle() method
19112           - Fixed SetZOrder to handle AfterHwnd properly
19113         * XplatUI.cs: Added SetWindowStyle() method
19114         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19115         * Control.cs:
19116           - Implemented UpdateStyles() method
19117           - Implemented UpdateZOrder() method
19118         * XplatUIOSX.cs: Added SetWindowStyle() stub
19119
19120 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19121
19122         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19123         button mouse).
19124
19125
19126 2005-01-11  Jackson Harper  <jackson@ximian.com>
19127
19128         * TreeView.cs: Still need to draw lines to siblings even if out of
19129         the current node is out of the clip.
19130
19131 2005-01-11  Jackson Harper  <jackson@ximian.com>
19132
19133         * TreeView.cs: When setting the hbar/vbar/grip position use
19134         SetBounds so that perform layout is only called once. Also suspend
19135         and resume layout so layout is only done once for all controls.
19136         - Removed some debug fluff
19137         * SizeGrip.cs: Call base implmentation in overriding methods.
19138         - When visibility is changed the drawing buffers are killed so we
19139         need to redraw.
19140
19141 2005-01-11  Jackson Harper  <jackson@ximian.com>
19142
19143         * TreeView.cs: Calculate the open node count while drawing. This
19144         saves us an entire tree traversal for every paint operation. Use
19145         a member var for the open node count so less vars are passed around.
19146
19147 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19148
19149         * MonthCalendar.cs:
19150         - fixed selection to use mousemove, not mouse polling on timer
19151         * ThemeWin32Classic.cs
19152         - removed redundant unused variable "no_more_content"
19153         
19154 2005-01-11  Peter Bartok  <pbartok@novell.com>
19155
19156         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19157           are pending, so it now calls PeekMessage instead of GetMessage;
19158           implemented a incomplete version of PeekMessage
19159         
19160 2005-01-11  Peter Bartok  <pbartok@novell.com>
19161
19162         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19163           I18n issues
19164         * TextBoxBase.cs: Added sending of TextChanged event
19165
19166 2005-01-10  Jackson Harper  <jackson@ximian.com>
19167
19168         * TreeView.cs: Try not to draw outside the clipping rectangle on
19169         each node element.
19170
19171 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19172
19173         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19174
19175 2005-01-10  Jackson Harper  <jackson@ximian.com>
19176
19177         * TreeView.cs:
19178         - Implement fast scrolling. Now only the newly
19179         exposed nodes are drawn and the old image is moved using the
19180         XplatUI::ScrollWindow method.
19181         - Factor in height of nodes when calculating whether or not the
19182         node is in the clipping rect.
19183
19184 2005-01-10  Jackson Harper  <jackson@ximian.com>
19185
19186         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19187
19188 2005-01-10  Peter Bartok  <pbartok@novell.com>
19189
19190         * Application.cs: Added temporary hack to resolve all our resize
19191           required issues on startup. This will get fixed properly at
19192           some point in the future
19193
19194 2005-01-10  Jackson Harper  <jackson@ximian.com>
19195
19196         * SizeGrip.cs: New internal class that is used as a sizing
19197         grip control...hence the name.
19198
19199 2005-01-10  Peter Bartok  <pbartok@novell.com>
19200
19201         * Control.cs: Implemented proper TabIndex handling, now assigning
19202           a tabindex when a control is added to a container
19203         * GroupBox.cs (ctor): Now sets the Container style bit, required
19204           for Control.GetNextControl()
19205
19206 2005-01-09  Jackson Harper  <jackson@ximian.com>
19207
19208         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19209
19210 2005-01-09  Peter Bartok <pbartok@novell.com>
19211
19212         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19213           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19214           an overload for ScrollWindow to allow only scrolling a rectangle
19215
19216 2005-01-09  Peter Bartok <pbartok@novell.com>
19217
19218         * Form.cs:
19219           - Implemented SetDesktopBounds method
19220           - Implemented SetDesktopLocation method
19221
19222 2005-01-08  Jackson Harper  <jackson@ximian.com>
19223
19224         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19225         the node count has changed, this removes to VScroll::Refresh calls
19226         when drawing.
19227
19228 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19229
19230         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19231
19232 2005-01-07  Jackson Harper  <jackson@ximian.com>
19233
19234         * TreeNode.cs: Just update the single node when it is
19235         checked. Don't refresh after toggling, the Expand/Collapse already
19236         handles this.
19237         * TreeView.cs: Respect clipping a little more when drawing. Try
19238         not to redraw things that don't need to be redrawn. Just hide the
19239         scrollbars when they are no longer needed instead of removing
19240         them, so they don't have to be created again and again.
19241         
19242 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19243
19244         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19245         coordinates to window space to place the caret properly, FIXED.
19246         Implement GetWindowState & SetWindowState
19247
19248 2005-01-06  Peter Bartok <pbartok@novell.com>
19249
19250         * Form.cs:
19251           - Implemented ClientSize property
19252           - Implemented DesktopBounds property
19253           - Implemented DesktopLocation property
19254           - Implemented IsRestrictedWindow property
19255           - Implemented Size property
19256           - Implemented TopLevel property
19257           - Implemented FormWindowState property
19258         * Control.cs:
19259           - Implemented GetTopLevel() method
19260           - Implemented SetTopLevel() method
19261         * X11Structs.cs (Atom):
19262           - Added AnyPropertyType definition
19263           - Added MapState definiton and updated XWindowAttribute struct
19264         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19265         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19266         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19267         * XplatUIWin32.cs:
19268           - Implemented GetWindowState() and SetWindowState() methods
19269           - Fixed Win32GetWindowLong return type
19270         * XplatUIX11.cs:
19271           - Introduced central function for sending NET_WM messages
19272           - Implemented GetWindowState() and SetWindowState() methods
19273         * TextBoxBase.cs (set_Lines):
19274           - Now uses Foreground color for text added via Text property (Duh!)
19275           - Added code to remember programmatically requested size (fixes
19276             behaviour when Multiline is set after Size)
19277           - Added AutoSize logic
19278
19279 2005-01-06  Jackson Harper  <jackson@ximian.com>
19280
19281         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19282
19283 2005-01-06  Jackson Harper  <jackson@ximian.com>
19284
19285         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19286         set to less then 0.
19287
19288 2005-01-06  Jackson Harper  <jackson@ximian.com>
19289
19290         * ScrollableControl.cs: Lazy init the scrollbars.
19291         
19292 2005-01-06  Jackson Harper  <jackson@ximian.com>
19293
19294         * Theme.cs: Speed up getting pens and solid brushes, by using
19295         their ARGB as a hash instead of tostring and not calling Contains.
19296
19297 2005-01-06  Peter Bartok <pbartok@novell.com>
19298
19299         * Form.cs:
19300           - Implemented OnActivated and OnDeactivate event trigger
19301           - Implemented Activate() method
19302           - Fixed ShowDialog() to activate the form that was active before
19303             the dialog was shown
19304         * XplatUIX11.cs:
19305           - Added global active_window var that tracks the currently active
19306             X11 window
19307           - Now always grabs Property changes from the root window to always
19308             catch changes on the active window property
19309           - Added code to PropertyNotify handler to send Active/Inactive
19310             messages when state changes. This puts X11 and Win32 en par on
19311             WM_ACTIVATE notifications (except for double notifications when
19312             the user clicks away from our modal window to another one of our
19313             windows)
19314
19315 2005-01-05  Jackson Harper  <jackson@ximian.com>
19316
19317         * ImageList.cs: Implment ctor
19318
19319 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19320
19321         * XplatUIOSX.cs: Implement Activate/SetTopmost
19322
19323 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19324
19325         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19326
19327 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19328
19329         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19330
19331 2005-01-05  Peter Bartok <pbartok@novell.com>
19332
19333         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19334           XplatUIOSX.cs: Added GetActive method to return the currently
19335           active window for the application (or null, if none is active)
19336         * Form.cs:
19337           - Implemented ActiveForm
19338           - Commented out owner assignment for modal dialogs (causes problems
19339             on Win32, since the owner will be disabled)
19340           - Reworked some Active/Focus handling (still incomplete)
19341         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19342           (causes problems on Win32, since the owner will be disabled)
19343         * IWin32Window: Added ComVisible attribute
19344
19345 2005-01-05  Peter Bartok <pbartok@novell.com>
19346
19347         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19348           required XplatUI functions.
19349
19350 2005-01-05  Peter Bartok <pbartok@novell.com>
19351
19352         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19353           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19354           to implement focus and activation handling; still incomplete and
19355           with debug output
19356
19357 2005-01-04  Peter Bartok <pbartok@novell.com>
19358
19359         * TextBoxBase.cs: Changed access level for Document property to
19360           match switch to internal for TextControl
19361
19362 2005-01-04  Peter Bartok <pbartok@novell.com>
19363
19364         * AccessibleObject: Added ComVisible attribute
19365
19366 2005-01-04  Jackson Harper  <jackson@ximian.com>
19367
19368         * X11Keyboard.cs: Remove unneeded var.
19369
19370 2005-01-04  Jackson Harper  <jackson@ximian.com>
19371
19372         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19373         but PAINT.
19374         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19375         ClientMessage. This makes apps exit cleanly (more often).
19376         
19377 2005-01-04  Jackson Harper  <jackson@ximian.com>
19378
19379         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19380         handling focus, return correct colors and fonts,
19381         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19382         handle selection, horizontal scrolling, and mouse interaction.
19383
19384 2005-01-04  Peter Bartok <pbartok@novell.com>
19385
19386         * ICommandExecutor.cs: Added
19387         * IDataGridColumnStyleEditingNotificationService.cs: Added
19388         * IFeatureSupport.cs: Added
19389         * IFileReaderService.cs: Added
19390         * IDataObject.cs: Added ComVisible attribute
19391         * AmbientProperties.cs: Added
19392         * BaseCollection.cs: Added missing attributes
19393         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19394         * BaseCollection.cs: Added missing attributes
19395         * Binding.cs: Added TypeConverter attribute
19396         * BindingContext.cs: Added DefaultEvent attribute
19397         * BindingsCollection.cs: Added DefaultEvent attribute
19398         * Button.cs: Added DefaultValue attribute
19399         * DragEventArgs.cs: Added ComVisible attribute
19400         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19401         * KeyEventArgs.cs: Added ComVisible attribute
19402         * KeyPressEventArgs.cs: Added ComVisible attribute
19403         * MouseEventArgs.cs: Added ComVisible attribute
19404         * NavigateEventArgs.cs: Added
19405         * NavigateEventHandler.cs: Added
19406         * FeatureSupport.cs: Added
19407         * OSFeature.cs: Added
19408         * Theme.cs: Added abstract Version property to support OSFeature
19409         * ThemeWin32Classic.cs: Added Version property to
19410           support OSFeature.Themes
19411         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19412           the proper styles to avoid background drawing are set, also doesn't
19413           match MS signature
19414         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19415         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19416         * ScrollEventArgs.cs: Added ComVisible attribute
19417         * SplitterEventArgs.cs: Added ComVisible attribute
19418         * AccessibleSelection.cs: Added Flags attribute
19419         * Appearance.cs: Added ComVisible attribute
19420         * Border3DSide.cs: Added ComVisible attribute
19421         * Border3DStyle.cs: Added ComVisible attribute
19422         * BorderStyle.cs: Added ComVisible attribute
19423         * DragAction.cs: Added ComVisible attribute
19424         * ErrorBlinkStyle.cs: Added
19425         * ScrollEventType.cs: Added ComVisible attribute
19426         * AnchorStyles.cs: Added Editor attribute
19427         * DockStyle.cs: Added Editor attribute
19428         * HorizontalAlignment.cs: Added ComVisible attribute
19429         * HelpEventArgs.cs: Added ComVisible attribute
19430         * PaintEventArgs.cs: Added IDisposable
19431
19432 2005-01-04  Peter Bartok <pbartok@novell.com>
19433
19434         * TextControl.cs: Switched Line, LineTag and Document classes to
19435           internal
19436
19437 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19438
19439         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19440         Simple mode, fixes, IntegralHeight, etc.
19441
19442 2005-01-04  Peter Bartok <pbartok@novell.com>
19443
19444         * TextBoxBase.cs: Using proper font variable now
19445
19446 2005-01-04  Peter Bartok <pbartok@novell.com>
19447
19448         * Form.cs (ShowDialog): Set parent to owner, if provided
19449         * GroupBox.cs: Removed unused vars
19450         * TextControl.cs:
19451           - Added GetHashCode() for Document and LineTag classes
19452           - Removed unused variables
19453           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19454             to allow translation between continuous char position and line/pos
19455         * CheckBox.cs: Removed vars that are provided by base class
19456         * RadioButton.cs: Removed vars that are provided by base class, added
19457           new keyword where required
19458         * LinkLabel.cs: Added new keyword where required
19459         * Control.cs (WndProc): Removed unused variable
19460         * TextBoxBase.cs:
19461           - Finished SelectionLength property
19462           - Implemented SelectionStart property
19463           - Implemented Text property
19464           - Removed unused vars
19465         * MessageBox.cs: Added new keyword where required
19466         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19467           WndProc signature
19468         * MenuAPI.cs: Added new keyword where required
19469         * ButtonBase.cs: Removed vars that are provided by base class, added
19470           new keyword where required
19471         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19472           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19473           into this)
19474         * Application.cs (Run): Now triggers the ThreadExit event
19475         * CommonDialog.cs: Added new keyword where required; now properly sets
19476           parent (owner) for dialog
19477         * XplatUIX11.cs: Commented out unused vars
19478         * StatusBar.cs: Fixed signature for Text property
19479         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19480
19481 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19482
19483         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19484         TrackBar.cs, MonthCalendar.cs: remove unused vars
19485
19486 2005-01-03  Jackson Harper  <jackson@ximian.com>
19487
19488         * ThemeWin32Classic.cs:
19489         * X11Keyboard.cs: Remove unused vars.
19490
19491 2005-01-03  Peter Bartok  <pbartok@novell.com>
19492
19493         * TextBox.cs:
19494           - set_Text: Tied into TextControl
19495           - set_TextAlignment: Tied into TextControl
19496         * TextControl.cs:
19497           - Added alignment properties and implemented alignment handling
19498             and drawing (still has a bug, not generating proper expose events)
19499           - Added new Line() constructor to allow passing the line alignment
19500           - Fixed selection setting, properly handling end<start now
19501           - Added aligment considerations to RecalculateDocument()
19502         * TextBoxBase.cs:
19503           - Now properly enforces control height for single line controls
19504           - Added support for CharacterCasing
19505           - Added IsInputKey override
19506           - Fixed Keys.Enter logic
19507           - Added SetBoundsCore override
19508           - Fixed mouse selection handling
19509
19510 2005-01-03  Jackson Harper  <jackson@ximian.com>
19511
19512         * TreeView.cs:
19513           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19514           - Checkboxes are always aligned to the bottom of the node,
19515           regardless of item height.
19516           - Use the node bounds to draw the text so we can center it when
19517           the item height is greater then the font height.
19518           - Node::Bounds are only the text part of the node.
19519         * TreeNode.cs: New method to combine collapsing and unchecking all
19520           nodes recursively.
19521
19522 2005-01-02  Jackson Harper  <jackson@ximian.com>
19523
19524         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19525         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19526         tree when a check is changed. TODO: Only refresh the checked node.
19527
19528 2004-12-30  Jackson Harper  <jackson@ximian.com>
19529
19530         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19531         * TreeNode.cs: When collapsing make sure to never collapse the
19532         root node.
19533
19534 2004-12-29  Jackson Harper  <jackson@ximian.com>
19535
19536         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19537         
19538 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19539
19540         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19541
19542 2004-12-28  Peter Bartok  <pbartok@novell.com>
19543
19544         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19545           not yet assigned
19546
19547 2004-12-28  Peter Bartok  <pbartok@novell.com>
19548
19549         * Control.cs (WndProc): Added WM_HELP handler, now generates
19550           HelpRequested event
19551         * Form.cs: Added HelpButton property and required support code
19552         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19553
19554 2004-12-28  Peter Bartok  <pbartok@novell.com>
19555
19556         * CommonDialog.cs:
19557           - Made DialogForm.owner variable internal
19558           - Added check to ensure owner form is set before setting
19559             owner properties in CreateParams
19560
19561 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19562
19563         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19564           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19565           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19566           system to support borderless/titleless windows (implements menus).
19567           Fix GetWindowPos.  Implement initial background color support for
19568           views.
19569
19570 2004-12-28  Peter Bartok  <pbartok@novell.com>
19571
19572         * Form.cs (get_CreateParams): Make sure we have an owner before using
19573           the owner variable. Implement proper default if no owner exists
19574
19575 2004-12-28  Peter Bartok  <pbartok@novell.com>
19576
19577         * In preparation for making Managed.Windows.Forms the default build target
19578           for System.Windows.Forms, the following stubbed files were added.
19579           Dialogs are currently being implemented by contributors and are only
19580           short-term place holders.
19581         * ColorDialog.cs: Initial check-in (minmal stub)
19582         * DataGrid.cs: Initial check-in (minimal stub)
19583         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19584         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19585         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19586         * FontDialog.cs: Initial check-in (minimal stub)
19587         * FileDialog.cs: Initial check-in (minimal stub)
19588         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19589         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19590         * OpenFileDialog: Initial check-in (minimal stub)
19591         * IComponentEditorPageSite.cs: Initial check-in
19592         * Splitter.cs: Initial check-in (for Jackson)
19593         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19594         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19595         * TextBox.cs: Initial check-in; still needs some wiring to
19596           TextControl backend
19597         * Form.cs: Implemented ControlBox property
19598         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19599         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19600         * TextControl.cs: Added selection functionality; added todo header
19601         * TextBoxBase.cs:
19602           - Implemented Lines property
19603           - Implemented TextHeight property
19604           - Implemented SelectedText property
19605           - Implemented SelectionLength property
19606           - Implemented SelectAll method
19607           - Implemented ToString method
19608           - Removed and cleaned up some debug code
19609           - Implemented (still buggy) mouse text selection
19610
19611 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19612
19613         * ComboBox.cs: Complete DropDownList implementation, fixes.
19614
19615 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19616
19617         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19618         * ComboBoxStyle.cs: ComboBoxStyle enum
19619         * ComboBox.cs: Initial work on ComboBox control
19620
19621 2004-12-21  Peter Bartok  <pbartok@novell.com>
19622
19623         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19624           forward so that anything that creates a window gets the default,
19625           also no longer uses Visible property in CreateParams to avoid
19626           walking up the parent chain and possibly get the wrong visible
19627           status. Fixed IsVisible to no longer walk up to the parent.
19628
19629 2004-12-21  Peter Bartok  <pbartok@novell.com>
19630
19631         * Form.cs (ShowDialog): Unset modality for the proper window
19632  
19633 2004-12-20  Peter Bartok  <pbartok@novell.com>
19634
19635         * CommonDialog.cs: Initial check-in
19636
19637 2004-12-20  Peter Bartok  <pbartok@novell.com>
19638
19639         * Control.cs (Visible): Now uses the parent window instead of the
19640           client area window for the property
19641
19642         * Form.cs
19643           - ShowDialog(): Now uses the proper window for modality
19644           - The default visibility state for the form parent is now false. This
19645             will prevent the user from seeing all the changes to the form and
19646             its controls before the application hits Application.Run()
19647           - Removed some stale commented out code
19648
19649         * NativeWindow.cs:
19650           - Added FindWindow() method to have a method to check for existence
19651             of a window handle
19652           - Added ability to override default exception handling (for example
19653             when debugging with VS.Net; to do this the ExternalExceptionHandler
19654             define must be set
19655           - Removed some useless debug output
19656
19657         * XplatUIX11.cs:
19658           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19659             not working as expected
19660           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19661             property to allow switching back to the modal window if focus is
19662             given to another one of our windows (Application Modal)
19663           - Now only sets override_redirect if we create a window
19664             without WS_CAPTION
19665           - Moved EventMask selection before mapping of newly created window
19666             so we can catch the map event as well
19667           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19668           - Added various Atom related DllImports
19669           - Implemented Exit() method
19670           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19671             in the CreateParams
19672
19673         * MessageBox.cs: Now properly deals with the FormParent window by
19674           providing an override the FormParent CreateParams property to
19675           set as POPUP instead of OVERLAPPED window.
19676
19677 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19678
19679         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19680         Minor code cleanup.
19681
19682 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19683         
19684         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19685
19686 2004-12-18  Peter Bartok  <pbartok@novell.com>
19687
19688         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19689           implementing SetModal() method
19690
19691 2004-12-18  Peter Bartok  <pbartok@novell.com>
19692
19693         * X11Structs.cs (XGCValues): Fixed type of function element
19694         * XplatUI.cs: Added ScrollWindow() method
19695         * XplatUIDriver.cs: Added ScrollWindow() abstract
19696         * XplatUIWin32.cs: Implemented ScrollWindow() method
19697         * XplatUIX11.cs: Implemented ScrollWindow() method
19698         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19699
19700 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19701
19702         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19703         Some more keyboard support (INCOMPLETE)
19704
19705 2004-12-17  Peter Bartok  <pbartok@novell.com>
19706
19707         * TextControl.cs:
19708         - Added color attribute to line tags.
19709         - Added color argument to all functions dealing with tags
19710         - Added color argument support to various functions
19711         - Fixed miss-calculation of baseline/shift in certain circumstances
19712
19713         * TextBoxBase.cs: Added new color option to test code
19714
19715 2004-12-17  Jackson Harper  <jackson@ximian.com>
19716
19717         * TreeNode.cs:
19718         * MonthCalendar.cs: Signature fixes
19719
19720 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19721
19722         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19723         keyboard event moved it.  Create a new graphics context for each paint resolves this
19724
19725 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19726
19727         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19728         Make caret exist and go blink blink.  Initial keyboard support.
19729         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19730         works.
19731
19732 2004-12-17  Jackson Harper  <jackson@ximian.com>
19733
19734         * XplatUIStructs.cs: Updated set of virtual keycodes.
19735         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19736
19737 2004-12-17  Jackson Harper  <jackson@ximian.com>
19738
19739         * XplatUIX11.cs: Prune old keyboard code.
19740
19741 2004-12-17  Jackson Harper  <jackson@ximian.com>
19742
19743         * XplatUIX11.cs: When generating mouse wparams get the modifier
19744         keys from the ModifierKeys property.
19745
19746 2004-12-17  Jackson Harper  <jackson@ximian.com>
19747
19748         * X11Keyboard.cs: Send up/down input when generating
19749         messages. Remove some unused vars.
19750
19751 2004-12-17  Jackson Harper  <jackson@ximian.com>
19752
19753         * TabControl.cs:
19754         * TreeView.cs: get rid of warnings.
19755
19756 2004-12-17  Jackson Harper  <jackson@ximian.com>
19757
19758         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19759
19760 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19761
19762         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19763           CheckedListBox.cs: Implementation
19764
19765 2004-12-17  Peter Bartok  <pbartok@novell.com>
19766
19767         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19768
19769 2004-12-16  Peter Bartok  <pbartok@novell.com>
19770
19771         * TextControl.cs:
19772           - InsertCharAtCaret(): Fixed start pos fixup
19773           - CaretLine_get: No longer derives the line from the tag, the tag
19774             could be stale if lines in the document have been added or deleted
19775           - RebalanceAfterDelete(): Fixed bug in balancing code
19776           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19777           - Line.Streamline(): Now can also elminate leading empty tags
19778           - DumpTree(): Added a few more tests and prevented exception on
19779             uninitialized data
19780           - Added Debug section for Combining lines
19781           - Delete(): Now copies all remaining properties of a line
19782           
19783         * TextBoxBase.cs:
19784           - Left mousebutton now sets the caret (and middle button still acts
19785             as formatting tester, which must go away soon)
19786           - Added Debug section for Deleting/Combining lines
19787           - Fixed calculations for UpdateView after Combining lines
19788
19789 2004-12-16  Peter Bartok  <pbartok@novell.com>
19790
19791         * TextControl.cs: Now properly aligns text on a baseline, using the
19792           new XplatUI.GetFontMetrics() method. Simplified several calculations
19793         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19794           defined
19795
19796 2004-12-16  Peter Bartok  <pbartok@novell.com>
19797
19798         * XplatUI.cs: Added GetFontMetrics() method
19799         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19800         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19801           into libgdiplus, our private GetFontMetrics function
19802         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19803         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19804
19805 2004-12-16  Jackson Harper  <jackson@ximain.com>
19806
19807         * XplatUIStruct.cs: Add enum for dead keys
19808         * X11Keyboard.cs: Map and unmap dead keys.
19809
19810 2004-12-16  Jackson Harper  <jackson@ximian.com>
19811
19812         * X11Keyboard.cs: Detect and use the num lock mask.
19813
19814 2004-12-16  Peter Bartok  <pbartok@novell.com>
19815
19816         * Control.cs (CreateGraphics): Added check to make sure the
19817           handle of the window exists before calling Graphics.FromHwnd()
19818
19819 2004-12-16  Peter Bartok  <pbartok@novell.com>
19820
19821         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19822           contains a lot of code that's not supposed to be there for the
19823           real thing, but required for developing/testing the textbox
19824           backend.
19825
19826 2004-12-16  Peter Bartok  <pbartok@novell.com>
19827
19828         * TextControl.cs:
19829         - Fixed Streamline method
19830         - Added FindTag method to Line
19831         - Added DumpTree method for debugging
19832         - Added DecrementLines() method for deleting lines
19833         - Fixed UpdateView to update the cursor to end-of-line on single-line
19834           updates
19835         - Added PositionCaret() method
19836         - Fixed MoveCaret(LineDown) to move into the last line, too
19837         - Added InsertChar overload
19838         - Fixed InsertChar tag offset calculations
19839         - Added DeleteChar() method
19840         - Added Combine() method for folding lines
19841         - Fixed Delete() method, no longer allocates wasted Line object and
19842           now copies all properties when swapping nodes
19843         - Delete() method now updates document line counter
19844
19845 2004-12-15  Jackson Harper  <jackson@ximian.com>
19846
19847         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19848         * X11Keyboard.cs: Expose the currently selected modifier keys
19849         through a property.
19850
19851 2004-12-15  Peter Bartok  <pbartok@novell.com>
19852
19853         * TextControl.cs: Initial check-in. Still incomplete
19854
19855 2004-12-15  Jackson Harper  <jackson@ximian.com>
19856
19857         * TreeNode.cs:
19858         * TreeView.cs: Fix build on csc (second time today ;-))
19859
19860 2004-12-15  Jackson Harper  <jackson@ximian.com>
19861
19862         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19863         is calculated and use this for click testing.
19864         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19865
19866 2004-12-15  Jackson Harper  <jackson@ximian.com>
19867
19868         * TreeView.cs: Pass the nodes image index to the image list when
19869         drawing that image.
19870
19871 2004-12-15  Jackson Harper  <jackson@ximian.com>
19872
19873         * X11Keyboard.cs: Set messages hwnd.
19874         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19875         post_message calls.
19876
19877 2004-12-15  Jackson Harper  <jackson@ximian.com>
19878
19879         * X11Keyboard.cs: Fix to compile with csc.
19880         
19881 2004-12-15  Jackson Harper  <jackson@ximian.com>
19882
19883         * X11Structs.cs: Add key mask values
19884         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19885         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19886         down/up foo into WM_CHAR foo
19887         * KeyboardLayouts.cs: Common keyboard layouts
19888         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19889         post messages into the main queue.
19890
19891 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19892
19893         * Button.cs: implement ProcessMnemonic
19894         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19895           brushes everytime
19896         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19897         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19898
19899 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19900         
19901         * MonthCalendar.cs: Implemented click-hold for next/previous month
19902           and date selection
19903           
19904 2004-12-11  Peter Bartok  <pbartok@novell.com>
19905
19906         * X11Structs.cs:
19907           - Added XKeyboardState (moved from XplatUIX11.cs)
19908           - Added XCreateGC related enums and structures
19909           - Added GXFunction for XSetFunction
19910
19911         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19912
19913         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19914           CaretVisible() calls
19915
19916         * ToolTip.cs: Added code to prevent stealing focus from app windows
19917
19918         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19919           DestroyCaret, SetCaretPos and CaretVisible)
19920
19921         * XplatUIX11.cs:
19922           - Added implementation for caret functions
19923           - Moved hover variables into a struct, to make it a bit easier
19924             on the eyes and to debug
19925           - Removed XKeyboardState (moved to XplatUIX11.cs)
19926           - Moved Keyboard properties into the properties region
19927
19928         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19929           call to get a graphics context for our control
19930
19931         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19932
19933         * TreeView.cs: Fixed bug. No matter what color was set it would always
19934           return SystemColors.Window
19935
19936         * XplatUIWin32.cs: Implemented caret overrides
19937
19938 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19939
19940         * ListBox.cs: fire events, implement missing methods and properties,
19941         sorting.
19942
19943 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19944
19945         * MonthCalendar.cs: invalidation bug fixing
19946         * ThemeWin32Classic.cs: paint fixing
19947
19948 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19949
19950         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19951         prepare the CGContextRef there now.
19952
19953 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19954
19955         * MonthCalendar.cs:
19956           - optimisationL only invalidate areas that have changed
19957         * ThemeWin32Classic.cs:
19958           - only paint parts that intersect with clip_area
19959
19960 2004-12-09  Peter Bartok  <pbartok@novell.com>
19961
19962         * Application.cs: Undid changes from r37004 which cause problems
19963         on X11
19964
19965 2004-12-09  Ravindra  <rkumar@novell.com>
19966
19967         * ToolBar.cs: Added support for displaying ContextMenu
19968         attached to a button on ToolBar.
19969         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
19970         property.
19971
19972 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19973
19974         * Label.cs: autosize works in text change and removes unnecessary
19975         invalidate
19976
19977 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
19978
19979         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
19980         remove warnings
19981
19982 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
19983
19984         * XplatUIOSX.cs: Added mouse move/click/grab support
19985         Remove some debugging WriteLines not needed anymore.
19986         Add window resizing/positioning.
19987         Fix visibility on reparenting.
19988
19989 2004-12-08  Peter Bartok  <pbartok@novell.com>
19990
19991         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
19992
19993 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
19994
19995         * XplatUIOSX.cs: Initial checkin
19996         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
19997
19998 2004-12-03  Ravindra <rkumar@novell.com>
19999
20000         * ListView.cs: Added some keybindings and fixed scrolling.
20001         ScrollBars listen to ValueChanged event instead of Scroll
20002         Event. This would let us take care of all changes being
20003         done in the scrollbars' values programmatically or manually.
20004         * ListView.cs (CanMultiselect): Added a check for shift key.
20005         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20006         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20007         of ListViewSubItemCollection as well.
20008
20009 2004-12-06  Peter Bartok <pbartok@novell.com>
20010
20011         * Control.cs (Parent): Added check and exception to prevent
20012         circular parenting
20013
20014 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20015
20016         * ListBox.cs: implemented clipping, selection single and multiple,
20017         bug fixing
20018
20019 2004-12-03  Ravindra <rkumar@novell.com>
20020
20021         * ListView.cs (ListView_KeyDown):
20022         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20023         when CTRL key is pressed.
20024         * ListViewItem.cs (Selected): Fixed setting the property.
20025
20026 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20027
20028         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20029
20030         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20031         MinimizeBox, ShowInTaskbar, TopMost properties.
20032
20033         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20034         will be implemented).
20035
20036 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20037
20038         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20039
20040         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20041         tests.
20042         
20043         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20044         
20045         * TreeView.cs: BackColor is Colors.Window.
20046
20047 2004-12-01  Jackson Harper  <jackson@ximian.com>
20048
20049         * TreeView.cs: When resizing the tree if the user is making it
20050         smaller we don't get expose events, so we need to handle adding
20051         the horizontal scrollbar in the size changed handler as well as
20052         the expose handler.
20053
20054 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20055
20056         * DrawItemState.cs: fixes wrong enum values
20057
20058 2004-12-01  Jackson Harper  <jackson@ximian.com>
20059
20060         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20061
20062 2004-12-01  Jackson Harper  <jackson@ximian.com>
20063
20064         * NodeLabelEditEventArgs.cs:
20065         * NodeLabelEditEventHandler.cs:
20066         * OpenTreeNodeEnumerator.cs:
20067         * TreeNode.cs:
20068         * TreeNodeCollection.cs:
20069         * TreeView.cs:
20070         * TreeViewAction.cs:
20071         * TreeViewCancelEventArgs.cs:
20072         * TreeViewCancelEventHandler.cs:
20073         * TreeViewEventArgs.cs:
20074         * TreeViewEventHandler.cs: Initial implementation.
20075
20076 2004-12-01  Ravindra <rkumar@novell.com>
20077
20078         * ListView.cs (CalculateListView): Fixed scrolling related
20079         calculations. Also, removed some debug statements from other
20080         places.
20081         * ListViewItem.cs: Changed access to 'selected' instance variable
20082         from private to internal.
20083         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20084
20085 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20086
20087         * ThemeWin32Classic.cs: remove cache of brush and pens for
20088         specific controls and use the global system, fixes scrollbutton
20089         bugs (for small sizes, disabled, etc)
20090         
20091         * ScrollBar.cs: does not show the thumb for very small controls
20092         (as MS) and allow smaller buttons that the regular size
20093
20094 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20095
20096         * UpDownBase.cs: Add abstract methods for the interface.
20097         Add new virtual methods (need to be hooked up to TextEntry when it
20098         exists).
20099         Add override methods for most features.
20100         Computes the size, forces the height of the text entry.
20101
20102         * NumericUpDown.cs: Put here the current testing code.
20103
20104         * Set eol-style property on all files that do not have mixed line
20105         endings, to minimize the future problems.  There are still a few
20106         files with mixed endings, and someone should choose whether they
20107         want to move it or not.
20108
20109 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20110
20111         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20112         System.Colors
20113         
20114 2004-11-30  Ravindra <rkumar@novell.com>
20115
20116         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20117         drawing and replaced use of SystemColors by theme colors.
20118         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20119         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20120         same ListViewItem is being added more than once.
20121
20122 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20123
20124         * MonthCalendar.cs:
20125           - ControlStyles love to make the control not flicker
20126           
20127 2004-11-30  Peter Bartok  <pbartok@novell.com>
20128
20129         * CharacterCasing.cs: Added
20130
20131 2004-11-29  Peter Bartok  <pbartok@novell.com>
20132
20133         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20134           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20135           I am removing these files as they conflict with already completed
20136           work. While it is fantastic to get contributions to MWF, I
20137           respectfully ask that everyone please coordinate their contributions
20138           through mono-winforms-list or #mono-winforms at this time. We're
20139           explicitly avoiding stubbing and don't want controls that don't have
20140           their basic functionality implemented in svn. Please also see
20141           http://www.mono-project.com/contributing/winforms.html
20142
20143
20144 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20145
20146         * Application.cs (ModalRun): Don't hang after exit.
20147
20148         * Theme.cs: New TreeViewDefaultSize property.
20149
20150         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20151         with less hardcoded SystemColors constant.
20152         Implemented TreeViewDefaultSize.
20153
20154         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20155         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20156
20157
20158 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20159
20160         * MonthCalendar.cs:
20161           - Fix NextMonthDate and PrevMonthDate click moving calendar
20162
20163 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20164
20165         * MonthCalendar.cs:
20166           - Fix usage of ScrollChange Property when scrolling months
20167
20168 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20169
20170         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20171          - Fixes menu destroying
20172          - Support adding and removing items on already created menus
20173
20174 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20175
20176         * MonthCalendar.cs:
20177           - Re-worked all bolded dates handling to match win32
20178         * ThemeWin32Classic.cs:
20179           - Fixed rendering with bolded dates
20180
20181 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20182
20183         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20184         - Horizontal scroolbar
20185         - Multicolumn
20186         - Fixes
20187
20188
20189 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20190
20191         * MonthCalendar.cs:
20192           - Fix Usage of MaxSelectionCount from SelectionRange
20193           - Fixed Shift + Cursor Selection
20194           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20195           - Fixed normal cursor selection to be compat with win32
20196           - Fixed Shift + Mouse Click selection
20197
20198 2004-11-24  Peter Bartok <pbartok@novell.com>
20199
20200         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20201         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20202         * XplatUIX11.cs:
20203           - CreatedKeyBoardMsg now updates keystate with Alt key
20204           - Added workaround for timer crash to CheckTimers, Jackson will
20205             develop a proper fix and check in later
20206           - Implemented DispatchMessage
20207           - Removed calling the native window proc from GetMessage (call
20208             now moved to DispatchMessage)
20209
20210         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20211           the keydata (Fixes bug #69831)
20212
20213         * XplatUIWin32.cs:
20214           - (DispatchMessage): Switched to return IntPtr
20215           - Added DllImport for SetFocus
20216
20217 2004-11-24  Ravindra <rkumar@novell.com>
20218
20219         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20220         background drawing.
20221         * ListViewItem.cs: Fixed various properties, calculations
20222         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20223         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20224         and some internal properties. Fixed MouseDown handler and Paint
20225         method.
20226
20227 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20228
20229         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20230
20231 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20232
20233         * ContainerControl.cs: correct accidental check in of local changes
20234
20235 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20236
20237         * ThemeWin32Classic.cs:
20238                 - Fixed Drawing Last month in grid (sometimes not showing)
20239         * MonthCalendar.cs:
20240                 - Fixed title width calculation bug (makeing title small)
20241
20242 2004-11-23  Peter Bartok <pbartok@novell.com>
20243
20244         * XplatUIX11.cs:
20245           - Added generation of WM_MOUSEHOVER event
20246           - Added missing assignment of async_method atom
20247           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20248
20249 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20250
20251         * ThemeWin32Classic.cs:
20252                 - Fixed Drawing of today circle when showtodaycircle not set
20253                 - fixed drawing of first and last month in the grid (gay dates)
20254         * MonthCalendar.cs:
20255                 - Fixed Drawing of today circle
20256                 - Fixed drawing of grady dates
20257                 - Fixed HitTest for today link when ShowToday set to false
20258                 - Fixed DefaultSize to obey ShowToday
20259
20260 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20261
20262         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20263         * System.Windows.Forms/Theme.cs
20264         * MonthCalendar.cs: added for MonthCalendar
20265         * SelectionRange.cs: added for MonthCalendar
20266         * Day.cs: added for MonthCalendar: added for MonthCalendar
20267         * DateRangeEventArgs.cs: added for MonthCalendar
20268         * DateRangeEventHandler.cs: added for MonthCalendar
20269
20270 2004-11-22  Ravindra <rkumar@novell.com>
20271
20272         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20273         property.
20274
20275 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20276
20277         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20278         event handler.
20279         
20280         * NumericUpDown.cs: Added new implementation.
20281         * UpDownBase.cs: Added new implementation.
20282
20283         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20284         implementations.
20285         
20286         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20287         implementations.
20288
20289         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20290         methods.
20291
20292 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20293
20294         * Timer.cs  (Dispose): Should call the base dispose when
20295         overriding.
20296
20297 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20298
20299         * ScrollBar.cs: updates thumb position when max, min or increment
20300         is changed
20301
20302 2004-11-21  Ravindra <rkumar@novell.com>
20303
20304         * ListView.cs: Implemented item selection, activation and
20305         column header style. Fixed properties to do a redraw, if
20306         required. Added support for MouseHover, DoubleClick, KeyDown
20307         and KeyUp event handling and some minor fixes.
20308         * ListViewItem.cs: Fixed constructor.
20309         * ThemeWin32Classic.cs: Improved drawing for ListView.
20310
20311 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20312
20313         * ThemeWin32Classic.cs: initial listbox drawing code
20314         * DrawMode.cs: new enumerator
20315         * ListControl.cs: stubbed class
20316         * ListBox.cs: initial implementation
20317         * Theme.cs: new methods definitions
20318         * SelectionMode.cs: new enumerator
20319
20320 2004-11-17  Peter Bartok  <pbartok@novell.com>
20321
20322         * XplatUIWin32.cs: Added double-click events to the class style
20323         * Control.cs (WndProc):
20324           - Added handling of click-count to MouseDown/ MouseUp events.
20325           - Added handling of middle and right mouse buttons
20326           - Removed old debug code
20327
20328 2004-11-17  Jackson Harper  <jackson@ximian.com>
20329
20330         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20331
20332 2004-11-17  Ravindra <rkumar@novell.com>
20333
20334         * ListView.cs: Added event handling for MouseMove/Up/Down.
20335         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20336         * ThemeWin32Classic.cs: We need to clear the graphics context and
20337         draw column header in a proper state.
20338
20339
20340 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20341
20342         *  Menu.cs: fixes signature
20343
20344 2004-11-16  Peter Bartok  <pbartok@novell.com>
20345
20346         * XplatUIX11.cs (GetMessage): Implemented generation of
20347           double click mouse messages
20348
20349 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20350
20351         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20352         not by menu
20353
20354 2004-11-11  Peter Bartok  <pbartok@novell.com>
20355
20356         * HandleData.cs: Added Visible property
20357         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20358           HandleData
20359         * XplatUIX11.cs: Removed old debug leftovers
20360         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20361         * Control.cs (WndProc): Removed old debug leftovers,
20362           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20363           needed WM_SIZE handling
20364
20365 2004-11-11  Jackson Harper  <jackson@ximian.com>
20366
20367         * OwnerDrawPropertyBag.cs:
20368         * TreeViewImageIndexConverter.cs: Initial implementation
20369
20370 2004-11-10  Jackson Harper  <jackson@ximian.com>
20371
20372         * ThemeWin32Classic.cs:
20373         * TabControl.cs: instead of moving tabs by the slider pos just
20374         start drawing at the tab that is offset by the slider. This way
20375         scrolling always moves by exactly one tab.
20376
20377 2004-11-10  Jackson Harper  <jackson@ximian.com>
20378
20379         * TabControl.cs: You can only scroll left when the slider has
20380         already ben moved right.
20381         
20382 2004-11-10  Jackson Harper  <jackson@ximian.com>
20383
20384         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20385         the clip area.
20386         
20387 2004-11-10  Jackson Harper  <jackson@ximian.com>
20388
20389         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20390         clip area.
20391         
20392 2004-11-09  Jackson Harper  <jackson@ximian.com>
20393
20394         * TabControl.cs (CalcXPos): New helper method so we can determine
20395         the proper place to start drawing vertical tabs.
20396         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20397         
20398 2004-11-09  Jackson Harper  <jackson@ximian.com>
20399
20400         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20401         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20402         and Bottom, left and right are illegal values for this and
20403         multiline is enabled when the alignment is set to left or right.
20404         (DrawTab): Each alignment block should draw the text itself now
20405         because Left requires special love. Also add rendering for Left
20406         aligned tabs.
20407         
20408 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20409
20410         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20411         does not destroy the windows, removes debugging messages
20412
20413 2004-11-09  jba  <jba-mono@optusnet.com.au>
20414
20415         * ThemeWin32Classic.cs
20416         (DrawButtonBase): Fix verticle text rect clipping in windows
20417         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20418         rendering and incorrect text rect clipping
20419         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20420         rendering and incorrect text rect clipping
20421         
20422 2004-11-08  Jackson Harper  <jackson@ximian.com>
20423
20424         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20425         bottom when they are bottom aligned so the bottoms of the tabs get
20426         displayed.
20427         * TabControl.cs (DropRow): Move rows up instead of down when the
20428         tab control is bottom aligned.
20429
20430 2004-11-08 13:59  pbartok
20431
20432         * XplatUIX11.cs:
20433           - Added handling for various window styles
20434           - Added handling for popup windows
20435           - Added SetTopmost handling
20436
20437 2004-11-08 13:55  pbartok
20438
20439         * XplatUIWin32.cs:
20440           - Added argument to SetTopmost method
20441           - Fixed broken ClientToScreen function
20442
20443 2004-11-08 13:53  pbartok
20444
20445         * XplatUIStructs.cs:
20446           - Added missing WS_EX styles
20447
20448 2004-11-08 13:53  pbartok
20449
20450         * XplatUI.cs, XplatUIDriver.cs:
20451           - Added argument to SetTopmost
20452
20453 2004-11-08 13:52  pbartok
20454
20455         * X11Structs.cs:
20456           - Added XSetWindowAttributes structure
20457           - Improved XWindowAttributes structure
20458           - Added SetWindowValuemask enum
20459           - Added window creation arguments enum
20460           - Added gravity enum
20461           - Added Motif hints structure
20462           - Added various Motif flags and enums
20463           - Added PropertyMode enum for property functions
20464
20465 2004-11-08 13:50  pbartok
20466
20467         * Form.cs:
20468           - Fixed arguments for updated SetTopmost method
20469
20470 2004-11-08 13:49  pbartok
20471
20472         * ToolTip.cs:
20473           - Fixed arguments for updated SetTopmost function
20474           - Fixed usage of PointToClient
20475
20476 2004-11-08 13:44  pbartok
20477
20478         * MenuAPI.cs:
20479           - Added Clipping of children and siblings
20480
20481 2004-11-08 13:41  pbartok
20482
20483         * MainMenu.cs:
20484           - Removed SetMenuBarWindow call. We do this in Form.cs
20485
20486 2004-11-08 13:40  jackson
20487
20488         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20489           scrolling jimmi in the correct location with bottom aligned tabs
20490
20491 2004-11-08 13:36  pbartok
20492
20493         * ContainerControl.cs:
20494           - Implemented BindingContext
20495           - Implemented ParentForm
20496
20497 2004-11-08 12:46  jackson
20498
20499         * TabControl.cs: Put bottom rendered tabs in the right location
20500
20501 2004-11-08 07:15  jordi
20502
20503         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20504           removes dead code
20505
20506 2004-11-05 17:30  jackson
20507
20508         * TabControl.cs: When selected tabs are expanded make sure they
20509           don't go beyond the edges of the tab control
20510
20511 2004-11-05 14:57  jackson
20512
20513         * TabControl.cs: Reset show_slider so if the control is resized to
20514           a size where it is no longer needed it's not displayed anymore
20515
20516 2004-11-05 13:16  jackson
20517
20518         * TabControl.cs: Make tab pages non visible when added to the
20519           control
20520
20521 2004-11-05 12:42  jackson
20522
20523         * TabControl.cs: Implement SizeMode.FillToRight
20524
20525 2004-11-05 12:16  jackson
20526
20527         * Control.cs: Do not call CreateHandle if the handle is already
20528           created
20529
20530 2004-11-05 11:46  jackson
20531
20532         * TabControl.cs: Remove superflous call to CalcTabRows
20533
20534 2004-11-05 09:07  jackson
20535
20536         * XplatUIX11.cs: Update for Mono.Posix changes
20537
20538 2004-11-05 07:00  ravindra
20539
20540         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20541           scrolling.
20542
20543 2004-11-04 22:47  jba
20544
20545         * ThemeWin32Classic.cs:
20546           - Fix Button rendering for FlatStyle = Flat or Popup
20547           - Fix RadioButton and CheckBox rendering when Appearance = Button
20548             (normal and flatstyle).
20549           - Correct outer rectangle color when drawing focus rectangle
20550           - Adjust button bounds to be 1 px smaller when focused
20551           - Make button not draw sunken 3d border when pushed (windows compat)
20552           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20553           - Offset the text in RadioButton and Checkbox when being rendered as
20554           a button.
20555           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20556           radiobuttons
20557           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20558           - Fixed disabled text rendering for normally rendered radiobuttons
20559
20560 2004-11-04 10:26  jackson
20561
20562         * TabControl.cs: Recalculate tab rows when resizing
20563
20564 2004-11-04 07:47  jordi
20565
20566         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20567           collection completion, drawing issues, missing features
20568
20569 2004-11-04 05:03  ravindra
20570
20571         * ScrollBar.cs:
20572                 - We need to recalculate the Thumb area when
20573                 LargeChange/maximum/minimum values are changed.
20574           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20575                 than minimum. This is required to handle the case if large_change is
20576                 more than max, and use LargeChange property instead of large_change
20577                 variable.
20578           - We return max+1 when large_change is more than max, like MS does.
20579
20580 2004-11-04 04:29  ravindra
20581
20582         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20583                 - Changed default value signatures (prefixed all with ListView).
20584                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20585                 ListView.
20586           - Fixed calculations for ListViewItem and implemented Clone()
20587           method.
20588
20589 2004-11-04 04:26  ravindra
20590
20591         * Theme.cs, ThemeWin32Classic.cs:
20592                 - Changed default ListView values signatures (prefixed all with
20593                 ListView).
20594           - Fixed default size values for VScrollBar and HScrollBar.
20595                 - Fixed DrawListViewItem method.
20596
20597 2004-11-04 04:05  ravindra
20598
20599         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20600
20601 2004-11-04 04:04  ravindra
20602
20603         * ImageList.cs: Implemented the missing overload for Draw method.
20604
20605 2004-11-03 19:29  jackson
20606
20607         * TabControl.cs: Handle dropping rows on selection properly
20608
20609 2004-11-03 11:59  jackson
20610
20611         * TabControl.cs: remove debug code
20612
20613 2004-11-03 11:52  jackson
20614
20615         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20616           the scrolly widgerywoo
20617
20618 2004-11-02 13:52  jackson
20619
20620         * TabControl.cs: Resize the tab pages and tabs when the tab control
20621           is resized
20622
20623 2004-11-02 13:40  jackson
20624
20625         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20626           selected tab to the bottom
20627
20628 2004-11-02 13:39  jackson
20629
20630         * TabPage.cs: Store the tab pages row
20631
20632 2004-11-02 12:33  jordi
20633
20634         * MenuItem.cs: fixes handle creation
20635
20636 2004-11-02 11:42  jackson
20637
20638         * TabControl.cs: signature fix
20639
20640 2004-11-02 08:56  jackson
20641
20642         * TabControl.cs: Calculate whether the tab is on an edge properly.
20643           Remove top secret debugging code
20644
20645 2004-11-01 19:57  jackson
20646
20647         * TabControl.cs: Add click handling, and proper sizing
20648
20649 2004-11-01 19:47  jackson
20650
20651         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20652           tab controls
20653
20654 2004-11-01 19:39  jackson
20655
20656         * TabPage.cs: add internal property to store the bounds of a tab
20657           page
20658
20659 2004-10-30 04:23  ravindra
20660
20661         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20662           values.
20663
20664 2004-10-30 04:21  ravindra
20665
20666         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20667           fixed calculations.
20668
20669 2004-10-30 03:06  pbartok
20670
20671         * XplatUIX11.cs:
20672           - Removed extension of DllImported libs
20673
20674 2004-10-29 09:55  jordi
20675
20676         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20677           navigation, itemcollection completion, menu fixes
20678
20679 2004-10-27 22:58  pbartok
20680
20681         * XplatUIX11.cs:
20682           - Now throws a nice error message when no X display could be opened
20683
20684 2004-10-26 13:51  jordi
20685
20686         * ListView.cs: removes warning
20687
20688 2004-10-26 03:55  ravindra
20689
20690         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20691           ThemeWin32Classic.cs: Some formatting for my last checkins.
20692
20693 2004-10-26 03:36  ravindra
20694
20695         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20696           control and default values.
20697
20698 2004-10-26 03:35  ravindra
20699
20700         * Theme.cs: Added some default values for ListView control.
20701
20702 2004-10-26 03:33  ravindra
20703
20704         * ToolBar.cs: ToolBar should use the user specified button size, if
20705           there is any. Added a size_specified flag for the same.
20706
20707 2004-10-26 03:33  ravindra
20708
20709         * ColumnHeader.cs: Added some internal members and calculations for
20710           ColumnHeader.
20711
20712 2004-10-26 03:32  ravindra
20713
20714         * ListViewItem.cs: Calculations for ListViewItem.
20715
20716 2004-10-26 03:31  ravindra
20717
20718         * ListView.cs: Added some internal members and calculations for
20719           ListView.
20720
20721 2004-10-22 13:31  jordi
20722
20723         * MenuAPI.cs: speedup menus drawing
20724
20725 2004-10-22 13:16  jackson
20726
20727         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20728           expose event
20729
20730 2004-10-22 11:49  jackson
20731
20732         * Control.cs: oops
20733
20734 2004-10-22 11:41  jackson
20735
20736         * Control.cs: Check to see if the window should have its background
20737           repainted by X when drawing.
20738
20739 2004-10-22 11:31  jackson
20740
20741         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20742           clear is true, this way we do not get flicker from X repainting the
20743           background
20744
20745 2004-10-22 11:28  jackson
20746
20747         * XEventQueue.cs: Queue properly
20748
20749 2004-10-21 09:38  jackson
20750
20751         * XEventQueue.cs: Fix access modifier
20752
20753 2004-10-21 09:36  jackson
20754
20755         * XEventQueue.cs: Don't loose messages
20756
20757 2004-10-21 09:22  jackson
20758
20759         * XEventQueue.cs: Don't loose messages
20760
20761 2004-10-20 04:15  jordi
20762
20763         * BootMode.cs: enum need it by SystemInfo
20764
20765 2004-10-19 21:58  pbartok
20766
20767         * XplatUIWin32.cs:
20768           - Small sanity check
20769
20770 2004-10-19 21:56  pbartok
20771
20772         * Form.cs:
20773           - Added private FormParentWindow class which acts as the container
20774             for our form and as the non-client area where menus are drawn
20775           - Added/Moved required tie-ins to Jordi's menus
20776           - Fixed/Implemented the FormStartPosition functionality
20777
20778 2004-10-19 21:52  pbartok
20779
20780         * Control.cs:
20781           - Removed unneeded locals
20782           - Added code to all size and location properties to understand and
20783             deal with the parent container of Form
20784
20785 2004-10-19 21:33  pbartok
20786
20787         * Application.cs:
20788           - Fixed to deal with new Form subclasses for menus
20789
20790 2004-10-19 17:48  jackson
20791
20792         * XEventQueue.cs: commit correct version of file
20793
20794 2004-10-19 16:50  jackson
20795
20796         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20797
20798 2004-10-19 16:15  jordi
20799
20800         * MenuAPI.cs: MenuBarCalcSize returns the height
20801
20802 2004-10-19 08:31  pbartok
20803
20804         * Control.cs:
20805           - Added missing call to PreProcessMessage before calling OnXXXKey
20806           methods
20807
20808 2004-10-19 00:04  ravindra
20809
20810         * ToolTip.cs: Fixed constructor.
20811
20812 2004-10-18 09:31  jordi
20813
20814         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20815
20816 2004-10-18 09:26  jordi
20817
20818         * MenuItem.cs: fixes MenuItem class signature
20819
20820 2004-10-18 08:56  jordi
20821
20822         * MenuAPI.cs: prevents windows from showing in the taskbar
20823
20824 2004-10-18 00:28  ravindra
20825
20826         * ToolTip.cs: Suppressed a warning message.
20827
20828 2004-10-18 00:27  ravindra
20829
20830         * Control.cs: Default value of visible property must be true.
20831
20832 2004-10-17 23:19  pbartok
20833
20834         * ToolTip.cs:
20835           - Complete implementation
20836
20837 2004-10-17 23:19  pbartok
20838
20839         * XplatUIX11.cs:
20840           - Added EnableWindow method
20841           - Added SetModal stub
20842           - Added generation of WM_ACTIVATE message (still needs testing)
20843           - Added SetTopMost stub
20844           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20845
20846 2004-10-17 23:17  pbartok
20847
20848         * XplatUIWin32.cs:
20849           - Removed VirtualKeys to XplatUIStructs
20850           - Implemented SetTopMost method
20851           - Implemented EnableWindow method
20852           - Bugfix in ScreenToClient()
20853           - Bugfixes in ClientToScreen()
20854
20855 2004-10-17 22:51  pbartok
20856
20857         * XplatUIStructs.cs:
20858           - Added WS_EX styles to WindowStyles enumeration
20859
20860 2004-10-17 22:50  pbartok
20861
20862         * XplatUI.cs, XplatUIDriver.cs:
20863           - Added method for enabling/disabling windows
20864           - Added method for setting window modality
20865           - Added method for setting topmost window
20866
20867 2004-10-17 22:49  pbartok
20868
20869         * ThemeWin32Classic.cs:
20870           - Added ToolTip drawing code
20871
20872 2004-10-17 22:49  pbartok
20873
20874         * Theme.cs:
20875           - Added ToolTip abstracts
20876
20877 2004-10-17 22:47  pbartok
20878
20879         * Form.cs:
20880           - Fixed Form.ControlCollection to handle owner relations
20881           - Added Owner/OwnedForms handling
20882           - Implemented Z-Ordering for owned forms
20883           - Removed unneeded private overload of ShowDialog
20884           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20885             so I hope)
20886           - Fixed Close(), had wrong default
20887           - Added firing of OnLoad event
20888           - Added some commented out debug code for Ownership handling
20889
20890 2004-10-17 22:16  pbartok
20891
20892         * Control.cs:
20893           - Fixed/implemented flat list of controls
20894
20895 2004-10-17 22:14  pbartok
20896
20897         * Application.cs:
20898           - Added code to simulate modal dialogs on Win32
20899
20900 2004-10-17 16:11  jordi
20901
20902         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20903           mouse event
20904
20905 2004-10-17 13:39  jordi
20906
20907         * MenuAPI.cs: menu drawing fixes
20908
20909 2004-10-15 09:10  ravindra
20910
20911         * StructFormat.cs: General Enum.
20912
20913 2004-10-15 09:09  ravindra
20914
20915         * SizeGripStyle.cs: Enum for Form.
20916
20917 2004-10-15 09:08  ravindra
20918
20919         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20920           in Theme for ListView.
20921
20922 2004-10-15 09:06  ravindra
20923
20924         * ColumnHeader.cs: Flushing some formatting changes.
20925
20926 2004-10-15 09:05  ravindra
20927
20928         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20929           style.
20930
20931 2004-10-15 09:03  ravindra
20932
20933         * ListView.cs: Implemented Paint method and fixed coding style.
20934
20935 2004-10-15 07:34  jordi
20936
20937         * MenuAPI.cs: fix for X11
20938
20939 2004-10-15 07:32  ravindra
20940
20941         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20942                 - Renamed Paint() method to Draw() for clarity. Also, moved
20943                 DrawImage() to OnPaint().
20944
20945 2004-10-15 07:25  ravindra
20946
20947         * CheckBox.cs, RadioButton.cs:
20948                 - Removed Redraw (), we get it from ButtonBase.
20949                 - Implemented Paint (), to do class specific painting.
20950
20951 2004-10-15 07:16  ravindra
20952
20953         * ButtonBase.cs:
20954                 - Redraw () is not virtual now.
20955                 - Added an internal virtual method Paint (), so that
20956                 derived classes can do their painting on their own.
20957                 - Modified OnPaint () to call Paint ().
20958
20959 2004-10-15 06:43  jordi
20960
20961         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20962           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20963
20964 2004-10-15 00:30  ravindra
20965
20966         * MessageBox.cs:
20967                 - MessageBox on windows does not have min/max buttons.
20968                 This change in CreateParams fixes this on Windows. We
20969                 still need to implement this windowstyle behavior in
20970                 our X11 driver.
20971
20972 2004-10-14 05:14  ravindra
20973
20974         * ToolBar.cs:
20975                 - Changed Redraw () to do a Refresh () always.
20976                 - Fixed the MouseMove event handling when mouse is pressed,
20977                 ie drag event handling.
20978                 - Replaced the usage of ToolBarButton.Pressed property to
20979                 ToolBarButton.pressed internal variable.
20980
20981 2004-10-14 05:10  ravindra
20982
20983         * ToolBarButton.cs:
20984                 - Added an internal member 'inside' to handle mouse move
20985                 with mouse pressed ie mouse drag event.
20986                 - Changed 'Pressed' property to return true only when
20987                 'inside' and 'pressed' are both true.
20988                 - Some coding style love.
20989
20990 2004-10-14 00:17  ravindra
20991
20992         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
20993           public method.
20994
20995 2004-10-14 00:15  ravindra
20996
20997         * ButtonBase.cs: Redraw () related improvements.
20998
20999 2004-10-14 00:14  ravindra
21000
21001         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21002           removed unnecessary calls to Button.Show () method.
21003
21004 2004-10-13 17:50  pbartok
21005
21006         * XplatUIX11.cs:
21007           - Formatting fix
21008           - Removed destroying of window until we solve the problem of X
21009             destroying the window before us on shutdown
21010
21011 2004-10-13 16:32  pbartok
21012
21013         * ButtonBase.cs:
21014           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21015
21016 2004-10-13 14:18  pbartok
21017
21018         * XplatUIX11.cs:
21019           - Added code to destroy the X window
21020
21021 2004-10-13 14:18  pbartok
21022
21023         * XplatUIWin32.cs:
21024           - Added code to destroy a window
21025
21026 2004-10-13 14:12  pbartok
21027
21028         * ButtonBase.cs:
21029           - Added the Redraw on Resize that got dropped in the last rev
21030
21031 2004-10-13 09:06  pbartok
21032
21033         * ThemeWin32Classic.cs:
21034           - Path from John BouAntoun:
21035             * Fix check rendering (centre correctly for normal style, offset
21036               correctly for FlatStyle).
21037             * Fix border color usage (use backcolor) for FlatStyle.Popup
21038             * Use checkbox.Capture instead of checkbox.is_pressed when
21039               rendering flatstyle states.
21040
21041 2004-10-12 21:48  pbartok
21042
21043         * ThemeWin32Classic.cs:
21044           - Removed all occurences of SystemColors and replaced them with the
21045             matching theme color
21046
21047 2004-10-12 21:41  pbartok
21048
21049         * ThemeWin32Classic.cs:
21050           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21051             him using the function for flatstyle drawing
21052           - Changed functions to use the new version of CPDrawBorder3D
21053
21054 2004-10-12 21:15  pbartok
21055
21056         * ControlPaint.cs:
21057           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21058             match MS documentation. They need to return defined colors if the
21059             passed color matches the configured control color. Thanks to John
21060             BouAntoun for pointing this out.
21061
21062 2004-10-12 20:57  pbartok
21063
21064         * Control.cs:
21065           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21066             color is changed
21067
21068 2004-10-12 20:46  pbartok
21069
21070         * CheckBox.cs:
21071           - Fix from John BouAntoun: Now properly sets the Appearance property
21072
21073 2004-10-12 20:45  pbartok
21074
21075         * ThemeWin32Classic.cs:
21076           - Fixes from John BouAntoun: now handles forecolors and backcolors
21077             for flatstyle rendered controls much better; It also fixes normal
21078             checkbox rendering when pushed or disabled.
21079
21080 2004-10-08 02:50  jordi
21081
21082         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21083           work
21084
21085 2004-10-07 08:56  jordi
21086
21087         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21088
21089 2004-10-06 03:59  jordi
21090
21091         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21092           XplatUIWin32.cs: removes warnings from compilation
21093
21094 2004-10-05 12:23  jackson
21095
21096         * RadioButton.cs: Fix ctor
21097
21098 2004-10-05 11:10  pbartok
21099
21100         * MessageBox.cs:
21101           - Partial implementation by Benjamin Dasnois
21102
21103 2004-10-05 10:15  jackson
21104
21105         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21106           by John BouAntoun
21107
21108 2004-10-05 03:07  ravindra
21109
21110         * ToolBar.cs:
21111                 - Removed a private method, Draw ().
21112                 - Fixed the ButtonDropDown event handling.
21113                 - Fixed MouseMove event handling.
21114
21115 2004-10-05 03:04  ravindra
21116
21117         * ThemeWin32Classic.cs:
21118                 - Added DrawListView method and ListViewDefaultSize property.
21119                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21120                 - Changed DOS style CRLF to Unix format (dos2unix).
21121
21122 2004-10-05 03:03  ravindra
21123
21124         * Theme.cs:
21125                 - Added DrawListView method and ListViewDefaultSize property.
21126
21127 2004-10-05 02:42  ravindra
21128
21129         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21130           clicks on DropDown arrow.
21131
21132 2004-10-04 22:56  jackson
21133
21134         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21135           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21136           Control handle the buffers, derived classes should not have to
21137           CreateBuffers themselves.
21138
21139 2004-10-04 21:20  jackson
21140
21141         * StatusBar.cs: The control handles resizing the buffers now.
21142
21143 2004-10-04 21:18  jackson
21144
21145         * Control.cs: When resizing the buffers should be invalidated. This
21146           should be handled in Control not in derived classes.
21147
21148 2004-10-04 14:45  jackson
21149
21150         * TabPage.cs: oops
21151
21152 2004-10-04 02:14  pbartok
21153
21154         * LeftRightAlignment.cs:
21155           - Initial check-in
21156
21157 2004-10-04 01:09  jordi
21158
21159         * ThemeWin32Classic.cs: fixes right button position causing right
21160           button not showing on horizontal scrollbars
21161
21162 2004-10-02 13:12  pbartok
21163
21164         * XplatUIX11.cs:
21165           - Simplified the Invalidate method by using an X call instead of
21166             generating the expose ourselves
21167           - Added an expose when the window background is changed
21168           - Implemented ClientToScreen method
21169
21170 2004-10-02 13:08  pbartok
21171
21172         * XplatUIWin32.cs:
21173           - Added Win32EnableWindow method (test for implementing modal
21174           dialogs)
21175           - Added ClientToScreen method and imports
21176
21177 2004-10-02 13:07  pbartok
21178
21179         * XplatUI.cs, XplatUIDriver.cs:
21180           - Added ClientToScreen coordinate translation method
21181
21182 2004-10-02 13:06  pbartok
21183
21184         * KeyPressEventArgs.cs:
21185           - Fixed access level for constructor
21186
21187 2004-10-02 13:06  pbartok
21188
21189         * NativeWindow.cs:
21190           - Changed access level for the window_collection hash table
21191
21192 2004-10-02 13:05  pbartok
21193
21194         * Form.cs:
21195           - Added KeyPreview property
21196           - Added Menu property (still incomplete, pending Jordi's menu work)
21197           - Implemented ProcessCmdKey
21198           - Implemented ProcessDialogKey
21199           - Implemented ProcessKeyPreview
21200
21201 2004-10-02 13:02  pbartok
21202
21203         * Control.cs:
21204           - Added private method to get the Control object from the window
21205           handle
21206           - Implemented ContextMenu property
21207           - Implemented PointToScreen
21208           - Implemented PreProcessMessage
21209           - Implemented IsInputChar
21210           - Implemented IsInputKey
21211           - Implemented ProcessCmdKey
21212           - Completed ProcessKeyEventArgs
21213           - Fixed message loop to call the proper chain of functions on key
21214           events
21215           - Implemented ProcessDialogChar
21216           - Implemented ProcessDialogKey
21217           - Implemented ProcessKeyMessage
21218           - Implemented ProcessKeyPreview
21219           - Added RaiseDragEvent stub (MS internal method)
21220           - Added RaiseKeyEvent stub (MS internal method)
21221           - Added RaiseMouseEvent stub (MS Internal method)
21222           - Added RaisePaintEvent stub (MS Internal method)
21223           - Added ResetMouseEventArgs stub (MS Internal method)
21224           - Implemented RtlTranslateAlignment
21225           - Implemented RtlTranslateContent
21226           - Implemented RtlTranslateHorizontal
21227           - Implemented RtlTranslateLeftRight
21228           - Added generation of KeyPress event
21229
21230 2004-10-02 05:57  ravindra
21231
21232         * ListViewItem.cs: Added attributes.
21233
21234 2004-10-02 05:32  ravindra
21235
21236         * ListView.cs: Added attributes.
21237
21238 2004-10-01 11:53  jackson
21239
21240         * Form.cs: Implement the Close method so work on MessageBox can
21241           continue.
21242
21243 2004-09-30 14:06  pbartok
21244
21245         * XplatUIX11.cs:
21246           - Bug fixes
21247
21248 2004-09-30 11:34  jackson
21249
21250         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21251
21252 2004-09-30 07:26  ravindra
21253
21254         * ListViewItemConverter.cs: Converter for ListViewItem.
21255
21256 2004-09-30 07:26  ravindra
21257
21258         * SortOrder.cs: Enum for ListView control.
21259
21260 2004-09-30 07:25  ravindra
21261
21262         * ColumnHeader.cs: Supporting class for ListView control.
21263
21264 2004-09-30 07:24  ravindra
21265
21266         * ListView.cs, ListViewItem.cs: Initial implementation.
21267
21268 2004-09-30 07:20  ravindra
21269
21270         * ItemActivation.cs: Enum for ListView Control.
21271
21272 2004-09-29 20:29  pbartok
21273
21274         * XplatUIX11.cs:
21275           - Added lookup of pixel value for background color; tries to get a
21276             color 'close' to the requested color, it avoids having to create a
21277             colormap.  Depending on the display this could mean the used color
21278             is slightly off the desired color. Might have to change it to a more
21279             resource intensive colormap approach, but it will work as a
21280           workaround to avoid red screens.
21281
21282 2004-09-29 14:27  jackson
21283
21284         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21285
21286 2004-09-28 12:44  pbartok
21287
21288         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21289           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21290           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21291           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21292           TrackBar.cs, VScrollBar.cs:
21293           - Streamlined Theme interfaces:
21294             * Each DrawXXX method for a control now is passed the object for
21295               the control to be drawn in order to allow accessing any state the
21296               theme might require
21297
21298             * ControlPaint methods for the theme now have a CP prefix to avoid
21299               name clashes with the Draw methods for controls
21300
21301             * Every control now retrieves it's DefaultSize from the current
21302             theme
21303
21304 2004-09-28 12:17  jackson
21305
21306         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21307           drawing
21308
21309 2004-09-24 14:57  jackson
21310
21311         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21312           Gives us a nice little performance boost.
21313
21314 2004-09-24 12:02  jackson
21315
21316         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21317           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21318           Control and supporting classes. Initial checkin
21319
21320 2004-09-23 13:08  jackson
21321
21322         * Form.cs: Temp build fixage
21323
21324 2004-09-23 01:39  ravindra
21325
21326         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21327           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21328           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21329           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21330           EventHandlers needed by ListView Control.
21331
21332 2004-09-22 14:12  pbartok
21333
21334         * ScrollableControl.cs:
21335           - Implemented DockPadding property
21336           - Implemented AutoScroll property
21337           - Implemented AutoScrollMargin property
21338           - Implemented AutoScrollMinSize property
21339           - Implemented AutoScrollPosition property
21340           - Implemented DisplayRectangle property (still incomplete)
21341           - Implemented CreateParams property
21342           - Implemented HScroll property
21343           - Implemented VScroll property
21344           - Implemented OnVisibleChanged property
21345
21346 2004-09-22 14:09  pbartok
21347
21348         * Form.cs:
21349           - Added Form.ControllCollection class
21350           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21351             RemoveOwnedForm (still incomplete, missing on-top and common
21352             minimize/maximize behaviour)
21353           - Added StartPosition property (still incomplete, does not use when
21354             creating the form)
21355           - Added ShowDialog() methods (still incomplete, missing forcing the
21356             dialog modal)
21357
21358 2004-09-22 14:05  pbartok
21359
21360         * Application.cs:
21361           - Added message loop for modal dialogs
21362
21363 2004-09-22 14:02  pbartok
21364
21365         * GroupBox.cs:
21366           - Fixed wrong types for events
21367
21368 2004-09-22 14:00  pbartok
21369
21370         * Shortcut.cs, FormWindowState.cs:
21371           - Fixed wrong values
21372
21373 2004-09-22 12:01  jackson
21374
21375         * Control.cs: Text is never null
21376
21377 2004-09-20 22:14  pbartok
21378
21379         * XplatUIWin32.cs:
21380           - Fixed accessibility level for Idle handler
21381
21382 2004-09-20 18:54  jackson
21383
21384         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21385           XplatUIX11.cs: New message loop that uses poll so we don't get a
21386           busy loop
21387
21388 2004-09-17 10:43  pbartok
21389
21390         * ScrollBar.cs:
21391           - Fixed behaviour of arrow buttons. Now properly behaves like
21392             Buttons (and like Microsoft's scrollbar arrow buttons)
21393
21394 2004-09-17 10:14  pbartok
21395
21396         * ScrollBar.cs:
21397           - Added missing release of keyboard/mouse capture
21398
21399 2004-09-17 06:18  jordi
21400
21401         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21402           Theme.cs: Very early menu support
21403
21404 2004-09-16 17:45  pbartok
21405
21406         * XplatUIWin32.cs:
21407           - Fixed sending a window to the front
21408           - Added overload for SetWindowPos to avoid casting
21409
21410 2004-09-16 17:44  pbartok
21411
21412         * Control.cs:
21413           - Added SendToBack and BringToFront methods
21414
21415 2004-09-16 07:00  ravindra
21416
21417         * Copyright: Added Novell URL.
21418
21419 2004-09-16 07:00  ravindra
21420
21421         * ToolBar.cs: Invalidate should be done before redrawing.
21422
21423 2004-09-15 21:19  ravindra
21424
21425         * ColumnHeaderStyle.cs: Enum for ListView Control.
21426
21427 2004-09-15 21:18  ravindra
21428
21429         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21430           ListView Control.
21431
21432 2004-09-13 18:26  jackson
21433
21434         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21435           properly
21436
21437 2004-09-13 18:13  jackson
21438
21439         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21440           a second thread and post messages into the main threads message
21441           queue. This makes timing much more consistent. Both win2K and XP
21442           have a minimum timer value of 15 milliseconds, so we now do this
21443           too.
21444
21445 2004-09-13 15:18  pbartok
21446
21447         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21448           XplatUIX11.cs:
21449           - Added Z-Ordering methods
21450
21451 2004-09-13 10:56  pbartok
21452
21453         * Form.cs:
21454           - Fixed #region names
21455           - Moved properties and methods into their proper #regions
21456
21457 2004-09-13 10:51  pbartok
21458
21459         * Form.cs:
21460           - Added Accept and CancelButton properties
21461           - Added ProcessDialogKey() method
21462
21463 2004-09-13 08:18  pbartok
21464
21465         * IWindowTarget.cs:
21466           - Initial check-in
21467
21468 2004-09-10 21:50  pbartok
21469
21470         * Control.cs:
21471           - Added DoDragDrop() [incomplete]
21472           - Properly implemented 'Visible' handling
21473           - Added SetVisibleCore()
21474           - Implemented FindChildAtPoint()
21475           - Implemented GetContainerControl()
21476           - Implemented Hide()
21477
21478 2004-09-10 19:28  pbartok
21479
21480         * Control.cs:
21481           - Moved methods into their appropriate #regions
21482           - Reordered methods within regions alphabetically
21483
21484 2004-09-10 18:57  pbartok
21485
21486         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21487           - Added method to retrieve text from window
21488
21489 2004-09-10 18:56  pbartok
21490
21491         * Control.cs:
21492           - Moved some internal functions into the internal region
21493           - Implemented FontHeight
21494           - Implemented RenderRightToLeft
21495           - Implemented ResizeRedraw
21496           - Implemented ShowFocusCues
21497           - Implemented ShowKeyboardCues
21498           - Implemented FromChildHandle
21499           - Implemented FromHandle
21500           - Implemented IsMnemonic
21501           - Implemented ReflectMessage
21502           - All public and protected Static Methods are now complete
21503
21504 2004-09-10 16:54  pbartok
21505
21506         * Control.cs:
21507           - Implemented remaining missing public instance properties
21508           - Alphabetized some out of order properties
21509
21510 2004-09-10 05:51  ravindra
21511
21512         * PictureBox.cs: Added a check for null image.
21513
21514 2004-09-10 00:59  jordi
21515
21516         * GroupBox.cs: remove cvs tag
21517
21518 2004-09-09 05:25  ravindra
21519
21520         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21521
21522 2004-09-09 05:23  ravindra
21523
21524         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21525           parent redraw.
21526
21527 2004-09-09 02:28  pbartok
21528
21529         * ThemeWin32Classic.cs:
21530           - Improve disabled string look
21531
21532 2004-09-09 01:15  jordi
21533
21534         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21535           args and handler
21536
21537 2004-09-08 23:56  ravindra
21538
21539         * ItemBoundsPortion.cs: It's enum, not a class!
21540
21541 2004-09-08 23:47  ravindra
21542
21543         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21544           Enums for Form.
21545
21546 2004-09-08 21:13  ravindra
21547
21548         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21549           ListView control.
21550
21551 2004-09-08 21:03  ravindra
21552
21553         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21554           avoid crash.
21555
21556 2004-09-08 21:01  ravindra
21557
21558         * ScrollableControl.cs: Removed unreachable code.
21559
21560 2004-09-08 06:45  jordi
21561
21562         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21563
21564 2004-09-08 01:00  jackson
21565
21566         * XplatUIX11.cs: Only run the timers when updating the message
21567           queue. This effectively gives X messages a higher priority then
21568           timer messages. Timers still need love though
21569
21570 2004-09-07 14:01  jackson
21571
21572         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21573           this for us and the handle is no longer valid.
21574
21575 2004-09-07 13:59  jackson
21576
21577         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21578           loop that manages to not crash. TODO: Add poll and cleanup timers
21579
21580 2004-09-07 11:12  jordi
21581
21582         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21583
21584 2004-09-07 03:40  jordi
21585
21586         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21587           fixes, methods, multiple links
21588
21589 2004-09-06 06:55  jordi
21590
21591         * Control.cs: Caches ClientRectangle rectangle value
21592
21593 2004-09-05 02:03  jordi
21594
21595         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21596           certain situations
21597
21598 2004-09-04 11:10  jordi
21599
21600         * Label.cs: Refresh when font changed
21601
21602 2004-09-02 16:24  pbartok
21603
21604         * Control.cs:
21605           - Added sanity check to creation of double buffer bitmap
21606
21607 2004-09-02 16:24  pbartok
21608
21609         * ButtonBase.cs:
21610           - Fixed selection of text color
21611           - Fixed handling of resize event; now properly recreates double
21612             buffering bitmap
21613           - Added missing assignment of TextAlignment
21614           - Added proper default for TextAlignment
21615
21616 2004-09-02 14:26  pbartok
21617
21618         * RadioButton.cs:
21619           - Added missing RadioButton.RadioButtonAccessibleObject class
21620
21621 2004-09-02 14:26  pbartok
21622
21623         * Control.cs:
21624           - Added missing Control.ControlAccessibleObject class
21625           - Started to implement Select()ion mechanisms, still very incomplete
21626
21627 2004-09-02 14:25  pbartok
21628
21629         * AccessibleObject.cs:
21630           - Added missing methods
21631
21632 2004-09-02 14:23  pbartok
21633
21634         * AccessibleNavigation.cs, AccessibleSelection.cs:
21635           - Initial check-in
21636
21637 2004-09-02 10:32  jordi
21638
21639         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21640           pool for pens, brushes, and hatchbruses
21641
21642 2004-09-01 15:30  jackson
21643
21644         * StatusBar.cs: Fix typo
21645
21646 2004-09-01 14:44  pbartok
21647
21648         * RadioButton.cs:
21649           - Fixed state
21650
21651 2004-09-01 14:39  pbartok
21652
21653         * Button.cs, RadioButton.cs:
21654           - Functional initial check-in
21655
21656 2004-09-01 14:01  pbartok
21657
21658         * CheckBox.cs:
21659           - Added missing default
21660           - Added missing region mark
21661
21662 2004-09-01 09:10  jordi
21663
21664         * Label.cs: fixes method signatures, new methods, events, fixes
21665           autosize
21666
21667 2004-09-01 07:19  jordi
21668
21669         * Control.cs: Init string variables with an empty object
21670
21671 2004-09-01 04:20  jordi
21672
21673         * Control.cs: fires OnFontChanged event
21674
21675 2004-08-31 20:07  pbartok
21676
21677         * ButtonBase.cs:
21678           - Enabled display of strings
21679
21680 2004-08-31 20:05  pbartok
21681
21682         * Form.cs:
21683           - Added (partial) implementation of DialogResult; rest needs to be
21684             implemented when the modal loop code is done
21685
21686 2004-08-31 19:55  pbartok
21687
21688         * CheckBox.cs:
21689           - Fixed to match the removal of the needs_redraw concept
21690
21691 2004-08-31 19:55  pbartok
21692
21693         * ButtonBase.cs:
21694           - Removed the rather odd split between 'needs redraw' and redrawing
21695           - Now handles the events that require regeneration (ambient
21696             properties and size)
21697
21698 2004-08-31 19:41  pbartok
21699
21700         * Control.cs:
21701           - Added firing of BackColorChanged event
21702           - Added TopLevelControl property
21703           - Fixed handling of WM_ERASEBKGRND message
21704
21705 2004-08-31 12:49  pbartok
21706
21707         * ButtonBase.cs:
21708           - Removed debug
21709           - Minor fixes
21710
21711 2004-08-31 12:48  pbartok
21712
21713         * CheckBox.cs:
21714           - Finished (famous last words)
21715
21716 2004-08-31 04:35  jordi
21717
21718         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21719           scrolling bugs, adds new methods
21720
21721 2004-08-30 14:42  pbartok
21722
21723         * CheckBox.cs:
21724           - Implemented CheckBox drawing code
21725
21726 2004-08-30 14:42  pbartok
21727
21728         * ButtonBase.cs:
21729           - Made Redraw() and CheckRedraw() virtual
21730           - Improved mouse up/down/move logic to properly track buttons
21731
21732 2004-08-30 09:44  pbartok
21733
21734         * CheckBox.cs:
21735           - Updated to fix broken build. Not complete yet.
21736
21737 2004-08-30 09:28  pbartok
21738
21739         * CheckState.cs:
21740           - Initial checkin
21741
21742 2004-08-30 09:17  pbartok
21743
21744         * Appearance.cs:
21745           - Initial check-in
21746
21747 2004-08-27 16:12  ravindra
21748
21749         * ToolBarButton.cs: Added TypeConverter attribute.
21750
21751 2004-08-27 16:07  ravindra
21752
21753         * ImageIndexConverter.cs: Implemented.
21754
21755 2004-08-27 14:17  pbartok
21756
21757         * Control.cs:
21758           - Removed unneeded stack vars
21759           - First attempt to fix sizing issues when layout is suspended
21760
21761 2004-08-25 15:35  jordi
21762
21763         * ScrollBar.cs: more fixes to scrollbar
21764
21765 2004-08-25 14:04  ravindra
21766
21767         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21768           Added the missing divider code and grip for ToolBar Control.
21769
21770 2004-08-25 13:20  pbartok
21771
21772         * Control.cs:
21773           - Control now properly passes the ambient background color to child
21774             controls
21775
21776 2004-08-25 13:20  jordi
21777
21778         * ScrollBar.cs: small bug fix regarding bar position
21779
21780 2004-08-25 12:33  pbartok
21781
21782         * Timer.cs:
21783           - Now only calls SetTimer or KillTimer if the enabled state has
21784           changed
21785
21786 2004-08-25 12:33  pbartok
21787
21788         * XplatUIWin32.cs:
21789           - Fixed timer handling, now seems to work
21790           - Improved error message for window creation
21791
21792 2004-08-25 12:32  pbartok
21793
21794         * Control.cs:
21795           - Fixed generation of MouseUp message
21796
21797 2004-08-25 12:29  jordi
21798
21799         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21800           and fixes for progressbar
21801
21802 2004-08-24 18:43  ravindra
21803
21804         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21805           in ToolBar control.
21806
21807 2004-08-24 17:15  pbartok
21808
21809         * Panel.cs:
21810           - Added #region
21811           - Added missing events
21812           - Alphabetized
21813
21814 2004-08-24 17:14  pbartok
21815
21816         * StatusBar.cs, PictureBox.cs:
21817           - Now uses Control's CreateParams
21818
21819 2004-08-24 16:36  pbartok
21820
21821         * XplatUIX11.cs:
21822           - Fixed background color handling
21823           - Fixed sending of enter/leave events on a grab
21824
21825 2004-08-24 16:35  pbartok
21826
21827         * X11Structs.cs:
21828           - Refined definitions for CrossingEvent
21829
21830 2004-08-24 12:37  jordi
21831
21832         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21833           formmating, methods signature, and adds missing events
21834
21835 2004-08-24 12:24  jordi
21836
21837         * Control.cs: fire OnEnabledChanged event
21838
21839 2004-08-24 11:17  pbartok
21840
21841         * XplatUIWin32.cs:
21842           - Implemented SetTimer() and KillTimer()
21843
21844 2004-08-24 11:16  pbartok
21845
21846         * XplatUIX11.cs:
21847           - Now uses Remove instead of Add to kill the timer
21848
21849 2004-08-24 10:16  jackson
21850
21851         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21852           picture boxes in the theme now. Draw picture box borders and obey
21853           sizing modes
21854
21855 2004-08-24 05:49  jackson
21856
21857         * Timer.cs: Remove top secret debugging code
21858
21859 2004-08-24 05:34  jackson
21860
21861         * PictureBox.cs: Temp hack to make picture boxes draw their full
21862           image
21863
21864 2004-08-24 05:29  jackson
21865
21866         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21867           XplatUIX11.cs: Move timers to the driver level. On X they are
21868           queued by the driver and checked on idle.
21869
21870 2004-08-24 01:07  jackson
21871
21872         * XplatUIX11.cs: Use a queue for async messages instead of passing
21873           them as ClientMessages since that was totally broken. Also simply
21874           check for events and return an idle message if none are found. This
21875           gives us an idle handler, and prevents deadlocking when no messages
21876           are in the queue.
21877
21878 2004-08-23 18:19  ravindra
21879
21880         * XplatUIWin32.cs: Removed the unwanted destructor.
21881
21882 2004-08-23 17:27  pbartok
21883
21884         * ButtonBase.cs:
21885           - Finishing touches. Works now, just needs some optimizations.
21886
21887 2004-08-23 16:53  jordi
21888
21889         * ScrollBar.cs: small fix
21890
21891 2004-08-23 16:45  pbartok
21892
21893         * Application.cs:
21894           - Removed debug output
21895           - Simplifications
21896
21897 2004-08-23 16:43  jordi
21898
21899         * ScrollBar.cs: [no log message]
21900
21901 2004-08-23 16:10  pbartok
21902
21903         * Form.cs:
21904           - Fixed handling of WM_CLOSE message
21905           - Removed debug output
21906
21907 2004-08-23 16:09  pbartok
21908
21909         * Application.cs:
21910           - Added handling of Idle event
21911           - Added handling of form closing
21912           - Fixed reporting of MessageLoop property
21913           - Removed some unneeded code, should provide a bit of a speedup
21914
21915 2004-08-23 15:22  pbartok
21916
21917         * Control.cs:
21918           - Added InitLayout() method
21919           - Added code to properly perform layout when Anchor or Dock property
21920             is changed
21921           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21922             LAMESPEC, tried to do it in a way that makes sense
21923
21924 2004-08-23 14:10  jordi
21925
21926         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21927           properties and methods
21928
21929 2004-08-23 13:55  pbartok
21930
21931         * Control.cs:
21932           - Properly fixed Jordi's last fix
21933           - Now uses Cursor's Position property instead of calling XplatUI
21934           directly
21935
21936 2004-08-23 13:44  jordi
21937
21938         * PaintEventHandler.cs: Adding missing attribute
21939
21940 2004-08-23 13:39  pbartok
21941
21942         * Cursor.cs:
21943           - Implemented Position property
21944
21945 2004-08-23 13:39  pbartok
21946
21947         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21948           - Added method to move mouse cursor
21949
21950 2004-08-23 13:39  pbartok
21951
21952         * XplatUIX11.cs:
21953           - Fixed setting of background color
21954           - Added method to move mouse cursor
21955
21956 2004-08-23 13:16  jordi
21957
21958         * Control.cs: avoids null exception
21959
21960 2004-08-22 17:46  jackson
21961
21962         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21963           PictureBox
21964
21965 2004-08-22 17:40  jackson
21966
21967         * XplatUIX11.cs: Add some missing locks
21968
21969 2004-08-22 15:10  pbartok
21970
21971         * Control.cs, Form.cs:
21972           - Removed OverlappedWindow style from Control, instead it's default
21973             now is child
21974           - Made form windows OverlappedWindow by default
21975
21976 2004-08-22 13:34  jackson
21977
21978         * ScrollBar.cs: Update the position through the Value property so
21979           the OnValueChanged event is raised.
21980
21981 2004-08-22 12:04  pbartok
21982
21983         * SWF.csproj:
21984           - Added Cursor.cs and UserControl.cs
21985
21986 2004-08-22 12:03  pbartok
21987
21988         * Cursor.cs:
21989           - Started implementation, not usable yet
21990
21991 2004-08-22 12:00  pbartok
21992
21993         * UserControl.cs:
21994           - Implemented UserControl (complete)
21995
21996 2004-08-21 19:20  ravindra
21997
21998         * ToolBar.cs: Correcting the formatting mess of VS.NET.
21999
22000 2004-08-21 18:49  ravindra
22001
22002         * ToolBar.cs: Probably this completes the missing attributes in
22003           toolbar control.
22004
22005 2004-08-21 18:03  ravindra
22006
22007         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22008           Fixed toolbar control signatures.
22009
22010 2004-08-21 16:32  pbartok
22011
22012         * LinkLabel.cs:
22013           - Signature Fixes
22014
22015 2004-08-21 16:30  pbartok
22016
22017         * Label.cs:
22018           - Signature fixes
22019
22020 2004-08-21 16:19  pbartok
22021
22022         * Control.cs, Label.cs:
22023           - Signature fixes
22024
22025 2004-08-21 15:57  pbartok
22026
22027         * ButtonBase.cs:
22028           - Added loads of debug output for development
22029           - Fixed typo in method name
22030
22031 2004-08-21 15:52  pbartok
22032
22033         * ToolBarButtonClickEventArgs.cs:
22034           - Added missing base class
22035
22036 2004-08-21 14:53  pbartok
22037
22038         * Control.cs:
22039           - Updated to match new GrabWindow signature
22040
22041 2004-08-21 14:51  pbartok
22042
22043         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22044           - Added method to get default display size
22045
22046 2004-08-21 14:23  pbartok
22047
22048         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22049           - Added method to query current grab state
22050           - Added argument to allow confining a grab to a window
22051
22052 2004-08-21 14:22  pbartok
22053
22054         * Keys.cs:
22055           - Added [Flags] attribute so that modifiers can be used in bitwise
22056           ops
22057
22058 2004-08-21 14:21  pbartok
22059
22060         * TrackBar.cs, ScrollBar.cs:
22061           - Replaced direct XplatUI calls with their Control counterpart
22062
22063 2004-08-21 13:32  pbartok
22064
22065         * Control.cs:
22066           - Implemented Created property
22067
22068 2004-08-21 13:28  pbartok
22069
22070         * Control.cs:
22071           - Implemented ContainsFocus
22072
22073 2004-08-21 13:26  pbartok
22074
22075         * Control.cs:
22076           - Implemented CausesValidation
22077
22078 2004-08-21 13:21  pbartok
22079
22080         * Control.cs:
22081           - Implemented CanFocus
22082           - Implemented CanSelect
22083           - Implemented Capture
22084
22085 2004-08-21 12:35  pbartok
22086
22087         * XplatUIWin32.cs:
22088           - Fixed bug with Async message handling
22089           - Implemented getting the ModifierKeys
22090
22091 2004-08-21 12:32  jackson
22092
22093         * AsyncMethodResult.cs: Make sure we have the mutex before we
22094           release it. Fixes BeginInvoke on windows
22095
22096 2004-08-21 11:31  pbartok
22097
22098         * XplatUIWin32.cs, XplatUIX11.cs:
22099           - Drivers now return proper mouse state
22100
22101 2004-08-21 10:54  jackson
22102
22103         * Control.cs: Implement EndInvoke
22104
22105 2004-08-21 10:48  jackson
22106
22107         * Timer.cs: Remove unneeded finalizer
22108
22109 2004-08-20 19:52  ravindra
22110
22111         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22112           in mouse event handling in the ToolBar control.
22113
22114 2004-08-20 19:50  ravindra
22115
22116         * ImageList.cs: Changed draw method to use the arguments passed in
22117           to draw the image.
22118
22119 2004-08-20 18:58  pbartok
22120
22121         * XplatUIStructs.cs:
22122           - Added private message for async communication
22123
22124 2004-08-20 17:38  ravindra
22125
22126         * Control.cs: Made RightToLeft property virtual and removed a
22127           Console.WriteLine.
22128
22129 2004-08-20 14:39  jordi
22130
22131         * ThemeGtk.cs: use style_attach
22132
22133 2004-08-20 14:39  pbartok
22134
22135         * XplatUIWin32.cs:
22136           - Added jackson's Async code from X11 to Win32
22137
22138 2004-08-20 14:09  pbartok
22139
22140         * SWF.csproj:
22141           - Added all new files
22142
22143 2004-08-20 14:09  pbartok
22144
22145         * Control.cs:
22146           - Added call to set window background color
22147
22148 2004-08-20 14:03  pbartok
22149
22150         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22151           - Added method for setting the window background
22152
22153 2004-08-20 14:02  pbartok
22154
22155         * XplatUIWin32.cs:
22156           - Added method for setting the background color
22157           - Added handling for erasing the window background
22158
22159 2004-08-20 13:45  jordi
22160
22161         * TrackBar.cs: fixes timer, new properties and methods
22162
22163 2004-08-20 13:34  jackson
22164
22165         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22166           correct thread
22167
22168 2004-08-20 13:22  jackson
22169
22170         * Timer.cs: Timer Tick events are now handed through Controls Async
22171           mechanism so the callbacks are executed in the same thread as X
22172
22173 2004-08-20 13:19  jackson
22174
22175         * XplatUIDriver.cs: Expose functionality to send async messages
22176           through the driver
22177
22178 2004-08-20 13:18  jackson
22179
22180         * Control.cs: Implement Begininvoke
22181
22182 2004-08-20 13:14  jackson
22183
22184         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22185           messages through the driver
22186
22187 2004-08-20 13:12  jackson
22188
22189         * XplatUIX11.cs: Lock before all X operations. Also added Async
22190           method functionality through XSendEvent
22191
22192 2004-08-20 13:11  jackson
22193
22194         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22195           This will screw up on 64 bit systems)
22196
22197 2004-08-20 13:10  jackson
22198
22199         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22200           Async messages through X/Win32
22201
22202 2004-08-19 19:39  pbartok
22203
22204         * XplatUIX11.cs:
22205           - Updated code to match new HandleData.DeviceContext type
22206
22207 2004-08-19 19:38  pbartok
22208
22209         * HandleData.cs:
22210           - Made DeviceContext a generic object to allow usage from various
22211           drivers
22212           - Added support for queueing Windows messages
22213
22214 2004-08-19 19:37  pbartok
22215
22216         * XplatUIWin32.cs:
22217           - Added generation of MouseEnter, MouseLeave and MouseHover events
22218           - Added cleanup on EndPaint
22219
22220 2004-08-19 19:17  pbartok
22221
22222         * Control.cs:
22223           - Added handling of WM_MOUSEHOVER
22224           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22225           code
22226
22227 2004-08-19 18:55  jordi
22228
22229         * ThemeGtk.cs: fixes button order
22230
22231 2004-08-19 18:12  jordi
22232
22233         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22234
22235 2004-08-19 17:09  pbartok
22236
22237         * Control.cs:
22238           - Added Right property
22239           - Added RightToLeft property
22240
22241 2004-08-19 16:27  jordi
22242
22243         * ThemeGtk.cs: experimental GTK theme support
22244
22245 2004-08-19 16:26  jordi
22246
22247         * ITheme.cs, Theme.cs: move themes from an interface to a class
22248
22249 2004-08-19 16:25  jordi
22250
22251         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22252           theme enhancaments
22253
22254 2004-08-19 16:04  pbartok
22255
22256         * XplatUIX11.cs:
22257           - Added colormap basics
22258           - Added a way to re-initialize with a different display handle
22259           - Fixed setting of the window background color
22260           - Added various X11 imports related to colors and colormaps
22261
22262 2004-08-19 15:51  pbartok
22263
22264         * X11Structs.cs:
22265           - Removed packing hints (Paolo suggested this a while back)
22266           - fixed colormap type
22267           - Added default Atom types
22268           - Added Screen and color structs and enums
22269
22270 2004-08-19 15:39  pbartok
22271
22272         * ImageList.cs:
22273           - Added missing Draw() method
22274           - Added missing RecreateHandle event
22275
22276 2004-08-19 15:30  pbartok
22277
22278         * Form.cs:
22279           - Added handling of WM_CLOSE
22280
22281 2004-08-18 13:16  jordi
22282
22283         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22284           a table
22285
22286 2004-08-18 09:56  jordi
22287
22288         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22289
22290 2004-08-17 15:31  ravindra
22291
22292         * SWF.csproj: Updated project.
22293
22294 2004-08-17 15:25  pbartok
22295
22296         * Control.cs:
22297           - Drawing improvement; don't call UpdateBounds if we are not visible
22298             (or have been minimized)
22299
22300 2004-08-17 15:24  pbartok
22301
22302         * XplatUIWin32.cs:
22303           - Finished IsVisible
22304           - Added Win32GetWindowPlacement
22305
22306 2004-08-17 15:08  jackson
22307
22308         * Panel.cs: Initial checkin of the Panel
22309
22310 2004-08-17 14:25  pbartok
22311
22312         * Control.cs:
22313           - Fixed broken handling of default window sizes
22314
22315 2004-08-17 13:29  jackson
22316
22317         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22318           has a large startup time.
22319
22320 2004-08-17 10:25  jackson
22321
22322         * HandleData.cs: union areas properly
22323
22324 2004-08-17 10:12  jackson
22325
22326         * HandleData.cs: union areas properly
22327
22328 2004-08-16 20:00  ravindra
22329
22330         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22331
22332 2004-08-16 18:48  ravindra
22333
22334         * ToolBar.cs: Added attributes.
22335
22336 2004-08-16 17:17  ravindra
22337
22338         * SWF.csproj: Updated project.
22339
22340 2004-08-16 17:16  jackson
22341
22342         * XplatUIX11.cs: Check for more expose events before sending a
22343           WM_PAINT so they can all be grouped together. This makes dragging a
22344           window across another window redraw in a sane way.
22345
22346 2004-08-16 15:47  pbartok
22347
22348         * Control.cs:
22349           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22350             support OnMouseEnter/Leave()
22351           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22352             exposure handling
22353
22354 2004-08-16 15:46  pbartok
22355
22356         * XplatUIStructs.cs, XplatUIX11.cs:
22357           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22358           OnMouseEnter/Leave()
22359
22360 2004-08-16 15:34  jackson
22361
22362         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22363           sure messages get the message field set to WM_NULL if they are not
22364           handled.
22365
22366 2004-08-16 15:24  jackson
22367
22368         * HandleData.cs: HandleData is used for storing message information
22369           for window handles
22370
22371 2004-08-15 17:23  ravindra
22372
22373         * ColorDepth.cs: Added attribute.
22374
22375 2004-08-15 17:23  ravindra
22376
22377         * SWF.csproj: Updated project for ToolBar Control.
22378
22379 2004-08-15 17:20  ravindra
22380
22381         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22382           control and also dos2unix format.
22383
22384 2004-08-15 17:13  ravindra
22385
22386         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22387           ToolBarButtonClickEventArgs.cs,
22388           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22389           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22390
22391 2004-08-15 15:31  pbartok
22392
22393         * ButtonBase.cs:
22394           - First (mostly) working version
22395
22396 2004-08-13 16:15  pbartok
22397
22398         * Control.cs:
22399           - Fixed Anchor default
22400
22401 2004-08-13 15:43  pbartok
22402
22403         * Control.cs:
22404           - Changed GetCursorPos signature
22405
22406 2004-08-13 15:42  pbartok
22407
22408         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22409           - Changed signature for GetCursorPos
22410
22411 2004-08-13 15:25  pbartok
22412
22413         * XplatUIX11.cs:
22414           - Cleanup
22415           - Fixed resizing/exposure handling
22416
22417 2004-08-13 15:22  jordi
22418
22419         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22420           with tickposition
22421
22422 2004-08-13 14:55  jordi
22423
22424         * TrackBar.cs: change from wndproc to events
22425
22426 2004-08-13 13:00  jordi
22427
22428         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22429           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22430
22431 2004-08-13 12:53  pbartok
22432
22433         * XplatUIWin32.cs:
22434           - Changed GetWindowPos to also provide client area size
22435           - Fixed broken prototypes for several win32 functions
22436
22437 2004-08-13 12:53  pbartok
22438
22439         * XplatUI.cs, XplatUIDriver.cs:
22440           - Changed GetWindowPos to also provide client area size
22441
22442 2004-08-13 12:52  pbartok
22443
22444         * XplatUIX11.cs:
22445           - Added generation of WM_POSCHANGED
22446           - Changed GetWindowPos to also provide client area size
22447
22448 2004-08-13 12:52  pbartok
22449
22450         * Control.cs:
22451           - Added Dispose() and destructor
22452           - Fixed resizing and bounds calculation
22453           - Fixed Layout
22454           - Added memory savings for invisible windows
22455
22456 2004-08-13 12:46  jordi
22457
22458         * TrackBar.cs: adds timer and grap window
22459
22460 2004-08-13 10:25  jackson
22461
22462         * Timer.cs: SWF Timer
22463
22464 2004-08-12 16:59  pbartok
22465
22466         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22467           - Implemented method to get current mouse position
22468
22469 2004-08-12 14:29  jordi
22470
22471         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22472           enhancement, fix mouse problems, highli thumb, etc
22473
22474 2004-08-12 13:31  pbartok
22475
22476         * Control.cs:
22477           - Fixed Anchoring bugs
22478
22479 2004-08-12 13:01  jackson
22480
22481         * StatusBar.cs: Don't forget things
22482
22483 2004-08-12 12:54  jackson
22484
22485         * ThemeWin32Classic.cs: Handle owner draw status bars
22486
22487 2004-08-12 12:54  jackson
22488
22489         * StatusBar.cs: Implement missing properties, events, and methods.
22490           Handle mouse clicking
22491
22492 2004-08-12 10:19  jackson
22493
22494         * StatusBarPanelClickEventArgs.cs,
22495           StatusBarPanelClickEventHandler.cs: Classes for handling status
22496           bar panel click events
22497
22498 2004-08-12 10:10  jackson
22499
22500         * Control.cs: Add missing properties
22501
22502 2004-08-12 09:46  pbartok
22503
22504         * BindingsManagerBase.cs:
22505           - Name changed to BindingManagerBase.cs
22506
22507 2004-08-12 09:25  jordi
22508
22509         * ScrollableControl.cs: calls ctrlbase instead of exeception
22510
22511 2004-08-11 16:28  pbartok
22512
22513         * InputLanguageChangingEventArgs.cs:
22514           - Never check in before compiling. Fixes the last check-in
22515
22516 2004-08-11 16:26  pbartok
22517
22518         * InputLanguageChangingEventArgs.cs:
22519           - More signature fixes
22520
22521 2004-08-11 16:20  pbartok
22522
22523         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22524           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22525           ImageListStreamer.cs, InputLanguage.cs,
22526           InputLanguageChangedEventArgs.cs,
22527           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22528           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22529           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22530           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22531           - Signature fixes
22532
22533 2004-08-11 16:16  pbartok
22534
22535         * Application.cs:
22536           - Fixed Signature
22537           - Added .Net 1.1 method
22538
22539 2004-08-11 15:25  pbartok
22540
22541         * SWF.csproj:
22542           - Fixed BindingManagerBase.cs filename
22543
22544 2004-08-11 15:22  pbartok
22545
22546         * BindingManagerBase.cs:
22547           - Was checked in with wrong filename
22548
22549 2004-08-11 14:50  pbartok
22550
22551         * SWF.csproj:
22552           - Updated
22553
22554 2004-08-11 13:41  jordi
22555
22556         * XplatUIWin32.cs: Fixes ClientRect
22557
22558 2004-08-11 13:19  pbartok
22559
22560         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22561           XplatUIX11.cs:
22562           - We had SetWindowPos and MoveWindow to set window positions and
22563             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22564             keep SetWindowPos as matching counterpart
22565           - Added some X11 sanity checking
22566
22567 2004-08-11 12:59  pbartok
22568
22569         * Control.cs:
22570           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22571             (It seems that SetBounds is just a front for SetBoundsCore and
22572              SetBoundsCore updates the underlying window system and
22573              UpdateBounds is responsible for updating the variables associated
22574              with the Control and sending the events)
22575           - Major cleanup of Size handling; we now have two sizes, client_size
22576             and bounds. Bounds defines the window with decorations, client_size
22577             without them.
22578
22579 2004-08-11 12:55  pbartok
22580
22581         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22582           - Added method to calculate difference between decorated window and
22583             raw client area
22584
22585 2004-08-11 12:54  pbartok
22586
22587         * Label.cs:
22588           - Forcing redraw on resize
22589
22590 2004-08-11 11:43  pbartok
22591
22592         * ImageList.cs:
22593           - Removed disposing of the actual images when the list is disposed
22594
22595 2004-08-11 09:13  pbartok
22596
22597         * Control.cs:
22598           - Now properly reparents windows
22599
22600 2004-08-11 08:37  pbartok
22601
22602         * Control.cs:
22603           - Duh!
22604
22605 2004-08-11 07:47  pbartok
22606
22607         * Control.cs:
22608           - Rewrote the collection stuff. Might not be as fast now, not
22609             keeping the number of children around and accessible directly, but
22610             it's more straightforward
22611
22612 2004-08-11 07:44  pbartok
22613
22614         * AccessibleObject.cs:
22615           - Fixed to match ControlCollection rewrite
22616
22617 2004-08-11 07:43  pbartok
22618
22619         * ImageList.cs:
22620           - Added missing creation of the collection list
22621
22622 2004-08-10 20:08  jackson
22623
22624         * StatusBar.cs: Get the paint message from WndProc
22625
22626 2004-08-10 19:31  jackson
22627
22628         * ThemeWin32Classic.cs: Create Brushes as little as possible
22629
22630 2004-08-10 19:20  jackson
22631
22632         * UICues.cs: Add Flags attribute
22633
22634 2004-08-10 19:19  jackson
22635
22636         * StatusBarPanel.cs: Signature cleanup
22637
22638 2004-08-10 19:10  jackson
22639
22640         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22641           Initial implementation of status bar item drawing
22642
22643 2004-08-10 17:27  jordi
22644
22645         * TrackBar.cs: add missing methods, properties, and restructure to
22646           hide extra ones
22647
22648 2004-08-10 16:24  jackson
22649
22650         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22651           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22652           attribute
22653
22654 2004-08-10 13:21  jordi
22655
22656         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22657           enhancements and standarize on win colors defaults
22658
22659 2004-08-10 12:52  jackson
22660
22661         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22662           ThemeWin32Classic.cs: Implement DrawItem functionality
22663
22664 2004-08-10 12:47  jordi
22665
22666         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22667
22668 2004-08-10 12:32  jordi
22669
22670         * Control.cs: throw ontextchange event
22671
22672 2004-08-10 11:43  pbartok
22673
22674         * Control.cs:
22675           - Added more to the still unfinished Dock/Anchor layout code
22676
22677 2004-08-10 11:39  pbartok
22678
22679         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22680           - Added GetWindowPos method
22681
22682 2004-08-10 11:36  pbartok
22683
22684         * XplatUIWin32.cs:
22685           - Implemented several methods
22686
22687 2004-08-10 09:47  jackson
22688
22689         * TrackBar.cs: Allow control to handle buffering
22690
22691 2004-08-10 09:41  jackson
22692
22693         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22694
22695 2004-08-10 09:24  jackson
22696
22697         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22698
22699 2004-08-10 09:09  jackson
22700
22701         * StatusBar.cs: Let Control handle all the buffering.
22702
22703 2004-08-10 09:08  jackson
22704
22705         * Control.cs: Control will now handle the buffering code, so each
22706           control does not have to implement this.
22707
22708 2004-08-10 08:34  jackson
22709
22710         * XplatUIDriver.cs: Use default colors from the theme
22711
22712 2004-08-09 17:12  pbartok
22713
22714         * ImageList.cs:
22715           - Fixed several bugs Ravindra pointed out
22716
22717 2004-08-09 16:11  pbartok
22718
22719         * Control.cs:
22720           - Added incomplete dock layout code
22721           - Added support for mouse wheel
22722
22723 2004-08-09 16:09  pbartok
22724
22725         * XplatUIX11.cs:
22726           - Added handling for middle and right mousebutton
22727           - Added handling for mouse wheel
22728           - Added handling for key state and mouse state and position
22729           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22730           messages
22731
22732 2004-08-09 15:40  jackson
22733
22734         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22735           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22736           checkin
22737
22738 2004-08-09 15:37  jackson
22739
22740         * StatusBar.cs: Initial implementation of StatusBar
22741
22742 2004-08-09 15:36  jackson
22743
22744         * ITheme.cs: Add support for drawing status bar and getting status
22745           bar item sizes
22746
22747 2004-08-09 15:35  pbartok
22748
22749         * MouseButtons.cs:
22750           - Fixed values
22751
22752 2004-08-09 15:34  jackson
22753
22754         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22755           status bar item sizes
22756
22757 2004-08-09 15:21  jackson
22758
22759         * ThemeWin32Classic.cs: Use known colors for default control
22760           colours
22761
22762 2004-08-09 15:12  jackson
22763
22764         * ThemeWin32Classic.cs: Make the default font static, it is static
22765           in control so this doesn't change functionality and creating fonts
22766           is sloooooow.
22767
22768 2004-08-09 14:56  pbartok
22769
22770         * X11Structs.cs:
22771           - Added GrabMode enum
22772
22773 2004-08-09 14:55  pbartok
22774
22775         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22776           - Removed Run method, was only required for initial development
22777
22778 2004-08-09 14:51  pbartok
22779
22780         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22781           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22782           capture
22783
22784 2004-08-09 13:48  pbartok
22785
22786         * XplatUIX11.cs:
22787           - Fixed default sizing for child windows
22788
22789 2004-08-09 12:56  pbartok
22790
22791         * XplatUIX11.cs:
22792           - Added generation of WM_DESTROY message
22793           - Added handling of window manager induced shutdown
22794
22795 2004-08-09 11:31  jackson
22796
22797         * ThemeWin32Classic.cs: New names for control properties
22798
22799 2004-08-09 11:25  jackson
22800
22801         * Control.cs: Use new color names
22802
22803 2004-08-09 11:02  jackson
22804
22805         * XplatUI.cs: Get default window properties from the theme
22806
22807 2004-08-09 11:01  jackson
22808
22809         * ITheme.cs: The theme engine now controls default window
22810           properties
22811
22812 2004-08-09 11:00  jackson
22813
22814         * ThemeWin32Classic.cs: Add default window color properties
22815
22816 2004-08-09 10:17  jackson
22817
22818         * ThemeWin32Classic.cs: Use correct default back color
22819
22820 2004-08-09 10:05  jackson
22821
22822         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22823           the theme now.
22824
22825 2004-08-09 09:56  jackson
22826
22827         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22828
22829 2004-08-09 09:54  jackson
22830
22831         * Control.cs: Get default properties from the theme.
22832
22833 2004-08-09 09:53  jackson
22834
22835         * ITheme.cs: Themes now handle default control properties
22836
22837 2004-08-09 09:53  jackson
22838
22839         * ThemeWin32Classic.cs: Themes now handle default control
22840           properties so coloring will be consistent
22841
22842 2004-08-08 16:54  jordi
22843
22844         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22845
22846 2004-08-08 15:08  jordi
22847
22848         * XplatUIX11.cs: fixes keyboard crash
22849
22850 2004-08-08 13:47  jordi
22851
22852         * Label.cs: add cvs header info
22853
22854 2004-08-08 12:09  jackson
22855
22856         * ThemeWin32Classic.cs: Add pen_buttonface
22857
22858 2004-08-08 11:52  jordi
22859
22860         * Label.cs, LinkLabel.cs: [no log message]
22861
22862 2004-08-08 11:34  jordi
22863
22864         * ThemeWin32Classic.cs: Use Windows Standard Colours
22865
22866 2004-08-07 17:32  jordi
22867
22868         * TrackBar.cs: throw exceptions of invalid enums values
22869
22870 2004-08-07 17:31  jordi
22871
22872         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22873           draw method name
22874
22875 2004-08-07 16:56  jackson
22876
22877         * HorizontalAlignment.cs: Initial checkin
22878
22879 2004-08-07 13:16  jordi
22880
22881         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22882           methods
22883
22884 2004-08-07 13:05  jordi
22885
22886         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22887           GetSysColor defines
22888
22889 2004-08-06 18:01  pbartok
22890
22891         * ThemeWin32Classic.cs:
22892           - Fixed some rounding issues with float/int
22893
22894 2004-08-06 18:00  jackson
22895
22896         * DockStyle.cs, AnchorStyles.cs:
22897
22898                   Add flags and serializable attributes.
22899
22900 2004-08-06 17:46  pbartok
22901
22902         * XplatUIX11.cs:
22903           - Implemented GetParent
22904
22905 2004-08-06 17:18  pbartok
22906
22907         * TrackBar.cs:
22908           - Fixed some rounding issues with float/int
22909
22910 2004-08-06 17:17  pbartok
22911
22912         * X11Structs.cs, XplatUIX11.cs:
22913           - Fixed Refresh and Invalidate
22914
22915 2004-08-06 15:30  pbartok
22916
22917         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22918           - Fixed recursive loop when resizing
22919           - Improved/fixed redrawing on expose messages
22920
22921 2004-08-06 09:53  jordi
22922
22923         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22924           keyboard navigation
22925
22926 2004-08-06 08:02  pbartok
22927
22928         * X11Structs.cs, XplatUIX11.cs:
22929           - Fixed reparenting
22930           - Fixed window border creation
22931
22932 2004-08-05 15:38  pbartok
22933
22934         * XplatUIX11.cs:
22935           - Attempted fix for reparenting problems
22936
22937 2004-08-04 15:14  pbartok
22938
22939         * Control.cs:
22940           - Fixed Invalidation bug (calculated wrong client area)
22941           - Added ClientSize setter
22942
22943 2004-08-04 15:13  pbartok
22944
22945         * Form.cs:
22946           - Added AutoScale properties
22947
22948 2004-08-04 15:13  pbartok
22949
22950         * SWF.csproj:
22951           - Added latest files
22952
22953 2004-08-04 14:11  pbartok
22954
22955         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22956           XplatUIX11.cs:
22957           - Added Invalidate handling
22958
22959 2004-08-03 17:09  jordi
22960
22961         * XplatUIDriver.cs: fixes spelling mistake
22962
22963 2004-07-27 09:53  jordi
22964
22965         * TrackBar.cs: fixes trackbar events, def classname, methods
22966           signature
22967
22968 2004-07-27 09:29  jordi
22969
22970         * ScrollBar.cs: fixes scrollbar events
22971
22972 2004-07-27 04:38  jordi
22973
22974         * Control.cs: changes to be able to run winforms samples
22975
22976 2004-07-26 11:42  jordi
22977
22978         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
22979           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
22980
22981 2004-07-26 05:41  jordi
22982
22983         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
22984           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
22985           implementation
22986
22987 2004-07-22 09:22  jordi
22988
22989         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
22990           check link overlapping, implement events, and fixes
22991
22992 2004-07-21 10:28  jordi
22993
22994         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
22995
22996 2004-07-21 10:19  jordi
22997
22998         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
22999           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23000           LinkLabelLinkClickedEventArgs.cs,
23001           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23002           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23003           implementation
23004
23005 2004-07-19 13:09  jordi
23006
23007         * Control.cs, Label.cs: label control re-written: added missing
23008           functionlity, events, and properties
23009
23010 2004-07-19 10:49  jordi
23011
23012         * Control.cs: fixes SetBounds logic
23013
23014 2004-07-19 01:29  jordi
23015
23016         * Control.cs: Call RefreshWindow only if the window has created
23017
23018 2004-07-15 14:05  pbartok
23019
23020         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23021           - Implemented ImageList and ImageList.ImageCollection classes
23022           - Added ColorDepth enumeration
23023           - Updated SWF VS.Net project
23024
23025 2004-07-15 11:06  jordi
23026
23027         * XplatUIStructs.cs: added MsgButons enum
23028
23029 2004-07-15 11:03  jordi
23030
23031         * Control.cs: added basic mouse handeling events
23032
23033 2004-07-15 03:38  jordi
23034
23035         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23036           Vertical TrackBar control implementation
23037
23038 2004-07-13 09:33  jordi
23039
23040         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23041
23042 2004-07-13 09:31  jordi
23043
23044         * Control.cs, Form.cs: commit: new properties and fixes form size
23045           problems
23046
23047 2004-07-09 14:13  miguel
23048
23049         * ProgressBar.cs: Spelling
23050
23051 2004-07-09 11:25  pbartok
23052
23053         * ProgressBar.cs:
23054           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23055           faster
23056
23057 2004-07-09 11:17  miguel
23058
23059         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23060
23061                 * ProgressBar.cs: Fixed spelling for `block'
23062
23063                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23064                 style guidelines.
23065
23066                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23067
23068 2004-07-08 23:21  pbartok
23069
23070         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23071           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23072           BaseCollection.cs, Binding.cs, BindingContext.cs,
23073           BindingMemberInfo.cs, BindingsCollection.cs,
23074           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23075           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23076           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23077           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23078           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23079           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23080           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23081           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23082           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23083           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23084           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23085           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23086           InputLanguageChangedEventArgs.cs,
23087           InputLanguageChangedEventHandler.cs,
23088           InputLanguageChangingEventArgs.cs,
23089           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23090           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23091           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23092           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23093           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23094           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23095           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23096           QueryAccessibilityHelpEventArgs.cs,
23097           QueryAccessibilityHelpEventHandler.cs,
23098           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23099           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23100           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23101           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23102           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23103           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23104           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23105           XplatUIX11.cs, lang.cs:
23106           - Initial check-in
23107