2007-02-16 Andreia Gaita <avidigal@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-16  Andreia Gaita  <avidigal@novell.com>
2
3         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
4         print preview images.
5
6 2007-02-16  Jackson Harper  <jackson@ximian.com>
7
8         * ListView.cs: Make AfterLabelEdit work correctly.
9         * FileDialog.cs: After changing the name of the folder, we have to
10         make sure that it is created, or that we pop up an error because
11         it already exists.
12
13 2007-02-16  Jackson Harper  <jackson@ximian.com>
14
15         * X11Dnd.cs: Implement aliases on mime handlers, so things like
16         System.String are mapped to text.
17         - Handle dataobjects, getting all the possible formats out of them
18         - We dont need the drag event args before we give feedback. This
19         allows feedback cursors to be immediate before selections have
20         been converted.
21
22 2007-02-16  Jackson Harper  <jackson@ximian.com>
23
24         * TextBoxBase.cs: Modified the method for inserting images to
25         taking a line and position instead of tag and position.
26         * RichTextBox.cs: Handle PngBlip data by inserting the png image
27         into the RTF file.
28         * TextControl.cs: Allow images to be inserted as the first tag of
29         a line.
30         - Fix some off by one issues when we assume the first tag is a
31         text tag, not an image tag.
32
33 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
34
35         * ListView.cs: Set focus to ListView when ItemControl gets a
36         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
37         Fixes part of #80467.
38
39 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
40
41         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
42           validate Text input (if null or empty string reset Value to default
43           value). Fixes #80830.
44
45 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
46
47         * ListView.cs: Set owner as null for columns and items when
48         Dispose is invoked. Fixes #80607.
49
50 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
51
52         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
53         showing DropDowns, don't show a Grip when doing Flow layout.
54         [This fixes the toolbox in PDN 2.72.]
55         * ToolStripItem.cs: Add Anchor property and some internal properties to
56         reduces needed changes to FlowLayout.
57         * ToolStripOverflow.cs: Remove unused variable.
58         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
59         use it in the layout calculations.
60
61 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
62
63         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
64         reported in #79640.
65         
66         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
67         size calculation.
68
69 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
70
71         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
72         MeasureString format, it can make button very large in some cases, it is
73         strange but is what win32 do.
74
75 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
76
77         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
78         size calculation.
79
80         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
81         rendering, the value is based on MenuAccessKeysUnderlined.
82
83 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
84
85         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
86         for most themes.
87         
88         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
89         
90         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
91         and use MenuAccessKeysUnderlined instead.
92
93 2007-02-13  Andreia Gaita  <avidigal@novell.com>
94
95         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
96         A selected control would not get a Focus call if:
97                 - the default active control of the container is the same as
98                   the one that was selected
99                 - we are switching from one container to another
100         Under these conditions, the container being selected already has
101         an active_control, which is the same as the one being activated, 
102         so set_ActiveControl would always return and not send the Focus
103         call. Fix to check if the currently active control of the container
104         is actually focused.
105
106 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
107
108         * StatusStrip.cs: Implement the spring layout.
109         * ToolStripControlHost.cs: Make sure the hosted control's visibility
110         always matches the host.
111         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
112         and TextAfterImage.
113
114 2007-02-13  Andreia Gaita  <avidigal@novell.com>
115
116         * Control.cs: Code reorganization only.
117           - Reorganize the WndProc cases so that each case has it's own handling method, 
118           to help with the no-line-numbering stack traces.
119           - Formatting changes (it's vstudio's fault, really :p)
120
121 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
122
123         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
124           Thread.CurrentUICulture to match DateTimePicker's (and MS)
125           behaviour.
126
127 2007-02-12  Jackson Harper  <jackson@ximian.com>
128
129         * RichTextBox.cs:
130         * TextBox.cs: By default we have a non multiline document
131         - use the multiline property instead of the internal variable
132         * TextBoxBase.cs: Treat multiline and non multiline the same in
133         most places.
134         - Use the documents multiline flag instead of tracking it ourself
135         * TextControl.cs: Attempt at getting multiline to match MS
136         behavior.  Lines now track an offset, which is either their X or Y
137         offset depending on whether or not we are in multiline mode.
138         - Update all the methods to understand that lines have an X value.
139         - Fix crash in Undo::Duplicate when empty lines are deleted.
140
141 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
142
143         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
144         code moved to properties PreferredHeight and PreferredWidth. It solve the
145         all problems when preferred sizes must be recalculated. Fixes #80801.
146
147 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
148
149         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
150         font height when compatible_text_rendering is false. Partially fix #80801.
151
152 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
153
154         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
155
156 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
157
158         * Form.cs: Improved exception messages in ShowDialog.
159
160 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
161
162         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
163         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
164         if not set. Fixes bug #80764. Avoid accessing current_settings field
165         directly.
166
167 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
168
169         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
170         false.
171
172         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
173         public in 2.0 and for easy maintenance and dont break compatibility it is 
174         internal in 1.1.
175         
176 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
177
178         * ToolStripItem.cs: Implement using images from ImageList.
179
180 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
181
182         * DateTimePicker.cs: Change default date-formatting culture from
183           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
184           seems to be the way MS does it.
185
186 2007-02-08  Andreia Gaita  <avidigal@novell.com>
187
188         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
189         (the 6 was cut off on the right side)
190
191 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
192
193         * Form.cs: Tell MenuStrips to close when the form is clicked.
194         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
195         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
196         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
197         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
198         support for Overflow, where items that do not fit are automatically
199         reparented to a drop down menu.
200         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
201         Also: fixes bug #80747.
202
203 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
204
205         * ComboBox.cs: Remove warning (unused code).
206         * ScrollableControl.cs: Remove warning for 1.1 profile.
207
208 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
209
210         * Form.cs: Remove a warning.
211
212 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
213
214         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
215           'g' specifier, not documented anywhere, but seems to always show up
216           as a single space (might have something to do with the DateTime 'g'
217           specifier, which is the era format, but since DateTimePicker can't
218           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
219           won't crash if the format has an unmatched quote. Now shows
220           single-character formats correctly. Fixes #80744.
221
222 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
223
224         * StatusStrip.cs: Stretch property needs to call base.Stretch,
225         not this.Stretch to fix stack overflow. [Fixes bug #80760]
226
227 2007-02-07  Chris Toshok  <toshok@ximian.com>
228
229         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
230         background color.  it overwrites the background image we've
231         already painted.  Fixes #80599.
232
233 2007-02-07  Chris Toshok  <toshok@ximian.com>
234
235         * DataGrid.cs: return immediately from Edit() when there are no
236         columns.  Fixes #80662.
237
238 2007-02-07  Chris Toshok  <toshok@ximian.com>
239
240         * MessageBox.cs: fix #80625.  don't always show the Help button in
241         2.0.  use the displayHelpButton parameter to determine if we
242         should show it. Also, make the internal show_help field private.
243
244 2007-02-07  Chris Toshok  <toshok@ximian.com>
245
246         * Control.cs (SetVisibleCore): check in the proposed patch for
247         80604, and set is_visible before calling CreateControl.
248
249 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
250
251         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
252         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
253         on it.
254
255 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
256
257         * MenuAPI.cs: hotkey_active internal field added, it is required because
258         we need to know when hotkeys must be draw, before this change a keystate
259         Navigating was used but we can have menu in navigating state without
260         hotkeys. Fixes #80694.
261         
262         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
263
264 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
265
266         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
267           corresponding events and methods to be internal for 1.1 profile and
268           public for 2.0 profile (required by SizeGrip).
269         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
270           implicit control list). Don't set the size nor the location of the
271           SizeGrip anymore as it's not needed.
272         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
273           draw directly on the captured control (fixes #80656). Removed
274           ShowGrip (it wasn't used anywhere), redraw (always true), added
275           GetDefaultSize and GetDefaultRectangle to calculate defaults.
276         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
277           be called from SizeGrip.
278
279 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
280
281         * Timer.cs: Throw ArgumentException if Interval <= 0.
282
283 2007-02-05  Jackson Harper  <jackson@ximian.com>
284
285         * TreeView.cs: We need to check scrollbar visibility when window
286         visibility is updated, because non visible trees don't ever add
287         scrollbars.
288         * Cursor.cs: We want the override cursor to be reset to NULL when
289         we set current cursor to the default cursor.
290
291 2007-02-05  Jackson Harper  <jackson@ximian.com>
292
293         * TextControl.cs: Don't have crlfs when we are non multiline.
294         - Consolidate the line position.
295
296 2007-02-05  Jackson Harper  <jackson@ximian.com>
297
298         * X11Keyboard.cs: BACK+CTRL gets a special char code.
299
300 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
301
302         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
303           handling LeaveNotify->NotifyUngrab in order to send
304           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
305           after calling XUngrabPointer, so we call WindowUngrabbed directly
306           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
307         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
308           MouseCaptureChanged correctly. Also create handles if changing
309           Capture (matches MS behaviour).
310
311 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
312
313         * SizeGrip.cs: Make the last change 2.0 only.
314
315 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
316
317         * SizeGrip.cs: If resizing and the capture is lost, revert any size
318           changes to initial size (fixes #80597).
319
320 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
321
322         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
323
324 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
325
326         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
327           background) and only allow dragging if enabled. This way the
328           sizegrip can be used to fill the open square that otherwise would
329           have been shown in the bottom right corner of ScrollableControl
330           when ScrollableControl is not suppose to support sizing.
331         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
332           sizegrip is shown and enabled, and hook up with necessary events.
333
334 2007-02-01  Chris Toshok  <toshok@ximian.com>
335
336         * DataGridTextBoxColumn.cs: clean up the
337         GetFormattedString/GetColumnValueAtRow combination of functions.
338         Also fix UpdateUI, and the initial state of
339         IsInEditOrNavigateMode.
340
341         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
342         aren't supposed to scroll the textbox here, we're supposed to
343         scroll the datagrid.
344
345 2007-02-01  Chris Toshok  <toshok@ximian.com>
346
347         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
348         setting the position.
349
350 2007-02-01  Chris Toshok  <toshok@ximian.com>
351
352         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
353         here, since the most recent focus fixes keep us from generating
354         the Leave event when our textbox gets focus.
355         (Edit): we should be passing null for the column style's
356         instantText parameter.
357         
358 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
359
360         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
361         raised.  Fixes menu text/icons not showing up in PDN.
362
363 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
364
365         * Control.cs: Remove code in constructor that makes every
366         control with WS_CHILD set have initial location -1, -1.
367
368 2007-01-31  Jackson Harper  <jackson@ximian.com>
369
370         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
371         XplatUIX11.
372         * XplatUIX11.cs: Give teh keyboard to teh dnd.
373
374 2007-01-31  Jackson Harper  <jackson@ximian.com>
375
376         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
377         - Remove some debug code.
378
379 2007-01-31  Jackson Harper  <jackson@ximian.com>
380
381         * XplatUIX11.cs: If you set the override cursor during a grab, it
382         should actually override the grab cursor.  This comes into play
383         when you are setting custom cursors in a DND feedback method.
384
385 2007-01-31  Jackson Harper  <jackson@ximian.com>
386
387         * X11Dnd.cs: Add support for handling the QueryContinue and
388         GiveFeedback events.
389         - Cancel drag and drop actions when the escape key is clicked.
390         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
391         can handle the ESCAPE key.
392         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
393         done when dnd events are continued after the button is released.
394         - Add a new helper method so that dnd can translate key events.
395
396 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
397
398         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
399         make it more obvious what is happening.
400
401 2007-01-30  Jackson Harper  <jackson@ximian.com>
402
403         * XplatUIX11.cs: Don't break when handling button release in drag
404         and drop operations. We need that BUTTONUP message to get through
405         so capture is released.
406         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
407         this is handled automatically when the mouse is down.
408
409 2007-01-30  Jackson Harper  <jackson@ximian.com>
410
411         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
412         is closed, so we need to make sure that we aren't changing the
413         dialog result when the OK (Open or Save) button has been clicked
414         and we are closing the window ourselves.  Note we don't need to
415         worry about the cache being written in this case, because it was
416         already done in the previous FilOk call.
417
418 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
419         
420         * DateTimePicker.cs: Remove a warning.
421         * ComboBox.cs: Remove a couple of warnings.
422
423 2007-01-29  Chris Toshok  <toshok@ximian.com>
424
425         * XplatUIX11.cs: don't crash, and remove the icon if the user has
426         set one, if SetIcon is passed a null icon.
427
428 2007-01-29  Andreia Gaita  <avidigal@novell.com>
429
430         * TextBox.cs: Redraw when the password characters changes
431         * TextControl.cs: Check if textbox has a password char and draw 
432         a line of password chars instead of the text in the line. LineTag gets 
433         an extra Draw() method which allows document.Draw to override the text 
434         that will be drawn. Removes 1024 char limitation on length of passworded 
435         lines.
436
437 2007-01-29  Jackson Harper  <jackson@ximian.com>
438
439         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
440         single chars is not.
441
442 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
443
444         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
445         one pixel.  Fix a StackOverflowException caused by an overload wrongly
446         calling itself.
447
448 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
449
450         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
451         also remove ProcessArrowKey and put the code inside ProcessKeys.
452
453 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
454
455         * PaddingConverter.cs: Added.
456
457 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
458         
459         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
460         ShowPanels is false (fixes #80600). Only draw up to 127 characters
461         of text (fixes #80601). For panels clip the text to draw to the
462         panel (fixes #80603).
463
464 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
465
466         * ComboBox.cs: Fixed implementation of ResetText.
467
468 2007-01-25  Jackson Harper  <jackson@ximian.com>
469
470         * TextControl.cs: For the last char of a line we need to use the
471         line size, not that chars width, since it won't actually be
472         computed since the right side of a char is based on the start of
473         the left side of the next char, and the next char does not exist.
474
475 2007-01-25  Chris Toshok  <toshok@ximian.com>
476
477         * Splitter.cs: fix the new unit tests, and reindent some switch
478         statements.
479
480 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
481
482         * ComboBox.cs: Implemented 2.0 methods and events.
483         * TextBoxBase.cs: Added OnTextUpdate, so that
484         ComboBox.ComboTextBox can inform ComboBox of it.
485
486 2007-01-25  Jackson Harper  <jackson@ximian.com>
487
488         * TextControl.cs: Respect ShowSelection when deciding whether or
489         not to display the caret, this allows comboboxes to have carets
490         when the combotextbox does not have focus.
491
492 2007-01-25  Jackson Harper  <jackson@ximian.com>
493
494         * TextControl.cs: Add a Suspend/Resume for updating, basically the
495         same as the Suspend/Resume for recalc, except this will do actual
496         Invalidates.
497         - New Undo manager, works much like the MS version.
498         - Implemented Redo
499         * TextBoxBase.cs: The Cut operation is undoable.
500
501 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
502         
503         * TextBoxBase.cs: Don't antialias text. Makes it look way better
504         on Windows (no difference on Linux).    
505
506 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
507
508         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
509         we don't want to activate any windows. Fixes #79433.
510
511 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
512
513         - ButtonBase.cs: Fix capitalization of parameter: disposing.
514         [Fixes bug #80609]
515
516 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
517
518         * FileDialog.cs:
519         - Move to using System.ComponentModel.EventHandlerList
520         - Replace Refresh with Invalidate
521         - Clear the mime filecache on closing
522         - Some other memory reducing work. After beeing closed FD now uses
523           only about 300 KB for the fdo mime stuff plus the memory of the
524           cached icons.
525         * Mime.cs: Changed coding style and removed unnecessary commented
526         code. Some more memory memory reducing work.
527
528 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
529
530         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
531         a few other missing 2.0 properties.
532         * Theme.cs: Added DrawFlatStyleComboBox.
533         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
534
535 2007-01-24  Chris Toshok  <toshok@ximian.com>
536
537         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
538         wake_waiting flag, not just when there's data to be read.  if we
539         don't, then future wakeup's won't reach us and we'll be doomed to
540         wait for the entire 1 second timeout forever (unless there are X
541         events to be had).
542
543 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
544
545         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
546         until you pass Items.Count, not Items.Count - 1 like 1.1.
547
548 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
549
550         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
551
552 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
553
554         * ToolStripContainer.cs: The recent Dock fix exposed that I was
555         adding the panels in the wrong order.
556
557 2007-01-24  Jackson Harper  <jackson@ximian.com>
558
559         * TextBoxBase.cs: When we move the caret we also need to move the
560         selection, this fixes some random crashing after doing select
561         text, unselect, delete a char, paste.
562
563 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
564
565         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
566
567 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
568
569         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
570         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
571         * ToolBar.cs: Force redraw in BackgroundImageChanged.
572
573 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
574
575         * ToolBar.cs:
576         - Implement support for vertical toolbars. Fixes #80539;
577         - Call LayoutToolBar when resize, it fix some other problems in layout.
578         - Rename requested_height to requested_size, as we can have width on it
579         when toolbar is vertical.
580         - Create a private property "Vertical" that uses Dock to verify when 
581         toolbar is vertical or not.
582         - Set ControlStyles when change Dock property.
583         - Refactory in LayoutToolBar to have better variables names and to support
584         vertical toolbars.
585         - Fixes default value for ButtonSize when button count is equal zero, size
586         must be (39, 36) test case writed.
587
588 2007-01-23  Chris Toshok  <toshok@ximian.com>
589
590         * Control.cs: fix the checks so that they work correctly for mdi
591         parents/children.
592
593 2007-01-23  Chris Toshok  <toshok@ximian.com>
594
595         * Control.cs: ControlCollection seems to have super-secret
596         abstraction breaking knowledge of Mdi containers.  allow MdiClient
597         to add toplevel controls.
598
599 2007-01-23  Chris Toshok  <toshok@ximian.com>
600
601         * Control.cs: throw an ArgumentException if a toplevel control is
602         added to our control collection from ControlCollection.Add, as
603         well as from ControlCollection.IList.Add.  This fixes the
604         ControlSetTopLevelTest.TestTopLevelAdd unit test.
605
606         Also, in ControlCollection.IList.Add, don't through an
607         ArgumentNullException, throw an ArgumentException, when value ==
608         null.  This matches MS.
609
610 2007-01-23  Chris Toshok  <toshok@ximian.com>
611
612         * BindingSource.cs: initial, incomplete, implementation of
613         BindingSource.
614
615 2007-01-23  Jackson Harper  <jackson@ximian.com>
616
617         * TextControl.cs:
618         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
619         that I can fix a broken unit test (TextBoxTest::ClearUndo)
620         
621 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
622
623         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
624
625 2007-01-23  Andreia Gaita  <avidigal@novell.com>
626
627         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
628         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
629         IndexOfKey() for 2.0
630
631 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
632
633         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
634         to prevent it from changing z-order.
635         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
636         leave UI updates in MdiWindowManager.
637         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
638         1 sized (NC handling goes weird on Linux otherwise).
639         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
640         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
641         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
642         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
643         and SetWindowState(s) to allow for changing the size of an activated child
644         before activating it (reduces a lot of flicker).
645
646 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
647
648         * Form.cs: Changing FormBorderStyle has different semantics based
649         on whether the Form is visible or not.  If not visible, don't change
650         the Size.  But InvalidateNC needs to be called to force the window
651         to pick up the changes and redraw itself.  [Fixes bug #80574]
652
653 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
654
655         [Moma work]
656         * ContainerControl.cs: ProcessCmdKey.
657         * ErrorProvider.cs: new constructor.
658         * Form.cs: fix AutoValidateEvent compiler warning.
659         * Label.cs: fix OnAutoSizeChanged compiler warning.
660         * MenuStrip.cs: fix CanOverflow compiler warning.
661         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
662         * TextBox.cs: Dispose.
663         * ToolStrip.cs: CanOverflow, re-enable double buffering.
664         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
665         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
666         * ToolStripItem.cs: Overflow, RightToLeft properties.
667
668 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
669
670         * Form.cs: Move the layout of the main form to MdiWindowManager.
671         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
672         do a layout of the main window to update MdiClient's client area to
673         the right area. Fixes #80533. Remove the calculation of nc size, 
674         it was just wrong and the correct one is the same as for 
675         InternalWindowManager. 
676
677 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
678
679         * Control.cs: Setting Anchor or Dock needs to reset the other
680         to its default.  [Fixes bug #80556]
681
682 2007-01-20  Chris Toshok  <toshok@ximian.com>
683
684         * CheckedListBox.cs: class status changes.
685
686         * ScrollableControl.cs: same.
687
688         * RichTextBox.cs: same.
689
690         * ContainerControl.cs: same.
691
692         * ListView.cs: same.
693
694         * NotifyIcon.cs: same.
695
696         * MenuStrip.cs: same.
697
698         * RadioButton.cs: same.
699
700         * CheckBox.cs: same.
701
702         * PrintPreviewDialog.cs: same.
703
704         * Form.cs: same.
705
706 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
707
708         * TreeNode.cs: Apply Alan's patch for Name property.
709
710 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
711         
712         * Form.cs: Implemented SizeGripStyle.
713         * SizeGrip.cs: Check for minimum and maximum size for the
714         control being resized and only resize if size has actually
715         changed.
716
717 2007-01-19  Chris Toshok  <toshok@ximian.com>
718
719         * DataGridColumnStyle.cs: stop setting _readonly in the
720         PropertyDescriptor setter.  fixes a unit test failure.
721
722         also, rename ParentReadOnly to TableStyleReadOnly, and have it
723         just consult our table style (if we have one).  We don't need to
724         consult the datagrid readonly attribute because that's passed in
725         as the _ro arg to Edit.  this simplifies things a little.
726         
727         * DataGrid.cs: use CurrentColumn instead of
728         current_cell.ColumnNumber just to simplify some of the code.
729
730         switch the order of some things in the CurrentCell setter to keep
731         the previous cell from getting a textbox again -
732         EnsureCellVisibility causes scrolling to happen, which calls Edit.
733         So we need to set the new cell before calling it.
734         
735         call Edit in OnEnter, as does Microsoft.
736         
737         also, make sure the current table style isn't the one we create
738         initially when checking to see if it's different than the one
739         we're setting it to in BindColumns (this fixes #80421).
740
741         * GridTableStylesCollection.cs: table styles can have "" for a
742         mapping name.  part of the fix for #80421.
743
744         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
745         Edit significantly.
746
747 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
748
749         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
750         and less GDI object leaky-er.
751
752 2007-01-18  Andreia Gaita  <avidigal@novell.com>
753
754         * LinkLabel.cs: Add opaque control style
755
756 2007-01-18  Jackson Harper  <jackson@ximian.com>
757
758         * TextControl.cs: Calculate width properly.
759         - Don't store the tag's X offset, this can be figured out very
760         easily.
761         - When getting the caret tag make sure to get the last empty tag.
762
763 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
764
765         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
766         [Fixes bug #79959]
767
768         * Control.cs: Color.Empty shouldn't count for previous transparent
769         redraw changes.
770
771 2007-01-18  Jackson Harper  <jackson@ximian.com>
772
773         * TextBox.cs:
774         * RichTextBox.cs:
775         * TextControl.cs: Starting to merge in some pieces of my older
776         undo work.  Basically just some slight cleanup of the undo API.
777
778 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
779
780         * TrackBar.cs: Fix signature of RightToLeftLayout.
781         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
782         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
783         * Application.cs: Implemented UseWaitCursor.
784
785 2007-01-18  Jackson Harper  <jackson@ximian.com>
786
787         * TextControl.cs: We can't skip tags if any part of the tag is
788         visible.
789
790 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
791
792         * ContainerControl.cs: Override OnLayout.
793
794 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
795
796         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
797
798         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
799         everything else.
800
801 2007-01-18  Chris Toshok  <toshok@ximian.com>
802
803         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
804         (leftover from the container_selected days, I'd wager).  fixes bug
805         #80546.
806
807 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
808
809         * Control.cs: Apply patch from George to fix the new testcase on
810         bug #80451.  We can't just check for Color.Transparent, we need 
811         to check if the back color's alpha channel is < 255.
812
813 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
814
815         * Form.cs: Move setting show_icon = true to before the constructor
816         so that the base constructor has that information when it calculates
817         the form's size.  Was causing forms to be (6, 6) bigger than they
818         were supposed to be.  Thanks for catching this Rolf!
819
820 2007-01-18  Jackson Harper  <jackson@ximian.com>
821
822         * TextControl.cs: When replacing a selection we need to invalidate
823         from the initial selection start, because selection start is moved
824         to the end of the replacement.
825
826 2007-01-18  Andreia Gaita  <avidigal@novell.com>
827
828         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
829
830 2007-01-18  Chris Toshok  <toshok@ximian.com>
831
832         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
833         I just added.
834
835 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
836
837         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
838         layout methods and properties from ToolBarButton must be available
839         into ToolBarButtonInfo.
840
841 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
842
843         * Control.cs: If the control has a transparent background, we
844         need to refresh it when it moves and when it's parent's background
845         image changes.  [Fixes bug #80451]
846
847 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
848
849         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
850
851 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
852
853         * XplatUIWin32.cs: Implement proper double buffering for Windows.
854         [Fixes bug #80447, and probably speeds up things as well]
855
856 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
857
858         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
859         * XplatUIWin32.cs: We need to recalculate NC size after changing 
860         window style to toolwindow (otherwise the client rectangle will be
861         3 pixels to small for some reason).
862         * MdiWindowManager.cs: Revert NC size calculations to match how
863         they are calculated only based on window styles (to match
864         Win32AdjustWindowRectEx, since otherwise when setting size or 
865         location, Control will call Win32AdjustWindowRectEx to update client 
866         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
867         calculate a different value of client size causing another paint 
868         (and flickering))
869         * InternalWindowManager.cs: When moving or resizing a window only
870         update size or location if they actually changed.
871         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
872         (seems to match Windows behaviour better). Cleaned up 
873         ManagedWindowDecorations to draw what's needed and nothing else
874         (was drawing borders and lines where they shouldn't be)
875         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
876         (style = 0xFFFF) and takes into account caption height when 
877         calculating window rectangle.   
878
879 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
880
881         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
882         can be added to toolbar multiple times, we need to maintain a list of 
883         button information for each positions.
884
885 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
886
887         * ToolBar.cs: Some small stetic changes.
888
889 2007-01-16  Jackson Harper  <jackson@ximian.com>
890
891         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
892         that allow us to have nested recalc = false blocks.
893         - Add paste support for images in the RichTextBox
894         * RichTextBox.cs: flush the text after the color is changed, so
895         the change takes effect.
896         - Use SuspendRecalc
897         - Some extra debugging info
898         * TextControl.cs: Tags no longer track their length, it is just
899         computed from the next tags length, this makes things a little
900         simpler and reduces places that we have to track length changes.
901         - Refactored the linetag class a little so we could make it
902         a base class for different kinds of tags
903         - Created a image tag, a tag that can have a single image inserted
904         into it
905         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
906         that we can call suspend multiple times.
907         - Add some debugging methods
908
909 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
910
911         * MdiClient.cs: Add ActivatePreviousChild for 
912         mdi child window navigation.
913         * Form.cs: Use MdiClient.ActivateNextChild/
914         ActivatePreviousChild instead of Form.SelectNextControl
915         to select the next/previous child since 
916         SelectNextControl doesn't do it in the same order
917         as mdi children should do it.
918
919 2007-01-16  Chris Toshok  <toshok@ximian.com>
920
921         * Control.cs: remove container_selected field.
922
923 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
924
925         * MdiClient.cs: Update main form's ActiveChild when
926         updating keyboard focus for the mdi child.
927
928 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
929
930         * Control.cs: PreferredSize fix.
931
932         * Form.cs: Add several 2.0 events, properties, and methods.
933
934 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
935
936         * Form.cs: Provide meaningful message when MdiParent is assigned a
937         Form that is not an MdiContainer.
938
939 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
940
941         * MdiClient.cs: Update main form's ActiveChild when
942         activating a mdi child.
943
944 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
945
946         * MdiWindowManager.cs: Fix NRE when merging menus and main form
947         doesn't have a menu.
948
949         * Form.cs: Request NCRecalc after creating a mdi child window.
950         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
951         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
952         
953         * MdiClient.cs: Add new method SendFocusToActiveChild that either
954         sends keyboard focus to the active child, or to the MdiClient
955         if there are no child forms.
956         
957 2007-01-15  Chris Toshok  <toshok@ximian.com>
958
959         * ListView.cs: drop the *Internal overrides, just do our work in
960         ItemControl's WndProc instead.
961
962         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
963         of the various controls, and forward the events properly (in the
964         same manner as MS) from the textbox to the UpDown.  Also the
965         ActiveControl of the UpDownBase gets set properly now.  Finally,
966         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
967
968         * NumericUpDown.cs: set Text in the ctor.
969
970         * DomainUpDown.cs: call UpdateEditText in the ctor.
971         
972         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
973         so even a Selectable = false textbox can be focused if you click
974         in it.  Go figure.
975
976         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
977         just add their handling in their respective WndProc's.  Also add
978         an explicit FocusInternal method that doesn't consult CanFocus
979         before calling Select(this).
980
981         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
982         do our work in WndProc instead.
983
984         * TabControl.cs: same.
985
986         * ComboBox.cs: same.
987
988 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
989
990         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
991         Fixes #80006.
992
993 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
994
995         * ListViewItem.cs:
996         * ThemeWin32Classic.cs: Don't draw the item text outside
997         item bounds in Details view, as well as use trimming.
998         Fixes bug #80376.
999
1000 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1001
1002         * Form.cs: Implement Form.ShowIcon.
1003         
1004         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
1005         null, which when combined with the DlgModalFrame window style removes
1006         the icon from the title bar.
1007
1008 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1009
1010         * Control.cs: Call OnMouseClick after OnClick. (2.0)
1011
1012 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1013
1014         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
1015         menu when mdi child windows theres a menu, uses insert to get icon
1016         at first position. Partially fix #80006.
1017
1018 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1019
1020         * Clipboard.cs: Implement 2.0 methods.
1021
1022 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1023
1024         * Menu.cs: Implement Insert method of MenuItemCollection class
1025         to fix MenuMerge.
1026
1027 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1028
1029         * ListView.cs: Implement 2.0 FindItemWithText method.
1030
1031 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1032
1033         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
1034         to calculate menu bar size. Fixes #80290.
1035
1036 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1037
1038         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1039
1040 2007-01-11  Chris Toshok  <toshok@ximian.com>
1041
1042         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1043         initial form.
1044
1045 2007-01-11  Chris Toshok  <toshok@ximian.com>
1046
1047         * LinkLabel.cs: make sure to call base.Select in our Select method
1048         if it turns out we're going to be selected (i.e. if we have a link
1049         that is going to receive focus).  That way our container's
1050         ActiveControl is updated properly.
1051
1052 2007-01-11  Chris Toshok  <toshok@ximian.com>
1053
1054         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1055         they have 1 or more links.  this fixes the crash gert reported.
1056
1057 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1058
1059         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1060         anymore.
1061
1062         * Control.cs (Controls.Add): Check if control to be added to the collection
1063         is a top level control, and throw an ArgumentException if it is.
1064         Remove ContainerSelectedFlag, not needed anymore.
1065
1066         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1067         top most control doesn't activate the form. This fixes a problem in the
1068         MessageBox, where the default button wouldn't get focus because the form
1069         was activated before being Loaded - when the Owner is set, SetTopMost is
1070         called, and it would activate it.
1071
1072 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1073
1074         * Button.cs: When clicked and setting the parent form's DialogResult,
1075         use FindForm instead of Parent, since parent could be a container
1076         control and not the Form.  Fixes bug #80495.
1077
1078 2007-01-10  Chris Toshok  <toshok@ximian.com>
1079
1080         * Form.cs: move the call to SendControlFocus into the same
1081         is_loaded check.
1082
1083 2007-01-10  Chris Toshok  <toshok@ximian.com>
1084
1085         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1086         It breaks in the face of the new ActiveControl stuff, and should
1087         be unnecessary.
1088
1089         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1090         activecontrol's focus if it's not already set, after we set
1091         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1092         after the previous focus/active control fixes regressed it.
1093
1094         * Control.cs: reindent some code.
1095         
1096 2007-01-10  Chris Toshok  <toshok@ximian.com>
1097
1098         * Splitter.cs: clearing some outstanding changes from my tree.
1099         Replace all accesses (not writes) to the internal dock_style field
1100         with the Dock property.
1101
1102 2007-01-10  Chris Toshok  <toshok@ximian.com>
1103
1104         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1105         FireValidated virtual.
1106
1107         * Form.cs: override and don't chain up calls to FireEnter and
1108         FireLeave.
1109
1110 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1111
1112         * ListView.cs: Add more text padding space when using
1113         auto resize for columns (the previous value didn't work fine).
1114
1115         * ThemeWin32Classic.cs: Update text position inside columns,
1116         to match the appeareance of .Net.
1117
1118         * ColumnHeader.cs: When using auto resize, only the Width should
1119         depend on the sub items, not the Height. Also, set width after
1120         auto resizing (the value of Width should never remain as -1 or -2).
1121
1122 2007-01-10  Chris Toshok  <toshok@ximian.com>
1123
1124         * Application.cs: fix compilation errors when debug is enabled.
1125
1126 2007-01-10  Chris Toshok  <toshok@ximian.com>
1127
1128         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1129         add some nice ascii art pictures and explanation of the process).
1130         (GetMostDeeplyNestedActiveControl): new utility function we need
1131         because our ActiveControl can refer to a child container with its
1132         own ActiveControl.
1133
1134         * Form.cs (OnActivated): remove the call to SelectActiveControl
1135         from here, since you can override this method and not chain up,
1136         and winforms still sets the active control.
1137         (OnCreateControl): also remove the unnecessary SelectActiveControl
1138         call from here.
1139         (WndProc): it's actually called from the WM_ACTIVATE block, just
1140         before calling OnActivated.
1141
1142         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1143         inside the else.  the ActiveControl setter will end up setting
1144         focus on @control.  This keeps us from setting it again (and
1145         generating an extra LostFocus/GotFocus pair).
1146         (Select (bool, bool)): reindent.
1147
1148 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1149
1150         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1151         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1152         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1153         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1154         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1155         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1156         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1157         ToolStripTextBox.cs: Another wave of corcompare work.
1158
1159 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1160
1161         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1162         the Width property.
1163
1164         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1165         methods by callling Column.AutoResize method on columns.
1166
1167 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1168
1169         * Control.cs: Provide proper implementations of PreferredSize
1170         and GetPreferredSize (2.0).
1171
1172 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1173
1174         * Form.cs: Remove one character (!) to make my previous OnClosing
1175         stuff work for modal windows like MessageBox.
1176
1177 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1178
1179         * ListView.cs:
1180         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1181         ListView.Columns to get the last displayed column. Fixes #80452.
1182
1183 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1184
1185         * Label.cs, LinkLabel.cs: Source code identation fixes.
1186
1187 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1188
1189         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1190         we dont need to invalidate only borders because when we invalidate four
1191         border lines the invalidate's generates a complete redraw of button, 
1192         because it now invalidate a complete rect some other redraws operations
1193         are fixed. Fixes #80196.
1194         
1195         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1196         Remove ToolBarInvalidateEntireButton as it is not used.
1197
1198 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1199         
1200         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1201         called for 2.0 profile.
1202         * CloseReason.cs: Make class internal for 1.1.
1203
1204 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1205
1206         * ToolStripManager.cs: Implement FindToolStrip functionality.
1207         * ToolStrip.cs: Register and unregister with ToolStripManager.
1208
1209 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1210
1211         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1212         to ArrangedElementCollection.  Implemented this with as few #if's as 
1213         possible (which is still too many).
1214
1215 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1216
1217         * Control.cs: Implement SizeFromClientSize() [2.0].
1218
1219 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1220
1221         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1222         use Theme.BorderSize to calculate area instead of static value 1, 
1223         by the way use new BorderStaticSize instead     Border3DSize when 
1224         border_static is true. Fixes #79537.
1225         
1226         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1227         
1228         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1229         it is not needed.
1230
1231 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1232
1233         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1234
1235 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1236
1237         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1238         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1239         
1240         * Hwnd.cs: 
1241         - border_static field added, it will used to define when a control 
1242         theres 3D border but it must be static (thin).
1243         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1244         instead of static value 1, by the way use new BorderStaticSize instead
1245         Border3DSize when border_static is true.
1246
1247         * XplatUIX11.cs, XplatUIOSX.cs: 
1248         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1249         
1250         * Theme.cs: BorderStaticSize field added.
1251
1252 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1253
1254         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1255
1256 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1257
1258         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1259         mimic same behavior than win32 that set border only in CreateParams,
1260         it fix problems under CreateParams overrides. Fix #79442 and partial
1261         fix #79537.
1262         
1263         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1264         of thi control you must call recreate handle. 
1265         
1266         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1267         need to do anything as RecreateHangle will take care about borders.
1268
1269 2007-01-05  Mike Kestner  <mkestner@novell.com>
1270
1271         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1272         cycles between the ItemControl and parent.  Fixes #80388.
1273
1274 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1275
1276         * Control.cs: Lazy init layout engine. Do not directly use 
1277         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1278
1279 2007-01-05  Chris Toshok  <toshok@ximian.com>
1280
1281         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1282         unless our list manager has changed (i.e. unless we have reason to
1283         believe our columns have changed).  Fixes #80422.
1284         
1285         also, disable the call do BindColumns in
1286         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1287         1.1 the event isn't raised in response to a column addition on a
1288         table.)
1289
1290 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1291
1292         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1293         that inheritors can not call it if they choose.  Fixes bug #80456.
1294
1295 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1296
1297         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1298         doesn't blow up with a null exception on marshalling.
1299         
1300 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1301
1302         * Control.cs: Implement several 2.0 protected properties and methods.
1303         Ensure that all necessary events are being called when properties
1304         are set.
1305
1306 2007-01-05  Mike Kestner  <mkestner@novell.com>
1307
1308         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1309         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1310         instead of the parent control.  Fixes #80378.
1311
1312 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1315           determine whether to use yard-pound or not (bug #78399).
1316
1317 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1318
1319         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1320         problems. So it is time to bring back the old popupbutton colors.
1321
1322 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1323
1324         * ColumnHeader.cs:
1325         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1326         property by using the internal information of the
1327         columns order in ListView.
1328
1329 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1330
1331         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1332         Add 2.0 Tag properties.
1333
1334         * LinkArea.cs: Add 2.0 ToString method.
1335
1336 2007-01-03  Chris Toshok  <toshok@ximian.com>
1337
1338         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1339         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1340         when we're editing, which fixes #80047.
1341
1342 2007-01-03  Chris Toshok  <toshok@ximian.com>
1343
1344         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1345         #80404.
1346
1347 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1348
1349         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1350         property and implementation.
1351
1352         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1353         for MdiWindowListItem property.
1354
1355         * ToolStripDropDown.cs: Don't consider hidden menu items while
1356         laying out the menu.
1357
1358 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1359
1360         * SendKeys.cs: window handle is not needed in win32, so just
1361         get the active window for X after parsing keys and don't use
1362         it when building the message; it is passed by parameter to the 
1363         Xplat method and used there to build the message instead. Also,
1364         wait for events to be processed on SendWait, as opposed to Send,
1365         which doesn't wait :) Playing with threads and Send() completely 
1366         hangs on ms.net, only SendWait() works.
1367         
1368         XplatUIX11.cs
1369         X11Display.cs: Check for valid window handle.
1370
1371 2007-01-03  Jackson Harper  <jackson@ximian.com>
1372
1373         * TextControl.cs: Need to prevent wrap calculations when replacing
1374         text (this was there before i removed it accidently).
1375         - Don't update the cursor during the positioning, just set it to
1376         selection_start at the end of the operaion.
1377
1378 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1379
1380         * Control.cs:
1381         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1382         
1383 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1384
1385         * MonthCalendar.cs: Added Click and DoubleClick events again,
1386         but this time they only hide Control's Click and DoubleClick.
1387         
1388 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1389
1390         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1391         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1392
1393 2007-01-02  Jackson Harper  <jackson@ximian.com>
1394
1395         * TextBoxBase.cs: We move the caret with the split now, so we
1396         don't need to explicitly move the caret after splitting.  This
1397         fixes the caret bumping down an extra line on Enter.
1398
1399 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1400
1401         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1402         2.72). 
1403
1404         * ScrollableControl.cs: Add Scroll event.
1405
1406 2007-01-02  Mike Kestner  <mkestner@novell.com>
1407
1408         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1409         to fix all hdr height padding codepaths.  Fixes #80207.
1410
1411 2007-01-02  Chris Toshok  <toshok@ximian.com>
1412
1413         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1414         setting it to the Control defaults anyway, and it being after the
1415         Dock set was screwing up layout.
1416         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1417         no need to call UpdateStatusBar here, as it'll be re-layed out if
1418         it needs to be.
1419
1420 2007-01-02  Mike Kestner  <mkestner@novell.com>
1421
1422         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1423         to header height for width == -1. Fixes the rest of #80207.
1424
1425 2007-01-02  Mike Kestner  <mkestner@novell.com>
1426
1427         * ListView.cs: rework the mouse event forwarding everaldo added
1428         to translate the coordinates to the parent control not
1429         raise the parent events until after we've done our work. Hover
1430         needs more work, in the case where HoverSelection is on, because
1431         the item control receives more than one MouseHover per Enter
1432         event, so we need to ensure only the "first" hover gets forwarded.
1433         Opening a minor bug for that.
1434
1435 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1436
1437         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1438         * ListControl.cs: Implemented AllowSelection property. Removed extra
1439         tabs.
1440         * ListBox.cs: Implemented AllowSelection property.
1441
1442 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1443
1444         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1445         SelectedItem, it prevent for errors when you must disable item
1446         before perform click. Fixes #80409.
1447
1448 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1449
1450         * MenuAPI.cs: Prevent second level and beyond submenus to close
1451         until first level when move out side of popup.
1452         
1453 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1454
1455         * MenuAPI.cs:
1456         - Down submenu positin in three pixels.
1457         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1458
1459 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1460
1461         * ThemeWin32Classic.cs:
1462         - Fix popup menu size adding one pixel on the top.
1463         - Down menu item border from two to one to mimic Win32.
1464         - Some source identation fixes. 
1465
1466 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1467
1468         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1469         position of menu arrows, it fix wrong arrow size.
1470
1471 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1472
1473         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1474         instead of line, it simplify draw operation and fix it using 3D
1475         borders to mimic Win32.
1476
1477 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1478
1479         * StatusStrip.cs: Add implementation of the sizing grip.
1480
1481         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1482         StatusStrip rendering.
1483
1484 2006-12-31  Chris Toshok  <toshok@ximian.com>
1485
1486         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1487         override the layout style (anchor/dock) of the control.  assign to
1488         Dock instead.  Fixes bug #80416.
1489
1490         * ToolStrip.cs: same.
1491
1492 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1493
1494         * ContainerControl.cs: Use ContainerSelected flag to check if 
1495         a Container is directly selected, or if Select is called on a 
1496         non-container. If a container is directly selected, focus events 
1497         should not be raised.
1498         Apply #80411 patch to throw exception on set_ActiveControl if 
1499         control is the same as the current one.
1500         
1501         * Control.cs: Use ContainerSelected flag (see above).
1502         Add invalidation check to raise event but not invalidate if 
1503         dimensions are 0.       
1504         Apply #80411 patch.
1505         
1506
1507 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1508
1509         * MenuAPI.cs: After click, dont close popup menu when menu is
1510         ContextMenu. Fixes #80399.
1511
1512 2006-12-30  Chris Toshok  <toshok@ximian.com>
1513
1514         * ContainerControl.cs: make sure we throw the exception if the
1515         container control doesn't contain the control we're setting
1516         ActiveControl to.
1517
1518 2006-12-30  Chris Toshok  <toshok@ximian.com>
1519
1520         * Control.cs (SetTopLevel): fix the exception raised by
1521         SetTopLevel for child controls.
1522         (set_Anchor): call UpdateDistances when setting the anchor type.
1523         This fixes bug #80336.
1524
1525 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1526
1527         * Theme.cs: For now, revert back to 8pt font.
1528
1529 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1530
1531         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1532         Fixes #80395.
1533
1534 2006-12-29  Chris Toshok  <toshok@ximian.com>
1535
1536         * Control.cs: reorder the code in OnResize to give the same event
1537         ordering as MS.
1538
1539 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1540
1541         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1542         TileHorizontally and TileVertically.
1543         
1544 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1545
1546         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1547         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1548         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1549         Corrected copyright and email adress.
1550
1551 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1552
1553         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1554         of Exception in FullPath property if no TreeView is associated with
1555         the TreeNode.
1556
1557 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1558
1559         * Theme.cs: Marked default_font as private, and initialize it in ctor
1560         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1561         on 2.0 profile.
1562         * ThemeGtk.cs: Removed default_font intialization.
1563         * ThemeWin32Classic.cs: Removed default_font initialization.
1564
1565 2006-12-28  Chris Toshok  <toshok@ximian.com>
1566
1567         * Control.cs: fix a couple of place where we were creating handles
1568         more aggressively than we should be.  Fixes ControlRefresh unit
1569         tests.
1570
1571 2006-12-28  Chris Toshok  <toshok@ximian.com>
1572
1573         * Control.cs: contrary to what the comment said, Control.Dock does
1574         not supercede Control.Anchor - the last one you assign to decides
1575         the layout behavior.  so we need to keep track of which was the
1576         last set.  Also, fix some of the affected property arguments in
1577         PerformLayout calls, and remove an redundant parent.PerformLayout
1578         call in OnResized.
1579
1580         Add a VisibleInternal property, which returns is_visible.  We
1581         can/should get rid of all the usage of this field elsewhere.
1582
1583 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1584         
1585         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1586         control style, not DoubleBuffer. Added UseDoubleBuffering property
1587         that indicates whether doublebuffering is enabled and supported.
1588         (comment from and code based on Gert Driesen's patch in #80324).
1589         Fixes #80324.
1590
1591 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1592         
1593         * Control.cs: Fixed a NRE.
1594
1595 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1596
1597         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1598         for 2.0.
1599
1600 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1601
1602         * Control.cs: Rewrote double buffering, now a seperate
1603         class handles all the buffering, no Graphics is disposed of
1604         until the painting is finished (earlier implementation 
1605         would crash if the control was resized in the OnPaint, 
1606         since it would cause the double buffer to be recreated
1607         and the old one disposed), a separate Graphics is 
1608         created for every paint (MS behaviour and anyways the state
1609         of the Graphics would have to be saved and restored otherwise)
1610         
1611         * XplatUIDriver.cs: 
1612         * XplatUIX11.cs:
1613         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1614         so that we can get the graphics for the back buffer without
1615         having to create a new one and remove the offscreen_dc parameter
1616         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1617         
1618 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1619
1620         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1621         Also make virtual all the key-related methods.
1622
1623         * ListViewItem.cs: Make virtual the key related methods for
1624         ListViewSubItemCollection.
1625
1626 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1627
1628         * ListView.cs:
1629         * ListViewItem.cs:
1630         * ThemeWin32Classic.cs:
1631         * Theme.cs: Initial support for Tile view in ListView,
1632         as well as the implementation of the required bits for it (Item
1633         and Subitem).
1634
1635 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1636
1637         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1638         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1639         Provide useful exception messages.
1640
1641 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1642
1643         * TrackBar.cs: Remove a warning.
1644         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1645         when used by DateTimePicker, fixes #80287. This also requires that 
1646         MonthCalendar implements it's own drawing for the yearly updown control,
1647         otherwise the Capture tracking would be too complicated. Removed the Click 
1648         and DoubleClick events (according to comments they were hiding the base class
1649         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1650         raise these events, not that they cannot be raised. It is possible to raise 
1651         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1652         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1653         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1654         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1655         event, no longer needed.
1656         
1657 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1658
1659         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1660         true if new value differs from current value.
1661
1662 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1663
1664         * Control.cs: ControlCollection.Count must be public. Fixed build of
1665         unit tests.
1666
1667 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1668
1669         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1670
1671 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1672
1673         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1674
1675 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1676
1677         * Control.cs: Invalidates control including when Width and Height is 
1678         equal zero or is not visible, only Paint event must be care about 
1679         this. Fixes #79913.
1680
1681 2006-12-26  Chris Toshok  <toshok@ximian.com>
1682
1683         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1684         more corcompare work.
1685
1686         * DataGridView.cs: fix compiler warning.
1687
1688         * ColumnHeader.cs: some corcompare work, and also take the
1689         opportunity to make the internal fields private.
1690
1691         * ListView.cs: fix the fallout from the above field change.
1692
1693 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1694
1695         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1696         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1697         ToolStripTextBox.cs: Fixes to events and corcompare.
1698
1699 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1700
1701         * ListView.cs: Call owner.OnMousexx event to propagate events from
1702         item to ListView. Fixes #80367.
1703
1704 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1705
1706         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1707         if value is less than one. ItemHeight should not be set to a value
1708         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1709         Removed extra tabs.
1710
1711 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1712
1713         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1714         * ToolStripStatusLabel.cs: Add Spring for Moma.
1715
1716 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1717
1718         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1719         Fixed code formatting. Removed debug code.
1720         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1721
1722 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1723
1724         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1725         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1726         ArgumentOutOfRangeException if ColumnCount is negative. In 
1727         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1728         less than 4 or higher than 32768.
1729         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1730         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1731         Fixed IsFormatProviderDefault to return true if FormatProvider has
1732         not been explicitly set.
1733
1734 2006-12-25  Chris Toshok  <toshok@ximian.com>
1735
1736         * Application.cs: add a couple of 2.0 events.
1737
1738 2006-12-25  Chris Toshok  <toshok@ximian.com>
1739
1740         * Control.cs: fix compiler warning.
1741
1742         * AxHost.cs: corcompare fixes.
1743
1744         * ApplicationContext.cs: corcompare fixes.
1745
1746 2006-12-25  Chris Toshok  <toshok@ximian.com>
1747
1748         * Control.cs: only update dist_right/dist_bottom if the
1749         width/height is > 0.  this fixes anchored controls being resized
1750         smaller until they disappear and then resized larger again.
1751
1752 2006-12-25  Chris Toshok  <toshok@ximian.com>
1753
1754         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1755         since they're nothing more than X/Left and Y/Top, respectively.
1756
1757         Also, move back to a per-control Bitmap/Graphics for
1758         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1759         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1760         Height.
1761
1762 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1763
1764         * MessageBox.cs: Implemented overload that takes a new "bool
1765         displayHelpButton" by adding a new internal field "show_help".
1766         When clicked this will raise the HelpRequested on the owner or the
1767         main form. 
1768
1769         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1770         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1771
1772         * ListView.cs: Add support ColumnWidthChanged and
1773         ColumnWidthChanging. 
1774
1775         Add support for ColumnReordered event.
1776         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1777         reorder.
1778
1779         Very nice codebase!
1780
1781         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1782
1783         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1784
1785 2006-12-24  Chris Toshok  <toshok@ximian.com>
1786
1787         * GridTablesFactory.cs: 2.0 corcompare work.
1788
1789         * ToolStripContainer.cs: add "override" to
1790         ContextMenuStripChanged, and remove the local event object.
1791
1792         * ToolStripDropDown.cs: same with a couple properties.
1793
1794         * ToolStripPanel.cs: same with AutoSizeChanged event.
1795
1796         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1797
1798         * Form.cs: add the remaining 2.0 events, and do some corcompare
1799         attribute work.
1800
1801         * DateTimePicker.cs: add "new" to padding.
1802
1803         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1804
1805         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1806
1807         * DataGridView.cs: PaddingChanged is overridden.
1808
1809 2006-12-24  Chris Toshok  <toshok@ximian.com>
1810
1811         * Control.cs: corecompare work here too.
1812
1813         * DataGridViewElement.cs, DataGridView.cs,
1814         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1815         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1816         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1817         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1818         work.
1819
1820 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1821
1822         * Control.cs: Switched the error message on the console for a
1823         todo.  A review of the code will have to cope with this anyways
1824         (since its a large feature, it is in our radar) and it was
1825         producing too much output when running PDN.
1826
1827         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1828         changes.  Applications depend on this (PDN 2.72)
1829
1830 2006-12-23  Chris Toshok  <toshok@ximian.com>
1831
1832         * TableLayoutSettings.cs: finish up the corcompare work for this
1833         class.
1834
1835 2006-12-23  Chris Toshok  <toshok@ximian.com>
1836
1837         * Control.cs: make SetImplicitBounds internal, do some futzing
1838         with LayoutEngine so that it's available in 1.1, and remove the
1839         entire duplicated code mess from PerformLayout.  Use
1840         System.Windows.Forms.Layout.DefaultLayout instead.
1841
1842         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1843
1844 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1845
1846         * Form.cs: Add MainMenuStrip property.
1847
1848 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1849
1850         * Control.cs: Add ContextMenuStrip property and implementation.
1851         Fix ContextMenu implementation to show menu centered on control when
1852         activated using the keyboard instead of showing at screen (0,0).
1853
1854         * ToolStripDropDown.cs: Fix needed overload of Show ().
1855
1856 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1857
1858         * Menu.cs: Name property added for 2.0 profile.
1859         
1860 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1861
1862         * Menu.cs: Update information about FindMenuItem, method to be
1863         implemented soon.
1864
1865 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1866
1867         * MenuAPI.cs: When deselect items deselect also selected subitems.
1868         
1869 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1870
1871         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1872         FindSubItemByCoord to found itens that is not active, also an
1873         cheking added to FindSubItemByCoord to search for items only 
1874         in visible popup windows. Fixes #80274.
1875
1876 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1877
1878         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1879         internal property, it be care about change ExStyle. 
1880
1881 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1882
1883         * ContainerControl.cs: set activeControl for parent forms up the 
1884         tree when the new activecontrol is a container.
1885         When validating the active control, if it is a container, also
1886         raise up the validation for it's active control. Fixes #80280
1887         
1888         * Control.cs: Add internal property flag and check to prevent
1889         Focus events from getting raised when Select() is called for
1890         a ContainerControl. There are still too many focus events being
1891         raised at the moment though.
1892         Cleaned up the code a bit.
1893
1894 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1895
1896         * Control.cs: Added all missing 2.0 events.and
1897         fixed a couple of corcompare issues.
1898         * TrackBar.cs: Implemented missing 2.0 bits.
1899         * MonthCalendar.cs, 
1900         * DateTimePicker.cs, 
1901         * MdiClient.cs: Fixed some corcompare issues.
1902
1903 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1904
1905         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1906         SplitterPanel.cs: corecompare work.
1907
1908 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1909
1910         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1911         Clean up warnings for BackgroundImageChanged and PaddingChanged
1912         events now that they are implemented in Control.cs.
1913
1914 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1915
1916         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1917         
1918         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1919         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1920         of TableLayoutPanel and supporting cast.
1921
1922 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1923
1924         * XplatUIWin32.cs: 
1925         - GrabWindow now confines the mouse pointer to the confine window.
1926         - Added Win32ClipCursor and Win32GetClipCursor.
1927
1928         * Control.cs: 
1929         - Added CaptureWithConfine to be able to capture and confine 
1930         mouse pointer.
1931         
1932         * InternalWindowManager.cs: 
1933         - Call CaptureWithConfine instead of Capture if we're an
1934         MdiChild (fixes #79982).
1935
1936 2006-12-21  Chris Toshok  <toshok@ximian.com>
1937
1938         * DataGrid.cs: guard against the initial state of selection, where
1939         selection_start == -1.  make sure we only select from index >= 0.
1940         Fixes bug #80291.
1941
1942 2006-12-21  Chris Toshok  <toshok@ximian.com>
1943
1944         * Control.cs: we don't need to be so draconian with
1945         UpdateDistances, and we thusly don't need to call it before
1946         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1947
1948 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1949
1950         * ComboBox.cs,
1951         TextBox.cs: Implemented AutoComplete properties.
1952
1953 2006-12-20  Chris Toshok  <toshok@ximian.com>
1954
1955         * DataGridView*.cs: some corecompare work.
1956
1957 2006-12-20  Jackson Harper  <jackson@ximian.com>
1958
1959         * XplatUIX11.cs: We need to hide the caret when deleting it,
1960         otherwise you get carets left lying around everywhere.
1961         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1962         prevents getting some weird half drawn caret tracers when
1963         scrolling.
1964         * TextControl.cs: Attempt to reduce the number of times we need to
1965         recreate the caret.
1966
1967 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1968
1969         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1970
1971 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1972
1973         * DateTimePicker.cs:
1974         - Implemented missing 2.0 bits.
1975         - Changed some default values to match MS.
1976         
1977 2006-12-20  Jackson Harper  <jackson@ximian.com>
1978
1979         * TextBoxBase.cs: When changing the font across the document we
1980         can't recalculate after changing each line, since that will cahnge
1981         the line count.
1982         - PreferredHeight is a little different than i thought.
1983         - When backspacing, move the caret before we do the actual char
1984         delete, because when that delete crosses a wrap boundary the
1985         positional information will change.
1986
1987 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1988
1989         * Control.cs: Added some missing 2.0 bits: 
1990         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1991         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1992         add IBindableComponent and IDropTarget implementation.
1993         
1994         * MonthCalendar.cs: 
1995         - Added all missing 2.0 features:
1996         BackgroundImageLayout, RightToLeftLayout, 
1997         OnHandleDestroyed, RightToLeftLayoutChanged, 
1998         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1999         PaddingChanged.
2000         - Rewrote all the BoldDate code, it was completely broken.
2001         - Fixed all the tests (the tests can now be re-enabled, the
2002         problems were not with the tests, but with the control, it was
2003         mostly broken).
2004         
2005         * DateTimePicker.cs: Changed the location where the 
2006         MonthCalendar is shown.
2007         
2008 2006-12-19  Chris Toshok  <toshok@ximian.com>
2009
2010         * DataGridView.cs: add IDropTarget implementation.
2011
2012         * ToolStripPanel.cs: add IDropTarget implementation.
2013
2014 2006-12-19  Jackson Harper  <jackson@ximian.com>
2015
2016         * TextControl.cs: soft now means something different than what it
2017         used to mean, we want to move the caret regardless of whether or
2018         not this break was soft (would we really have wanted the caret
2019         to not move with the break in the old context?)
2020         * TreeView.cs: Make sure we factor in the vert scrollbar when
2021         calculating the horizontal scrollbar's maximum.
2022
2023 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2024
2025         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
2026         check for keywords in alternate casing, close bug #80049.
2027
2028 2006-12-19  Chris Toshok  <toshok@ximian.com>
2029
2030         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
2031         methods (which all do nothing).
2032
2033         * IDropTarget.cs: add the 4 missing methods.
2034
2035 2006-12-19  Chris Toshok  <toshok@ximian.com>
2036
2037         * TableLayoutRowStyleCollection.cs: corcompare work.
2038         
2039         * TableLayoutSettings.cs: same.
2040
2041         * TableLayoutStyle.cs: same.
2042
2043         * TableLayoutColumnStyleCollection.cs: same.
2044
2045 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2046
2047         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2048         TableLayoutPanel I've had in my local tree for way too long.
2049
2050 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2051
2052         * TableLayoutSettings.cs: Finish the public API (still needs all
2053         the logic to update on changes). 
2054
2055         * TableLayoutPanelCellPosition.cs: new file.
2056         
2057         * TableLayoutRowStyleCollection.cs,
2058         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2059         TableLayoutSettings.cs: Track the final 2.0 table api.
2060
2061 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2062
2063         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2064         and Image List 2.0 members for ColummnHeader.
2065         * ListView.cs: Add key-related 2.0 methods for
2066         ColumnHeaderCollection.
2067
2068 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2069
2070         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2071         ArgumentNullException if items argument is null. Ignore null item in
2072         arrays. Removed extra tabs.
2073
2074 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2075
2076         * MonthCalendar.cs: Fixed InvalidCastException.
2077
2078 2006-12-19  Jackson Harper  <jackson@ximian.com>
2079
2080         * TextControl.cs: Don't increment the position here.
2081         - When calculating char positions only add in the line break size
2082         for hard line breaks.
2083
2084 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2085
2086         * SendKeys.cs: Changed some things to match ms.net behaviour
2087         when parsing shifted capital letters.
2088         
2089         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2090         Add window handle as parameter to SendInput. X11 needs the 
2091         window handle, and the handle being passed      to it in the keys 
2092         queue is the active control handle (which windows needs), not 
2093         the window handle.
2094         
2095         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2096         to support SendKeys on X.       
2097         
2098         * X11Keyboard: Implement helper method to lookup a linux keycode
2099         given the virtual keycode. Added table of keycode-2-virtualkey
2100         values to support this.
2101
2102 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2103
2104         * ListView.cs: Add support for SelectedIndexCollection
2105         and SelectedItemCollection 2.0 methods. Implement support
2106         for ImageKey too.
2107         * ListViewItem.cs: Add support for ListViewSubItemCollection
2108         2.0 methods. Also, fix an incorrect behavior of AddRange method
2109         (it shouldn't call Clear).
2110         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2111
2112 2006-12-19  Jackson Harper  <jackson@ximian.com>
2113
2114         * RichTextBox.cs: 
2115         * TextBoxBase.cs: New args for FormatText
2116         * TextControl.cs: Rewrote the main drawing method, this version
2117         feels a little easier to understand and debug to me.  Hopefully it
2118         does to others also
2119         - Fix FormatText to OR in the new formating values.  Added
2120         FormatSpecified param, basically this works in the same way as
2121         BoundsSpecified in Control.
2122         - Set the caret properties when the caret is positioned.
2123         - When wrapping text make sure that we calculate the width of the
2124         last character
2125         - when calculating alignments we might have wrapped down to the
2126         next line, so don't search for an individual tag, search for the
2127         end of the line
2128         - We need to invalidate the selection area when we replace the
2129         selection.
2130         
2131 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2132
2133         * Application.cs: add Restart () 2.0 support
2134
2135 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2136
2137         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2138         property. Fixes #80268.
2139         
2140 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2141
2142         * MenuAPI.cs: Dont trigger select event when closes top menu
2143         item. Fixes #80270.
2144
2145 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2146
2147         * MenuAPI.cs: When you click on menuitem only trigger onselect
2148         event for top menu itens. Fixes #80271.
2149         
2150 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2151
2152         * MdiWindowManager.cs: Make IconicBounds depend on
2153         the bottom of MdiClient, not the top (fixes #80267)
2154         
2155 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2156
2157         * MdiClient.cs: Added missing 2.0 attribute
2158
2159 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2160
2161         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2162         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2163
2164 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2165
2166         * MenuAPI.cs: Fix click when menuitem is not popup,
2167         this regression was caused by last commit (#80272).
2168
2169 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2170
2171         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2172         fire click event or close menu. Fixes #80272.
2173
2174 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2175
2176         * ListViewHitTestInfo.cs: add
2177
2178 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2179
2180         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2181         * FlatButtonAppearance.cs: add
2182         * DockingAttribute.cs: add
2183
2184 2006-12-17  Chris Toshok  <toshok@ximian.com>
2185
2186         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2187         and rebind our columns when it does - this way, if you make
2188         changes to the DataTable (or set the Table attribute on a DataView
2189         after setting it as the DataGrid's DataSource, the changes are
2190         made visible.)  Fixes bug #80107.
2191
2192 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2193
2194         * ListViewGroup.cs: add internal Location property for layouting.
2195         * Theme.cs: add abstract ListViewGroupHeight function.
2196         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2197
2198 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2199
2200         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2201         Added reset of selected index to 0 when adding first tab page.
2202         Fixes #80264
2203         
2204         * NumericUpDown.cs: Fix NET_2_0 check
2205
2206 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2207
2208         * ListViewGroup.cs: fixed DefaultValueAttribute value
2209
2210 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2211
2212         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2213
2214 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2215
2216         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2217         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2218         ScrollableControl.cs: Add a handful of methods that are
2219         overwritten in 2.0 
2220
2221 2006-12-15  Chris Toshok  <toshok@ximian.com>
2222
2223         * XplatUIWin32.cs: initial implementation of the Reversible
2224         drawing functions.  there are some problems.  DrawReversibleFrame
2225         doesn't seem to work at all for Dashed FrameStyle, and in the
2226         Thick case there are drawing errors at the corners (we probably
2227         need to bind Rectangle instead of doing moveto/lineto's.)
2228
2229 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2230         
2231         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2232         to send blocks of key messages. Send accumulates keys to send with Flush, 
2233         while SendWait sends all keys immediately.
2234                 
2235         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2236         XplatUIX11.cs,  XplatUIX11-new.cs:
2237         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2238         to Win32 SendInput.
2239         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2240         
2241         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2242         testing for ms.net on this class is very tricky, as the tests run too fast 
2243         to allow the hook to release, essentially freezing the keyboard and the 
2244         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2245         category :p
2246
2247 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2248
2249         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2250                         added missing attributes.
2251  
2252 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2253
2254         * ListViewGroup.cs: Added missing attributes.
2255         * ListViewGroupCollection.cs: Added missing attributes.
2256
2257 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2258
2259         * ListViewItem.cs: fixed ListViewSubItem text property.
2260
2261 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2262         
2263         * Control.cs: Added missing 2.0 attributes
2264         
2265 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2266         
2267         * MdiClient.cs: Added missing 2.0 attribute.
2268         * MonthCalendar.cs: Added some missing 2.0 attributes 
2269         and properties.
2270         
2271 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2272
2273         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2274
2275 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2276
2277         * MainMenu.cs: Add the new 2.0 constructor to help out people
2278         using the MainMenu in VS2005.
2279
2280 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2281         
2282         * MdiChildContext.cs: Removed it, no longer used.
2283         * MdiClient.cs: Added missing 2.0 attributes.
2284         
2285 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2286         
2287         * InternalWindowManager.cs: Fix a NullRef with previous 
2288         changes for toolwindows.
2289         
2290 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2291
2292         * Control.cs: 
2293         - Added AfterTopMostControl to allow for certain controls 
2294         to always stay on top when normal controls are brought to 
2295         front.
2296         
2297         * XplatUIWin32.cs: 
2298         - (DrawInversibleRectangle): Get window rectangle from Win32 
2299         in stead of from control, since Win32 doesn't calculate
2300         screen coords correctly from control's Location if it 
2301         have docked siblings.
2302         
2303         * MdiWindowManager.cs:
2304         - Correct the control menu popup location when clicked on
2305         the maximized form icon. (fixes #80223.1)
2306         - Don't show moving rectangle if mouse hasn't moved from
2307         the original clicked point.
2308         - Removed FormGotFocus handler (not used).
2309         - Calculate the control buttons location from the main
2310         window's size and not client size (fixes #79770).
2311         - Form is now closed when the form icon is double-clicked
2312         (fixes #79775). 
2313         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2314         
2315         * InternalWindowManager.cs:
2316         - Moved some MDI-only methods to MdiWindowManager.
2317         - Removed unused properties and methods.
2318         - Unified method naming for methods handling wm messages.
2319         - Moved all message handling to seperate methods for
2320         each message.
2321         
2322         * ThemeWin32Classic.cs:
2323         - DrawManagedWindowDecorations now draws the title bar 
2324         with a gradient brush.
2325         - Add a CPDrawButtonInternal that allows us to specify
2326         light, normal and dark colors for the buttons (control 
2327         buttons for MDI children were drawn with the same light
2328         color as the background, therefore loosing the 3D effect).
2329         
2330         * SizeGrip.cs:
2331         - Add a CapturedControl property that is used to 
2332         determine the control to resize (defaults to parent). 
2333         Needed for MdiClient, since its SizeGrip's parent is
2334         MdiClient, but the control to resize is the main form.
2335         
2336         * MdiClient.cs:
2337         - Set SizeGrip's CapturedControl to the main form in order
2338         to resize the main form and not the MdiClient.
2339         - Override AfterTopMostControl to leave the scrollbars 
2340         always on top.
2341
2342 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2343
2344         * ListView.cs: fixed ListViewItemCollection AddRange and
2345                         implemented ListViewItemCollection AddRange 2.0 support.
2346
2347 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2348
2349         * ListViewGroup.cs: Add.
2350         * ListViewGroupCollection.cs: Add
2351         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2352         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2353                                 stub for ImageKey 2.0 support.
2354
2355 2006-12-14  Mike Kestner  <mkestner@novell.com>
2356
2357         * ListView.cs: add text padding to the autocalculation for columns
2358         of width -2.  Fixes #80207.
2359  
2360 2006-12-14  Mike Kestner  <mkestner@novell.com>
2361
2362         * ListView.cs: add some index guarding for partial row navigation 
2363         logic.  Fixes #80250.
2364
2365 2006-12-14  Mike Kestner  <mkestner@novell.com>
2366
2367         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2368         are added or inserted to the collection.  Fixes #81099.
2369
2370 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2371
2372         * MenuAPI.cs: Closes menu when right click out side of popup
2373         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2374
2375 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2376
2377         * ListViewItem.cs: Fix dumb error.
2378
2379         * ListView.cs: Add Find and ContainsKey methods in 
2380         ListViewItemCollection, and also return true for IsReadOnly
2381         and IsFixedSize (changes for 2.0). 
2382
2383 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2384
2385         * Control.cs: Allow Region to be set to null.
2386
2387 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2388
2389         * MdiWindowManager.cs: Remove unused (commented out) code.
2390         * Form.cs: When the MdiChild is maximized, the form needs 
2391         WM_NCMOUSELEAVE, so request it.
2392         * InternalWindowManager.cs: 
2393         - Added tooltips to control buttons.
2394         - Removed duplicated control button handling code.
2395         - Removed unused (commented out) code.
2396         
2397 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2398
2399         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2400         was used because we must set cursor without trigger ChangeCursor event
2401         and without change Cursor control property. Fixes #79963.
2402
2403 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2404         
2405         * Control.cs: Check if Region setter value is null, and ignore
2406
2407 2006-12-12  Jackson Harper  <jackson@ximian.com>
2408
2409         * TextControl.cs: We were almost always drawing one more line then
2410         needed, since the GetLineByPixel will return the last line found
2411         at that pixel. In most cases though, we were invalidating up to
2412         the junction between two lines.
2413         - Improve debug code.
2414
2415 2006-12-12  Chris Toshok  <toshok@ximian.com>
2416
2417         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2418         and FillReversibleRectangle.
2419
2420         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2421         and FillReversibleRectangle.
2422
2423         * XplatUIWin32.cs: add stubs which do nothing for
2424         DrawReversibleFrame, DrawReversibleLine, and
2425         FillReversibleRectangle.
2426
2427         * XplatUIOSX.cs: add stubs which raise NIE for
2428         DrawReversibleFrame, DrawReversibleLine, and
2429         FillReversibleRectangle.
2430
2431         * XplatUIX11.cs: add working implementation for
2432         DrawReversibleFrame, DrawReversibleLine, and
2433         FillReversibleRectangle.
2434         
2435         * ControlPaint.cs: implement DrawReversibleFrame,
2436         DrawReversibleLine, and FillReversibleRectangle, by calling into
2437         the appropriate XplatUI method.
2438
2439 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2440
2441         * Form.cs: Make MdiClient have the focus even if it's
2442         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2443         messages. Fixes #79907.
2444         
2445 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2446
2447         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2448         queried after the window is created.
2449         
2450         * XplatUIX11.cs: Added SendParentNotify to implement 
2451         WM_PARENTNOTIFY logic. Fixes #79965.
2452         
2453         * Control.cs: Added MakeParam.
2454         
2455 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2456
2457         * MdiClient.cs: Resume Layout before setting window
2458         states (fixes #80201).
2459
2460 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2461
2462         * MenuAPI.cs: Deselect a menu item after performing
2463         the click (fixes #80197).
2464
2465 2006-12-11  Jackson Harper  <jackson@ximian.com>
2466
2467         * TextBoxBase.cs: We need to cap this value, since Maximum -
2468         ViewPortHeight can be less than zero.
2469         - Only do selection with the left mouse button.
2470         * TextBox.cs: Don't tell the world that we have a context menu.
2471         * Control.cs: New method so that we can control whether or not the
2472         context menu is visible outside MWF.
2473
2474 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2475
2476         * ToolBarButton.cs: Fix text positon. 
2477
2478 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2479
2480         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2481
2482         * Control.cs (DoubleBuffered): Add implementation.
2483
2484         * Application.cs (OpenForms): Add.
2485
2486 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2487
2488         * Form.cs: Use opacity instead of Opactiy to determine if we need
2489         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2490
2491 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2492
2493         * Control.cs: Fix NRE if Control.Site was set to null.
2494
2495 2006-12-11  Chris Toshok  <toshok@ximian.com>
2496
2497         * Control.cs: ControlCollection.Remove should return if the arg is
2498         null, and ControlCollection.SetChildIndex should raise a ANE.
2499
2500 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2501
2502         * Control.cs: Verify value set for Dock property. Code formatting
2503         updates.
2504
2505 2006-12-11  Jackson Harper  <jackson@ximian.com>
2506
2507         * TextControl.cs: Draw the caret and the selection when a flag is
2508         set on the owner.
2509         * TextBoxBase.cs: We want to draw the caret and the selection for
2510         TextBox but not for TextBoxBase.
2511         - If the window is resized and scrolling is no longer needed (the
2512         whole doc is visible) set the scroll position to zero.
2513         - The default SelectWord (the one TextBox uses) should move the
2514         caret to the end of the word.
2515         - SelectAll moves the caret to the end of the selection.
2516         * TextBox.cs: We don't selectall on focus, we just do it when the
2517         control is created.
2518         
2519 2006-12-11  Mike Kestner  <mkestner@novell.com>
2520
2521         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2522
2523 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2524
2525         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2526         2.0 support.
2527         * ListViewItem.cs: Add Name 2.0 property.
2528
2529 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2530
2531         * TabControl.cs: Set visibility on selected or default tab 
2532         when tabcontrol handle is created, so that it's contents
2533         actually show up (duh). Fixes #80193
2534         Don't redraw the control if there is no handle created, as
2535         the selected index might be completely invalid. Added some tests
2536         to check for this.
2537
2538 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2539
2540         * ToolBar.cs: Uses maximun width and height of all buttons as 
2541         button rectangle when ButtonSize specified, it looks strange but
2542         is what happens in Win32. Fixes #80189.
2543
2544 2006-12-11  Jackson Harper  <jackson@ximian.com>
2545
2546         * TextControl.cs: Need to track undo levels ourself, since
2547         compound actions will mess them up.
2548
2549 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2550
2551         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2552         SelectedIndex value is changed (even if it's not valid).
2553         Reset SelectedIndex to 0 when the handle is created and if
2554         the current index is invalid.
2555         Fixes SelectdeIndex unit tests and #80128
2556
2557 2006-12-08  Chris Toshok  <toshok@ximian.com>
2558
2559         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2560         calls EndEdit, it needs to be called before we set current_cell to
2561         its new value.  Otherwise, we end up committing the value in the
2562         textbox to the new cell as well.  Fixes bug #80160.
2563
2564 2006-12-08  Chris Toshok  <toshok@ximian.com>
2565
2566         * Form.cs (set_CancelButton): if the button's DialogResult is
2567         None, set it to Cancel.  Fixes bug 80180.
2568
2569 2006-12-08  Jackson Harper  <jackson@ximian.com>
2570
2571         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2572         to watch ourselves when setting the canvas size and setting the
2573         scrollbar values.
2574
2575 2006-12-08  Chris Toshok  <toshok@ximian.com>
2576
2577         * DataGrid.cs: comment out the two MakeTransparent calls for the
2578         time being so people using trunk (and not 1.2.2) on windows can
2579         actually use the datagrid.  This deals with bug #80151.
2580
2581 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2582
2583         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2584         Graphics.DrawImage (image, int, int, int, int) overload instead
2585         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2586         the dpi difference and was blurring images it drew.
2587         [Fixes bug #79960]
2588
2589 2006-12-08  Chris Toshok  <toshok@ximian.com>
2590
2591         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2592         rowcnt is 0 (such as with an empty datasource), and make sure we
2593         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2594         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2595
2596 2006-12-08  Chris Toshok  <toshok@ximian.com>
2597
2598         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2599         grid.
2600
2601 2006-12-08  Chris Toshok  <toshok@ximian.com>
2602
2603         [ Fixes bug #80167 ]
2604         
2605         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2606         style is FlatStyle.System.
2607
2608         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2609         ButtonBase.flat_style private, and switch uses of it to the public
2610         property.
2611         
2612 2006-12-08  Chris Toshok  <toshok@ximian.com>
2613
2614         [ Fixes bug #80121 ]
2615         
2616         * ThemeWin32Classic.cs: center the caption text in the datagrid
2617         when we draw it.
2618
2619         * DataGrid.cs: lessen the amount we add to the caption height from
2620         6 to 2.  6 was making it huge.
2621
2622 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2623
2624         * UpDownBase: Handle MouseWheel call directly instead of capturing
2625         the inner textbox's OnMouseWheel. Fixes #80166
2626
2627 2006-12-08  Jackson Harper  <jackson@ximian.com>
2628
2629         * TextControl.cs: We need to invalidate the textbox when we empty
2630         it (how had this not been discovered before?)
2631
2632 2006-12-08  Jackson Harper  <jackson@ximian.com>
2633
2634         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2635         to behave like MS, we now ignore the eventargs.Click and just
2636         track state ourself, which we were already doing anyways.
2637         - Constrain the double click handler to the double click size.
2638         
2639 2006-12-08  Chris Toshok  <toshok@ximian.com>
2640
2641         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2642         direction if that scrollbar isn't shown.  fixes bug #80158.
2643
2644 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2645
2646         * NumericUpDown.cs: Update value on getter. Fixes #79950
2647
2648 2006-12-08  Chris Toshok  <toshok@ximian.com>
2649
2650         * MenuItem.cs: add back in the event cloning code.  I didn't know
2651         how to do it in the face of the EventHandlerList work i'd done
2652         last week.  Fixes bug #80183.
2653
2654 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2655
2656         * Control.cs: Add an invalidate to the BackgroundImage setter.
2657         [Fixes 80184]
2658
2659 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2660
2661         * ToolStrip*: Add some small properties reported by MoMA, fix event
2662         firing and default properties based off of unit tests, and add some
2663         attributes based off of the class status page.
2664
2665 2006-12-07  Jackson Harper  <jackson@ximian.com>
2666
2667         * TextBoxBase.cs: Take HideSelection into account when determining
2668         whether or not to show the selection.
2669         * RichTextBox.cs: After inserting the RTF into the document move
2670         the cursor to the beginning of the document.
2671
2672 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2673
2674         * Control.cs: Remove static ArrayList "controls" which maintained
2675         a reference to every control created.
2676         * Application.cs: Create a static FormCollection to maintain a reference
2677         to every form created.  Use it in places that formerly enumerated through
2678         the controls one looking for forms.
2679         * Form.cs: Add and remove self from above FormCollection.
2680
2681 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2682
2683         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2684           not libgdk (though it makes me wonder why I didn't have any
2685           problems)
2686
2687 2006-12-07  Chris Toshok  <toshok@ximian.com>
2688
2689         [ you had to know this was coming after that last commit...]
2690         
2691         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2692         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2693         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2694         XCopyArea).
2695
2696 2006-12-07  Chris Toshok  <toshok@ximian.com>
2697
2698         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2699         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2700         all the behavior we need for double buffering.
2701
2702         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2703         client side Bitmap, just like the old Control-based double buffer
2704         code did.  The methods are virtual, so each XplatUI driver
2705         subclass can replace the implementation to use a faster, platform
2706         specific approach.
2707
2708         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2709         double buffer code, and clean things up a bit in the process.
2710
2711 2006-12-06  Chris Toshok  <toshok@ximian.com>
2712
2713         * Control.cs: reindent WndProc.
2714
2715 2006-12-06  Chris Toshok  <toshok@ximian.com>
2716
2717         [ I wanna be like BenM when I grow up ]
2718         
2719         * Hwnd.cs: create a single static Graphics object on the static
2720         Bitmap we create.  use this for our text measurements.
2721
2722         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2723         This was causing us to allocate a backbuffer for every control,
2724         even when it wasn't flagged as double buffered.  Instead use the
2725         single graphics instance.  This might have implications for
2726         multithreaded applications.  If we run into problems we can switch
2727         to creating 1 Graphics per control, on the static Hwnd bitmap.
2728
2729         this change nets us a 7M savings in private dirty mappings when
2730         running FormsTest.exe.
2731
2732 2006-12-06  Chris Toshok  <toshok@ximian.com>
2733
2734         * ListView.cs: the BackgroundImage override is just to set
2735         attributes.  chain up to base.BackgroundImage.
2736
2737         * RichTextBox.cs: same.
2738
2739         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2740         changes, so instead a handler for BackgroundImageChanged.
2741         
2742         * Control.cs: make background_image private.
2743
2744 2006-12-06  Chris Toshok  <toshok@ximian.com>
2745
2746         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2747         sure we even need this assignment, but roll with it for now.
2748
2749         * Control.cs: make the cursor field private.
2750
2751 2006-12-06  Chris Toshok  <toshok@ximian.com>
2752
2753         * Form.cs: we don't need to explicitly set ImeMode to
2754         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2755         behavior in the face of ImeMode.Inherit.
2756
2757         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2758         change the ctor's assignment to use ImeMode instead of ime_mode.
2759
2760         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2761         ImeModeInherit.  Only check for the parent's imemode (and return
2762         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2763         This fixes the button unit test, which sets both ImeMode and
2764         DefaultImeMode to ImeMode.Disable.
2765
2766         also make the ime_mode field private.
2767
2768 2006-12-06  Chris Toshok  <toshok@ximian.com>
2769
2770         * Control.cs: make control_style private.
2771
2772         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2773         setting the styles to true, then setting them to false instead of
2774         reverting to their previous values.
2775
2776         also, call SetStyle on the scrollbars instead of using
2777         control_style directly.
2778
2779 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2780
2781         * FormCollection.cs: Implement. [2.0]
2782
2783 2006-12-06  Chris Toshok  <toshok@ximian.com>
2784
2785         * Control.cs: make tab_stop private.
2786
2787         * Label.cs: set TabStop, not tab_stop.  reformat some event
2788         add/remove methods to make them more compact.
2789
2790 2006-12-06  Chris Toshok  <toshok@ximian.com>
2791
2792         * RadioButton.cs: fix TabStop handling.
2793
2794 2006-12-06  Chris Toshok  <toshok@ximian.com>
2795
2796         * TextBox.cs: remove the explicit assignments to has_focus.
2797         Control does that.
2798
2799         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2800         manage that.
2801         
2802 2006-12-06  Chris Toshok  <toshok@ximian.com>
2803
2804         * ButtonBase.cs: remove all uses of is_enabled from this code.
2805         it's always true when any of the code containing the checks is
2806         executed.
2807
2808 2006-12-06  Chris Toshok  <toshok@ximian.com>
2809
2810         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2811         with different semantics (some are present in both 1.1 and 2.0
2812         profiles) so that we match MS's behavior in our unit tests.
2813
2814 2006-12-06  Jackson Harper  <jackson@ximian.com>
2815
2816         * TextControl.cs: Make this operation undoable.
2817         * TextBoxBase.cs: Factor the border width into the preferred
2818         height.
2819         - implement Modified as per the spec.
2820
2821 2006-12-06  Chris Toshok  <toshok@ximian.com>
2822
2823         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2824
2825 2006-12-06  Chris Toshok  <toshok@ximian.com>
2826
2827         * Control.cs: make right_to_left and context_menu fields private.
2828
2829 2006-12-06  Chris Toshok  <toshok@ximian.com>
2830
2831         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2832         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2833         Control.child_controls private.  switch all uses over to
2834         Control.Controls.
2835
2836 2006-12-06  Chris Toshok  <toshok@ximian.com>
2837
2838         * System.Windows.Forms/GroupBox.cs,
2839         System.Windows.Forms/AccessibleObject.cs,
2840         System.Windows.Forms/ErrorProvider.cs,
2841         System.Windows.Forms/Control.cs,
2842         System.Windows.Forms/UpDownBase.cs,
2843         System.Windows.Forms/ScrollBar.cs,
2844         System.Windows.Forms/DateTimePicker.cs,
2845         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2846         System.Windows.Forms/ToolTip.cs,
2847         System.Windows.Forms/RadioButton.cs,
2848         System.Windows.Forms/LinkLabel.cs,
2849         System.Windows.Forms/Splitter.cs,
2850         System.Windows.Forms/TextBoxBase.cs,
2851         System.Windows.Forms/ToolStripTextBox.cs,
2852         System.Windows.Forms/ContainerControl.cs,
2853         System.Windows.Forms/ThemeWin32Classic.cs,
2854         System.Windows.Forms/SizeGrip.cs,
2855         System.Windows.Forms/ToolStripDropDown.cs,
2856         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2857         private.  switch all uses over to Control.Parent.
2858
2859 2006-12-06  Chris Toshok  <toshok@ximian.com>
2860
2861         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2862         Control does this before calling emitting these events.
2863
2864         * TabControl.cs: same.
2865
2866         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2867         Control.client_rect.
2868
2869         * ButtonBase.cs: use the ClientSize property instead of the
2870         client_size field.
2871
2872         * ScrollableControl.cs: same.
2873
2874         * Control.cs: another pass at making properties private.  also,
2875         move the initialization of tab_stop to the ctor.
2876
2877 2006-12-05  Andreia Gaita <avidigal@novell.com>
2878
2879         * TabControl.cs: Let the selected index be set freely if the 
2880         control handle is not yet created.
2881
2882 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2883
2884         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2885         internal until I can rewrite DefaultLayout.
2886         * ToolStrip.cs: Fix build error and some general cleaning.
2887         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2888         Fix build errors caused by making some of Control's fields private.
2889
2890 2006-12-05  Jackson Harper  <jackson@ximian.com>
2891
2892         * TextControl.cs: Redo Insert a little so that it use IndexOf
2893         instead of Split, this prevents it from messing up on things like
2894         \n\n\n. Also more effecient since the split array doesn't need to
2895         be created.
2896         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2897         multiline text differently, this is the first of many fixes that
2898         will make multiline/non-multiline the same thing as far as the
2899         TextBoxBase is concerned.
2900         - Don't split the text and insert lines, this can lose some line
2901         endings (like is the last line a soft or hard break). Instead use
2902         the new Insert.
2903         - Fix an off by one when combining all the lines in the Text
2904         getter.
2905         - Remove separate multiline handling from the Text getter/setter.
2906
2907 2006-12-05  Chris Toshok  <toshok@ximian.com>
2908
2909         * ButtonBase.cs: a few changes:
2910
2911         - don't reinitialize internal Control fields in the ctor when they
2912         have the same values as Control sets them.
2913
2914         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2915         this before calling those methods.
2916
2917         - we don't need to call Refresh for anything.  use Invalidate
2918         instead.
2919
2920         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2921         calls Refresh in its OnEnabledChanged.
2922         
2923         - several of the events we were registered for in the ctor to
2924         redraw ourselves already include calls to Invalidate in the
2925         property setters that raise the events.  remove the extra
2926         invalidation.
2927
2928         - reformat a switch statement that was 83274658 columns wide.
2929         
2930 2006-12-05  Mike Kestner  <mkestner@novell.com>
2931
2932         * ComboBox.cs: fix a unit test regression from a TextBox
2933         SelectionLength return of -1 when there's no selection.  
2934
2935 2006-12-05  Chris Toshok  <toshok@ximian.com>
2936
2937         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2938         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2939         cleaning up some of the internal Control fields being used by
2940         subclasses.
2941
2942 2006-12-05  Mike Kestner  <mkestner@novell.com>
2943
2944         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2945         listbox after AddImplicit calls since it defaults to hidden. Add a 
2946         hack to preserve requested heights across DropDownStyle changes.
2947
2948 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2949
2950         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2951
2952 2006-12-05  Chris Toshok  <toshok@ximian.com>
2953
2954         * DataGridView.cs: fix compiler warnings.
2955
2956         * PrintControllerWithStatusDialog.cs: same.
2957
2958         * ToolBar.cs: same.
2959
2960         * FolderBrowserDialog.cs: same.
2961
2962         * Splitter.cs: same.
2963
2964         * DataGridViewComboBoxCell.cs: same.
2965
2966         * XplatUIWin32.cs: same.
2967
2968         * PictureBox.cs: same.
2969
2970         * Win32DnD.cs: same.
2971
2972         * PageSetupDialog.cs: same.
2973
2974         * FileDialog.cs: same.
2975
2976         * PrintDialog.cs: same.
2977
2978         * DataGridTextBoxColumn.cs: same.
2979
2980         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2981
2982 2006-12-05  Chris Toshok  <toshok@ximian.com>
2983
2984         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2985         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2986         System.ComponentModel.EventHandlerList work.
2987
2988 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2989
2990         * DrawTreeNodeEventArgs.cs: Added.
2991
2992 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2993         
2994         * InternalWindowManager.cs: Remove an unused field.
2995         
2996 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2997
2998         * InternalWindowManager.cs:
2999         - Save the point where the title bar is clicked.
3000         
3001         * MdiWindowManager.cs:
3002         - Only allow moving of the window as long as the 
3003         clicked point on the title bar does not get out of
3004         MdiClient's rectangle. Fixes #79982.
3005         
3006         * MdiClient.cs:
3007         - Added Horizontal/VerticalScrollbarVisible.
3008         - Simplified the scrollbar sizing algorithm.
3009         - Cache the difference in scrolled value in
3010         H/VBarValueChanged and move the calculation out
3011         of the for loop.
3012
3013 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3014
3015         * Control.cs: Make the Console.WriteLine in WndProc 
3016         write more info.
3017
3018 2006-12-05  Chris Toshok  <toshok@ximian.com>
3019
3020         * ToolStripManager.cs, ToolStripButton.cs,
3021         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
3022         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
3023         ToolStripSplitButton.cs, ToolStripSeparator.cs,
3024         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
3025         ToolStripProgressBar.cs, ToolStripContainer.cs,
3026         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
3027         to using System.ComponentModel.EventHandlerList.
3028
3029 2006-12-04  Chris Toshok  <toshok@ximian.com>
3030
3031         * LinkLabel.cs: fix up compiler warnings.
3032
3033         * TableLayoutSettings.cs: same.
3034
3035         * TreeView.cs: same.
3036
3037         * ToolBar.cs: same.
3038
3039         * TabControl.cs: same.
3040
3041         * RichTextBox.cs: same.
3042
3043         * ListViewItem.cs: same.
3044
3045         * PropertyGrid.cs: same.
3046
3047         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3048
3049         * ToolTip.cs same.
3050
3051         * TextRenderer.cs: fix up compiler warnings.
3052
3053         * Label.cs: same.
3054
3055         * Form.cs: corcompare fixes.
3056
3057         * PictureBox.cs: fix up compiler warnings.
3058
3059         * ImageListStreamer.cs: same.
3060
3061         * TrackBar.cs: corcompare fix.
3062
3063         * Control.cs: fix up compiler warnings.
3064
3065         * SplitterPanel.cs: same.
3066
3067         * NumericTextBox.cs: same.
3068
3069         * ImageList.cs: same.
3070
3071         * StatusStrip.cs: same.
3072
3073         * ProgressBar.cs: corcompare fix.
3074
3075         * ToolStripButton.cs: fix up compiler warnings.
3076
3077         * ToolStripStatusLabel.cs: same.
3078
3079         * ToolStripSplitButton.cs: same.
3080
3081         * ToolStripSeparator.cs: same.
3082
3083         * ToolStripProgressBar.cs: same.
3084
3085         * ToolStripDropDownMenu.cs: same
3086
3087         * ToolStripDropDown.cs: same.
3088
3089         * ToolStripDropDownButton.cs: same.
3090
3091         * ToolStrip.cs: same.
3092
3093         * ToolStripControlHost.cs: same.
3094
3095         * ToolStripContentPanel.cs: same.
3096
3097         * ToolStripDropDown.cs: same.
3098
3099         * ToolStripContainer.cs: same.
3100
3101         * ToolStripPanel.cs: same, and add "new" where we need it to work
3102         with the new ArrangedElementCollection.
3103
3104         * ToolStripItemCollection.cs: add "new" where we need it to work
3105         with the new ArrangedElementCollection.
3106
3107 2006-12-04  Andreia Gaita <avidigal@novell.com>
3108
3109         * TabControl.cs: Fix default tab selection to after TabControl
3110         gets focus and not before. Fixes #80128
3111
3112 2006-12-04  Chris Toshok  <toshok@ximian.com>
3113
3114         * DataGridTableStyle.cs: remove the gross calling of
3115         datagrid.Refresh from here.  It's a broken idea and it doesn't
3116         work anyway.
3117
3118         * DataGrid.cs: instead, just register/unregister from the
3119         DataGridTableStyle events in CurrentTableStyle.  we play it
3120         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3121         even though some would most likely not require it.  Fixes bug
3122         #80115 (and one portion of #80117 as a side effect).
3123
3124 2006-12-04  Chris Toshok  <toshok@ximian.com>
3125
3126         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3127         so the textbox (if any) goes away.  Fixes bug #80117.
3128
3129 2006-12-04  Chris Toshok  <toshok@ximian.com>
3130
3131         * DataGridColumnStyle.cs: set the column's readonly property
3132         initially based on the property descriptor's IsReadOnly.  Fixes
3133         bug #80044.
3134
3135 2006-12-04  Chris Toshok  <toshok@ximian.com>
3136
3137         * ComboBox.cs: wrap the dropdown style changing work in
3138         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3139
3140 2006-12-04  Jackson Harper  <jackson@ximian.com>
3141
3142         * TextBoxBase.cs: Fix off by one, since these are one-based.
3143         * TextBox.cs: Select all the text when we get focus.  The TextBox
3144         does this but the RTB does not.
3145
3146 2006-12-04  Chris Toshok  <toshok@ximian.com>
3147
3148         * DataGridTextBoxColumn.cs: remove some spew.
3149
3150         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3151         but some part of me is saying "it shouldn't be here.."  At any
3152         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3153         setting the value.
3154
3155 2006-12-04  Chris Toshok  <toshok@ximian.com>
3156
3157         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3158         to reassign the propertydescriptor.
3159
3160 2006-12-04  Jackson Harper  <jackson@ximian.com>
3161
3162         * TextBoxBase.cs:
3163         * TextControl.cs: Remove some unused variables.  Maybe this will
3164         patch things up between mike and I.
3165         - don't split lines less then one char wide, if the viewport is
3166         that small text won't be visible anyways.
3167         
3168 2006-12-04  Jackson Harper  <jackson@ximian.com>
3169
3170         * TextBoxBase.cs: Default selection length is -1, need to do some
3171         more testing on windows to see when this is used for the property.
3172         - Redid the Lines [] property to that we properly remove soft line
3173         breaks
3174         - added support for preserving carriage returns
3175         -  CanUndo is not a variable like 'is undo enabled' it just returns
3176         true if there is undo operations available.
3177         - AppendText doesn't need to grab the last tag itself anymore,
3178         this happens automatically when we move the cursor.
3179         * TextControl.cs: Add CompoundActions to the undo class. This
3180         allows combining the other operations into one big option.  ie a
3181         paste will combine { delete old, insert new, move cursor }
3182         - Add InsertString undo operation
3183         - New method for deleting multiline text
3184         - Add carriage returns to lines. So we can preserve carriage
3185         returns when text is 'roundtripped'
3186
3187 2006-12-04  Chris Toshok  <toshok@ximian.com>
3188
3189         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3190         minimum 0.  Fixes the scrollbar exception in bug #80136.
3191
3192 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3193
3194         * MdiClient.cs: 
3195         * MdiWindowManager: Removed unused fields and methods.
3196         
3197 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3198         
3199         * StatusBar.cs: Update all panels when a AutoSize=Contents
3200         panel needs updating.
3201         
3202         * StatusBarPanel.cs: Remove twidth and only use initialize.
3203         Fixes #80031.
3204                 
3205 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3206
3207         * Form.cs: When a form's MdiParent is set add it directly
3208         on top of the z-order in stead of relying on MdiClient's
3209         ActivateChild to do it. Fixes #80135.
3210         
3211         * MdiClient.cs: 
3212         - Remove original_order, mdi_child_list is already doing
3213         the same thing.
3214         - Create mdi_child_list on construction in
3215         stead of first use (avoids a few null checks).
3216
3217         * MenuItem.cs: Use an already existing list of mdi children
3218         to get the correct order of children and remove the other
3219         redundant list.
3220
3221 2006-12-04  Chris Toshok  <toshok@ximian.com>
3222
3223         * PropertyGridView.cs: cached_splitter_location is only used in
3224         !DOUBLEBUFFER code.
3225
3226         * PropertyGrid.cs: implement the ComComponentNameChanged event
3227         using Events, hoping that would fix the warning.  Looks like a
3228         compiler bug instead (#80144).
3229
3230         * PropertyManager.cs: remove unused method.
3231
3232 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3233
3234         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3235         include parentesis to fix expression evaluation. Fixes #79634.
3236
3237 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3238         
3239         * MenuAPI.cs:
3240         - Changes to fix behavior in Menu control, some reported in #80097
3241         and other detected during behavior refactory like a select event
3242         problems.
3243         - Remove unneded "if's" conditions.
3244         - Created an internal to flag when popup is active in control, we need 
3245         it because in .NET you can have menu active but without popup active
3246         when you active menu using popup without visible items.
3247         - Mimic win32 behavior for Select and Popup events.  
3248         - Dont open popup menu when you dont have visible subitems.
3249         - Do nothing when click on disabled menu item.
3250         - Some small changes to follow the coding style guidelines.
3251         - Unselect menu only when another control gives focus. Fixes #80097.
3252         - Remove unused code.
3253         
3254         * MenuItem.cs: internal VisibleItems method to check if menu
3255         theres visible subitems, it will be usefull to fix some 
3256         behavior in Menu control.
3257         
3258 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3259         
3260         * Timer.cs: Tag property for 2.0 profile.
3261         
3262 2006-12-01  Chris Toshok  <toshok@ximian.com>
3263
3264         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3265         
3266         * Win32DnD.cs: comment out some unused fields.
3267
3268         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3269         some unused properties/methods.
3270
3271         * XplatUIX11.cs: fix MousePosition so we override the base class's
3272         property instead of conflicting with it.
3273
3274         * PictureBox.cs: comment out some unused fields
3275
3276         * OSXStructs.cs: make some struct fields public.
3277
3278         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3279         MousePosition so we override the base class's property instead of
3280         conflicting with it.
3281
3282         * X11Dnd.cs: comment out some unused fields
3283
3284         * X11DesktopColors.cs: fix some struct field visibility to quiet
3285         the compiler.
3286
3287         * X11Dnd.cs: remove some debug code.
3288
3289         * ThemeClearlooks.cs: comment out unused field.
3290
3291         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3292
3293         * ThemeGtk.cs: comment out some unused pinvokes.
3294
3295         * Timer.cs: remove some unused fields.
3296
3297         * ThemeClearlooks.cs: comment out unused field.
3298
3299         * UpDownBase.cs: comment out unused field.
3300
3301         * DataObject.cs: comment out unused field.
3302
3303         * DataGridBoolColumn.cs: reomve unused field.
3304
3305         * DataGrid.cs: remove unused field.
3306
3307         * Cursor.cs: remove old ToBitmap code.
3308
3309         * ControlPaint.cs: remove unused method.
3310
3311         * ScrollBar.cs: remove unused fields.
3312
3313         * ComboBox.cs: remove unused field, and chain up to
3314         AccessibleObject ctor.
3315
3316         * ListBox.cs: remove unused field.
3317
3318         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3319
3320         * GridEntry.cs: remove unused fields.
3321
3322         * Binding.cs: remove unused fields.
3323
3324         * AxHost.cs: remove unused method.
3325
3326         * ContainerControl.cs: remove unused field.
3327
3328         * ScrollableControl.cs: remove unused fields.
3329
3330 2006-12-01  Chris Toshok  <toshok@ximian.com>
3331
3332         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3333         the Where/WhereString stuff.  it's easy enough to CWL
3334         Environment.StackTrace.
3335
3336         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3337         unused private fields.
3338
3339 2006-12-01  Jackson Harper  <jackson@ximian.com>
3340
3341         * TextControl.cs: Do not update the view while inserting multiline
3342         text. If we update the view we might wrap lines, before entering
3343         the new lines, which causes the new line insertion calculations to
3344         be totally fubared.
3345         - Remove an old TODO
3346         - Make debug output a little nicer
3347         
3348 2006-12-01  Chris Toshok  <toshok@ximian.com>
3349
3350         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3351
3352 2006-12-01  Chris Toshok  <toshok@ximian.com>
3353
3354         [ fix the majority of the CS0108 warnings we've been suppressing ]
3355         
3356         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3357
3358         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3359         to "LayoutToolBar" to quiet mcs.
3360         
3361         * TabControl.cs: mark our ControlCollection class as 'new'.
3362
3363         * TextBoxBase.cs: mark some events as 'new'.
3364
3365         * Splitter.cs: TabStop is 'new'.
3366
3367         * ControlBindingsCollection.cs: mark a few methods as new since
3368         they change the visibility from protected to public.
3369
3370         * RadioButton.cs: DoubleClick -> base class, and remove unused
3371         HaveDoubleClick.
3372
3373         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3374         events as new.
3375
3376         * NumericUpDown.cs: TextChanged -> base class.
3377
3378         * CheckedListBox.cs: mark our ObjectCollection class as new to
3379         quiet mcs.
3380
3381         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3382         muck with the base class.
3383
3384         * StatusBar.cs: fix some mcs warnings about Update being the same
3385         name as a base class method.
3386
3387         * RichTextBox.cs: mark some events as new, and make them do things
3388         to the base class impl.
3389
3390         * UserControl.cs: mark TextChanged as new, and have it manipulate
3391         base.TextChanged.
3392
3393         * UpDownBase.cs: mark some things new.
3394
3395         * CheckBox.cs: mark DoubleClick "new", and add some text about
3396         what we need to look at.
3397
3398         * Panel.cs: make the events "new", and manipulate the base
3399         version.  these are just here for attributes.
3400
3401         * AccessibleObject.cs: make owner private.
3402
3403         * Control.cs: deal with AccessibleObject.owner being private.
3404         cache our own copy if we need it.
3405
3406         * Button.cs: add "new" to the DoubleClickEvent.
3407
3408         * ListBox.cs: no need to track our own has_focus here.  let
3409         Control.has_focus do it for us.  Also some other work to clear up
3410         warnings about not overriding base class methods of the same name.
3411         
3412         * ComboBox.cs: clear up some warnings about not override base
3413         class methods of the same name.
3414
3415 2006-12-01  Chris Toshok  <toshok@ximian.com>
3416
3417         * Form.cs: flag a few things as "new" to quiet some of the mcs
3418         warnings.
3419
3420         * AxHost.cs: same.
3421
3422         * PrintPreviewDialog.cs: same.
3423
3424         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3425         now DGV isn't so horrible on the class status page.  also, move
3426         all events to using System.ComponentModel.EventHandlerList.  my
3427         wrists hurt.
3428
3429 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3430
3431         * MdiWindowManager.cs:
3432         - Set form to active mdi child if shown,
3433         and update the active mdi child to the next 
3434         remaining child in the z-order if the form is hidden.
3435
3436         * Form.cs: 
3437         - Track if the form has been visible and if its 
3438         visibility is beeing changed, so that the MdiClient
3439         can properly decide the ActiveMdiChild. The MdiClient 
3440         cannot track this since the form can change visibility 
3441         before MdiClient is created.
3442
3443         * MdiClient.cs:
3444         - Don't activate anything of the parent form is changing
3445         its visibility.
3446         - Rework ActiveMdiChild to only return visible mdi 
3447         children and take into account several other corner 
3448         cases.
3449
3450 2006-12-01  Chris Toshok  <toshok@ximian.com>
3451
3452         * IBindableComponent.cs: new 2.0 interface.
3453
3454 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3455
3456         * DataGrid.cs: Font for caption area is bold by default.
3457
3458 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3459
3460         * Menu.cs: Tag property for 2.0.
3461         
3462 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3463
3464         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3465         
3466 2006-12-01  Chris Toshok  <toshok@ximian.com>
3467
3468         * TreeView.cs: doh, the Begin* events should be
3469         TreeViewCancelEventHandler.
3470
3471 2006-12-01  Chris Toshok  <toshok@ximian.com>
3472
3473         * Form.cs: Form.ControlCollection already stores off the
3474         form_owner field.  don't access the base class's internal "owner"
3475         field.
3476
3477         * Control.cs: make all the fields in Control.ControlCollection
3478         private.  there's no need for any internal fields here.
3479
3480 2006-12-01  Chris Toshok  <toshok@ximian.com>
3481
3482         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3483         OnHandleCreated.  Fixes bug #80109.
3484
3485 2006-12-01  Chris Toshok  <toshok@ximian.com>
3486
3487         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3488         SplitContainer.cs, Control.cs, StatusStrip.cs,
3489         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3490         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3491         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3492         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3493         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3494         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3495         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3496         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3497         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3498         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3499
3500         do most of the work to convert our code over to use
3501         System.ComponentModel.Component.Events for
3502         adding/removing/dispatching events.
3503
3504
3505 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3506
3507         * DataGridView.cs: Fix an ArgumentNullException reported 
3508         twice today in IRC.
3509
3510 2006-11-30  Mike Kestner  <mkestner@novell.com>
3511
3512         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3513         grabbed listbox.  Fixes #80036 and #80101.
3514
3515 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3516
3517         * Message.cs: Changed ToString() to match MS.
3518         
3519 2006-11-30  Jackson Harper  <jackson@ximian.com>
3520
3521         * TextBoxBase.cs: You can still change the selected text on a read
3522         only textbox.
3523         * TextControl.cs: Lower magic number for wrap calculations. This
3524         lets text get closer to the right (far) edge.
3525
3526 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3527
3528         * Control.cs: Tweak 2.0 layout properties.
3529         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3530         * TextRenderer.cs: Add a new overload.
3531         * ToolStrip*: Huge amount of changes and new features.
3532
3533 2006-11-30  Mike Kestner  <mkestner@novell.com>
3534
3535         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3536         scroll range correct.  Fixes #79994.
3537
3538 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3539
3540         * MdiWindowManager.cs: Update main form's text when
3541         a form is closed. (fixes #80038)
3542         
3543 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3544
3545         * ToolBar.cs:
3546         - Fix an regression in ButtonSize.
3547         - Get ImeMode default value change to "Disable".
3548         - Get ShowTooltips default value change to true, default value is 
3549         "false" but after make a test in .NET we get "true" result as default.
3550         
3551 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3552
3553         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3554
3555 2006-11-29  Chris Toshok  <toshok@ximian.com>
3556
3557         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3558         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3559         SetWindowTransparency hasn't been called.
3560
3561 2006-11-29  Chris Toshok  <toshok@ximian.com>
3562
3563         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3564         if it's supported.
3565         (set_AllowTransparency): reorder things a little so that the
3566         WS_EX_LAYERED style is removed properly.
3567
3568 2006-11-29  Chris Toshok  <toshok@ximian.com>
3569
3570         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3571         
3572         * Form.cs: only call the XplatUI transparency method (get/set) if
3573         SupportsTransparency says it's supported. Otherwise fallback to
3574         doing nothing (in the set case) or returning the instance field we
3575         cache (in the get case).
3576
3577         * XplatUIStructs.cs: add TransparencySupport flag enum.
3578         
3579         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3580         change to SupportsTransparency.
3581
3582         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3583         TransparencySupport.None from SupportsTransparency.
3584
3585         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3586         TransparencySupport.Set from SupportsTransparency.
3587
3588         * XplatUIWin32.cs: implement GetWindowTransparency calling
3589         GetLayeredWindowAttributes, and implement SupportsTransparency by
3590         checking whether or not both
3591         GetWindowTransparency/SetWindowTransparency are available
3592         entrypoints.  We need to do this since SetWindowTransparency is
3593         available as of win2k, but GetWindowTransparency requires winxp.
3594         yay win32 api.
3595
3596         * XplatUI.cs: Add GetWindowTransparency, and change
3597         SupportsTransparency to allow for either/both Get/Set.
3598
3599 2006-11-29  Chris Toshok  <toshok@ximian.com>
3600
3601         * DataGrid.cs: keep from going into an infinite loop redrawing a
3602         datagrid that has no datasource.  Fixes bug #80033.
3603
3604 2006-11-29  Chris Toshok  <toshok@ximian.com>
3605
3606         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3607         Invalidate) before the mainmenu has been assigned to a control.
3608
3609 2006-11-29  Chris Toshok  <toshok@ximian.com>
3610
3611         * DataGrid.cs: detect when we should be double the double click
3612         row/column autosize stuff, although that codepath has yet to be
3613         written.  part of the work for bug #79891.
3614
3615 2006-11-29  Chris Toshok  <toshok@ximian.com>
3616
3617         * Binding.cs (SetControl): fix unit test.
3618
3619 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3620
3621         * PageSetupDialog.cs: Validate the margins and set them in
3622         PageSettings. 
3623         * NumericTextBox.cs: New class to mimic the behavior of the
3624         textboxes used in the printing dialogs.
3625
3626 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3627         
3628         * Form.cs: Revert previous change (remove call UpdateBounds
3629         from form constructor), because it messes with the handle creation
3630         order, and that one needs lots and lots of love.
3631         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3632         for valid printer and throw InvalidPrinterException if document
3633         is set but printer not valid), adding a MonoTODO. Once 
3634         handle creation is done properly, we can put this back in.
3635
3636 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3637
3638         * MenuItem.cs: Create a invalidate method for menu item, to be
3639         calling from set text, it make text changes to imadiate update
3640         on screen. Fixes #80013. 
3641         
3642 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3643
3644         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3645         fixes bug #80070 and some other problem on toolbar buttons
3646         layout.
3647
3648 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3649
3650         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3651         with dotted brush.      Fixes #79564
3652         
3653 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3654
3655         * Form.cs: Removed call to UpdateBounds on Form
3656         constructor, it was causing a call to CreateHandle
3657         before it was supposed to.
3658         * PrintControllerWithStatusDialog: Applied patch
3659         by Chris Toshok to hide controller when there are
3660         no printers available.
3661         PrintDialog.cs: initialize printer settings to 
3662         null - correct DefaultValues test #5
3663         * PrintPreviewControl.cs: Move PrintController
3664         initialization to GeneratePreview
3665         * PrintPreviewDialog.cs: 
3666         - Remove Preview generation     from Document_set(). It is 
3667         called on OnPaint
3668         - Throw InvalidPrinterException on CreateHandle if
3669         a Document is set but there are no printers or 
3670         printer is not valid.
3671         * ThemeWin32Classic: don't paint PrintPreviewControl
3672         if there is nothing to paint    
3673
3674 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3675
3676         * Form.cs: Add another popular method.
3677
3678         * TabPage.cs: ditto.
3679
3680 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3681
3682         * MenuItem.cs: Fixed a warning.
3683         * InternalWindowManager: Fixed a warning.
3684
3685 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3686
3687         * MenuItem.cs:
3688         - When cloning a menu also clone MdiList and clone the 
3689           window menu items properly (as the forms and menuitems
3690           are kept in an internal hashtable, these need updating 
3691           as well)
3692         - Rewrote the window menu code, menu items are added in the
3693           order the forms were added to their parent, and they are
3694           updated every time the window menu is shown (before the
3695           list was only generated once, in the current order of the
3696           forms, and would never be updated). A checkmark is shown
3697           next to the item corresponding to the active mdi child.
3698
3699 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3700
3701         * XplatUIStructs.cs: 
3702         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3703         
3704         * XplatUIWin32.cs: 
3705         - Added TME_NONCLIENT to TMEFlags.
3706         - Handles WM_NCMOUSEMOVE in GetMessage to 
3707           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3708
3709         * MdiWindowManager:
3710         - Now merges mdi child menu to parent menu when maximized.
3711         - Recalculate NC areas of both mdi child and mdi parent. 
3712           Fixes #79757 (4).
3713           on window state and size changes.Fixes #79844 (3).
3714         - Handle WM_NCCALCSIZE to properly calculate borders.
3715
3716         * Form.cs:
3717         - Add/remove to the mdi containers list of mdi children 
3718           in the order they are added.
3719         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3720           to the maximized mdi child.
3721         
3722         * InternalWindowManager.cs:
3723         - Only execute a click on the control buttons on the mouse up,
3724           not on the mouse down. Show the state of the button 
3725           (was only showing Normal state, never Pressed state). The
3726           pressed button now follows the mouse (if you click the Close 
3727           button and move the mouse over the Maximize button, the 
3728           Maximize button will be shown as pressed). Since Win32 does
3729           not generate WM_NCLBUTTONUP if you release the button outside
3730           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3731           it as a mouse up.
3732         
3733         * ThemeWin32Classic.cs:
3734         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3735
3736         * MdiClient.cs:
3737         - Added a list of forms which contains the order the forms are
3738           added to the mdi parent.
3739         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3740         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3741         - If the active form changes set the scrollbars to the top
3742           of the Z order, otherwise the form could hide them.
3743         - Scrollbars are now sized according to ClientSize, not 
3744           to Size, and they take into account the other scrollbar
3745           to determine maximum.
3746         
3747 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3748         
3749         * XplatUI.cs:
3750         * XplatUIDriver.cs:
3751         * XplatUIX11.cs:
3752         * XplatUIWin32.cs:
3753         * XplatUIOSX.cs:
3754         - Added RequestAdditionalWM_NCMessages for windows to 
3755           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3756           Currently only implemented in XplatUIWin32.
3757
3758 2006-11-27  Chris Toshok  <toshok@ximian.com>
3759
3760         * Hwnd.cs: only add the hwnd to the windows hash in
3761         set_WholeWindow and set_ClientWindow if whole_window/client_window
3762         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3763
3764 2006-11-27  Mike Kestner  <mkestner@novell.com>
3765
3766         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3767         from the ComboListBox.ShowWindow code. Fixes #79969.
3768
3769 2006-11-27  Chris Toshok  <toshok@ximian.com>
3770
3771         * Hwnd.cs: remove the setters for ExposePending and
3772         NCExposePending - noone uses them.
3773
3774 2006-11-27  Jackson Harper  <jackson@ximian.com>
3775
3776         * TextControl.cs: new param for ReplaceSelection which determines
3777         whether we select the new selection, or set the cursor to the end
3778         of the new selection.
3779         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3780         pasting, select the new text.
3781         * RichTextBox.cs: Use new param for ReplaceSelection.
3782
3783 2006-11-27  Jackson Harper  <jackson@ximian.com>
3784
3785         * TextBoxBase.cs: Set the selection to the caret after the caret
3786         is moved, otherwise they get out of sync.
3787
3788 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3789
3790         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3791         it fixes #80015
3792
3793 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3794
3795         * ThemeWin32Classic.cs: 
3796         - Fix toolbar drop down arrow position.
3797         - Fix drop down appearance when ToolBar.Appearance is normal,
3798         it fixes #80018.
3799         
3800 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3801
3802         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3803         * Control.cs: Same.
3804         * UpDownBase.cs: Same.
3805         * ButtonBase.cs: Same.
3806         * ScrollBar.cs: Same.
3807         * TrackBar.cs: Same.
3808         * PictureBox.cs: Same.
3809         * UserControl.cs: Same.
3810         * Label.cs: Same.
3811         * ListControl.cs: Same.
3812         * TextBoxBase.cs: Same.
3813         * ListView.cs: Same.
3814         * RichTextBox.cs: Same.
3815         * TreeView.cs: Same.
3816
3817 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3818
3819         * PrintDialog.cs:
3820         - Text label for where 
3821         - Text label comment was not shown
3822
3823 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3824
3825         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3826
3827 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3828
3829         * InternalWindowManager.cs: 
3830         - Handle WM_PARENTNOTIFY to activate the form
3831         if any child control is clicked.
3832         - The form is only sizable if not minimized.
3833
3834         * MdiWindowManager.cs:
3835         - Save the IconicBounds if the form is moved.
3836         - Rework SetWindowState, now the window bounds 
3837         are stored only if the old window state is Normal.
3838         
3839         * MdiClient.cs:
3840         - In SetWindowStates store the old window state if 
3841         the window is maximized and restore window state if
3842         the window looses focus.
3843         - Don't handle any scrollbar value changes if 
3844         initializing the scroll bars. Fixes #79771.
3845         - Reworked ArrangeIconicWindows. Current algorithm
3846         tests bounds agains all other minimized windows, if
3847         any intersections create new bounds (going left to 
3848         right, bottom to top) and then test again. When 
3849         successful the bounds are saved and never computed
3850         again. Fixes #79774.
3851
3852 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3853
3854         * InternalWindowManager.cs: Added HandleTitleBarUp.
3855
3856 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3857
3858         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3859         hexadecimal in ParseUserEdit.
3860
3861         
3862 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3863
3864         * MdiWindowManager.cs: 
3865         - Handle a click on the form's icon to show the 
3866         system menu (when maximized). Fixes #79775.
3867         - Change the existing click handler for the form's
3868         icon when not maximized to show on MouseUp.
3869         Fixes #79776.
3870
3871         * Form.cs: In OnResize only layout the mdi child's
3872         parent if it actually has a parent. Might not if
3873         the window is closing.
3874
3875
3876 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3877
3878         * MdiClient.cs: Ignore active MDI client for text of parent, if
3879         child has no text set.
3880
3881 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3882
3883         * ToolBar.cs: Fixed ToString to match MS.
3884
3885 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3886
3887         * NumericUpDown: 
3888         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3889         update inner values on set. Fixes #79966.
3890         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3891         - Fix hexadecimal parsing.
3892         
3893         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3894         parent. Fixes #79957
3895
3896 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3897
3898         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3899         the actual size has to be queried, since if height /
3900         width is negative Win32 changes it to 0. 
3901         Fixes #79999 on Windows.
3902         
3903         * XplatUIX11.cs: Set height / width to 0 if negative
3904         in SetWindowPos. Fixes #79999 on Linux.
3905         
3906 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3907
3908         * ThemeWin32Classic.cs: Fix text redenring when button is
3909         pressed.
3910
3911 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3912
3913         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3914         and later navigate by mouse. Fixes #79528.
3915
3916 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3917
3918         * ToolBar.cs: Set default value for TabStop to false in
3919         constructor, it fixes remaining behavior of bug #79863.
3920
3921 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3922
3923         * MdiWindowManager.cs:
3924         * InternalWindowManager.cs:
3925         - Moved a few methods specific to Mdi from 
3926         InternalWindowManager to MdiWindowManager.
3927         Fixes #79996.
3928         
3929 2006-11-21  Chris Toshok  <toshok@ximian.com>
3930
3931         * XplatUIOSX.cs: stub out InvalidateNC.
3932
3933         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3934         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3935
3936         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3937
3938         * XplatUIDriver.cs: add InvalidateNC abstract method.
3939
3940         * XplatUI.cs: add InvalidateNC.
3941
3942 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3943
3944         * ToolBar.cs: Invalidate complete button area when pressed status 
3945         was changed.
3946         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3947         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3948         by 1 when button is pressed.
3949
3950 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3951
3952         * ToolButton.cs: Invalidate middle of DropDown button when
3953         ToolBar theres DropDownArrows.
3954         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3955         fix DropDown drawing operations.
3956
3957 2006-11-20  Chris Toshok  <toshok@ximian.com>
3958
3959         * NativeWindow.cs: fix the formatting of functions ('{' on the
3960         following line), and enable the thread exception dialog.
3961
3962         * Application.cs: remove the duplicate exception catching from
3963         here.
3964
3965 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3966
3967         * Toolbar.cs: Triggers button click event when click on icon
3968         of dropdown ToolBarButton. Fixes #79912.
3969         
3970 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3971
3972         * Theme.cs:
3973         * ThemeWin32Classic.cs:
3974         - Added a property WindowBorderFont to enable themeing
3975           of mdi child windows' Text.
3976           
3977 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3978
3979         * InternalWindowManager.cs:
3980         * Form.cs:
3981         * MdiClient.cs:
3982         * MdiWindowManager.cs: 
3983         - If mdi child is maximized, set mdi parent's
3984           text to "Parent - [Child]". Fixes #79770.
3985         - If there is any maximized mdi child windows, only the active 
3986           window (and any new windows) is maximized, the rest are normal.
3987         - On a WindowState change only save mdi child's window bounds 
3988           if the old window state was normal. Fixes #79774.
3989         - The scroll bars are now calculated on hopefully all
3990           necessary events. Fixed #79771 / #79844->6 / #79906.
3991         - MdiClient.SizeScrollBars() now takes into account docked 
3992           controls in the parent when calculating available space.
3993         - InternalWindowManager now always repaints the entire title
3994           area. Fixes #79844->1/4/5.
3995         - Added RequestNCRecalc on mdi child windowstate changes.
3996           Fixes #79772.
3997
3998 2006-11-20  Mike Kestner  <mkestner@novell.com>
3999
4000         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
4001         in the MouseUp handler of the listbox and move the return handling
4002         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
4003
4004 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4005
4006         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
4007
4008 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4009
4010         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
4011           working in 1.2.x anymore. So, updated.
4012
4013 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
4014
4015         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
4016         NumberGroupSeparator of current culture instead of assuming en-US.
4017         Fixed bug #79967.
4018
4019 2006-11-17  Mike Kestner  <mkestner@novell.com>
4020
4021         * Control.cs: Add the concept of implicit bounds setting so that
4022         dock/undock round trips preserve explicitly set size/locations.
4023         Fixes #79313.
4024
4025 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4026
4027         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
4028           can't handle those filters. (Fixes bug #79961)
4029
4030 2006-11-17  Chris Toshok  <toshok@ximian.com>
4031
4032         [ fixes the exit/crashes associated with #79835.  it's clearly
4033         suboptimal though, we need to figure out a better way to solve
4034         this. ]
4035         
4036         * PrintPreviewControl.cs: deal with the new invalid printer
4037         exceptions.
4038
4039         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4040         and return false (so CommonDialog.ShowDialog doesn't actually show
4041         the form.)
4042
4043         * PrintDialog.cs: enable/disable the Ok button depending on
4044         whether or not the printer is valid.
4045
4046         * CommonDialog.cs (ShowDialog): only actually show the form if
4047         RunDialog returns true.
4048
4049 2006-11-17  Jackson Harper  <jackson@ximian.com>
4050
4051         * TextControl.cs: When soft splitting a line, mark it as a soft
4052         split line. Also carry over the current line break to the next
4053         line.
4054
4055 2006-11-17  Chris Toshok  <toshok@ximian.com>
4056
4057         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4058         only want to shift the part of the invalid area that overlaps the
4059         area we're scrolling.  we also don't want to clear the invalid
4060         area unless the invalid area was entirely contained within the
4061         scrolling area.
4062
4063 2006-11-16  Chris Toshok  <toshok@ximian.com>
4064
4065         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4066         also make sure to free the memory returned by XGetWindowProperty
4067         in GetText().
4068
4069         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4070
4071 2006-11-16  Chris Toshok  <toshok@ximian.com>
4072
4073         * XplatUI.cs: add a new super secret way to get at the totally
4074         unsupported X11 backend.
4075
4076 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4077
4078         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4079
4080 2006-11-16  Jackson Harper  <jackson@ximian.com>
4081
4082         * TreeView.cs: Allow more explicit setting of top node position
4083         for scrollbars. Slower algo, but more accurate.
4084         - CollapseAll should maintain the current top node.
4085         * TextBoxBase.cs: When positioning the caret, use the line, pos
4086         method, since the x, y method does not grab the correct tag, and
4087         the caret height never gets set correctly. (Maybe I should just do
4088         away with the caret having its own height, and always use the
4089         carets current tag for height).
4090
4091 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4092
4093         [Fixes 79778, 79923]
4094
4095         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4096         Parent to the FosterParent instead.
4097
4098 2006-11-16  Jackson Harper  <jackson@ximian.com>
4099
4100         * TreeView.cs: Need to recalc the topnode when we expand or
4101         collapse. The scrolling methods can't handle this on their own,
4102         since they use differences between the last scroll position, and
4103         those difference get completely messed up since we are expanding
4104         nodes.  This problem should probably be fixed in the scrolling
4105         methods, so they can figure out exactly where they are, but this
4106         will slow things down a little.
4107         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4108         strings, makes nunit-gui look a lot nicer.
4109
4110 2006-11-16  Chris Toshok  <toshok@ximian.com>
4111
4112         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4113         the broken multithreaded event handling we have in here.  File
4114         this entry under "Why we should move to the new X11 backend".
4115
4116         Any thread can make it into UpdateMessageQueue, which gets events
4117         from the X socket - some of which could belong to hwnds being
4118         managed by a different thread.  We can also have multiple threads
4119         in UpdateMessageQueue at the same time, with each one reading from
4120         the X socket.  This leads to many problems, with the following
4121         solutions:
4122
4123         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4124         EnqueueLocked.
4125
4126         The MotionNotify compression we do can't work across threads
4127         (without locking the entire queue, perhaps) since we call
4128         hwnd.Queue.Peek, so we just punt and don't compress motion events
4129         unless the owning thread is the one which got the X event.
4130
4131         ConfigureNotify is another fun one, since it modifies the hwnd's
4132         bounds and then enqueues the event.  We add a lock to Hwnd which
4133         is held when setting configure_pending to true (and enqueuing the
4134         event).
4135
4136         There is a race wrt the wake socket.  we need to make sure that
4137         only 1 thread is waiting on that socket, or else a thread could
4138         sleep waiting for data that never comes.  It's difficult (but not
4139         impossible) to make happen, because it seems to require something
4140         like the following:
4141
4142             1. Thread 1 polls on wake_receive
4143         
4144             2. poll returns saying there's data to be read on
4145                wake_receive.
4146         
4147             3. Thread 2 polls on wake_receive and immediately returns
4148                saying there's data to be read.
4149
4150             4. Thread 2 reads the wakeup byte from wake_receive
4151
4152             5. Thread 1 attempts to read the wakeup byte from
4153                wake_receive.
4154
4155             6. Thread 2 exits (due to a form closing, perhaps).
4156
4157             7. Thread 1 blocks forever.
4158         
4159         Fun, eh?
4160
4161         Fixing the Expose handling isn't done yet, and the races inherent
4162         in that piece of code are responsible for the drawing mistakes you
4163         see when generating expose events in a MT app (like NPlot).  This
4164         one is the likely to be the hardest to bandaid, and it doesn't
4165         appear to cause anything but drawing problems.  The other issues
4166         caused apps to exit or hang.
4167
4168         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4169         called from a different thread than the one that should be calling
4170         these functions.
4171
4172         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4173
4174 2006-11-15  Chris Toshok  <toshok@ximian.com>
4175
4176         * Application.cs: null out the context's MainForm when we exit
4177         RunLoop.  Fixes a newly checked in unit test as well as the last
4178         ODE from bug #79933.
4179
4180 2006-11-15  Chris Toshok  <toshok@ximian.com>
4181
4182         * Form.cs (set_Owner): allow a null value so we can clear the
4183         form's owner.
4184         (Dispose): set all our owned_form's Owner properties to null, and
4185         clear the owned_forms collection.
4186         (WM_CLOSE): clean up this a little bit.. still not right though.
4187
4188         * ApplicationContext.cs: OnMainFormClosed should only call
4189         ExitThreadCore if the main form isn't recreating.  Fixes unit
4190         test.
4191
4192 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4193
4194         [Fixes 78346]
4195
4196         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4197
4198 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4199
4200         [Fixes 79433]
4201
4202         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4203         keep popup window types from stealing focus from the main form
4204         on Windows.
4205
4206         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4207
4208         * MenuAPI.cs: Set above flag to true.
4209
4210 2006-11-15  Chris Toshok  <toshok@ximian.com>
4211
4212         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4213         the button being released is not in wParam.
4214
4215 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4216
4217         * Form.cs: Add the released button to MouseEventArgs.Button
4218         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4219         on Win32.
4220
4221 2006-11-15  Chris Toshok  <toshok@ximian.com>
4222
4223         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4224         GetText().  untested because it's unused in our implementation.
4225         Control.Text always caches the text, even if
4226         ControlStyles.CacheText is not set.
4227
4228         fixes bug #79939.
4229
4230 2006-11-15  Chris Toshok  <toshok@ximian.com>
4231
4232         [ fixes #79933 ]
4233         
4234         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4235         message.  no hiding, no disposing.
4236
4237         in the WM_CLOSE handler, hide the form if it's modal.
4238
4239 2006-11-15  Chris Toshok  <toshok@ximian.com>
4240
4241         * XplatUIX11.cs: use AddExpose instead of sending a message.
4242         fixes textbox border drawing.
4243
4244 2006-11-15  Chris Toshok  <toshok@ximian.com>
4245
4246         * PropertyGridView.cs: keep from crashing on mouse move/down when
4247         the property grid is empty.
4248
4249 2006-11-14  Jackson Harper  <jackson@ximian.com>
4250
4251         * TextControl.cs: Make PageUp and PageDown more like the MS
4252         versions.
4253         * TextBoxBase.cs: When we set the text property position the
4254         cursor at the beginning of the document.
4255
4256 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4257
4258         * Form.cs: if a mdi child's WindowState has changed
4259         before it's creation, it would display wrong control
4260         buttons.
4261         
4262 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4263
4264         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4265           (Fixes bug #79927)
4266
4267 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4268
4269         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4270         the window gets to paint its borders even if the window is
4271         getting smaller.
4272         
4273         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4274         otherwise the old control buttons would still be painted 
4275         if the window gets bigger.
4276         
4277         * PaintEventArgs.cs: add an internal method so that the clip 
4278         rectangle can be changed.
4279         
4280 2006-11-13  Chris Toshok  <toshok@ximian.com>
4281
4282         [ fixes bug #79745 ]
4283         
4284         * NotifyIcon.cs: lots of cleanup.
4285
4286         * X11Structs.cs: add an enum for XEMBED messages.
4287
4288         * XplatUIX11.cs: reindent one of the giant switch statements, it
4289         was taking up an additional tab stop, and this file is already way
4290         too wide for my laptop's screen.
4291
4292         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4293         we get it, resize the hwnd to the WMNormalHints max_width/height.
4294
4295 2006-11-13  Jackson Harper  <jackson@ximian.com>
4296
4297         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4298         teh simple way.
4299
4300 2006-11-13  Chris Toshok  <toshok@ximian.com>
4301
4302         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4303         #79898.  force a reference to the Region to stick around so the
4304         unmanaged object isn't collected (rendering our handle in the MSG
4305         stale).
4306
4307 2006-11-13  Chris Toshok  <toshok@ximian.com>
4308
4309         * XplatUIX11.cs: fix #79917 for window managers which support
4310
4311         using XStoreName on the raw utf8, and we need to convert to
4312         COMPOUND_TEXT if it's non-latin1.
4313
4314 2006-11-13  Chris Toshok  <toshok@ximian.com>
4315
4316         * Form.cs (set_DialogResult): we need to set closing to false if
4317         we're setting our result to None.  fixes bug #79908.
4318
4319 2006-11-13  Jackson Harper  <jackson@ximian.com>
4320
4321         * TextControl.cs: When formatting text, compute the adjusted tag
4322         lengths correctly, using FindTag for the end tag instead of trying
4323         to figure it out outselves.
4324         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4325         the item, ItemHeight doesn't work, because trees with large
4326         imagelists use those for their height
4327         * TreeView.cs: ActualItemHeight factors in the image height
4328         - compute left edge of checkboxes correctly
4329         - when expanding/collapsing move the bottom down one pixel, so we
4330         aren't moving part of the node
4331
4332 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4333
4334         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4335         stack in PaintEventStart so that it won't get disposed by the gc
4336         before reaching PaintEventEnd.
4337
4338 2006-11-13  Jackson Harper  <jackson@ximian.com>
4339
4340         * TextBoxBase.cs: Don't select the word if we are on a line with
4341         no text.
4342         - We don't need to position the caret on mouse up, since the mouse
4343         move handler should be doing this
4344         - When double clicking a blank line, the caret is advanced to the
4345         next line.
4346
4347 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4348
4349         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4350
4351 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4352
4353         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4354         Fixes part of bug #79910.
4355
4356 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4357
4358         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4359           (bug #79903). Some minor string updates to match ms.
4360
4361 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4362
4363         * FileDialog.cs: Don't add an extension if the filename
4364           already ends with that extension.
4365
4366 2006-11-10  Jackson Harper  <jackson@ximian.com>
4367
4368         * TreeView.cs: Use the currently highlighted node for the
4369         BeforeSelect event.
4370         * TextBoxBase.cs: There is no need to expand selection on
4371         MouseMove.
4372         - CanUndo means 'is there any undo operations', not 'is undo
4373         allowed on this textcontrol. Fixed ClearUndo unit test.
4374
4375 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4376
4377         * Button.cs: only perform click when button is Selectable (so as 
4378         not to activate default buttons when they're disabled)
4379         
4380         * Control.cs: Rewrite of the SelectNextControl and related 
4381         methods. HandleClick now selects next control if the current one
4382         is being disabled.
4383         
4384         * Form.cs: OnActivated selects next active control only if Load 
4385         has already occurred. If Load hasn't run, there's no point in 
4386         selecting here, Load might change the state of controls.
4387         
4388         * FocusTest.cs: Tests marked as working again for these fixes
4389
4390 2006-11-10  Chris Toshok  <toshok@ximian.com>
4391
4392         * XplatUIX11.cs: a couple of fixes.
4393
4394         - use XInternAtoms with almost all the atoms we need to register,
4395         instead of many, many calls to XInternAtom.  should help a bit on
4396         startup time, at the expense of making the code look a little
4397         worse.
4398
4399         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4400         isn't reparented (which seems to be a clue that we're running fon
4401         compiz) and they have an Owner form.  This fixes the tool windows
4402         in paint.net when running under compiz.
4403
4404         - when setting the opacity of a window, support both the case
4405         where the window has been reparented and also when it hasn't been.
4406         Since compiz/beryl doesn't seem to reparent windows, and these are
4407         the only window managers which support translucency, I'm not sure
4408         why we need the hwnd.reparented case at all.. but leave it in.
4409         now we get translucent windows in paint.net under compiz/beryl.
4410
4411 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4412
4413         * FileDialog.cs: Always return the value for FilterIndex that
4414           was set. Internally convert it to values that make sense.
4415
4416 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4417         
4418         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4419
4420 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4421
4422         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4423         signature still using false to make it compatible with MS but the 
4424         initial value is true. Fixes #79855.
4425
4426 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4427
4428         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4429           only available on Linux.
4430
4431 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4432
4433         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4434         reduce number of calls to redraw method during toolbar creation.
4435
4436 2006-11-09  Mike Kestner  <mkestner@novell.com>
4437
4438         * ListView.cs : raise SelectedIndexChanged when an item is selected
4439         programmatically via the Item.Selected property.  Gert's nice 
4440         ListViewSelectedIndexChanged test fixture now runs clean.
4441
4442 2006-11-09  Mike Kestner  <mkestner@novell.com>
4443
4444         * ListView.cs : raise SelectedIndexChanged when a selected item is
4445         removed from the item collection using Remove or RemoveAt.
4446
4447 2006-11-09  Mike Kestner  <mkestner@novell.com>
4448
4449         * ListView.cs : raise SelectedIndexChanged once per selected item
4450         for compat with MS.  Fixes #79849+.
4451
4452 2006-11-09  Chris Toshok  <toshok@ximian.com>
4453
4454         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4455         we need to (if we have any tab pages).  Fixes unit test.
4456
4457 2006-11-09  Chris Toshok  <toshok@ximian.com>
4458
4459         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4460         width is 0, not 3.  Fixes a unit test.
4461
4462 2006-11-09  Mike Kestner  <mkestner@novell.com>
4463
4464         * ListView.cs : use Implicit scrollbars so that focus isn't 
4465         stolen from the listview when they are clicked. Fixes #79850.
4466
4467 2006-11-09  Chris Toshok  <toshok@ximian.com>
4468
4469         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4470         have a root item.  Fixes #79879.
4471
4472 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4473
4474         * FileDialog.cs:
4475           - Fix ToString ()
4476           - An ArgumentException is now thrown if a wrong filter
4477             is applied (matches ms). The previous filter doesn't change
4478             anymore if an exception is thrown.
4479           - Changing the FileName property also affects FileNames
4480         * ColorDialog.cs: The length of the CustomColors array is always
4481           16. It doesn't matter if we use a smaller array or null to update
4482           or change the custom colors property.
4483         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4484           for RootFolder if we get a undefined value.
4485
4486 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4487
4488         * StatusBarPanel.cs: 
4489         - Width is set to MinWidth if Width is smaller than
4490         MinWidth. Fixes #79842.
4491         - MinWidth now always overrides Width (MSDN says MinWidth
4492         is set to Width when AutoSize = None, but they do not 
4493         behave like that).
4494         - Style has now the the correct default value.
4495         
4496 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4497  
4498         * TrackBar.cs: 
4499         - The control is completely invalidated on 
4500         Got/LostFocus to draw the focus rectangle correctly.
4501         - When AutoSize then height is always 45 (width for 
4502         vertical controls).
4503         
4504         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4505         on the mouse when moved and it doesn't move when grabbed
4506         until the mouse moves as well. Also fixed some wrong 
4507         calculations when clicking on the thumb (control thought
4508         click was outside of thumb and didn't grab it).
4509         Fixes some of the issues in #79718.
4510
4511 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4512
4513         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4514
4515 2006-11-08  Chris Toshok  <toshok@ximian.com>
4516
4517         * PropertyGridView.cs: only call ToggleValue if the item is not
4518         readonly.
4519
4520 2006-11-08  Jackson Harper  <jackson@ximian.com>
4521
4522         * TextBoxBase.cs: The RichTextBox and textbox have very different
4523         word selection methods.  Implement the textbox's simple word
4524         selection here, and let the RichTextBox override and provide it's
4525         own.
4526         - Don't do extra selection on mouseup
4527         * RichTextBox.cs: Use the documents word selection algorithm, I
4528         think ideally, this function will be pulled into the
4529         RichTextBox.cs code someday.
4530
4531 2006-11-08  Chris Toshok  <toshok@ximian.com>
4532
4533         * RootGridEntry.cs: new class to represent GridItemType.Root.
4534
4535         * CategoryGridEntry.cs: reformat, and add boilerplate.
4536         
4537         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4538         returns the UI parent anyway, and we need special handling to
4539         implement the GetTarget method in the face of it.  Also, implement
4540         Select().
4541
4542         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4543         a root grid item, and use that instead of PropertyGrid.grid_items.
4544         Also, make use of TypeConverters (and add limitted support for
4545         ICustomTypeDescriptors) when initially populating the grid.
4546         Arrays now show up more or less properly.
4547
4548 2006-11-08  Chris Toshok  <toshok@ximian.com>
4549
4550         * Application.cs: set the modal dialog to non modal after we close
4551         it.  Fixes bug #79866.
4552
4553 2006-11-08  Jackson Harper  <jackson@ximian.com>
4554
4555         * TextControl.cs: When combining lines carry over the line end
4556         style from the end line.
4557         - Invalidate the selected area when setting it, if it is visible.
4558         * TextBoxBase.cs: Only rich text box can do full line selects.
4559         - Make sure to set the cursor position when there is a click,
4560         otherwise two clicks in separate areas could cause a large chunk
4561         to be selected.
4562
4563 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4564
4565         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4566         Fixes #79863.
4567
4568 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4569
4570         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4571         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4572
4573 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4574
4575         * MenuAPI.cs: Ignore right click for menu actions and fixes
4576         menu border when clicked.  Fixes #79846.
4577
4578 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4579
4580         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4581         MouseState after create wParam for message, this fixes mouse button 
4582         equal none in mouse up events.
4583         
4584 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4585
4586         * Control.cs : Focus() now calls Select to set the Container's
4587         Active Control and to give it focus. To avoid infinite recursion
4588         (because ActiveControl also calls Focus at one point), a check 
4589         is made in Focus with the help of a new internal variable
4590         is_focusing.
4591
4592 2006-11-07  Mike Kestner  <mkestner@novell.com>
4593
4594         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4595         if there's a selection.  Fixes #79849.
4596
4597 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4598
4599         * PropertyGrid.cs: Avoid fixed height of help description label.
4600         Fixes part of bug #79829.
4601
4602 2006-11-07  Chris Toshok  <toshok@ximian.com>
4603
4604         * XplatUIX11.cs: fix #79790 again, by using the
4605         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4606
4607 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4608
4609         * ToolBar.cs: Fix left click checking.
4610
4611 2006-11-07  Chris Toshok  <toshok@ximian.com>
4612
4613         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4614
4615 2006-11-07  Chris Toshok  <toshok@ximian.com>
4616
4617         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4618         PropertyManager unit tests.
4619
4620         * PropertyManager.cs: make property_name internal.
4621
4622 2006-11-07  Chris Toshok  <toshok@ximian.com>
4623
4624         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4625         pass a unit test.  Also, don't set image_index to anything in
4626         response to setting the ImageList property.
4627
4628 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4629
4630         * ToolBar.cs: Ignore click events when mouse button is not a
4631         left button, only accepts other button for dropdown menus.  
4632         Fixes #79854.
4633
4634 2006-11-07  Chris Toshok  <toshok@ximian.com>
4635
4636         * DataGrid.cs: make the back and parent row buttons a little less
4637         ugly.
4638
4639 2006-11-07  Jackson Harper  <jackson@ximian.com>
4640
4641         * TextBoxBase.cs: When converting to Text don't put line breaks in
4642         for soft line breaks.
4643         * TextControl.cs: There is an initial "fake" line in the document,
4644         this is now a soft break line, so that an extra line feed doesn't
4645         get added to the end of documents.
4646
4647 2006-11-07  Chris Toshok  <toshok@ximian.com>
4648
4649         [ fix bug #79778 ]
4650         
4651         * CurrencyManager.cs: if the list is readonly, don't bother
4652         checking if IBindingList.AllowNew is true.
4653
4654         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4655         for non-DataRowView datasources..  or rather, make it not crash.
4656         (DataGridPaintRelationRow): make sure we limit the row painting to
4657         the area not covered by the row header, and make our cell width at
4658         least large enough to cover the relation area.  This allows grids
4659         that have relations but no rows to render correctly.
4660         (DataGridPaintRowContents): same type of changes here.
4661         (SetDataSource): move back to always calling
4662         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4663         navigating back through relations.
4664         (HitTest): handle the case where we have no cells but have
4665         relations.  Right now we generate a hit in cell 0 of whatever the
4666         row is, not sure if this is strictly correct, but it works for our
4667         purposes.
4668         
4669         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4670         bother doing anything.
4671
4672 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4673
4674         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4675         early version of StatusStrip.  Not responsible for eaten
4676         application or firstborn children.
4677
4678 2006-11-06  Chris Toshok  <toshok@ximian.com>
4679
4680         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4681         call GetTabRect with a -1 index.  Fixes #79847.
4682
4683 2006-11-06  Jackson Harper  <jackson@ximian.com>
4684
4685         * TreeNodeCollection.cs: Update scrollbars after clearing.
4686
4687 2006-11-06  Chris Toshok  <toshok@ximian.com>
4688
4689         * NumericUpDown.cs: fix the ToString method for some unit test
4690         love.
4691
4692 2006-11-06  Chris Toshok  <toshok@ximian.com>
4693
4694         * PropertyGrid.cs:
4695         - set the initial SelectedGridItem if we can.
4696
4697         - Exclude non-mergable properties only if we're merging > 1
4698         object.  Merging 1 object isn't really merging, obviously.
4699
4700         - Handle PropertySort.NoSort just like Alphabetical, which is
4701         wrong of course, but at least gets things on the screen.
4702         
4703         * PropertyGridView.cs:
4704         - Add method "FindFirstItem" which finds the first property grid
4705         item, so we can select it by default.
4706
4707         - make use of GridEntry.CanResetValue.
4708
4709         - Don't call RedrawBelowItemOnExpansion here anymore, the
4710         individual GridEntry's will do that.
4711
4712         - Remove the ITypeDescriptorContextImpl internal class.
4713         
4714         * GridEntry.cs:
4715         - this class needs to implement ITypeDescriptorContext, as it's
4716         what MS's PropertyDescriptorGridEntry does, which means we can
4717         remove the ITypeDescriptorContextImpl internal class from
4718         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4719
4720         - keep a reference to our PropertyGridView, and move the call to
4721         RedrawBelowItemOnExpansion here from PGV.  This means
4722         programmaticly setting Expanded actually does something visible.
4723
4724         - add a CanResetValue() function which takes into account our
4725         possibly multiple "selected_objects" in the merged case.  Shifting
4726         PropertyGridView to use this method fixes another unreported
4727         crasher found running the test for #79829.
4728
4729         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4730         is updated to reflect this.
4731
4732         * CategoryGridEntry.cs: the ctor takes the PGV now.
4733         
4734 2006-11-06  Jackson Harper  <jackson@ximian.com>
4735
4736         * TextControl.cs: These are 1 based.
4737         * TextBoxBase.cs: When setting the selected text, don't change the
4738         selected text tags, this is done by ReplaceText, just position the
4739         cursor at the end of the new text.
4740
4741 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4742
4743         * ListView.cs: Allow label edit only when, when LabelEdit is
4744           set to true.
4745
4746 2006-11-06  Jackson Harper  <jackson@ximian.com>
4747
4748         * TextControl.cs: If a suitable wrapping position isn't found,
4749         just wrap right in the middle of a word.
4750
4751 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4752
4753         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4754           bug #79820.
4755
4756 2006-11-06  Jackson Harper  <jackson@ximian.com>
4757
4758         * TreeView.cs: Can't use the VisibleCount property when setting
4759         scrollbar heights, because this doesn't take into account whether
4760         or not the horz scrollbar just came visible.
4761
4762 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4763
4764         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4765         activated.  Fixes #79369, #79832.
4766
4767 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4768
4769         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4770           had to remove support for links that point to a directory. FileInfo
4771           returns no usefull information (means, the directory they point to)
4772           for such links. Replaced some empty string ("") with String.Empty.
4773
4774 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4775
4776         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4777         NullReferenceException when attempting to remove node that is not in
4778         collection. Throw NullReferenceException when null is passed to 
4779         Remove. Allow first element of the collection to be removed. Fixes
4780         bug #79831.  In GetEnumerator ().Current return null if positioned 
4781         before the first element of the collection. In GetEnumerator ().Reset,
4782         position before first element of the collection.
4783
4784 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4785
4786         * PropertyGrid.cs: To match MS, remove default title and description
4787         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4788         buttons.
4789
4790 2006-11-04  Chris Toshok  <toshok@ximian.com>
4791
4792         * Theme.cs: add a Clamp method, just for kicks.
4793
4794         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4795
4796 2006-11-04  Chris Toshok  <toshok@ximian.com>
4797
4798         * Form.cs: if the form isn't visible, Close() does nothing.
4799
4800 2006-11-03  Chris Toshok  <toshok@ximian.com>
4801
4802         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4803         Hide it.
4804         (WndProc): don't Dispose after handling the WM_CLOSE message.
4805
4806         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4807         them as such, instead of using casts from Control to Form.  Also,
4808         don't Dispose of the modal dialog when we fall out of the loop -
4809         Close() it instead.
4810
4811         fixes bug #79813.
4812
4813 2006-11-03  Chris Toshok  <toshok@ximian.com>
4814
4815         * Control.cs (Dispose): only go through the dispose thing if we're
4816         @disposing, and we haven't already been disposed.  Fixes bug
4817         #79814.
4818
4819         * Form.cs: no reason to call "base.Dispose()" here instead of
4820         "Dispose()".
4821
4822 2006-11-03  Mike Kestner  <mkestner@novell.com>
4823
4824         * ComboBox.cs : use ToString instead of casts in AddItem for
4825         sorting functionality.  Fixes #79812.
4826
4827 2006-11-03  Chris Toshok  <toshok@ximian.com>
4828
4829         * Application.cs: pave the way for actually using the thread
4830         exception dialog.  it's ifdefed out at the moment.
4831
4832 2006-11-03  Chris Toshok  <toshok@ximian.com>
4833
4834         * ThreadExceptionDialog.cs: until we get a better layout, actually
4835         hide the details textbox and label when we shouldn't see them.
4836
4837 2006-11-03  Jackson Harper  <jackson@ximian.com>
4838
4839         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4840         multiline textboxes anymore.  This method also determines the
4841         width/height of a textboxes canvas area.
4842         - Sorta a revert of the last patch.  For multiline just position
4843         the controls, then bail.  This way the scrollbar width won't be
4844         altered.
4845
4846 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4847
4848         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4849         it dont need.  Fixes #79537.
4850
4851 2006-11-02  Jackson Harper  <jackson@ximian.com>
4852
4853         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4854         send the status after firing the DndOver event.
4855
4856 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4857
4858         * TrackBar.cs: Now orientation only switches height / width if
4859         the control's handle is created (Win32 does it like this). Also 
4860         fixed a typo in ToString() for a test to pass, changed the 
4861         exception thrown in set_LargeChange and set_SmallChange to 
4862         match Win32 behaviour, and added TrackBar tests to the unit 
4863         tests.
4864
4865 2006-11-02  Chris Toshok  <toshok@ximian.com>
4866
4867         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4868         not _NET_WM_STATE_NO_TASKBAR.
4869
4870 2006-11-02  Jackson Harper  <jackson@ximian.com>
4871
4872         * TextControl.cs: Increment count by one, since in the update view
4873         count - 1 is used.
4874
4875 2006-11-02  Jackson Harper  <jackson@ximian.com>
4876
4877         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4878         the mouse is in the client rectangle (duh).
4879
4880 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4881         
4882         * TrackBar.cs: Fixed trackbar jumping around when clicking
4883         on it - the trackbar was not detecting correctly at which
4884         side of the thumb the click was done. (fixes #79718)
4885
4886 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4887
4888         * ListBox.cs: scroll visible area when change SelectedIndex to
4889         a non visible area.  Fixes #79481.
4890
4891 2006-11-01  Jackson Harper  <jackson@ximian.com>
4892
4893         * TextControl.cs: When replacing the selection move the selection
4894         start/end/anchor to the end of the new text.
4895
4896 2006-11-01  Jackson Harper  <jackson@ximian.com>
4897
4898         * XplatUIWin32.cs: When setting the parent change the controls
4899         visibility to it's visibility flag, not to it's old parents
4900         visibility (.Visible walks the parent chain).
4901
4902 2006-11-01  Chris Toshok  <toshok@ximian.com>
4903
4904         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4905         XSetTransientForHint fix breaks paint .net's tool windows.  more
4906         work needed for that one.
4907
4908 2006-11-01  Chris Toshok  <toshok@ximian.com>
4909
4910         * ScrollBar.cs: throw ArgumentException instead of Exception in
4911         LargeChange/SmallChange setters.  fixes unit tests.
4912
4913 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4914
4915         * ContainerControl.cs: reverted rev.67183 (which was itself
4916         a reversion of rev.66853... eh).
4917         
4918         * Control.cs: Fixes Reflector hang by changing Focus() call
4919         to what it was before rev.66643 (calling Select() here sets 
4920         ActiveControl, which in some situations calls back Focus and 
4921         eventually does a stack overflow). Temp fix.    
4922         Changes to GetNextControl() to not look for children to select when
4923         parent cannot be selectable (so it looks for siblings instead)  
4924         
4925 2006-10-31  Mike Kestner  <mkestner@novell.com>
4926
4927         * CheckedListBox.cs : off by one error in returned index from
4928         ObjectCollection.Add.  Fixes #79758.
4929
4930 2006-10-31  Chris Toshok  <toshok@ximian.com>
4931
4932         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4933         calls for the textbox/spinner, to keep from recursing to the point
4934         where we crash.  Fixes #79760.
4935
4936 2006-10-31  Chris Toshok  <toshok@ximian.com>
4937
4938         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4939         null/"" value, just return.  matches ms's behavior and fixes some
4940         failing tests.
4941
4942 2006-10-31  Chris Toshok  <toshok@ximian.com>
4943
4944         * Control.cs (set_Capture): make a logic a little easier to
4945         follow.
4946
4947         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4948         if it's being destroyed.  A necessary fix surely, but a bandaid
4949         also, to fix the stuck capture problem in bug #78413.
4950
4951 2006-10-31  Chris Toshok  <toshok@ximian.com>
4952
4953         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4954         convention of clearing hwnd.ClientRect when we set the
4955         width/height (so it'll be recalculated by Hwnd).
4956
4957 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4958
4959         * ContainerControl.cs: reversed Contains check from
4960         ActiveControl due to hanging problems. This fix
4961         partly regresses #79667 (button does not have
4962         initial focus), so this might be a symptom for 
4963         a larger parenting problem (set_ActiveControl
4964         is being called but the child control does
4965         not have the parent set yet?)   
4966         
4967 2006-10-31  Mike Kestner  <mkestner@novell.com>
4968
4969         * MenuAPI.cs : fix keynav when menu is click activated.
4970
4971 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4972
4973         * ToolStrip*: Version 0.2.
4974
4975         * MenuStrip.cs: Version 0.1.
4976
4977         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4978
4979 2006-10-30  Chris Toshok  <toshok@ximian.com>
4980
4981         [ fixes the oversized notify icon issue in bug #79745 ]
4982         
4983         * NotifyIcon.cs: scale the icon down to the size we're given by
4984         the XplatUI layer (this would be faster if we did it once instead
4985         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4986         since it's never invoked.
4987
4988         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4989         pixels high by default, so let's hardcode our systray icon to that
4990         size.  The SYSTEM_TRAY protocol should really have a way for
4991         client apps to query for the correct icon size.. but oh well.  A
4992         couple of patches to deal with the screwy client_window ==
4993         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4994         instance, and also make sure we don't XSelectInput twice).
4995
4996 2006-10-30  Chris Toshok  <toshok@ximian.com>
4997
4998         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4999         recreating forms.  Control recreation is the bane of my existence.
5000         Fix it in a way that keeps everyone happy.
5001
5002 2006-10-30  Chris Toshok  <toshok@ximian.com>
5003
5004         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
5005         just non-CHILD ones.  otherwise sometimes scrollbars end up with
5006         client_windows not being resized to the proper size (ReportBuilder
5007         shows this extremely well).
5008
5009 2006-10-30  Chris Toshok  <toshok@ximian.com>
5010
5011         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
5012         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
5013         showing up in the gnome taskbar.  Fixes bug #79790.
5014
5015 2006-10-30  Chris Toshok  <toshok@ximian.com>
5016
5017         * ApplicationContext.cs: guard against a NRE.
5018
5019         * Application.cs: null out the old MainForm for the context, so we
5020         don't try to use it again once it's disposed.  Fixes bug #79783.
5021
5022 2006-10-30  Chris Toshok  <toshok@ximian.com>
5023
5024         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
5025         BindingContext, set the data source directly, otherwise do the
5026         lazy approach - the actual ListManager will be created when we get
5027         a BindingContext. Fixes bug #79700.
5028
5029 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5030
5031         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
5032           XplatUIX11.cs: Remove old 2 parameter SetVisible.
5033
5034         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
5035
5036 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5037
5038         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5039         of SetVisible that allows a window to be shown, but not activated.
5040         This is needed on Windows for MenuStrip, and can probably be used
5041         with MainMenu and ComboBox to fix the focus stealing issues on
5042         Windows.
5043
5044         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5045
5046 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5047
5048         * PictureBox.cs: Fix the output of the ToString method.
5049
5050 2006-10-29  Chris Toshok  <toshok@ximian.com>
5051
5052         * Control.cs (get_TopLevelControl): fix bug #79781.
5053
5054 2006-10-29  Chris Toshok  <toshok@ximian.com>
5055
5056         * ListControl.cs (set_DataSource): throw Exception here, not
5057         ArgumentException, to match MS behavior.
5058
5059 2006-10-29  Chris Toshok  <toshok@ximian.com>
5060
5061         * Form.cs: remove the try-catch's around calls to GetWindowState.
5062         We can just check the return value.
5063
5064         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5065         Instead return -1.
5066
5067         * XplatUI.cs: Add note about additional return value for
5068         GetWindowState.
5069
5070 2006-10-29  Chris Toshok  <toshok@ximian.com>
5071
5072         * Control.cs (CreateHandle): when we create our handle, we also
5073         create the handles of our child controls.  Fixes one of the
5074         Control unit tests (CH11).
5075
5076 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5077
5078         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5079
5080 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5081
5082         * ThemeClearlooks.cs: A little speedup.
5083
5084 2006-10-27  Chris Toshok  <toshok@ximian.com>
5085
5086         * Control.cs: implement Control.FromChildHandle in a way that
5087         matches the docs (and fixes the failed test.)
5088
5089 2006-10-27  Chris Toshok  <toshok@ximian.com>
5090
5091         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5092         comments).
5093
5094         * DataGrid.cs: implement ResetForeColor such that the tests
5095         succeed.
5096         
5097 2006-10-27  Chris Toshok  <toshok@ximian.com>
5098
5099         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5100         being set to "".  Fixes bug #79759.
5101
5102 2006-10-27  Jackson Harper  <jackson@ximian.com>
5103
5104         * TextControl.cs: We need to clear the entire selection area when
5105         setting the start, otherwise multiline selections are still
5106         visible.
5107
5108 2006-10-26  Chris Toshok  <toshok@ximian.com>
5109
5110         * PropertyGridView.cs: 
5111
5112         - ifdef all the code specific to the double
5113         buffer case, and provide some alternatives in the non-doublebuffer
5114         code, which makes heavy use of XplatUI.ScrollWindow to move things
5115         around without having to invalidate (and cause flicker).  There
5116         are still some drawing problems in the non-doublebuffered case, so
5117         DOUBLEBUFFER is defined by default.
5118
5119         - Fix the way dropdowns are handled.  now we explicitly watch for
5120         the events which might cause the dropdown to close, and break out
5121         of the nested event loop there.  This gets rid of all Capture
5122         code, at the expense of the Msg special casing.  Seems to work,
5123         though, and fixes bug #79743.
5124
5125 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5126         * Control.cs: SetIsRecreating now recreates implicitly added
5127         child controls as well. Finally fixes #79629. The flag passed to 
5128         SetIsRecreating has also been removed since it wasn't used.
5129         
5130 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5131
5132         * PageSetupDialog.cs: Clean some code, fix some bits, 
5133         add some checks, and add a printer sub-dialog.
5134
5135 2006-10-26  Chris Toshok  <toshok@ximian.com>
5136
5137         * PropertyGrid.cs: make set_SelectedObject call
5138         set_SelectedObjects, and move the duplicate logic to the
5139         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5140
5141         * PropertyGridView.cs: hide the textbox when we get a
5142         SelectedObjectsChanged event.
5143
5144         Fixes bug #79748.
5145
5146 2006-10-26  Chris Toshok  <toshok@ximian.com>
5147
5148         * PropertyGridView.cs: deal with the type converter not supporting
5149         GetStandardValues() or GetStandardValues() returning null, which
5150         is does in the default case.  Fixes #79742.
5151
5152 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5153
5154         * CheckedListBox.cs: nunit no longer crashes when selecting 
5155         Project/Edit menu option
5156         
5157 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5158
5159         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5160         is no menu selected. fixes #79739
5161
5162 2006-10-25  Chris Toshok  <toshok@ximian.com>
5163
5164         * PropertyGridView.cs: factor out the splitter invalidation code
5165         into the SplitterPercent setter, and for kicks implement the
5166         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5167         amount in either direction.
5168
5169 2006-10-25  Chris Toshok  <toshok@ximian.com>
5170
5171         * PropertyGridView.cs: do some cleanup of the brush used to draw
5172         text - read only fields should be grayed out.  not sure how to do
5173         this with the textbox, though.  but the textbox's should also be
5174         readonly now at least.  Also, hide/show the textbox when resizing
5175         the control.
5176         
5177         * CursorConverter.cs: use System.Reflection when getting the
5178         properties of Cursors, as TypeDescriptor.GetProperties isn't
5179         returning static properties.
5180
5181 2006-10-25  Chris Toshok  <toshok@ximian.com>
5182
5183         * PropertyGridView.cs: factor out the up/down handling, and reuse
5184         it for page up/down.  also add End/Home support.
5185
5186 2006-10-25  Chris Toshok  <toshok@ximian.com>
5187
5188         * PropertyGridView.cs:
5189
5190         - ensure the selected grid item is visible in the scrolled area,
5191         fixes bug #79572.
5192
5193         - fix Keys.Down handling when you're on the last item in the
5194         propertygrid.
5195
5196 2006-10-25  Mike Kestner  <mkestner@novell.com>
5197
5198         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5199         clicks too.  Fixes #79725.
5200
5201 2006-10-24  Chris Toshok  <toshok@ximian.com>
5202
5203         * PropertyGrid.cs: use property.Converter instead of
5204         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5205         TypeConverters declared on the property as well as on the
5206         PropertyType.  Fixes bug #79678.
5207
5208 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5209
5210         * MimeIcon.cs, Mime.cs:
5211           Fallback to the default platform handler if no shared mime info
5212           stuff exists (fixes #79693).
5213
5214 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5215         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5216         from previous fix (duh).
5217
5218 2006-10-20  Chris Toshok  <toshok@ximian.com>
5219
5220         * PropertyGridView.cs: the dropdown should be MIN(number of items
5221         in list, 15).  Fixes #79551.
5222
5223 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5224         Fixes #79384, #79394, #79652, #79667
5225         * Application.cs: 
5226         
5227         - Modal windows are now destroyed in the proper order for windows
5228         
5229         * ContainerControl.cs:
5230         
5231         - ActiveControl setter has more conditions on when to return:
5232                 - if we're reselecting the active control, but it actually
5233                 didn't have focus (window hidden or some such), it runs
5234                 - if the active control being selected doesn't actually 
5235                 exist in the container, it returns
5236         
5237         * Form.cs
5238         
5239         - The ShowDialog now gets the current form as the owner when
5240         invoking without parameters, and correctly activates the owner 
5241         when returning
5242         
5243         * MessageBox.cs
5244         
5245         - MessageBox now catches the Escape key to exit
5246
5247 2006-10-20  Chris Toshok  <toshok@ximian.com>
5248
5249         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5250         most of bug #79676):
5251
5252         - you can navigate around the property grid with the arrow keys.
5253
5254         - the dropdown is sized properly when the pg has a vertical
5255         scrollbar.
5256
5257         - fix the indentation for subentries, and properly select the
5258         entire label rect.
5259
5260         - fix the gray bar's drawing (only draw it to the last element,
5261         not for the height of the control.  Also make sure we draw that
5262         last horizontal grid line.
5263
5264         - use the same mechanism the datagrid uses wrt the editing textbox
5265         when scrolling/resizing/etc.  Namely, we hide it first, do the
5266         operation, then show it again (if it's still visible).
5267         
5268         - aggressively remove a lot of unnecessary refreshes (and also
5269         calls to Invalidate(). call more limited variants, and only redraw
5270         what we need.)
5271         
5272         * PropertyGrid.cs:
5273
5274         - when we're populating the merged collection, fill in the UI
5275         parent with either the passed in item, or the category item we
5276         create.
5277
5278         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5279
5280         * GridItem.cs: drop some fully qualified names.
5281         
5282         * GridEntry.cs: add a "UIParent", which is basically the parent
5283         treenode.
5284
5285         * GridItemCollection.cs: add an IndexOf method.
5286
5287 2006-10-20  Mike Kestner  <mkestner@novell.com>
5288
5289         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5290         a working win32 NC invalidation mechanism, we can't invalidate
5291         menus.  [Fixes #79705]
5292
5293 2006-10-20  Mike Kestner  <mkestner@novell.com>
5294
5295         * ListBox.cs : don't update the VScrollbar if the list is empty,
5296         just hide it.  [Fixes #79692]
5297
5298 2006-10-20  Jackson Harper  <jackson@ximian.com>
5299
5300         * RichTextBox.cs: Handle some special chars better, and don't skip
5301         the entire group when we encounter a special char that we don't
5302         handle correctly.
5303
5304 2006-10-18  Chris Toshok  <toshok@ximian.com>
5305
5306         * PropertyGridView.cs: address a number of issues from bug #79676,
5307         mostly of the cosmetic variety.
5308
5309         - The highlight rectangle for indented items not extends all the
5310         way to the left.
5311
5312         - Indented items aren't indented so much.
5313
5314         - the dropdown is properly sized width-wise if the pg has a
5315         vertical scrollbar.
5316
5317 2006-10-18  Chris Toshok  <toshok@ximian.com>
5318
5319         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5320         systray stuff is rather convoluted to begin with.
5321
5322         systray icons are a single window for some reason (that I haven't
5323         figured out yet), and for them, client_window == whole_window.
5324         Given the way the tests are structured elsewhere to determine
5325         which paints are pending (client vs. nc), that situation will
5326         always yield PAINT, not NCPAINT.  So, if we have a pending
5327         nc_expose and no pending expose, remove the hwnd from the paint
5328         queue, and also set nc_expose_pending to false, to keep us from
5329         blocking further expose's adding the hwnd to the paint queue.
5330
5331         phew.  like i said, a rather convoluted change.  Fixes the
5332         notifyicon repaint issues in bug #79645.
5333
5334 2006-10-18  Chris Toshok  <toshok@ximian.com>
5335
5336         * Form.cs: when getting the backcolor of the form, don't get
5337         base.BackColor, as this allows parents to influence the background
5338         color.  This breaks mdi forms.  Instead, if the background_color
5339         is empty, return the default.
5340
5341 2006-10-18  Chris Toshok  <toshok@ximian.com>
5342
5343         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5344         to being private instead of internal static.
5345
5346         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5347         crap, it wasn't working for more deeply nested controls anyway,
5348         and we already have the is_recreating flag - use that instead.
5349         Before calling DestroyHandle in RecreateHandle, recurse through
5350         the control tree setting it to true.  this returns the recreate
5351         code to much of its original simplicity, while now guaranteeing we
5352         actually recreate everything we're supposed to.  This change gets
5353         fyireporting actually showing mdi children.
5354
5355 2006-10-17  Chris Toshok  <toshok@ximian.com>
5356
5357         * Form.cs: remove some debug spew, and collapse some duplicate
5358         code at the end of SetClientSizeCore.
5359
5360         * XplatUIX11.cs: 
5361         - add some more debug spew here too wrt Destroy handling.
5362         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5363         in Control's handling of WM_DESTROY.
5364         - Remove the handling of zombie window DestroyNotifies from the
5365         event loop - we don't need it.  Now the only DestroyNotifies we
5366         actually handle are ones generated by X.
5367         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5368         match gtk's (functioning) handling of this. This keep metacity
5369         from leaving droppings in the form of wm borders with no window
5370         contents all over the place.
5371
5372         * Control.cs:
5373         - add a bunch of debug spew wrt control recreation.
5374         - fix a bug where we weren't tracking Visible properly on
5375         recreated hwnds.
5376         - fixed the WM_PAINT double buffer handling to support re-entrant
5377         calls (yes, i know it's gross, but it's happening to us).
5378
5379 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5380         * ThemeWin32Classic.cs: changed drawing of selected days
5381         to make them look better.
5382
5383 2006-10-16  Chris Toshok  <toshok@ximian.com>
5384
5385         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5386         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5387
5388         * XplatUIX11.cs: move away from using hwnd.client_dc and
5389         hwnd.non_client_dc and on to a stack of dc's (and in window's
5390         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5391         without puking or not disposing of Graphics objects.
5392
5393         * XplatUIOSX.cs: same.
5394
5395         * XplatUIWin32.cs: same.
5396
5397 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5398
5399         * FileDialog.cs: Don't call on_directory_changed inside
5400           OnSelectedIndexChanged (it changes the SelectedIndex too).
5401           Instead move it to OnSelectionChangeCommitted.
5402
5403 2006-10-13  Chris Toshok  <toshok@ximian.com>
5404
5405         * XplatUIX11.cs: more Destroy work.  the current code does the
5406         following things, in order:
5407
5408         1. Enumerates all handles of all controls at or below the one
5409         being destroyed, in pre-order.  As it is doing this, it marks the
5410         handles as zombie and clears all references to them.
5411         
5412         2. calls XDestroyWindow on the window passed in.
5413
5414         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5415         list.
5416
5417 2006-10-13  Chris Toshok  <toshok@ximian.com>
5418
5419         * XplatUIX11.cs: set hwnd.zombie to true before calling
5420         SendMessage (WM_DESTROY).  this keeps us from marking the new
5421         window a zombie, and also keeps us from calling sendmessage at
5422         all.
5423
5424 2006-10-13  Jackson Harper  <jackson@ximian.com>
5425
5426         * TextControl.cs: Do not show the caret and selection at the same
5427         time.  Reduces ugliness by 35%.
5428
5429 2006-10-13  Chris Toshok  <toshok@ximian.com>
5430
5431         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5432         zombie after we do the recursive call, so we actually do call
5433         SendMessage on the children controls.
5434         (GetMessage): if we find a pending paint event for a zombie hwnd,
5435         remove the hwnd from the paint queue, or else it will always be
5436         there (and we'll effectively loop infinitely)
5437
5438 2006-10-13  Mike Kestner  <mkestner@novell.com>
5439
5440         * MenuItem.cs : add Selected format under keynav too.
5441         Fixes #79528.
5442
5443 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5444
5445         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5446         implementation and that of MS.
5447
5448 2006-10-13  Chris Toshok  <toshok@ximian.com>
5449
5450         * Control.cs (OnInvalidated) only futz with the invalid_region if
5451         the control is double buffered.  this fixes the apparent hang in
5452         the ListView unit tests.  Someone needs to make the
5453         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5454
5455 2006-10-13  Chris Toshok  <toshok@ximian.com>
5456
5457         * PropertyGridView.cs:
5458
5459         - do a little refactoring so that only one place calls
5460         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5461         else call that.  Also make it Refresh, since there are redraw bugs
5462         otherwise (we should take a look at that...)
5463
5464         - do a little more refactoring work to share the body of code
5465         involved with the drop down.  it was duplicated in the code
5466         dealing with the listbox handling and in the code dealing with the
5467         UITypeEditors.
5468
5469         - add a Capture to the dropdown form's control once it's
5470         displayed, and add a MouseDown handler that checks to make sure
5471         the position is inside the control.  If it's not, close the
5472         dropdown.  This fixes #78190.
5473
5474         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5475         if the value is different than the initial value.
5476         
5477 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5478
5479         * Control.cs: see #78650
5480         - Fixed GetNextControl for several cases:
5481                 - Changed FindFlatForward to return 
5482                 correct sibling control when more than one
5483                 control has same TabIndex as the currently 
5484                 focused one.
5485                 - Changed FindFlatBackward to loop children
5486                 from last to first and apply same logic as in
5487                 FindFlatForward
5488                 - Changed FindControlForward to search for
5489                 children when control is not a container
5490                 but has children, or search for siblings if
5491                 control is a container...
5492                 - Changed FindControlBackward   to continue
5493                 searching for child controls when hitting 
5494                 Panel-like parents
5495                 
5496         - Fixed Focus method to update ActiveControl
5497         (FocusTest.FocusSetsActive failure)
5498         
5499         * TabControl.cs:
5500         - Focus rectangle now refreshes when gaining
5501         or losing focus
5502         - Removed grab for Tab key on IsInputKey that 
5503         was keeping tab navigation from working (#78650)
5504
5505 2006-10-13  Chris Toshok  <toshok@ximian.com>
5506
5507         * PropertyGridView.cs:
5508         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5509         SelectedObjects.
5510
5511         - Deal with GridItem.Value == null a few places.
5512
5513         * PropertyGrid.cs: 
5514         - replace the PopulateGridItemCollection with a pair of methods
5515         which compute the intersection of all the properties in the
5516         SelectedObjects array.  Fixes #79615.
5517
5518         - Throw ArgumentException from set_SelectedObjects if there's a
5519         null in the array.
5520
5521         - Add GetTarget method which can be used to traverse up the
5522         GridItem.Parent chain.  It depends on the assumption that
5523         selected_objects for different GridEntries are always in the same
5524         order (a safe assumption).  Use this method and loop over all the
5525         selected objects in the entry when calling RemoveValueChanged and
5526         AddValueChanged.
5527         
5528         * GridEntry.cs: Make this handle multiple selected objects.
5529         .Value returns null if not all the selected objects share the same
5530         value.
5531
5532 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5533         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5534           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5535           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5536           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5537           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5538         add additional functionality.
5539
5540 2006-10-12  Mike Kestner  <mkestner@novell.com>
5541
5542         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5543         * HelpProvider.cs : new ToolTipWindow ctor sig.
5544         * ToolTip.cs : remove ToolTip param from Window sig since it is
5545         not used.
5546         * ToolBar.cs : add tooltip support.  Fixes #79565.
5547
5548 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5549
5550         * ComboBox.cs: move the events in set_SelectedIndex to 
5551         after the call to HighlightIndex in order to avoid 
5552         possible recursion and subsequent problems with the call
5553         to HighlightIndex and include a range check in 
5554         set_HighlightIndex. Fixes #79588
5555         
5556 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5557
5558         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5559         to ui thread's settings instead of sunday. 
5560         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5561
5562 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5563
5564         * DateTimePicker.cs
5565         * MonthCalendar.cs
5566         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5567         and implement missing functionality (selecting different parts 
5568         of the date and edit them individually with the keyboard).
5569         
5570 2006-10-11  Chris Toshok  <toshok@ximian.com>
5571
5572         * Control.cs (OnInvalidated): fix NRE relating to last change.
5573
5574 2006-10-11  Chris Toshok  <toshok@ximian.com>
5575
5576         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5577         atoms in _NET_WM_STATE here if the window is maximized.  We need
5578         to do this because we're *replacing* the existing _NET_WM_STATE
5579         property, so those atoms will be lost otherwise, and any further
5580         call to GetWindowState will return Normal for a window which is
5581         actually maximized.  Fixes #79338.
5582
5583 2006-10-11  Jackson Harper  <jackson@ximian.com>
5584
5585         * TextControl.cs: Special case for setting selection end to
5586         selection start, we basically kill the anchor.
5587         - some todo comments.
5588
5589 2006-10-11  Chris Toshok  <toshok@ximian.com>
5590
5591         * Control.cs: switch to using an "invalid_region" to track which
5592         parts of the image buffer need updating.  This is more code than
5593         the simple fix from r66532.  That version just attempted to always
5594         fill the entire buffer on redraw, which turns out to be
5595         inefficient when invalidating small rectangles.  This version
5596         simply adds the invalid rectangle to the invalid region.  When we
5597         get any WM_PAINT message we see if it can be filled using the
5598         image buffer, and if it can't (if the paint event's clip rectangle
5599         is visible in the invalid region) we first fill the image buffer.
5600         So, the image buffer is still a cache, we just fill it lazily.
5601
5602         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5603         need it any longer.
5604
5605 2006-10-11  Chris Toshok  <toshok@ximian.com>
5606
5607         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5608         well as size after calling XMoveResizeWindow.  This keeps us from
5609         ignoring future SetWindowPos calls.  Fixes the disappearing
5610         DateTimePicker in the ToolBarDockExample from bug #72499.
5611
5612 2006-10-11  Chris Toshok  <toshok@ximian.com>
5613
5614         * TextBoxBase.cs: reorder things a bit when it comes to
5615         resizing-causing-recalculation.  we were recalculating the
5616         document when our position was changed, which shouldn't happen.
5617         We only care about size changes.  Clear up some more redundant
5618         recalculation calls while I'm at it.  This makes the toolbar dock
5619         example snappy when you're just dragging toolbars around (since it
5620         causes a relayout whenever you move one.)
5621
5622 2006-10-11  Chris Toshok  <toshok@ximian.com>
5623
5624         * ToolBarButton.cs (get_Rectangle): this only returns
5625         Rectangle.Empty if Visible == false, or Parent == null.
5626         Parent.Visible doesn't matter.
5627
5628 2006-10-10  Chris Toshok  <toshok@ximian.com>
5629
5630         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5631         by .net 1.1, so switch to an internal method instead.
5632
5633 2006-10-10  Chris Toshok  <toshok@ximian.com>
5634
5635         * Control.cs (WM_PAINT): when a control is double buffered we draw
5636         initially to the ImageBuffer and then copy from there.  But when a
5637         parent control which has child controls is double buffered, the
5638         initial drawing doesn't encompass the entire ClientRectangle of
5639         the parent control, so we end up with uninitialized bits (this is
5640         easily seen by dragging the top toolbar in
5641         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5642         manually set the ClipRectangle of the paint_event (only the one we
5643         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5644         of the nastiness in bug #72499.
5645
5646         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5647         which we use in Control.cs's WM_PAINT handling.
5648
5649 2006-10-10  Jackson Harper  <jackson@ximian.com>
5650
5651         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5652
5653 2006-10-10  Chris Toshok  <toshok@ximian.com>
5654
5655         * Cursor.cs: Apply a slightly different patch to the one suggested
5656         in #79609.
5657
5658 2006-10-10  Jackson Harper  <jackson@ximian.com>
5659
5660         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5661         not the parent form.
5662         * TextControl.cs: use difference in old line count vs new count to
5663         calculate how many lines were added, this takes into account soft
5664         line breaks properly.
5665
5666 2006-10-10  Chris Toshok  <toshok@ximian.com>
5667
5668         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5669         rectangle located at 0,0 and the size of the text.  Use
5670         ClientRectangle instead.  This fixes rendering of non-left aligned
5671         link labels.
5672
5673 2006-10-10  Jackson Harper  <jackson@ximian.com>
5674
5675         * TextBoxBase.cs: When we set the selection start position the
5676         caret.
5677         * TextControl.cs: Need to update the caret when we decrement it to
5678         zero.
5679         - Make sure that the selection_visible flag gets reset to false if
5680         the selection isn't visible.  Before this you could get it set to
5681         visible by changing the selection start, then changing the end to
5682         equal the start.
5683
5684 2006-10-09  Jackson Harper  <jackson@ximian.com>
5685
5686         * TreeView.cs: Don't update scrollbars when we aren't visible.
5687         * TreeNodeCollection.cs: Only need to update scrollbars if being
5688         added to an expanded visible node or the root node.
5689
5690 2006-10-09  Chris Toshok  <toshok@ximian.com>
5691
5692         * XplatUIX11.cs (SendMessage): fix NRE.
5693
5694 2006-10-09  Jackson Harper  <jackson@ximian.com>
5695
5696         * TextBoxBase.cs: Implement horizontal autoscrolling.
5697         * TextControl.cs: Add a movement types that allows moving forward
5698         and backwards without wrapping.
5699
5700 2006-10-09  Mike Kestner  <mkestner@novell.com>
5701
5702         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5703         with focus "expansion" of labels.  Fixes #79532 and then some.
5704         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5705         when wrapping.
5706
5707 2006-10-09  Jackson Harper  <jackson@ximian.com>
5708
5709         * TextBoxBase.cs: Set the default max values to MaxValue since
5710         we use the scrollbar for autoscrolling and the default value is
5711         100.  If we don't do this the caret won't keep up with typing
5712         after about 18 characters.
5713         * TextControl.cs: Make sure the selection is offset by the
5714         viewport x.  This fixes selection when using auto scrolling.
5715
5716 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5717         
5718         * Form.cs: The active control should be selected after the 
5719         OnLoad so that any child control initialization that affects
5720         the selection is done. Fixes #79406
5721
5722 2006-10-06  Chris Toshok  <toshok@ximian.com>
5723
5724         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5725         to have no evil effects.
5726
5727         - Stop selecting StructureNotifyMask on non-toplevel windows.
5728
5729           The only way children should be resized is by using the SWF api,
5730           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5731           Toplevel windows can be interacted with via the window manager,
5732           and so we keep the input mask there.
5733
5734           The other event StructureNotifyMask gives us (that we care
5735           about) is DestroyNotify.  The code is already structured such
5736           that it assumes we won't be getting a DestroyNotify event for
5737           the window we pass to XDestroyWindow (which is what
5738           StructureNotifyMask is supposed to guarantee.)  So, that code
5739           shouldn't be affected by this either.
5740
5741         - Stop selecting VisibilityChangeMask altogether.
5742
5743           We weren't doing anything with the resulting events anyway.
5744         
5745         This vastly reduces the number of X requests and events we see
5746         when resizing/laying out a large ui.
5747
5748 2006-10-06  Chris Toshok  <toshok@ximian.com>
5749
5750         * ScrollableControl.cs (DisplayRectangle): we need to take into
5751         account the DockPadding regardless of whether or not auto_scroll
5752         == true.  rework this slightly to this effect, and fix bug #79606,
5753         and part of #72499 (you can now see the drag handles and drag
5754         toolbars around).
5755
5756 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5757
5758         * ListViewItem.cs: Collections of selected and checked items are now
5759         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5760         we mark the collection "dirty".
5761         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5762         to only clear SelectedItems when a new item is selected and MultiSelect
5763         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5764         event of ListViewItemCollection, and mark its list dirty whenever
5765         that event is fire. This allows us to return selected/checked items 
5766         in the same order as they are in the Items collection. This matches
5767         the MS behavior.
5768
5769 2006-10-06  Chris Toshok  <toshok@ximian.com>
5770
5771         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5772         right mouse clicks.  Fixes bug #79593.
5773
5774 2006-10-06  Chris Toshok  <toshok@ximian.com>
5775
5776         * Splitter.cs: doh, fix splitters that don't want to cancel the
5777         movement when you drag them.  Also, impose the limits on the
5778         values we send to the SplitterMovingEvent.  Fixes #79598.
5779
5780 2006-10-06  Jackson Harper  <jackson@ximian.com>
5781
5782         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5783         since we use this for auto scrolling also.
5784
5785 2006-10-05  Chris Toshok  <toshok@ximian.com>
5786
5787         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5788         beginning to think that most datagrid column types don't need this
5789         method.  Fixes bug #79392.
5790
5791 2006-10-05  Chris Toshok  <toshok@ximian.com>
5792
5793         * DataGrid.cs: move back to a more lazy scheme for creating the
5794         CurrencyManager, so we aren't updating it every time you set
5795         either DataSource or DataMember.  Also, don't call
5796         RecreateDataGridRows if the currency manager hasn't changed.
5797
5798 2006-10-05  Chris Toshok  <toshok@ximian.com>
5799
5800         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5801         emitted, SelectedIndex should already be updated.  Fixes bug
5802         #78929.
5803
5804 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5805
5806         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5807           ToolStripTextBox.cs: Initial commit.
5808         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5809
5810 2006-10-05  Jackson Harper  <jackson@ximian.com>
5811
5812         * TabControl.cs: We need to invalidate the tab control area when
5813         new ones are added (duh).
5814
5815 2006-10-03  Chris Toshok  <toshok@ximian.com>
5816
5817         * Form.cs (ProcessDialogKey): if the focused control is in this
5818         form and is a button, call its PerformClick method here.  Fixes
5819         #79534.
5820
5821 2006-10-04  Jackson Harper  <jackson@ximian.com>
5822
5823         * TabPage.cs: Ignore setting of Visible, and add an internal
5824         method for setting the controls visibility.  TabPage's Visible
5825         property is a little strange on MS, this seems to make us
5826         compatible, and fixes cases where people set all the tab pages to
5827         visible.
5828         * TabControl.cs: Use the new internal setting on tab pages
5829         visibility.
5830
5831 2006-10-03  Mike Kestner  <mkestner@novell.com>
5832
5833         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5834
5835 2006-10-03  Mike Kestner  <mkestner@novell.com>
5836
5837         * ListView.cs : use is_visible instead of Visible to check if 
5838         scrollbars should be placed/sized.  Also some max_wrap_width
5839         love for LargeIcon view.  [Fixes #79533]
5840
5841 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5842
5843         * TextControl.cs :
5844           Make set_TextAlign() do actually update the align. Fixed #78403.
5845
5846 2006-10-03  Chris Toshok  <toshok@ximian.com>
5847
5848         * DataGrid.cs: fix a crash when switching datasources if the
5849         vertical scrollbar is at someplace other than Value = 0.  Also,
5850         reduce the number of recalculation passes we do in SetDataSource
5851         from 2 to 1.
5852
5853 2006-10-03  Jackson Harper  <jackson@ximian.com>
5854
5855         * TextBoxBase.cs: Move the if value the same bail check up, we
5856         don't want to empty the document if it is already empty, this
5857         seems to severly mess up the caret.  TODO: I should probably fix
5858         the empty statement to update teh caret somehow.
5859
5860 2006-10-03  Chris Toshok  <toshok@ximian.com>
5861
5862         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5863         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5864         reflection, an internal row type, properties on said type, etc.)
5865         will work with our datagrid.  Fixes #79531.
5866
5867 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5868
5869         * FileDialog.cs: Don't crash if a path is not accessible
5870           (System.UnauthorizedAccessException). Fixes #79569.
5871         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5872           a ':' too. Return unknown icon for those paths/files.
5873
5874 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5875
5876         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5877         GetContainerControl returns null.
5878
5879 2006-10-02  Chris Toshok  <toshok@ximian.com>
5880
5881         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5882         call to XGetWindowAttributes instead of "handle".  fixes an X
5883         error using notifyicon after the NotifyIconWindow to Form base
5884         class switch.
5885
5886 2006-10-02  Chris Toshok  <toshok@ximian.com>
5887
5888         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5889         server grab and looping we need to do to get down to the most
5890         deeply nested child window.
5891         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5892         QueryPointer again after the WarpPointer so we can generate a
5893         proper (fake) MotionNotify event to be enqueued in the destination
5894         window's queue.
5895         (GetCursorPos): call QueryPointer.
5896
5897         Fixes #79556.
5898
5899 2006-10-02  Jackson Harper  <jackson@ximian.com>
5900
5901         * NotifyIcon.cs: Derive the notify icon from a form, so things
5902         like FindForm work on it.
5903         - Swallow the WM_CONTEXTMENU message, since that is generated on
5904         mouse down, and context menu is a mouse up kinda guy.  I believe
5905         the correct fix here is probably to make the notify icon entirely
5906         NC area, but this seems to work fine for anyone not manipulating
5907         WndProc.
5908
5909 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5910
5911         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5912           ToolStripItemCollection.cs, ToolStripLabel.cs,
5913           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5914           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5915           Initial implementation.
5916         * TextRenderer.cs: Provide padding to MeasureText.
5917
5918 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5919
5920         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5921         of ButtonBaseAccessibleObject. Fix bug #79552.
5922
5923 2006-10-02  Jackson Harper  <jackson@ximian.com>
5924
5925         * MdiWindowManager.cs: When maximizing use the containers client
5926         rect, not it's bounds, so nc area is accounted correctly.
5927         - Use the parent form's size for the menu position, since the
5928         client isn't always the full form size.
5929
5930 2006-10-01  Chris Toshok  <toshok@ximian.com>
5931
5932         * ScrollableControl.cs: make sure neither right_edge or
5933         bottom_edge are < 0, since they're used as LargeChange for the
5934         horiz/vert scrollbars respectively.  Fixes #79539.
5935
5936 2006-10-01  Chris Toshok  <toshok@ximian.com>
5937
5938         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5939         the xplatuix11 code can cause us to destroy/recreate our handle.
5940
5941         * XplatUIX11.cs
5942         (SystrayAdd):
5943         - this code can be invoked many times for the same Hwnd.  Make
5944           sure we only destroy the client window once (the first time this
5945           method is called).  This fixes bug #79544.
5946         - Remove the call to the improperly bound XSync.  why we had two
5947           bindings to this, I will never know, but this call resulted in
5948           events being discarded from the queue(!).
5949         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5950           not our current state but the state we wish to be in.  So, 0 if
5951           we don't want to be mapped.  Change it to 1.
5952         (SystrayRemove): The XEMBED spec makes mention of the fact that
5953         gtk doesn't support the reparent of client windows away from the
5954         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5955         The only avenue we have for removing systray icons is to destroy
5956         them.  We don't want the handle to go away for good, though, so
5957         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5958         #79545.
5959         
5960 2006-10-01  Chris Toshok  <toshok@ximian.com>
5961
5962         * Form.cs (WndProc): inline the native_enabled variable usage into
5963         the cases in which it's used.  Fixes #79536.
5964
5965 2006-09-29  Mike Kestner  <mkestner@novell.com>
5966
5967         * ListView.cs : toggle the selection state for ctrl clicks in 
5968         multiselect mode. [Fixes #79417]
5969
5970 2006-09-29  Mike Kestner  <mkestner@novell.com>
5971
5972         * ListView.cs : kill CanMultiSelect and refactor the selection
5973         code to support multiselection in the absence of mod keys. Steal
5974         arrow/home/end keys by overriding InternalPreProcessMessage to
5975         restore regressed keynav behavior.
5976         [Fixes #79416]
5977
5978 2006-09-29  Jackson Harper  <jackson@ximian.com>
5979
5980         * MdiClient.cs: Repaint the titlebars when the active window is
5981         changed.
5982
5983 2006-09-29  Chris Toshok  <toshok@ximian.com>
5984
5985         * Application.cs: when entering a runloop with a modal, make sure
5986         the hwnd is enabled.  Fixes #79480.
5987
5988 2006-09-29  Chris Toshok  <toshok@ximian.com>
5989
5990         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5991         when ListManager.CanAddRows == false, bump us back one.
5992
5993         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5994         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5995         using a datagrid, which is not right.
5996         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5997         is an IEditable, but call property_descriptor.SetValue regardless.
5998         fixes #79435.
5999
6000 2006-09-29  Chris Toshok  <toshok@ximian.com>
6001
6002         * DataGridBoolColumn.cs: we need to test equality in the face of
6003         possible null values (as is the case with the default NullValue).
6004         This patch keeps us from crashing in that case.
6005
6006 2006-09-29  Jackson Harper  <jackson@ximian.com>
6007
6008         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
6009         here, since it will get called for every node collection in the
6010         tree. This is now done in the treeview once the sorting is
6011         finished.
6012         * TreeView.cs: Recalculate the visible order, and update the
6013         scrollbars after sorting, set the top nope to the root so that the
6014         recalc actually works.
6015
6016 2006-09-29  Chris Toshok  <toshok@ximian.com>
6017
6018         * LinkLabel.cs: more handling of the default link collection in
6019         the face of LinkArea manipulation.  The default link collection
6020         contains 1 element (start=0,length=-1).  If the user sets LinkArea
6021         to anything and the links collection is the default, clear it.
6022         Then only add the link if its nonempty.  Fixes #79518.
6023
6024 2006-09-29  Chris Toshok  <toshok@ximian.com>
6025
6026         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
6027         piece correctly when we hit a '\n'.  Fixes #79517.
6028
6029 2006-09-29  Chris Toshok  <toshok@ximian.com>
6030
6031         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
6032         change the binding of gdk_init_check to take two IntPtr's, and
6033         pass IntPtr.Zero for both of them.  Fixes #79520.
6034
6035 2006-09-29  Mike Kestner  <mkestner@novell.com>
6036
6037         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6038         [Fixes #78779]
6039
6040 2006-09-28  Jackson Harper  <jackson@ximian.com>
6041
6042         * XplatUIX11.cs: When translating NC messages make sure we go from
6043         whole window to screen, not client window to screen.
6044         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6045         method doesn't exist
6046         - Skip over controls that aren't forms when arranging.
6047
6048 2006-09-28  Jackson Harper  <jackson@ximian.com>
6049
6050         * XplatUIWin32.cs: Clip the rect to the parent window.
6051         * XplatUIStructs.cs: Add clipping modes struct.
6052         * InternalWindowManager.cs: New private method that factors title
6053         bar heights in when calculating the pos of an NC mouse message.
6054         - Use SendMessage to force a paint when the form's size is changed
6055         instead of painting the decorations immediately.
6056         - Don't let the NC button click messages get to DefWndProc,
6057         because they will attempt to handle windowing themself, and this
6058         messes up z-order (it will put them in front of the scrollbars).
6059         * XplatUIX11.cs: Make sure that we don't reset window managers if
6060         we already have one (ie the window is an MDI window).
6061
6062 2006-09-28  Chris Toshok  <toshok@ximian.com>
6063
6064         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6065         menu code really needs going over.
6066
6067 2006-09-27  Chris Toshok  <toshok@ximian.com>
6068
6069         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6070         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6071         window is maximizable.  So, we need to make sure that even if we
6072         clear the border/wm frame of those functions, they're still
6073         available (basically, we remove the decoration without removing
6074         the function).  Half the fix for #79338.
6075
6076 2006-09-27  Chris Toshok  <toshok@ximian.com>
6077
6078         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6079         Fixes bug #79515.
6080
6081 2006-09-27  Chris Toshok  <toshok@ximian.com>
6082
6083         * Splitter.cs: reorder things a bit so that we don't actually
6084         draw/move the splitter until after calling OnSplitterMoving.  This
6085         lets users cancel/disallow the movement by explicitly setting
6086         event.SplitX/SplitY.  Fixes #79372.
6087
6088 2006-09-27  Jackson Harper  <jackson@ximian.com>
6089
6090         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6091         because it is most likely on a window being destroyed, and that
6092         will give us an X11 error.
6093
6094 2006-09-27  Chris Toshok  <toshok@ximian.com>
6095
6096         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6097         the dropdown button now toggles between showing and hiding the
6098         dropdown.  Also, get rid of dropdown_form_showing and just use
6099         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6100         that part to someone who has handled Capture-fu before.
6101
6102 2006-09-27  Chris Toshok  <toshok@ximian.com>
6103
6104         * DataGrid.cs: return false if alt isn't pressed when '0' is
6105         pressed.  this keeps the '0' key from being swallowed, and fixes
6106         bug #79350.
6107
6108 2006-09-27  Chris Toshok  <toshok@ximian.com>
6109
6110         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6111         Calling Refresh (in response to a scrollbar event) screws up the
6112         scrollbar painting.  Fixes bug #78923.
6113
6114 2006-09-27  Chris Toshok  <toshok@ximian.com>
6115
6116         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6117         then insert into hashtable" blocks threadsafe.
6118
6119 2006-09-27  Chris Toshok  <toshok@ximian.com>
6120
6121         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6122         baseclass's, since otherwise the
6123         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6124         effect.  This gets the close button back in messageboxes.
6125
6126 2006-09-27  Chris Toshok  <toshok@ximian.com>
6127
6128         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6129         flag, not just != 0.  this makes flags that are actually multiple
6130         bits (like WS_CAPTION) work.  fixes bug #79508.
6131
6132 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6133
6134         * PageSetupDialog.cs: add support for getting and settings the 
6135         paper size, source and orientation.
6136
6137 2006-09-26  Chris Toshok  <toshok@ximian.com>
6138
6139         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6140         and caption == "", we need to remove the resize handles as well as
6141         the title bar.
6142
6143         * Control.cs (set_Text): turns out that setting Text on a form
6144         should change the WM styles on the window, since if ControlBox ==
6145         false, the only way to get a window border is to have a non-""
6146         Text property.  check winforms/forms/text.cs for an example.  so,
6147         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6148         update both window styles and title.  This fixes a lot of dialogs
6149         (including the preferences dialog in MonoCalendar.)
6150
6151 2006-09-26  Chris Toshok  <toshok@ximian.com>
6152
6153         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6154         control isn't a Form), call Win32ShowWindow to hide the window,
6155         but don't update the control Visible property.  When we reparent
6156         back to a parent control, call SetVisible in order for the
6157         window's visibility to be reinstated.
6158
6159         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6160         the FosterParent.
6161
6162         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6163         call for good, since it breaks MonoCalendar (and other things I'm
6164         sure.) Also, set all_controls to null *after* the owner calls,
6165         which end up regenerating it.
6166         (ChangeParent): allow new_parent to be == null, passing
6167         IntPtr.Zero down to XplatUI.
6168
6169         this fixes #79294 the right way.
6170
6171 2006-09-26  Mike Kestner  <mkestner@novell.com>
6172
6173         * GridEntry.cs : internal SetParent method.
6174         * PropertyGrid.cs : attach to property changed on the proper
6175         target if we have a hierarchical grid with subobjects. Setup
6176         GridItem.Parent for hierarchical items.
6177         * PropertyGridView.cs : Set value on the correct target for
6178         hierarchical grids. [Fixes #78903]
6179
6180 2006-09-26  Chris Toshok  <toshok@ximian.com>
6181
6182         * Control.cs (ChildNeedsRecreating): this should return true if
6183         either we're being recreated and the child is in our list, or our
6184         parent is waiting for our recreation.
6185
6186 2006-09-26  Chris Toshok  <toshok@ximian.com>
6187
6188         * Control.cs (ControlCollection.Remove): reinstate the
6189         value.Hide() call as suggested in bug #79294.
6190
6191 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6192
6193         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6194         coordinates (versus a relative move).
6195
6196 2006-09-26  Chris Toshok  <toshok@ximian.com>
6197
6198         * Control.cs: rework child recreation a little bit.  It turns out
6199         that we race between the DestroyNotify the WM_DESTROY message.  If
6200         the parent gets its DestroyNotify before the child gets the
6201         WM_DESTROY message, the child ends up not recreating (since the
6202         parent finishes its recreation on DestroyNotify, and the child
6203         checks ParentIsRecreating.)
6204
6205         So, instead we store off a list of all the child controls which
6206         need to be recreated when the parent control starts to recreate
6207         itself.  Then, when child controls get their WM_DESTROY message we
6208         check to see if they're in the parent's pending recreation list,
6209         and if so, we recreate.  This removes all dependency on ordering
6210         from the code and fixes the initial MonoCalendar upgrade dialog.
6211         
6212 2006-09-26  Jackson Harper  <jackson@ximian.com>
6213
6214         * TextControl.cs: Use the Line to get the length of the line,
6215         since soft line breaks can change the end line.
6216
6217 2006-09-26  Chris Toshok  <toshok@ximian.com>
6218
6219         * Control.cs (ControlCollection.AddImplicit): don't add the
6220         control again if it's already in one of our lists.  This keeps us
6221         from adding controls over and over again for comboboxes when their
6222         handle gets recreated (as the combobox adds implicit controls in
6223         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6224
6225 2006-09-26  Jackson Harper  <jackson@ximian.com>
6226
6227         * TextControl.cs: When deleting characters make sure that any
6228         orphaned zero lengthed tags get deleted.
6229         - Fix ToString for zero lengthed tags.
6230
6231 2006-09-25  Jackson Harper  <jackson@ximian.com>
6232
6233         * TextControl.cs: When getting a tag at the location there can be
6234         multiple tags at the same spot, these are 0-lengthed tags that
6235         appear when extra formatting has been stuck in a location.  We
6236         need to pull out the last of these 0 lengthed tags.
6237
6238 2006-09-25  Jackson Harper  <jackson@ximian.com>
6239
6240         * TextControl.cs: Fix print out in debug method.
6241         * TextBoxBase.cs: When text is set bail if we are setting to the
6242         previous value.
6243         
6244 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6245
6246         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6247           It is now possible to change the selected index in a FontXXXListBox
6248           with the up and down arrow keys from the FontXXXTextBoxes.
6249           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6250           FontXXXListBoxes to match ms.
6251
6252 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6253
6254         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6255         anyone can dispose it, anytime. All other properties returns enums, 
6256         structs or basic types so they don't need such tricks.
6257
6258 2006-09-22  Jackson Harper  <jackson@ximian.com>
6259
6260         * XplatUI.cs:
6261         * XplatUIWin32.cs:
6262         * Clipboard.cs:
6263         * DataFormats.cs:
6264         * XplatUIOSX.cs:
6265         * XplatUIDriver.cs: Update interface to add a primary selection
6266         flag, so the driver can use the primary selection buffer if
6267         needed.
6268         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6269
6270         * RichTextBox.cs: We need to supply the data object to paste now
6271         (so we can choose to supply CLIPBOARD or PRIMARY).
6272         * TextBoxBase.cs: Supply data object to paste (see above).
6273         - Middle click uses the primary selection data object.
6274         
6275 2006-09-21  Chris Toshok  <toshok@ximian.com>
6276
6277         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6278         of SetWMStyles.  It's still a rat's nest and is largely
6279         order-dependent which I dislike immensely.  This also fixes the X
6280         button disappearing from toplevel forms.
6281
6282 2006-09-21  Mike Kestner <mkestner@novell.com>
6283
6284         * ListBox.cs: move Jordi's click/dblclick raising code to the
6285         mouse up handler.
6286
6287 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6288
6289         * ListBox.cs: Fixes 79450
6290
6291 2006-09-21  Mike Kestner <mkestner@novell.com>
6292
6293         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6294         to deal with people updating the TreeNodeCollection after the tree
6295         is disposed.  "Fixes" 79330.
6296
6297 2006-09-20  Jackson Harper <jackson@ximian.com>
6298
6299         * TextControl.cs: Push the cursor record onto the undo stack
6300         before the delete action. This fixes 78651.
6301
6302 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6303
6304         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6305         CreateParams. Fixes 79329.
6306
6307 2006-09-19  Chris Toshok  <toshok@ximian.com>
6308
6309         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6310         things up a bit.  First, get rid of the NetAtoms array (and the NA
6311         enum), and just embed the atoms as static fields.  Also, add a
6312         couple of functions (StyleSet and ExStyleSet) to clean up all the
6313         bitmask testing of styles.
6314
6315         * X11Structs.cs: remove the NA enum, not needed anymore.
6316         
6317 2006-09-19  Chris Toshok  <toshok@ximian.com>
6318
6319         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6320         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6321         added cleanup to get MessageBox titles appearing again, which were
6322         broken by my earlier fix for caption-less/ControlBox-less windows.
6323
6324 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6325
6326         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6327           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6328           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6329           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6330           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6331           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6332           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6333           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6334           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6335           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6336           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6337             Inital import.
6338         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6339           ToolStripButton.cs: Stubs needed for above.
6340         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6341
6342 2006-09-15  Chris Toshok  <toshok@ximian.com>
6343
6344         * XplatUIX11.cs:
6345         - make the MessageQueues hashtable Synchronized.
6346         
6347         - SendMessage: if the Hwnd is owned by a different thread, use the
6348         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6349         thread.  Fixes bug #79201.
6350
6351 2006-09-15  Chris Toshok  <toshok@ximian.com>
6352
6353         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6354         ControlBox == false, we disallow maximize/minimize/close.  If the
6355         form Caption is "" we also disallow move (and get rid of the Title
6356         decoration).  Unfortunately, regardless of how things are set,
6357         we're stuck with the Title and WM menu.
6358
6359 2006-09-15  Chris Toshok  <toshok@ximian.com>
6360
6361         * Application.cs: add locking around the static message_filters
6362         ArrayList, part of #79196.
6363
6364 2006-09-15  Chris Toshok  <toshok@ximian.com>
6365
6366         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6367         Form.ControlBox == false, the window has no titlebar nor resize
6368         handles.  fixes bug #79368.
6369
6370 2006-09-15  Chris Toshok  <toshok@ximian.com>
6371
6372         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6373         >= 0.  Fixes bug #79370.
6374
6375 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6376         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6377         * Control.cs:
6378             Add properties: LayoutEngine, Margin, DefaultMargin.
6379             Add method: GetPreferredSize.
6380             Move layout logic from PerformLayout to layout engines. 
6381
6382 2006-09-13  Chris Toshok  <toshok@ximian.com>
6383
6384         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6385         fix for #79326 broke #78718, so this change addresses that.
6386
6387         - in SendWMDestroyMessages remove the call to
6388         CleanupCachedWindows, since we might be recreating the control and
6389         need to maintain the references to right Hwnd handles.  Also, set
6390         the zombie flag to true for each of the children in the hierarchy
6391         instead of calling hwnd.Dispose.  This will cause GetMessage to
6392         ignore all events for the window except for DestroyNotify.
6393
6394         - In GetMessage, ignore messages except for DestroyNotify for
6395         zombie hwnds.
6396         
6397         * Control.cs: revert the is_recreating fix from the last
6398         ChangeLog.  It's definitely "right", but it breaks switching from
6399         an MDI form to a non-MDI form.  Will need to revisit that.
6400
6401         * Hwnd.cs: add a zombie flag, which means "the
6402         client_window/whole_window handles are invalid, but we're waiting
6403         for the DestroyNotify event to come in for them".  Set the flag to
6404         false explicitly if setting WholeWindow/ClientWindow, and also
6405         when Disposing.
6406         
6407 2006-09-13  Chris Toshok  <toshok@ximian.com>
6408
6409         * XplatUIX11.cs: rework window destruction slightly.
6410
6411         - when destroying the windows associated with a control, we don't
6412         need 2 separate XDestroyWindow calls.  Just the one for the
6413         whole_window (or for client_window if whole_window is somehow
6414         IntPtr.Zero -- can this happen?) is enough.
6415
6416         - reworked SendWMDestroyMessages slightly, so we always dispose
6417         the child control hwnd's after sending the messages.
6418         
6419         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6420         the two places it was used (one was even using hwnd.Handle and the
6421         other hwnd.client_window.  ugh), adding another call in
6422         SendWMDestroyMessages.  We need this new call because now the
6423         DestroyNotify events in the queue will be ignored for the child
6424         controls (as their hwnd's were disposed, and the window id's
6425         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6426
6427         - this fixes bug #79326.
6428
6429 2006-09-13  Chris Toshok  <toshok@ximian.com>
6430
6431         * Control.cs: don't always set is_recreating to false at the end
6432         of RecreateHandle, since sometimes we're not done (and won't be
6433         until WndProc handles the WM_DESTROY message).  Also, set
6434         is_recreating to false in the WM_DESTROY handling code.  Part of
6435         the fix for bug #79326.
6436
6437 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6438
6439         * X11DesktopColors.cs: Start the droppage of debugging messages.
6440
6441         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6442
6443 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6444
6445         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6446
6447 2006-09-12  Chris Toshok  <toshok@ximian.com>
6448
6449         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6450         to create it using SetDataSource.  Fixes bug #79151.
6451
6452 2006-09-11  Chris Toshok  <toshok@ximian.com>
6453
6454         * XEventQueue.cs: add a DispatchIdle property.
6455
6456         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6457         either the queue is null, or the queue has DispatchIdle set to
6458         true.
6459         (DoEvents): set queue.DispatchIdle to false around the
6460         peek/translate/dispatch message loop in this method.  This keeps
6461         Application.Doevents from emitting idle events.  Part of the fix
6462         for #78823.
6463
6464 2006-09-11  Chris Toshok  <toshok@ximian.com>
6465
6466         * DataGrid.cs (set_DataSource): make this work for both the
6467         winforms/datagrid test and ReportBuilder.  It seems as though when
6468         we've created a ListManager (or maybe it's if we have a
6469         BindingContext?), when we set the DataSource it clears the
6470         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6471         #79333.
6472
6473 2006-09-11  Chris Toshok  <toshok@ximian.com>
6474
6475         * XplatUIX11.cs: deal with queue being null, which happens in all
6476         the Clipboard functions.  Fixes one of the two problems mentioned
6477         in #78612.
6478
6479 2006-09-11  Chris Toshok  <toshok@ximian.com>
6480
6481         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6482         button on various spots (including outside the menu) works closer
6483         to MS, and doesn't crash.  Fixes #79343.
6484
6485 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6486
6487         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6488         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6489         and the internal comparer is set. When a new ListViewItemSorter is set,
6490         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6491         was specified. No further processing is necessary if SortOrder is set
6492         to it's current value. If Sorting is modified to None, and View is
6493         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6494         (either custom or our internal ItemComparer) to null, on 1.0 profile
6495         only set item_sorter to null if its our internal IComparer. If Sorting
6496         is modified to Ascending or Descending, then use our internal IComparer
6497         if none is set, and if the current IComparer is our internal one then:
6498         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6499         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6500         Enum.IsDefined to verify whether a valid View value is specified in
6501         its setter. Automatically sort listview items when listview is
6502         created. In Sort, do nothing if ListView is not yet created, or if
6503         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6504         to None or ListViewItemSorter was set to null). Added Sort overload
6505         taking a bool to indicate whether the ListView should be redrawn when
6506         items are sorted (we use this in ListViewItemCollection to avoid double
6507         redraws). Modified our internal IComparer to take the sort order into
6508         account. In Add and AddRange methods of ListViewItemCollection, also
6509         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6510         view), but use overload with noredraw option to avoid double redraw.
6511         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6512         true when View is Tile, and do the same when attempting to set View to
6513         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6514         for selected/checked indices, as it involves overhead when sorting is
6515         done while these collections are not used all that often. Instead
6516         we'll build the indices on demand. Modified IList implementation of
6517         CheckedIndexCollection to use public methods if object is int.
6518         Modified CheckedListViewItemCollection to hide checked items if
6519         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6520         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6521         IList implementation in SelectedIndexCollection to use public methods
6522         if object is int. Modified SelectedListViewItemCollection to hide
6523         selected items if listview is not yet created.
6524         * ListViewItem.cs: CheckedIndices list no longer needs to be
6525         maintained separately (see ListView changes). Also clone font, fixes
6526         test failure.
6527
6528 2006-09-11  Mike Kestner  <mkestner@novell.com>
6529
6530         * ComboBox.cs: if we are updating the contents of the currently
6531         selected index, refresh the control or the textbox selection.
6532         [Fixes #79066]
6533
6534 2006-09-11  Mike Kestner  <mkestner@novell.com>
6535
6536         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6537         the 'specified' logic has been moved there.  This seems like a bug 
6538         in Control.cs, since our current SetBoundsCore completely ignores 
6539         the specified parameter.  Peter's commit seems to indicate that is 
6540         the way the MS control implementation works.  [Fixes #79325]
6541
6542 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6543
6544         * XplatUI.cs: Set default_class_name to be composed
6545         of current domain id. This allows MWF to be loaded in multiple
6546         domains on Win32.
6547
6548 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6549
6550         * X11Keyboard.cs: If we are unable to obtain the input method, do
6551         not call CreateXic to create the input context.   Should fix
6552         #78944/79276.
6553
6554 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6555
6556         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6557           Simplified gnome support by adding more pinvokes to get the
6558           icon for a file or mime type.
6559
6560 2006-09-08  Jackson Harper  <jackson@ximian.com>
6561
6562         * MenuAPI.cs: Deslect popup context menu items before closing the
6563         window, so that you don't see the previously selected item
6564         selected when you reopen the menu.
6565         * TextControl.cs: Update the cursor position even if we don't have
6566         focus.  This fixes typing in things like the ComboBox.  I'm not
6567         totally sure we should always set the visibility if we don't have
6568         focus, but couldn't find any corner cases where the cursor showed
6569         up when it shouldn't.
6570
6571 2006-09-08  Chris Toshok  <toshok@ximian.com>
6572
6573         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6574         our arrays are length 256.  & 0xff before indexing.  Fixes the
6575         crash in bug #78077.
6576         
6577 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6578
6579         * ThemeWin32Classic.cs: 
6580         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6581         is true. Handle that check box too.
6582
6583 2006-09-07  Chris Toshok  <toshok@ximian.com>
6584
6585         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6586         79244.
6587
6588 2006-09-07  Chris Toshok  <toshok@ximian.com>
6589
6590         * Control.cs: in set_BackColor only do the work if
6591         background_color != value.
6592
6593         * XplatUIX11.cs: move the clearing of invalid areas (both client
6594         and nc) to the same block of code where we set (nc_)expose_pending
6595         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6596         so things that cause invalidates from within OnPaint will trigger
6597         another call to OnPaint.  Fixes bug #79262.
6598
6599 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6600
6601         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6602         * FileDialog.cs: Fix typo
6603
6604 2006-09-07  Jackson Harper  <jackson@ximian.com>
6605
6606         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6607         for tab pages if they have any.
6608
6609 2006-09-06  Mike Kestner  <mkestner@novell.com>
6610
6611         * Splitter.cs: use the "current" rect when finishing drag handle
6612         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6613
6614 2006-09-06  Mike Kestner  <mkestner@novell.com>
6615
6616         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6617         support offset splitters. [Fixes #79298]
6618
6619 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6620
6621         * Mime.cs: Fixed a bug that could override the global mime type
6622           result.
6623
6624 2006-09-05  Jackson Harper  <jackson@ximian.com>
6625
6626         * TabControl.cs: Better calculation method for setting the slider
6627         pos. Prevents crashes on really wide tabs.
6628         - Draw Image on tab pages if an image list is used.
6629
6630 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6631
6632         * MonthCalendar.cs: When Font changes, the Size should be
6633         updated to fit the new font's space requirements.
6634
6635 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6636
6637         * ListBox.cs: If the items are cleared with Items.Clear set
6638           top_index to 0.
6639
6640 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6641
6642         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6643         fire DateChanged event instead of DateSelected event when
6644         the date was changed by keyboard interaction.
6645
6646 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6647
6648         * DateTimePicker.cs: Handle DateChanged for the associated
6649         month_calendar control, and set month_calendar.Font from 
6650         OnFontChanged method, as well as resize the height of the
6651         control when needed. Make PreferredHeight proportional.
6652
6653 2006-09-01  Chris Toshok  <toshok@ximian.com>
6654
6655         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6656         properties.
6657
6658         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6659
6660 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6661
6662         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6663           for decorations (Fixes #79219)
6664
6665 2006-09-01  Mike Kestner  <mkestner@novell.com>
6666
6667         * ComboBox.cs: first stab at sorting plus some selection handling
6668         fixes to bring us more in line with MS behavior.  Also switches back
6669         to index based selection.  Alternative patches for index-based 
6670         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6671         and latency@gmx.de on bug 78848.  I assume they were similar to this
6672         code I've had simmering in my tree forever.
6673         [Fixes #78848]
6674
6675 2006-09-01  Chris Toshok  <toshok@ximian.com>
6676
6677         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6678         when setting list position guard against ending up with a -1 index
6679         (the other part of the fix for #78812).  Should probably make sure
6680         we don't need the analogous fix in the ItemDeleted case.
6681
6682         * DataGrid.cs:
6683         - in SetDataSource, work around the fact that the way
6684         OnBindingContextChanged is invoked will cause us to re-enter this
6685         method.  I'll remove the hack once I investigate
6686         OnBindingContextChanged.
6687
6688         - fix the logic in set_DataSource and set_DataMember (basically
6689         what to do if the other of the two is null.)
6690         
6691         - in OnListManagerItemChanged, we need to take into account the
6692         edit row when deciding whether or not to call RecreateDataGridRows
6693         (part of the fix for #78812).
6694
6695 2006-09-01  Jackson Harper  <jackson@ximian.com>
6696
6697         * Splitter.cs: Don't do anything if there is no control to affect
6698         (prevents us from crashing in weird tet cases).
6699         * TreeView.cs: Bounding box for the mouse movement reverting
6700         focus/selection back to previously selected node.  This matches
6701         MS, and makes the tree a lot more useable.
6702         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6703         use clipping so they are not drawn.  This fixes when the control
6704         is set to have a transparent background, or if it was over an
6705         image.
6706
6707 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6708
6709         * MimeIcon.cs: Improved handling for reading default icons when
6710           using gnome (2.16 made it necessary). Check and read svg icons
6711           first, then 48x48 and then 32x32 icons.
6712
6713 2006-08-31  Chris Toshok  <toshok@ximian.com>
6714
6715         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6716         visible.
6717
6718         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6719         ProcessKeyPreview.  Fixes part of #77806.
6720
6721         * DataGrid.cs: big patch.
6722
6723         - revert the queueing up of DataSource/DataMember if inside
6724         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6725         its delayed databinding.  Instead, call SetDataSource in
6726         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6727         #78811.
6728
6729         - Also, it wasn't mentioned in #78811, but the test case exhibits
6730         behavior that was lacking in our datagrid implementation - Columns
6731         that have mapping names that don't exist in the datasource's
6732         properties aren't shown.  Yuck.  To fix this I added the bound
6733         field to the column style, and basically any calculation to figure
6734         out anything about columns uses a loop to find the bound columns.
6735         still need to investigate if I can cache an array of the bound
6736         columns or if the indices must be the same.
6737
6738         - When setting CurrentCell, we no longer abort if the cell being
6739         edited was in the add row.  This fixes the other part of #77806.
6740
6741         - The new code also fixes #78807.
6742         
6743         * ThemeWin32Classic.cs: perpetrate the same disgusting
6744         column.bound field hack, and only render bound fields.
6745
6746 2006-08-31  Chris Toshok  <toshok@ximian.com>
6747
6748         * DataGridColumnStyle.cs: add bound field.  this field is true if
6749         the datasource has a property corresponding to the mapping name.
6750
6751         * DataGridTableStyle.cs: set the bound field on the column styles
6752         depending on whether or not we have a column for that property.
6753
6754 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6755
6756         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6757           splitter control (fixes #79228)
6758
6759 2006-08-31  Chris Toshok  <toshok@ximian.com>
6760
6761         * DataGridColumnStyle.cs: we need to delay the assignment of
6762         property descriptor until the last possible moment due to the lazy
6763         databinding stuff in the datagrid.  Also, fix the exceptions
6764         thrown by CheckValidDataSource to match MS.
6765
6766 2006-08-31  Jackson Harper  <jackson@ximian.com>
6767
6768         * Form.cs: When activated select the active control, if there is
6769         no active control, we select the first control.
6770         * XplatUIX11.cs: If there is no focus control when we get a
6771         FocusIn event, find the toplevel form and activate it.  This
6772         occurs when you popup a window, it becomes the focus window, then
6773         you close that window, giving focus back to the main window.
6774
6775 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6776
6777         * MonthCalendar.cs: 
6778         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6779         as StringFormat with Center alignments in MonthCalendar,
6780         instead of creating new ones when drawing the control. 
6781         Also, draw the month name in bold style.
6782
6783 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6784
6785         * Control.cs:
6786           - PerformLayout(): It would seem MS performs the fill even if the 
6787             control is not visible (part of #79218 fix)
6788           - ResetBackColor(): Use the setter to reset the color, to allow
6789             overriders to catch the change.
6790         * Form.cs:
6791           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6792           - CreateHandle(): dito (part of $79218 fix)
6793           - Don't set an icon if we have a dialog
6794         * ScrollableControl.cs:
6795           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6796           - ScrollIntoView(): No need to scroll if control is already visible
6797             (resolves fixme and fixes #79218)
6798
6799 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6800
6801         * MonthCalendar.cs: Change proportions in SingleMonthSize
6802         to match the aspect of the original control.
6803
6804 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6805
6806         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6807           get updated when they get maximized.
6808
6809 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6810
6811         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6812
6813 2006-08-29  Chris Toshok  <toshok@ximian.com>
6814
6815         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6816
6817 2006-08-29  Jackson Harper  <jackson@ximian.com>
6818
6819         * TreeView.cs: Need to track selected node and highlighted node,
6820         they aren't always the same thing, when the mouse is down on a
6821         node it is hilighted, but not selected yet.
6822         - Do the HideSelection stuff right
6823         - Need to focus on rbutton mouse down. And redraw selection when
6824         right click is mouse upped.
6825
6826 2006-08-29  Mike Kestner  <mkestner@novell.com>
6827
6828         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6829         when SubItems.Count < Columns.Count.  [Fixes #79167]
6830
6831 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6832
6833         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6834
6835 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6836
6837         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6838           from X. Only send based on ConfigureNotify if we don't have the
6839           correct location in hwnd (if the window manager moved us)
6840
6841 2006-08-28  Mike Kestner  <mkestner@novell.com>
6842
6843         * ListView.cs: remove a TODO. 
6844         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6845         [Fixes ListView part of #79166]
6846
6847 2006-08-28  Mike Kestner  <mkestner@novell.com>
6848
6849         * ListView.cs: move wheel handler to parent since it is focused
6850         instead of the item_control now.  [Fixes #79177]
6851
6852 2006-08-28  Mike Kestner  <mkestner@novell.com>
6853
6854         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6855         when the control is focused. [Fixes #79171]
6856
6857 2006-08-28  Mike Kestner  <mkestner@novell.com>
6858
6859         * ListView.cs: size the item and header controls for empty and
6860         unscrollable views.
6861         * ThemeWin32Classic.cs: draw disabled backgrounds.
6862         [Fixes #79187]
6863
6864 2006-08-28  Chris Toshok  <toshok@ximian.com>
6865
6866         * Form.cs: remove unused "active_form" static field.
6867
6868         * Hwnd.cs: lock around accesses to static windows collection.
6869
6870         * Application.cs: lock threads in Exit ().
6871
6872 2006-08-28  Chris Toshok  <toshok@ximian.com>
6873
6874         * NativeWindow.cs: lock around accesses to window_collection.
6875         
6876 2006-08-28  Chris Toshok  <toshok@ximian.com>
6877
6878         * Control.cs: err, fix this the right way, by locking on controls
6879         when using it.  not by making it synchronized.
6880
6881 2006-08-28  Chris Toshok  <toshok@ximian.com>
6882
6883         * Control.cs: make the static "controls" field synchronized, as it
6884         gets updated from multiple threads.
6885
6886 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6887
6888         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6889           Prevent other threads from exiting when calling thread sets quit state.
6890         * XEventQueue.cs: Added PostQuitState property
6891
6892 2006-08-27  Chris Toshok  <toshok@ximian.com>
6893
6894         * AsyncMethodData.cs: add a slot for the window handle.
6895
6896         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6897         window (the destination control's window, not the foster window).
6898
6899         * Control.cs (BeginInvokeInternal): store the window's handle in
6900         the AsyncMethodData.
6901         
6902
6903 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6904
6905         * XplatUIX11.cs:
6906           - PostQuitMessage: Removed resetting S.D display handle, we might have
6907             another loop started after calling PostQuitMessage (Fixes #79119)
6908           - Created destructor to reset S.D handle
6909
6910 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6911
6912         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6913
6914 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6915
6916         * TextControl.cs (Insert): Update the caret position even if we don't
6917           have a handle yet, just don't call the driver in that case.
6918         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6919           to the end of the new selection text (Fixes #79184)
6920
6921 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6922
6923         * Form.cs (Activate): Only activate if the handle is created)
6924         * Control.c:
6925           - Mark window as invisible when it's disposed
6926           - Check if window handle is created when setting window visible, 
6927             instead of relying just on the is_created variable
6928           - Check if object is disposed when creating the control (Fixes #79155)
6929
6930 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6931
6932         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6933           when allowing layout again. Otherwise we re-generate the anchoring 
6934           distance to the border again and actually alter what the user wanted
6935           This is ugly, it'd be better if we used DisplayRectangle instead of
6936           ClientRectangle for Control.UpdateDistances, but that causes us to
6937           have other problems (initial anchoring positons would be wrong)
6938           (Fixes #78835)
6939
6940 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6941
6942         * Control.cs:
6943           - The size and location setters shouldn't go directly to 
6944             SetBoundsCore, but to SetBounds, which triggers layout on the
6945             parent, then calls SetBoundsCore. (Related to fix for #78835)
6946           - SetBounds: Moved actual location update code into this function
6947             from SetBoundsCore, to match MS. Added call to PerformLayout if
6948             we have a parent (to trigger resizing of anchored parents if the 
6949             child size has changed (see testcase for #78835) 
6950         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6951           new control code
6952         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6953
6954 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6955
6956         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6957           System.Drawing when a toplevel window gets closed; there might
6958           be other toplevel windows belonging to the same app (Fixes #78052)
6959
6960 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6961
6962         * FileDialog.cs: After reading FileDialog settings from mwf_config
6963           use Desktop prefix only if a real folder doesn't exist anymore.
6964         * FontDialog.cs: Added char sets.
6965           It is now possible to select the font, size or style with the
6966           textboxes.
6967
6968 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6969
6970         * PrintPreviewDialog.cs: Use assembly name constants.
6971
6972 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6973
6974         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6975           scrollbar from whacking it's buttons)
6976
6977 2006-08-24  Chris Toshok  <toshok@ximian.com>
6978
6979         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6980         in this patch (aggregating setting Left/Top/Width/Height to
6981         setting Bounds on the scrollbars), but the crux of the fix is in
6982         Recalculate, where we scroll by the remaining scroll_position if
6983         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6984         serious.
6985
6986 2006-08-24  Jackson Harper  <jackson@ximian.com>
6987
6988         * MdiClient.cs:
6989         * MdiWindowManager.cs: If the form is made a non-mdi window we
6990         need to remove the form closed event so that closing forms works
6991         correctly.
6992
6993 2006-08-24  Jackson Harper  <jackson@ximian.com>
6994
6995         * Control.cs: Make IsRecreating internal so that the driver can
6996         check it
6997         - Temporarily remove the Hide when controls are removed, its
6998         making a whole bunch of things not work because visibility isn't
6999         getting reset elsewhere correctly
7000         * Form.cs: Need to do a full handle recreation when the mdi parent
7001         is set.
7002         * XplatUIX11.cs: If we are recreating handles don't dispose the
7003         HWNDs.  What was happening is the handles were being recreated in
7004         SendWMDestroyMessages, but then flow continued on in that method
7005         and destroyed the new handles.
7006
7007 2006-08-23  Jackson Harper  <jackson@ximian.com>
7008
7009         * Form.cs: MdiClient is always at the back of the bus
7010         * Control.cs: When the order of items in the collection is changed
7011         we need to reset the all_controls array
7012         - do the same sorta setup thats done when adding a control when a
7013         control is set on the collection.
7014
7015 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7016
7017         * TextBoxBase.cs (get_Text): Return an empty array if our document
7018           is empty (fixes #79052)
7019
7020 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7021
7022         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
7023           on WM_SYSCHAR messages (fixes #79053)
7024
7025 2006-08-23  Chris Toshok  <toshok@ximian.com>
7026
7027         * DataGrid.cs: fix flickering when scrolling vertically.
7028
7029 2006-08-23  Chris Toshok  <toshok@ximian.com>
7030
7031         * DataGrid.cs (EndEdit): only invalidate the row header when we
7032         need to.
7033
7034 2006-08-23  Chris Toshok  <toshok@ximian.com>
7035
7036         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
7037         methods.  fixes the flicker when scrolling around.
7038
7039 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7040
7041         * FileDialog.cs: Making sure the control is created before we get a 
7042           chance to use it with BeginInvoke (Fixes #79096)
7043
7044 2006-08-23  Chris Toshok  <toshok@ximian.com>
7045
7046         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7047         width to use when painting the rows.
7048
7049 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7050
7051         * TextBoxBase.cs:
7052           - Throw ArgumentException if a negative value is passed to SelectionLength
7053           - Update the selection end if start is moved. end needs to be always
7054             after start. (Fixes #79095)
7055           - Track selection length; MS keeps the selection length even if start
7056             is changed; reset on all other operations affection selection
7057
7058 2006-08-22  Jackson Harper  <jackson@ximian.com>
7059
7060         * TreeView.cs: Make sure both scrollbars get displayed and sized
7061         correctly when the other bar is visible.
7062         - Use the original clip rectangle for checking if the area between
7063         the two scrollbars is visible, not the viewport adjusted clipping
7064         rectangle.
7065
7066 2006-08-22  Jackson Harper  <jackson@ximian.com>
7067
7068         * Binding.cs: We don't use IsBinding because it requires the
7069         control to be created, which really shouldn't be necessary just to
7070         set a property on the control.
7071
7072 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7073
7074         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7075         ArgumentNullReferenceException when the argument is null.
7076
7077 2006-08-21  Jackson Harper  <jackson@ximian.com>
7078
7079         * Timer.cs: Track the thread that the timer is started in (NOT
7080         CREATED), this way messages for it will only be triggered on its
7081         queue.
7082         * XEventQueue.cs: Track the timers here, this makes timers per
7083         thread, like MS.
7084         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7085
7086 2006-08-19  Chris Toshok  <toshok@ximian.com>
7087
7088         * XplatUIX11.cs: after further communication with pdb, we get the
7089         best of both worlds.  SetZOrder working for un-Mapped windows, and
7090         no X errors for un-mapped windows.
7091
7092 2006-08-19  Chris Toshok  <toshok@ximian.com>
7093
7094         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7095         as it was causing pdn toolbars to not have the correct stacking.
7096
7097 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7098
7099         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7100         calculation.  Not sure why control should ever be setting a negative
7101         width though.  Fixes #78931.
7102
7103 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7104
7105         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7106         null items in ObjectCollection class.
7107         * ListBox.cs.: Likewise.
7108
7109 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7110
7111         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7112           as the base method in ThemeWin32Classic should work fine.
7113           Fixed bug #78607.
7114
7115 2006-08-18  Jackson Harper  <jackson@ximian.com>
7116
7117         * Binding.cs: When validating if the value entered doesn't convert
7118         properly reset to the old value.
7119         * RadioButton.cs: Don't fire click when we get focus.
7120
7121 2006-08-18  Jackson Harper  <jackson@ximian.com>
7122
7123         * FileDialog.cs: Paint the selection on the directory combobox the
7124         same way as on MS. 
7125
7126 2006-08-17  Jackson Harper  <jackson@ximian.com>
7127
7128         * ErrorProvider.cs: Don't allow the error control to be selected.
7129         * Control.cs: Don't send the SetFocus messages, the control
7130         activation will do this, and if we do it blindly here validation
7131         does not work.
7132
7133 2006-08-17  Jackson Harper  <jackson@ximian.com>
7134
7135         * Control.cs:
7136         * ContainerControl.cs: Make validation events fire in the correct
7137         order.  TODO: For some reason the first validation event is not
7138         getting fired.
7139
7140 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7141
7142         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7143
7144 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7145
7146         * ComboBox.cs : implement scroll wheel support for popped-down
7147         state. Fixes #78945. 
7148
7149 2006-08-17  Jackson Harper  <jackson@ximian.com>
7150
7151         * TreeView.cs: Specify treeview actions (old patch that didn't get
7152         committed for some reason).
7153         - Don't let the mouse wheel scroll us too far.  Just want to make
7154         the bottom node visible, not scroll it all the ways to the top.
7155
7156 2006-08-17  Jackson Harper  <jackson@ximian.com>
7157
7158         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7159
7160 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7161
7162         * ComboBox.cs : don't do mouseover selection in simple mode.
7163
7164 2006-08-16  Jackson Harper  <jackson@ximian.com>
7165
7166         * Form.cs: Fire the closing events for all the mdi child windows
7167         when a window is closed.  If the cancel args are set to true, the
7168         main window still gets the event fired, but it doesn't not close.
7169         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7170         handler, instead of when the button is clicked, so cancelling the
7171         close works correctly.
7172         * ComboBox.cs: Send the mouse down to the scrollbar.
7173
7174 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7175
7176         * ListBox.cs: When passing 'null' to SelectedItem,
7177         set SelectedIndex to -1, to unselect items. This is the
7178         observed behaviour in .Net.
7179
7180 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7181
7182         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7183           MS flags saying there won't be any. (fixes #78800)
7184         * Control.cs (HandleClick): Made virtual
7185
7186 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7187
7188         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7189           cultures. Fixed bug #78399.
7190
7191 2006-08-16  Jackson Harper  <jackson@ximian.com>
7192
7193         * Form.cs: Use the MdiClients MdiChildren property to access
7194         MdiChildren instead of creating the array from the child controls.
7195         * MdiClient.cs: Maintain a separate array of the mdi children, so
7196         that insertion order is maintained when the Z-order is changed.
7197
7198 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7199
7200         * ListView.cs : add an ItemComparer and default to it for sorting.
7201         Fixes #79076, but sorting needs a complete overhaul to be compat with
7202         MS.
7203
7204 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7205
7206         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7207
7208 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7209
7210         * Hwnd.cs (Mapped): Properly traverse the tree
7211
7212 2006-08-15  Chris Toshok  <toshok@ximian.com>
7213
7214         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7215         pass manager.Current.GetType() to ParseData.  It has to be the
7216         property type.  So, hold off doing the ParseData until we're in
7217         SetPropertyValue where we know the type.  This fixes the crash in
7218         #78821 but the textbox is still empty.
7219
7220 2006-08-15  Chris Toshok  <toshok@ximian.com>
7221
7222         * DataGrid.cs:
7223         - when we're scrolling, only call Edit() again if the
7224         current cell is still unobscured. Fixes bug #78927.
7225         - when handling mousedown on a cell, ensure the cell is visible
7226         before calling Edit.
7227         - remove the properties from DataGridRow, and remove the
7228         DataGridParentRow class altogether.
7229         
7230
7231 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7232
7233         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7234           fire OnTextChanged by ourselves. There's no point calling base,
7235           we don't set the base value anywhere else. Fixes #78773.
7236
7237 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7238
7239         * ListBox.cs: Call CollectionChanged when modifying
7240         an item from Items indexer, to update the actual items
7241         in the list box.
7242
7243 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7244
7245         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7246         to match .Net behaviour.
7247
7248 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7249
7250         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7251
7252 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7253
7254         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7255
7256 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7257
7258         * MessageBox.cs: Prevent potential NRE exception.
7259         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7260
7261 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7262
7263         * MessageBox.cs: Calculate the owner of a messagebox, also make
7264           it topmost. Fixes #78753
7265
7266 2006-08-14  Chris Toshok  <toshok@ximian.com>
7267
7268         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7269         programmatically move windows.  first, set the PPosition hint as
7270         well as the USPosition hint.  Second include some code from pdb
7271         that sets the window type to NORMAL when we set the transient for
7272         hint.  This is because, in the absence of a window type, metacity
7273         thinks any window with TransientFor set is a dialog, and refuses
7274         to let us move it programmatically.  fascists.
7275
7276 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7277
7278         * XplatUIX11.cs: When setting normal hints, take into consideration
7279           an different hints previously set so we don't delete them (fixes #78866)
7280
7281 2006-08-12  Chris Toshok  <toshok@ximian.com>
7282
7283         * ToolBarButton.cs: make Layout return a boolean, if something to
7284         do with the button's layout changed.
7285
7286         * ToolBar.cs:
7287         - add another parameter to Redraw, @force, which all existing
7288           calls set to true.
7289         - make the Layout function return a boolean which is true if the
7290           layout has actually changed.  Redraw now uses this (and @force)
7291           to determine when to invalidate.  At present the only place
7292           where @force can be false is the call from OnResize, when
7293           background_image == null.  So, resizing a toolbar when the
7294           layout doesn't change results in no drawing.
7295
7296 2006-08-12  Chris Toshok  <toshok@ximian.com>
7297
7298         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7299         the VScrollBar and HScrollbar reversed.  oops.
7300
7301         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7302         scrollbars.  we were assigning them twice (once in
7303         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7304         therefore causing two scrollbar resizes (and redraws?) to happen
7305         per grid resize.
7306
7307 2006-08-12  Chris Toshok  <toshok@ximian.com>
7308
7309         * ToolBarButton.cs: redraw the entire button if the theme tells us
7310         to.
7311
7312         * Theme.cs: add ToolBarInvalidateEntireButton.
7313
7314         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7315         buttons, just the border.
7316
7317         * ThemeNice.cs: redraw the entire toolbar button since we need to
7318         draw the highlight image.
7319
7320         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7321         we need to redraw the entire button (not just the border).
7322
7323 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7324
7325         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7326           for vertical bars. Fixes the mismatches shown by #78513
7327
7328 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7329
7330         * FileDialog.cs: If a saved/remembered path doesn't exist
7331           anymore, fall back to "Desktop".
7332
7333 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7334
7335         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7336           parent. It's apparently legal to not have one
7337         * XplatUIX11.cs:
7338           - SetZOrder: Don't try to set Z-Order on an unmapped window
7339           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7340             it unless the coordinates are negative
7341
7342 2006-08-10  Mike Kestner  <mkestner@novell.com>
7343
7344         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7345         when setting to null per msdn docs.  Fixes #78854.
7346
7347 2006-08-10  Chris Toshok  <toshok@ximian.com>
7348
7349         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7350         flickering by setting a clip rectangle on the Graphics when we
7351         need to redraw just a particular menuitem.  Also, rename "OnClick"
7352         to "OnMouseDown" to reflect what it actually is.
7353         
7354         * Form.cs: track the OnMouseDown change.
7355
7356 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7357
7358         * CommonDialog.cs: Properly inherit the CreateParams from the form
7359           and only change what we need. Fixes #78865
7360
7361 2006-08-10  Chris Toshok  <toshok@ximian.com>
7362
7363         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7364         flickering in flat mode (and most of the flickering in general) by
7365         only invalidating the button border (and not the entire rectangle)
7366         when the state changes.  A couple of cases still flicker:
7367         ToggleButtons, and the dropdown arrow case when the user mouse
7368         ups.
7369
7370 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7371
7372         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7373           for german keyboards. Numlock state shouldn't affect the behaviour
7374           of the Del key. Fixes bug #78291.
7375
7376 2006-08-10  Chris Toshok  <toshok@ximian.com>
7377
7378         * ListControl.cs: remove the items.Clear line from BindDataItems,
7379         as this is the first thing done by both subclasses in their
7380         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7381         passed -1, refresh the list.  This gets databinding working when
7382         the datasource is set on the list before the datasource is
7383         populated (as in wf-apps/ReportBuilder.)
7384
7385         * ComboBox.cs: remove the argument to BindDataItems.  This call
7386         should really go away, and be initiated by the ListControl code.
7387
7388         * ListBox.cs: same.
7389
7390 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7391
7392         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7393           if no data is in the document when the control is displayed
7394
7395 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7396
7397         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7398           yes (fixes #78806)
7399         * TextControl.cs: 
7400           - PositionCaret: Allow positioning of caret but don't call methods 
7401             requiring a handle if the window isn't created yet
7402           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7403           - owner_HandleCreated: Don't position the caret, just update it's 
7404             location. User might have already set a different position
7405
7406 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7407
7408         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7409           windows. Screws up the returned coordinates for child windows. 
7410           Fixes #78825. I'm hoping this doesn't break something, since the
7411           code was explicitly put in 8 months ago, but no bug was attached.
7412           Menus still seem to work properly.
7413
7414 2006-08-08  Chris Toshok  <toshok@ximian.com>
7415
7416         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7417         supposed to do - delay data binding until the EndInit call.  Also,
7418         make the table style collection's CollectionChangeAction.Refresh
7419         work properly.
7420
7421         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7422         (with action = Refresh) when a consituent table's MappingName is
7423         changed.
7424
7425 2006-08-08  Chris Toshok  <toshok@ximian.com>
7426
7427         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7428         Invalidate, since changing the text can change the size of the all
7429         toolbar buttons.
7430
7431 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7432
7433         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7434           we don't have it yet
7435
7436 2006-08-08  Chris Toshok  <toshok@ximian.com>
7437
7438         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7439         dialog, as this causes X errors later on, since we actually
7440         destroy the window.  Instead, .Hide() it.
7441
7442 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7443
7444         * ComboBox.cs: Added focus reflection for popup window
7445         * XplatUIX11.cs: 
7446           - Removed transient setting for non-app windows for now, not sure it
7447             was needed
7448           - Fixed logic checking if we have captions when deciding 
7449             override_redirect, WS_CAPTION is two bits and a 0 check was not
7450             sufficient
7451           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7452             complicated
7453         * Form.cs: 
7454           - AddOwnedForm: Don't just add the form to the list, call the property
7455             to ensure the driver is informed about the ownership as well
7456           - CreateHandle: Set the TopMost status in the driver if we have an owner
7457         * XplatUI.cs: Fixed debug statement
7458
7459 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7460         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7461           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7462           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7463           TrackBarRenderer.cs: Make constructor private.
7464         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7465         * ProfessionalColorTable.cs: Make properties virtual.
7466
7467 2006-08-06  Duncan Mak  <duncan@novell.com>
7468
7469         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7470         is not changing.
7471
7472 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7473         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7474           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7475           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7476           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7477           Initial import of new 2.0 classes.
7478
7479 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7480         * Application.cs: Add 2.0 VisualStyles properties.
7481
7482 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7483         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7484           XplatUIX11.cs: Create property to allow access to existing private
7485           variable "themes_enabled"
7486
7487 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7488
7489         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7490         file size, as otherwise our class libraries fail using windows. Fixes
7491         bug #78759.
7492
7493 2006-08-04  Jackson Harper  <jackson@ximian.com>
7494
7495         * Form.cs:
7496         * XplatUIX11.cs: Move the toolwindow window manager creation into
7497         the X11 driver, this way on win32 we can let windows create/handle
7498         the toolwindows.
7499
7500 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7501
7502         * PrintDialog.cs: Remove some redundant checks, add some others,
7503         clean some code, and move the focus to the text boxes when the
7504         values are incorrect.
7505
7506 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7507
7508         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7509
7510 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7511
7512         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7513           handled correctly. Fixes bug #79001.
7514
7515 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7516
7517         * PrintDialog.cs: The "Copies" numeric up down must have
7518         set the Minimum property to 1; only if the value is bigger
7519         than 1, activate "Collate" check box. This is the behaviour of .Net.
7520         Also modify the Document elements only if it is not null.
7521
7522 2006-08-03  Jackson Harper  <jackson@ximian.com>
7523
7524         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7525         length. (We have a larger array then actual node count).
7526                 
7527 2006-08-03  Jackson Harper  <jackson@ximian.com>
7528
7529         * ComboBox.cs: Don't show selection by default.
7530         - The SelectAll isn't needed here, since the focus code should do
7531         that
7532         - DDL style lists to manual selection drawing, so when they
7533         get/lose focus they have to invalidate.
7534
7535 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7536
7537         * TextBoxBase.cs: Don't always show all selections by default.
7538
7539 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7540         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7541           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7542           Fixed various typos.
7543
7544 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7545
7546         * Control.cs: Removing the controls in a ControlCollection with
7547           Clear now hides the controls as expected. Fixes bug #78804. 
7548
7549 2006-08-03  Jackson Harper  <jackson@ximian.com>
7550
7551         * Control.cs: Revert previous focus patch, it breaks reflector.
7552
7553 2006-08-03  Jackson Harper  <jackson@ximian.com>
7554
7555         * ComboBox.cs: Cleanup selection and focus with the combobox.
7556         This also eliminates some duplicated keyboard code, since now
7557         everything is handled by the main class.
7558         - Make list selection work on mouse up instead of down, to match
7559         MS.
7560
7561 2006-08-02  Jackson Harper  <jackson@ximian.com>
7562
7563         * Control.cs: Setting focus needs to go through the whole
7564         selection mechanism.
7565
7566 2006-08-02  Chris Toshok  <toshok@ximian.com>
7567
7568         * PrintPreviewDialog.cs: change MinimumSize to use
7569         base.MinimumSize so it works.
7570
7571 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7572
7573         * TextControl.cs:
7574           - UpdateCaret: Added sanity check in case caret isn't defined yet
7575           - Line.Delete: Now updating selection and caret markers if we're
7576             transfering a node (Properly fixes #78323)
7577           - SetSelectionEnd: Added sanity check
7578         * TextBoxBase.cs: Removed broken attempt to fix #78323
7579
7580 2006-08-01  Chris Toshok  <toshok@ximian.com>
7581
7582         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7583         Close() call is handled in Form, not here.
7584
7585 2006-08-01  Chris Toshok  <toshok@ximian.com>
7586
7587         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7588         layout/rendering.
7589
7590         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7591         for sizes < 100% zoom.  The code now aggressively attempts to keep
7592         from calling document.Print (), and tries not to use the scaling
7593         g.DrawImage whenever possible (it still does if you scale to >
7594         100%, since usually that involves huge images).
7595
7596         * PrintPreviewControl.cs: hook up the close button.
7597
7598 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7599         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7600           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7601           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7602           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7603           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7604           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7605           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7606           Removed [Serializable] for 2.0 Event Handlers.
7607
7608 2006-07-31  Jackson Harper  <jackson@ximian.com>
7609
7610         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7611         * TextControl.cs: Uncomment out the body of this method.
7612
7613 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7614
7615         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7616           standard cursors.
7617
7618 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7619
7620         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7621           that embed TextBox and need selections visible even if textbox is not
7622           focused to enforce that behaviour.
7623         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7624           selection drawing
7625
7626 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7627
7628         * TextControl.cs:
7629           - Added new SetSelectionStart/SetSelectionEnd overloads
7630           - Fixed viewport width assignment to be accurate
7631           - Adjusted alignment line shift calculations to allow cursor on right
7632             aligned lines to be always visible at the right border (like MS)
7633         * TextBoxBase.cs:
7634           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7635           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7636           - CalculateScrollBars: Use ViewPort size instead of window size, to
7637             properly consider space occupied by the border and scrollbars 
7638             (Fixes #78661)
7639           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7640             calculations; no longer leaves artifacts
7641           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7642             calculation bugs (Still missing right/center align calculations)
7643
7644 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7645
7646         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7647           use of both scroll rect and clip rect, as they do the same.
7648
7649 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7650
7651         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7652           in the event handler (fixes #78912)
7653
7654 2006-07-31  Chris Toshok  <toshok@ximian.com>
7655
7656         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7657         grid.ListManager.Count, since grid.ListManager might be null.
7658         This of course begs the question "why are we drawing rows for a
7659         grid with no list manager (and therefor no rows)?"  Fixes the
7660         crash in bug #78929.
7661
7662 2006-07-31  Chris Toshok  <toshok@ximian.com>
7663
7664         * RelatedPropertyManager.cs: Don't always chain up to the parent
7665         ctor.  instead, call SetDataSource if the parent's position is !=
7666         -1.  Fixes the crash in #78822.
7667
7668 2006-07-31  Chris Toshok  <toshok@ximian.com>
7669
7670         * DataGrid.cs (get_ListManager): use field instead of property
7671         accessors for datasource and datamember.
7672         (RowsCount): make internal again.
7673         (OnMouseDown): end edits before resizing columns/rows.
7674         (OnMouseUp): restart edits after resizing columns/rows.
7675
7676 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7677
7678         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7679           This fixes the situation where the last set cursor is displayed
7680           whenever the mouse is over scrollbars.
7681
7682 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7683
7684         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7685         Document properties, as well as initial values.
7686
7687 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7688
7689         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7690           and ClientEdge results in a 3-pixel border, which is
7691           wrong.
7692
7693 2006-07-28  Jackson Harper  <jackson@ximian.com>
7694
7695         * TreeNodeCollection.cs: Fix the clear method.
7696         - Fix the Shrink also
7697
7698 2006-07-27  Jackson Harper  <jackson@ximian.com>
7699
7700         * TreeView.cs: Make sure the visible order is computed when we
7701         attempt to size the scrollbars (for trees that mess with the
7702         scrolling when they shouldn't.
7703         - Make sure to give the scrollbars valid values.
7704
7705 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7706
7707         * XplatUIX11.cs: Move motion compression code to where it
7708           has less performance impact
7709
7710 2006-07-26  Jackson Harper  <jackson@ximian.com>
7711
7712         * UpDownBase.cs: When the control is selected make the child
7713         controls non selectable, so that a click on them won't do a
7714         focus/unfocus cycle.
7715         - Don't give focus to the text box when the spinner is selected.
7716         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7717
7718 2006-07-26  Chris Toshok  <toshok@ximian.com>
7719
7720         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7721         satisfied with this solution.  If the bitmaps are small, we should
7722         just cache them in the PrintPreviewDialog and draw them here.
7723         Also, the layout is broken for the 2-up and 3-up cases.
7724
7725         * Theme.cs: add PrintPReviewControlPaint.
7726
7727         * PrintPreviewDialog.cs: first pass implementation.
7728
7729         * PrintPreviewControl.cs: first pass implementation.  No
7730         scrollbars yet.
7731
7732         * PrintDialog.cs: only validate fields if that particular portion
7733         of the UI is enabled.  Also, set the document's controller to a
7734         PrintControllerWithStatusDialog wrapping the document's print
7735         controller.
7736
7737         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7738         bring up a SaveFileDialog (i hope we don't want to match the
7739         behavior of the crappy windows file entry) and set the
7740         PrinterSettings.PrintFileName accordingly.
7741
7742 2006-07-26  Jackson Harper  <jackson@ximian.com>
7743
7744         * ContainerControl.cs: Add a field that disables auto selecting
7745         the next control in a container when the container is activated.
7746         * UpDownBase.cs: Don't select the text box when the up down is
7747         selected.
7748
7749 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7750
7751         * XEventQueue.cs: Added methods for peeking (used for compression
7752           of successive events)
7753         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7754           mouse move events (fixes #78732)
7755
7756 2006-07-25  Jackson Harper  <jackson@ximian.com>
7757
7758         * UpDownBase.cs: Use an internal class for the textbox so that we
7759         can control focus.  the updown control should always have focus,
7760         if either the text area or the buttons are clicked.
7761         - Send the key messages to the textbox, since it never actually
7762         has focus
7763         - Activate and decativate the textbox caret.
7764
7765 2006-07-24  Jackson Harper  <jackson@ximian.com>
7766
7767         * Control.cs: Use the directed select when selecting a control,
7768         this way the container controls override will get called and the
7769         whole ActiveControl chain will get triggered.  TODO: probably need
7770         to make sure this gets done everywhere instead of the old
7771         Select(Control).
7772         * ContainerControl.cs: Implement the directed Select method to
7773         find and activate the correct child control.    
7774         
7775 2006-07-22  Mike Kestner  <mkestner@novell.com>
7776
7777         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7778         menu handling code so that clicks without a grab work too.
7779         [Fixes #78914]
7780
7781 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7782
7783         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7784           Added some small optimizations.
7785
7786 2006-07-21  Matt Hargett  <matt@use.net>
7787
7788         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7789
7790 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7791
7792         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7793           tests pass and match MS in some strange border cases.
7794
7795 2006-07-21  Chris Toshok  <toshok@ximian.com>
7796
7797         * ThemeWin32Classic.cs: handle drawing of the relation links and
7798         parent row buttons.
7799
7800         * Theme.cs: change args to DataGridPaintParentRow.
7801
7802         * DataGrid.cs: Don't use controls for the relation links and
7803         parent buttons, so we have to handle all their interactions in
7804         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7805         when we're navigating through child tables, so we can reinstate
7806         selection, expanded state, current cell, etc.
7807
7808 2006-07-20  Chris Toshok  <toshok@ximian.com>
7809
7810         * ToolBar.cs: When we redraw a button, for whatever reason,
7811         there's no reason to redraw the entire toolbar.  Also, don't call
7812         Control.Refresh from within Redraw, as it's much heavier than
7813         Invalidate (which is really what we want).
7814
7815 2006-07-20  Chris Toshok  <toshok@ximian.com>
7816
7817         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7818         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7819         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7820         traces from within a debug IBindingList datasource
7821         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7822         to work in a similar fashion.
7823
7824 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7825
7826         * ListBox.cs: Don't call Sort () when setting 
7827         the Sorted property to false (avoid an unnecessary sort).
7828
7829 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7830
7831         * ListControl.cs: DataSource should throw an ArgumentException
7832         instead of a normal exception when the argument is not of the 
7833         correct type.
7834
7835 2006-07-20  Mike Kestner  <mkestner@novell.com>
7836
7837         * Control.cs: add InternalPreProcessMessage to allow us to steal
7838         key events before MWF gets its paws on them.  Adapted from a
7839         suggestion by eno.
7840         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7841         up/down/left/right navigation. Override the new internal control
7842         method to steal the events since they never make it to WndProc.
7843         * ToolBarButton.cs: don't worry about pushed when setting hilight
7844         since the drawing code prefers pushed to hilight. Invalidate on 
7845         Hilight changes. Fixes #78547 and #78525.
7846
7847 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7848
7849         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7850           the canvas size. Fixes #78868
7851
7852 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7853
7854         * Splitter.cs: Track requested split position until first layout
7855           is performed. Fixes #78871
7856
7857 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7858
7859         * Application.cs: Removed code that forces 1.x for the version
7860           number if the version started with 0. Not sure why that code was
7861           there and I couldn't find any bugs that indicated we needed it.
7862           Fixes #78869
7863
7864 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7865
7866         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7867           ResetDefaults(), just write some output to the console until it's
7868           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7869
7870 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7871
7872         * PropertyGridView.cs: set StartPosition of drop down forms
7873         so they appear in correct initial spot.  Fixes #78190.
7874
7875 2006-07-19  Mike Kestner  <mkestner@novell.com>
7876
7877         * ThemeWin32Classic.cs: use parent background color when drawing
7878         flat toolbars.  Restructure the conditionals to make sure non-flat
7879         non-Divider toolbars are filled too.  Fixes #78837.
7880
7881 2006-07-19  Mike Kestner  <mkestner@novell.com>
7882
7883         * ListBox.cs: Sort on collection changes even if the handle
7884         isn't created yet.  Fixes #78813.
7885
7886 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7887
7888         * ListControl.cs: DisplayMember should never be null,
7889         and now we assign String.Empty when null is passed to it (this
7890         is the .Net way).
7891
7892 2006-07-17  Mike Kestner  <mkestner@novell.com>
7893
7894         * ListViewItem.cs: restructure Font and subitem Font handling 
7895         to hold a specific font and refer back to owner on null.
7896         Fixes #78761.
7897
7898 2006-07-17  Mike Kestner  <mkestner@novell.com>
7899
7900         * ToolBar.cs: bandaid for side-effect of previous patch which was
7901         discarding explicit heights for non-AutoSize toolbars.  Need to
7902         extend my format tester to deal with AutoSize=false. Fixes #78864.
7903
7904 2006-07-15  Jackson Harper  <jackson@ximian.com>
7905
7906         * LabelEditTextBox.cs:
7907         * TreeView.cs: Use a new LabelEdit class for node editing, this
7908         class automatically 'closes' itself when it gets the enter key or
7909         loses focus.
7910         - Use the client rectangle when setting the trees scrollbars, so
7911         border style is taken into account.
7912         
7913 2006-07-14  Jackson Harper  <jackson@ximian.com>
7914
7915         * TreeNode.cs:
7916         * TreeView.cs: Make the editing work similar to MSs, firing the
7917         events correctly and ending edits correctly.
7918
7919 2006-07-14  Mike Kestner  <mkestner@novell.com>
7920
7921         * ToolBarButton.cs:
7922         * ToolBar.cs: layout restructuring and redraw enhancements to support
7923         formatting changes gracefully, like setting TextAlign, ImageList, 
7924         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7925         of the MS controls.  Things like flat toolbars ignoring button size
7926         but becoming constant sized at the largest button's size.  Normal
7927         toolbars with an image set cannot be shrunk smaller than the image,
7928         but text can be clipped/ignored.
7929         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7930         is zero.  Seems like DrawString should be smart enough to not put
7931         anything on screen though. Also trim labels and ellipsize at the char
7932         boundary, not word.
7933         Fixes #78711 and #78483.
7934
7935 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7936
7937         * FolderBrowserDialog.cs: Disable "New Folder" button and
7938           "New Folder" contextmenu menuitem if a folder like "My Computer"
7939           is selected.
7940
7941 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7942
7943         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7944         * FolderBrowserDialog.cs:
7945           - Use MWFConfig to store and read size and position settings
7946           - Added code to create a new folder (button or context menu).
7947             Use TreeView labeledit to change the name of the new folder.
7948
7949 2006-07-14  Jackson Harper  <jackson@ximian.com>
7950
7951         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7952         when the tree is scrolled we end editing.
7953
7954 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7955
7956         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7957           Down arrows
7958
7959 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7960
7961         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7962         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7963         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7964         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7965         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7966         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7967         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7968         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7969         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7970         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7971         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7972         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7973         ListViewItemSelectionChangedEventHandler.cs,
7974         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7975         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7976         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7977         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7978         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7979         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7980         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7981         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7982         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7983         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7984         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7985         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7986         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7987         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7988         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7989         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7990         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7991         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7992         WebBrowserNavigatingEventHandler.cs, 
7993         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7994
7995 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7996
7997         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7998         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7999         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
8000         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
8001         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
8002         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
8003         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
8004         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
8005         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
8006         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
8007         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
8008         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
8009         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
8010         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
8011         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
8012         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
8013         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
8014         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
8015         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
8016         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
8017         ListViewItemStates.cs, MaskFormat.cs: Added
8018
8019 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
8020
8021         * PropertyGridView.cs: Fix keyboard navigation of drop down.
8022         Patch from eno for bug 78558.
8023         
8024 2006-07-13  Jackson Harper  <jackson@ximian.com>
8025
8026         * TreeView.cs: When an edit is finished make sure that the
8027         selected node is visible.
8028         - When setting the top/bottom use the scrollbars is_visible, so
8029         everything will be set correctly even if the tree isn't visible
8030         yet.
8031
8032 2006-07-13  Jackson Harper  <jackson@ximian.com>
8033
8034         * ComboBox.cs: Revert the item->index part of my previous patch.
8035         * TreeView.cs: Use LostFocus instead of Leave for detecting when
8036         the edit box has lost focus (duh).
8037         - Just make the edit box not visible when we get return, that will
8038         take the focus, which will call EndEdit
8039         * TreeNode.cs When we start editing, notify the treeview.
8040
8041 2006-07-12  Jackson Harper  <jackson@ximian.com>
8042
8043         * ComboBox.cs: Clear out old items before setting the item list.
8044         This prevents databound controls from having their items added
8045         twice.
8046         - Switch the combobox to use indices whereever possible instead of
8047         using Item's.  This allows usto navigate through lists that have
8048         more then one item with the same string value (ie a, b, b, a).
8049         - Scroll the listboxes scrollbar when a non visible item is
8050         highlighted
8051         - Allow keypress to cycle through all the possible values. For
8052         example if you have b1, b2, b3 and hold down the B key all the
8053         values will be cycled through.
8054         
8055 2006-07-12  Jackson Harper  <jackson@ximian.com>
8056
8057         * TextBoxBase.cs:
8058         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8059         this using the internal methods.
8060         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8061         controls to "override" OnGotFocus and change focus behavior if
8062         needed.
8063         - Same thing for LostFocus
8064         * ComboBox.cs: Pass off focus to the text control properly.
8065
8066 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8067
8068         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8069         * FolderBrowserDialog.cs: Almost a complete rewrite.
8070           - Better support for Environment.Specialfolders
8071           - Added support for MWFVFS
8072           - Made setting SelectedPath work
8073
8074 2006-07-12  Jackson Harper  <jackson@ximian.com>
8075
8076         * Control.cs: Optimze getting all the controls.
8077
8078 2006-07-11  Jackson Harper  <jackson@ximian.com>
8079
8080         * ContainerControl.cs: Override SETFOCUS in the container control,
8081         so that it is not selected on mouse click.
8082
8083 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8084
8085         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8086           Hopefully we will have a better way once all of focus is complete.
8087
8088 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8089
8090         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8091           a compile error with csc.
8092
8093 2006-07-11  Jackson Harper  <jackson@ximian.com>
8094
8095         * Control.cs: When hiding a control only select the next control
8096         if the current control was focused.
8097         - Don't handle enter/leave when setting/killing focus, this is
8098         done by the container control.
8099         - Remove is_selected, it's not needed anymore.
8100         - Add utility methods for selecting a child control, and for
8101         firing the Enter/Leave events.
8102         * ContainerControl.cs: When a control is activated fire the
8103         enter/leave events.
8104         - Don't wrap when processing the tab key, so that focus can be
8105         moved outside of the container.
8106         - Use the correct active control
8107
8108 2006-07-11  Jackson Harper  <jackson@ximian.com>
8109
8110         * ComboBox.cs: Remove some debug code that was blinding me.
8111         * UpDownBase.cs: These controls actually aren't implicit, they are
8112         visible to the user.
8113
8114 2006-07-10  Chris Toshok  <toshok@ximian.com>
8115
8116         * DataGrid.cs: move back to the is_adding boolean field.  god i
8117         hate this is_editing/is_adding/is_changing stuff.
8118
8119 2006-07-10  Chris Toshok  <toshok@ximian.com>
8120
8121         * DataGridTableStyle.cs: just check if the property type is bool.
8122         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8123         Don't use CanRenderType.
8124
8125         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8126         if our text == NullText.  Remove CanRenderType.
8127
8128         * DataGridBoolColumn.cs: nuke CanRenderType.
8129
8130         * DataGrid.cs: reenable some code to end the current edit inside
8131         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8132         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8133         Also, remove the visible_row_count arg from CalcRowHeaders, since
8134         we don't need to worry about the actual height of the area.
8135
8136 2006-07-10  Chris Toshok  <toshok@ximian.com>
8137
8138         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8139         mode, just return.
8140
8141         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8142         the real sense of the IsInEditOrNavigateMode property (true =
8143         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8144
8145         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8146         column style exists, we still need to set its property descriptor
8147         to match up with our list manager.
8148
8149 2006-07-10  Chris Toshok  <toshok@ximian.com>
8150
8151         * ThemeWin32Classic.cs: implement the new row/header painting
8152         approach.  The parent row painting will likely go away and
8153         replaced with label controls, but the rest seems to work ok (and
8154         efficiently).
8155
8156         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8157         the row headers as a block now.  Instead we draw them in the
8158         normal draw-row loop.  Add some calls for drawing parent rows and
8159         relation rows.
8160
8161         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8162         a default table style.  Set the defaults from ThemeEngine.Current,
8163         not SystemColors.  Fix lots of misc issues with property setters.
8164
8165         * DataGrid.cs: move loads of style information out of this class
8166         as it's being duplicated with DataGridTableStyle.  keep track of a
8167         special DataGridTableStyle for the properties we used to mirror
8168         here.  Switch all the style properties to access this table style
8169         instead of instance fields of this class.  Also add a internal
8170         class to represent parent rows (more needs to be stored here, like
8171         the selection state from the parent table, as well as the
8172         expansion state.)  Also, for datasources with relations, do the
8173         right thing for collapse/expand, and add support for the
8174         navigation/parent row buttons.
8175
8176         Lastly, fix the crash in the 1.1.16 build.
8177
8178         * GridTableStylesCollection.cs: make the explicit interface
8179         implementations call the class's methods as opposed to duplicating
8180         them.
8181
8182         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8183         0 so the text doesn't jump around when we move the cursor.
8184
8185 2006-07-10  Jackson Harper  <jackson@ximian.com>
8186
8187         * TextBoxBase.cs:
8188         * ListBox.cs: Match MS's ToString (this makes debugging focus
8189         stuff infinitely easier).
8190
8191 2006-07-10  Jackson Harper  <jackson@ximian.com>
8192
8193         * Control.cs (SelectNextControl): When checking the control's
8194         parent use this instead of ctrl.parent so that null can be passed
8195         to SelectNextControl. (I have unit tests for this).
8196         - Remove unused var.
8197
8198 2006-07-10  Chris Toshok  <toshok@ximian.com>
8199
8200         * CurrencyManager.cs: correct one regression, the removal of the
8201         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8202         Refresh() correctly, and fix some event emission in
8203         ListChangedHandler.
8204
8205 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8206
8207         * FileDialog.cs: Don't use brackets for new folders if they exist
8208           under *nix. Instead use -(number of existing folders +1).
8209
8210 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8211
8212         * FileDialog.cs:
8213           - Fixed really nasty bug #78771
8214           - Don't block the whole GUI when reading directories with a lot of
8215             entries. Use an other thread instead and call BeginInvoke to
8216             update the ListView in MWFFileView
8217
8218 2006-07-07  Chris Toshok  <toshok@ximian.com>
8219
8220         * Control.cs (Dispose): release any Capture when disposing.
8221
8222 2006-07-07  Chris Toshok  <toshok@ximian.com>
8223
8224         * LinkLabel.cs (Select): if we chain up to the parent, set
8225         focused_index to -1 so we'll search for the first available link
8226         the next time the user tabs into us.  Also, if the direction is
8227         backward and focused_index == -1, start the search from the last
8228         element.
8229
8230 2006-07-07  Chris Toshok  <toshok@ximian.com>
8231
8232         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8233         is beyond the end of the text, don't do anything.
8234         (CreateLinkPieces): set our ControlStyles.Selectable based on
8235         whether or not we have any links.
8236         (Link.Invalidate): use a loop instead of foreach.
8237         (Link.set_Start): null out owner.sorted_links so it'll be
8238         recreated by CreateLinkPieces.
8239
8240 2006-07-06  Chris Toshok  <toshok@ximian.com>
8241
8242         * LinkLabel.cs: revert the SetStyle change.
8243
8244 2006-07-06  Chris Toshok  <toshok@ximian.com>
8245
8246         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8247         (OnEnableChanged): s/Refresh/Invalidate
8248         (OnGotFocus): if we have a focused index already, refocus it (so
8249         if we mouse out/in to the window it'll focus the right link).
8250         (OnKeyDown): move the tab handling out of here.
8251         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8252         when we lose focus.
8253         (OnMouseDown): don't Capture here - Control handles it.  Also,
8254         focus the active link.
8255         (OnMouseUp): don't deal with Capture.
8256         (OnPaintBackgroundInternal): remove.
8257         (OnTextAlignChanged): CreateLinkPieces before calling the
8258         superclass's method.
8259         (OnTextChanged): call CreateLinkPieces before calling superclass's
8260         method.
8261         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8262         move around.
8263         (Select): implement this, moving the selection between different
8264         links, and call parent.SelectNextControl if we don't have another
8265         link to focus in the given direction.
8266         (CreateLinkPieces): call Invalidate instead of Refresh.
8267         
8268 2006-07-06  Chris Toshok  <toshok@ximian.com>
8269
8270         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8271         new LinkLabel internals.
8272
8273         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8274         over pieces looking for active/focused/etc links.  also, deal with
8275         runs of text (and links) with embedded \n's in them, and use
8276         MeasureCharacterRanges instead of MeasureString to figure out the
8277         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8278         two-step.
8279
8280 2006-07-04  Jackson Harper  <jackson@ximian.com>
8281
8282         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8283         XKB or key auto repeat, do it manually.  Without key auto repeat,
8284         when a key is held down we get key press, key release, key press,
8285         key release, ... with auto repeat we get key press, key press, key
8286         press ..., and then a release when the key is actually released.
8287
8288 2006-07-03  Jackson Harper  <jackson@ximian.com>
8289
8290         * TabControl.cs:
8291         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8292         rules, they are always control color regardless of the background
8293         color.
8294
8295 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8296
8297         * FileDialog.cs: Added internal class MWFConfig.
8298           Removed Registry support and replaced it with support for the new
8299           MWFConfig class. See MWFConfig comments for more information.
8300
8301 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8302
8303         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8304           rectangle. Added some patches from eno from bug #78490 and fixed
8305           the arrow position for small up and down CPDrawScrollButtons.
8306
8307 2006-06-30  Jackson Harper  <jackson@ximian.com>
8308
8309         * InternalWindowManager.cs: Remove some debug code.
8310         * Form.cs: When an MdiParent is set to null, the window is
8311         "detatched" and becomes a normal window.
8312         * MdiClient.cs: Don't bring the new child form to the front until
8313         it is activated (setting it as active does this), this makes the
8314         previously active forms titlebar get redrawn as inactive.
8315
8316 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8317
8318         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8319           with later controls
8320
8321 2006-06-29  Mike Kestner  <mkestner@novell.com>
8322
8323         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8324         arrow in keynav state.  Fixes #78682.
8325
8326 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8327
8328         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8329           order (fixes #78393)
8330
8331 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8332
8333         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8334           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8335           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8336           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8337           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8338           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8339           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8340           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8341           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8342           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8343           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8344           values)
8345
8346 2006-06-28  Mike Kestner  <mkestner@novell.com>
8347
8348         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8349
8350 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8351
8352         * PropertyGrid.cs,
8353           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8354           item lines from other area (It also makes BackColor consistent and
8355           compatible with .NET). Fixed bug #78564.
8356
8357 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8358
8359         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8360         Patch from Eno for #78555.
8361
8362 2006-06-27  Chris Toshok  <toshok@ximian.com>
8363
8364         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8365
8366         * DataGridColumnStyle.cs: same.
8367
8368         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8369         
8370         * DataGridDrawingLogic.cs: nuke.
8371
8372 2006-06-27  Chris Toshok  <toshok@ximian.com>
8373
8374         * DataGridTableStyle.cs: clean up the constructors, and build the
8375         list of child relations for this table.  I have no idea if this is
8376         where we should be doing it (it probably isn't), but since we're
8377         already iterating over the properties..
8378
8379         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8380         struct and array for keeping track of row information, similar to
8381         what's shown in a hack on
8382         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8383
8384         * Theme.cs: be consistent about the naming of DataGrid methods,
8385         prefering ColumnWidths and RowHeights over columnsWidths and
8386         RowsHeights.
8387
8388         * ThemeWin32Classic.cs: same, and also add support for variable
8389         sized rows (and the +/- expansion icons for related rows).
8390
8391 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8392
8393         * TextBoxBase.cs: Applied Eno's patch from #78660
8394
8395 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8396
8397         * Form.cs (ScaleCore): We don't want to scale our form if it's
8398           state is minimized or maximized, but we still need to scale our
8399           child windows. Also, added try/finally block to ensure layout
8400           gets reset (Fixes #78697)
8401
8402 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8403
8404         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8405
8406 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8407
8408         * Form.cs: Fixed c+p error and added check to resize form if minimum
8409           size is bigger than current size (Fixes #78709)
8410
8411 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8412
8413         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8414
8415 2006-06-26  Mike Kestner  <mkestner@novell.com>
8416
8417         * ComboBox.cs: only do Keypress handling in the combo when there  
8418         are items in the collection. Fixes #78710.
8419
8420 2006-06-26  Chris Toshok  <toshok@ximian.com>
8421
8422         * Binding.cs: make this work bi-directionally.  also, clear up
8423         other mixups between Push/Pull Data (e.g. we're supposed to pull
8424         data when validating).
8425
8426         * BindingManagerBase.cs: trim some fully qualified collection
8427         types.
8428
8429         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8430
8431 2006-06-23  Chris Toshok  <toshok@ximian.com>
8432
8433         * PropertyManager.cs: It appears (according to the unit tests)
8434         that PropertyManager doesn't use
8435         PropertyDescriptor.AddValueChanged to track propery value changes
8436         in its datasource, but uses the same scheme as Binding, where it
8437         looks for a <Property>Changed event and binds to it.
8438
8439         Also, according to the docs, IsSuspended always returns false for
8440         a property manager with a non-null datasource.
8441
8442 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8443
8444         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8445           need to update the actual DialogResult. (Fixes #78613)
8446
8447 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8448
8449         * Form.cs (ShowDialog): Release any captures before running the
8450           new message pump (fixes #78680)
8451
8452 2006-06-22  Mike Kestner  <mkestner@novell.com>
8453
8454         * ListView.cs: Layout column widths properly in details mode even 
8455         if HeaderStyle.None is set.  Fixes #78691.
8456
8457 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8458
8459         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8460
8461 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8462
8463         * Control.cs (ContainsFocus): Using new driver method to get focused
8464           window, instead of trying to use internal tracking var, which can
8465           recursion issues (Fixes #78685)
8466         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8467           XplatUIWin32.cs: Added GetFocus method to return focused window
8468
8469 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8470
8471         * ColorDialog.cs: when the mouse button is pressed inside the color
8472         matrix, don't let the cursor move out of it until the button is
8473         released, which is the behavior on windows. Changed 'colours' by
8474         'colors' to use the same word consistently.
8475
8476 2006-06-21  Chris Toshok  <toshok@ximian.com>
8477
8478         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8479         child relation and back, using a stack).  Also, remove
8480         GetDataSource and the code that calls it - it's not needed.  Also,
8481         track CurrencyManager.ListName's removal.
8482
8483 2006-06-21  Chris Toshok  <toshok@ximian.com>
8484
8485         * CurrencyManager.cs: push some of the original type checking from
8486         BindingContext.CreateBindingManager to here, and remove some of
8487         the finalType stuff.  Need more tests to make sure I've got the
8488         ListName part right, and we might need more in SetDataSource.
8489
8490         * PropertyManager.cs: add a ctor that takes just the datasource,
8491         and no property name.  Make SetDataSource work with a null
8492         property_name, and make Current return the data_source if the
8493         property descriptor is null.  this makes 'string foo = "hi";
8494         BindingContext[foo].Current' return "hi" as it should.
8495
8496         * RelatedCurrencyManager.cs: make this code more generic - there's
8497         no reason the parent manager has to be CurrencyManager, and
8498         there's no reason to pass the DataRelation.  It suffices to use a
8499         BindingManagerBase and PropetyDescriptor.
8500
8501         * RelatedPropertyManager.cs: make a similar change here.
8502         
8503         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8504         flower I knew it could be.
8505
8506 2006-06-20  Chris Toshok  <toshok@ximian.com>
8507
8508         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8509         data in the source has changed and we need to update the control,
8510         so s/PullData/PushData.
8511
8512         * CurrencyManager.cs: Refresh is meant to update the control from
8513         data in the datasource.  So, s/PullData/PushData.
8514
8515         * BindingContext.cs: add more ugliness (we weren't handling the
8516         case where data_source = DataTable and data_member = column_name).
8517
8518         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8519         from the perspective of the datasource.  PullData pulls from the
8520         control, PushData pushes to the control.
8521
8522 2006-06-20  Chris Toshok  <toshok@ximian.com>
8523
8524         * BindingContext.cs: rewrite the CreateBindingManager code to
8525         handle navigation paths more or less properly.  This could
8526         definitely stand some more work, in particular to push the
8527         recursion up to the toplevel.  But that relies on fixes in other
8528         places (System.Data comes to mind).
8529
8530         Also, move to a flat hashtable (and encode the twolevel nature of
8531         the dictionary into the hash key).  This lets us implement the
8532         IEnumerable.GetEnumerator method.
8533
8534         * RelatedCurrencyManager.cs: new class.  Update our view based on
8535         our relation and our parent CurrencyManager's position.
8536
8537         * CurrencyManager.cs: split out some logic from the ctor into
8538         SetView, so it can be called from the new RelatedCurrencyManager
8539         subclass.
8540
8541         * RelatedPropertyManager.cs: new class.  Update our datasource
8542         based on the position of our parent CurrencyManager.
8543
8544         * PropertyManager.cs: split out some logic from the ctor into
8545         SetDataSource, so it can be called from the new RelatedDataSource
8546         subclass.  Also, make the Current getter return the value
8547         of the PropertyDescriptor, not the data_source.
8548
8549         * Binding.cs: no need to duplicate the string splitting code here.
8550
8551 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8552
8553         * Control.cs:
8554           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8555             of the control is not altered, even though  we might be changing the
8556             internal state of the control (#78458)
8557           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8558             OnEnabledChanged, to allow easy altering of any child window state
8559           - OnEnabledChanged: Added code to enable/disable driver window state
8560           - OnParentEnabledChanged: Instead of firing the event, call 
8561             OnEnabledChanged, which will fire the event and also a) set driver
8562             window state and pass the enabled state to any grandchildren (#78458)
8563
8564 2006-06-19  Jackson Harper  <jackson@ximian.com>
8565
8566         * InternalWindowManager.cs: We don't set the cursor explicitly
8567         thats done via the response to NCHITTESTs.
8568         - Don't need to adjust for titlebar heights anymore, the
8569         coordinates are coming in the correct coordinates now (see peters
8570         last patch).
8571
8572
8573 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8574
8575         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8576           being translated relative to whole window, instead of client window.
8577           That caused broken offsets on mouseclick (and caused gas for our
8578           InternalWindowManager)
8579
8580 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8581
8582         * TextControl.cs:
8583           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8584           - Undo(): Added replay of cursor move on DeleteChars action; added
8585             calling Undo() again if a recorded cursor move is invalid (to
8586             ensure that some action is performed on Undo)
8587         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8588
8589 2006-06-16  Jackson Harper  <jackson@ximian.com>
8590
8591         * MdiClient.cs: Instead of just sizing maximized windows when
8592         there is a resize we also have to adjust the Y of minimized
8593         windows, so they stay pinned to the bottom of the mdi container.
8594         - Eliminate separate tracking of the active control, we can just
8595         get this from the controls collection.
8596         - Paint the decorations for the newly activated titlebar so we get
8597         a pretty blue bar.
8598         * InternalWindowManager.cs:
8599         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8600         even if they are a tool window.
8601         
8602 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8603
8604         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8605           undo buffer, these can happen when text was deleted and the cursor
8606           was recorded first. Since we will also have a recorded cursor
8607           after the delete this is not an issue. (Fixes #78651)
8608
8609 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8610
8611         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8612           instead properly track control states internally (allows us to
8613           remove is_selected from Control)
8614
8615 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8616
8617         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8618         whose width is not a multiple of 8.
8619
8620 2006-06-13  Jackson Harper  <jackson@ximian.com>
8621
8622         * MdiClient.cs:  Only maximize the next child if the current one
8623         is maximized.
8624
8625 2006-06-13  Chris Toshok  <toshok@ximian.com>
8626
8627         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8628         modified.  Also, guard against grid or grid_drawing being null in
8629         Invalidate.
8630
8631         * DataGrid.cs: Reformat tons of getters/setters.  In the
8632         DataMember setter, just call SetNewDataSource instead of
8633         duplicating some of its functionality.  In SetNewDataSource, don't
8634         check ListManager for null, since the property getter creates the
8635         object if needed.
8636
8637         * DataGridTableStyle.cs: don't set TableStyle or call
8638         SetDataGridInternal on the column here, it's done in
8639         GridColumnStylesCollection.Add.
8640
8641         * GridColumnStylesCollection.cs: fix all the explicit interface
8642         implementations to just call our methods.  Nuke AddInternal() and
8643         move the body of it to Add().  Also, add a call to
8644         column.SetDataGridInternal to Add().
8645
8646         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8647         base()+duplicate code.  Also, use the Format property instead of
8648         format to generate an Invalidate ala MS.  Lastly, create the
8649         textbox here, unconditionally.
8650         (set_Format): call Invalidate.
8651         (get_TextBox): no need to call EnsureTextBox.
8652         (Commit): remove the message box.
8653         (Edit) remove the call to EnsureTextBox.
8654         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8655         (EnterNullValue): no need to check textbox for null.
8656         (HideEditBox): no need to check textbox for null.
8657         (SetDataGridInColumn): add the textbox to the grid's controls.
8658         (EnsureTextBox): nuke.
8659         
8660 2006-06-13  Jackson Harper  <jackson@ximian.com>
8661
8662         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8663         and redraw the buttons when needed. Unhook when the window is
8664         unmaximized.
8665         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8666         needs this so that it can redraw its buttons when the menu is
8667         repainted.
8668         * InternalWindowManager.cs:
8669         * Form.cs: The method order has changed for DrawMaximizedButtons,
8670         so that it can be a PaintEventHandler.
8671         
8672 2006-06-13  Jackson Harper  <jackson@ximian.com>
8673
8674         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8675         window is activated and maximized, even if it wasn't before.
8676         - When  a new window is activated repaint the decorations of the
8677         old one, so that it no longer has the Active "look" (the blue
8678         titlebar).
8679         * InternalWindowManager.cs: Open up CreateButtons to base classes
8680         so they can recreate the buttons on state changes.
8681         - If a window is maximized give it all three buttons
8682         * MdiWindowManager.cs: Create the titlebar buttons when the state
8683         is changed, this is needed because a toolwindow will not have all
8684         three buttons until it is maximized.
8685
8686 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8687
8688         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8689           Fixed bug #78609.
8690
8691 2006-06-12  Jackson Harper  <jackson@ximian.com>
8692
8693         * KeysConverter.cs: Make sure we handle the Ctrl special case
8694         if its the only key.
8695         
8696 2006-06-12  Jackson Harper  <jackson@ximian.com>
8697
8698         * Theme.cs: Add a method to get the size of a managed window
8699         toolbar button.
8700         * InternalWindowManager.cs: Remove the ButtonSize property, this
8701         should be retrieved from the theme.
8702         * MdiWindowManager.cs: Get the button size from the theme
8703         * ThemeWin32Classic.cs: Make the method to get the managed window
8704         titlebar button size public.
8705         - Handle the different button sizes of maximized toolwindows
8706         (should match any maximized window).
8707         - Get the titlebar height from the theme, not the WM (which gets
8708         it from the theme).
8709
8710 2006-06-12  Jackson Harper  <jackson@ximian.com>
8711
8712         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8713         event down to the mdi window manager.
8714         - Expose some extra stuff to base classes
8715         - Make sure to end the Capture on an NC Mouse up, so that we can
8716         get double clicks properly, and the sizing doens't stick.
8717         - When doing PointToClient contain it in the workable desktop
8718         area, this prevents windows from changing size when the cursor is
8719         pulled outside of the working area while sizing.
8720         * MdiWindowManager.cs: When we get a double click maximize the
8721         window.
8722         - Reset the cursor after handling mode changes.
8723
8724 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8725
8726         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8727           current desktop, instead of just assuming a 0, 0 origin. This
8728           is needed for our internal window manager, to know the top
8729           margin of the desktop
8730
8731 2006-06-12  Chris Toshok  <toshok@ximian.com>
8732
8733         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8734         we need this to get rid of the selected background in the bool
8735         column.
8736         (CancelEditing): move the ConcedeFocus call to above the Abort
8737         call.  Also, set is_changing to false and invalidate the row
8738         header if we were changing before.
8739         (ProcessKeyPreviewInternal): remove, since noone outside this
8740         class calls it anymore.  Roll the code into ProcessKeyPreview.
8741         (EndEdit): remove the internal version.
8742         (InvalidateCurrentRowHeader): make private.
8743
8744         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8745         Keys.Escape handling (and with it the last call to
8746         DataGrid.EndEdit from outside the class.)
8747
8748
8749 2006-06-12  Chris Toshok  <toshok@ximian.com>
8750
8751         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8752         (OnKeyPress): set isedit to true.
8753         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8754         already handled by the grid.
8755
8756         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8757         right.  ugh.
8758         (set_DataSource): SetDataSource always returns true, so stop
8759         putting it in an if statement.
8760         (EndEdit): get rid of some {}'s
8761         (ProcessGridKey): return true in case Keys.Escape.
8762         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8763         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8764         PositionChanged, stopped connecting to CurrentChanged.
8765         (GetDataSource): simplify this a bunch.
8766         (SetDataSource): change return type from bool to void.
8767         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8768         to this, and make sure we don't set ListManager.Position inside
8769         set_CurrentCell.
8770         (OnListManagerItemChanged): if we're passed an actual index,
8771         redraw that row.
8772
8773         * CurrencyManager.cs (set_Position): don't call PullData here.
8774
8775 2006-06-09  Jackson Harper  <jackson@ximian.com>
8776
8777         * TreeNode.cs:  Recalculate the visible order before doing the
8778         Expand/Collapse Below calls, because those calls generate an
8779         expose.
8780         - Reduce calls to the TreeView property, which is mildly expensive
8781         by using a local var.
8782         * Form.cs: Layout the MDI child windows when creating the parent
8783         form.
8784         - Don't use the internal constructor anymore
8785         * MdiClient.cs: use the parent form width/height (if available)
8786         when laying out the child windows, we do this because the
8787         mdiclient isn't docked yet when the initial layout is done.
8788         - Don't need an internal constructor anymore.
8789
8790 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8791
8792         * FileDialog.cs: handle access errors when trying to create a folder
8793         or changing to a directory. No need to initialize out parameters.
8794
8795 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8796
8797         * FileDialog.cs: Append a number when creating a new folder if the
8798           folder already exists (use parenthesis instead of square brackets)
8799
8800 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8801
8802         * FileDialog.cs:
8803           - Disabled registry support for windows and added better registry
8804             error checking for other systems (need to investigate why it
8805             works perfectly on my system)
8806           - If a folder already exist show an error MessageBox instead of
8807             trying to create an indexed name.
8808           - Fixed a non intentional typo.
8809
8810 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8811
8812         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8813
8814 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8815
8816         * FileDialog.cs: When creating a new folder don't crash if the
8817           folder already exists.
8818
8819 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8820
8821         * FileDialog.cs: Allmost a complete rewrite.
8822           - added a "virtual" file system that handles the differences
8823             between unix and windows file systems (especially the directory
8824             structure). Moved most of the directory and file handling code
8825             into the vfs.
8826             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8827             UnixFileSystem and FSEntry.
8828           - Recently used folder/directory, size, location and used file names
8829             (file name ComboBox) are now stored in the registry and get read
8830             before the dialog shows up (fixes part 6 of bug #78446).
8831           - Creation of new folders/directories is now possible (context menu
8832             or ToolBar). Added TextEntryDialog for this that fills in the gap
8833             until ListView.LabelEdit works.
8834           - Fixed cursor handling (bug #78527) and focus handling for
8835             PopupButtonPanel
8836           - Various "Search in" ComboBox enhancements. The content of the
8837             dropdown listbox now almost matches ms.
8838           - Changed the behaviour when the user switches to SpecialFolder
8839             Recent to show the ListView in View.Details.
8840           - Beside using the ToolBar to change the View property of the
8841             file ListView it is now possible to use the context menu too.
8842
8843 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8844
8845         * ComboBox.cs: Don't create a new ObjectCollection when an item
8846           gets inserted. Just insert the item in the existing object_items
8847           ArrayList.
8848
8849 2006-06-08  Jackson Harper  <jackson@ximian.com>
8850
8851         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8852         that the treeview and root node checks are done also, this fixes a
8853         regression i caused in the unit tests.
8854
8855 2006-06-07  Wade Berrier <wberrier@novell.com> 
8856
8857         * RichTextBox.cs: More ISO8859-1 -> unicode
8858
8859 2006-06-07  Mike Kestner  <mkestner@novell.com>
8860
8861         * ComboBox.cs : use items to hold highlight/selection so that
8862         collection insertions don't require synchronization.
8863
8864 2006-06-07  Jackson Harper  <jackson@ximian.com>
8865
8866         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8867         routine.  We now always keep the sized edge at the cursor instead
8868         of computing movement and adjusting rects.  There is one buglet
8869         with this method though when the cursor is moved over area that
8870         the window can not expand too (such as the toolbars on the desktop).
8871
8872 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8873
8874         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8875         here. Fixes crash on startup in AlbumSurfer.
8876
8877 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8878
8879         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8880           values
8881
8882 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8883
8884         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8885         statement to avoid calling XNextEvent which will block if another thread
8886         took the event that we were expecting. Fixes bug #78605.
8887
8888 2006-06-07  Mike Kestner  <mkestner@novell.com>
8889
8890         * ListView.cs : isolated checkbox clicking from the selection logic.
8891         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8892
8893 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8894
8895         * Form.cs: Check that the value passed to Form.DialogResult
8896         is a valid enum value.
8897
8898 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8899
8900         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8901         Computer'. Clicking it in the network view goes to 'My Computer'.
8902         Added CIFS filesystem type. Display the mount point of filesystems.
8903         Avoid duplicate mount points (happens for me with CIFS);
8904
8905 2006-06-06  Jackson Harper  <jackson@ximian.com>
8906
8907         * InternalWindowManager.cs: Draw the maximized windows buttons
8908         when resizing.
8909
8910 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8911
8912         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8913         all other dialogs. Fixes bug #78585.
8914
8915 2006-06-06  Mike Kestner  <mkestner@novell.com>
8916
8917         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8918         Only invalidate checkbox on checkstate changes to avoid flicker.
8919         * ListBox.cs : avoid unselect/select when clicking selected item.
8920         avoid reselection flicker for already multiselected items.
8921         Fixes #78382.
8922
8923 2006-06-06  Jackson Harper  <jackson@ximian.com>
8924
8925         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8926         the parent form so that the menu is removed if needed.
8927
8928 2006-06-06  Mike Kestner  <mkestner@novell.com>
8929
8930         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8931         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8932
8933 2006-06-06  Mike Kestner  <mkestner@novell.com>
8934
8935         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8936
8937
8938 2006-06-06  Jackson Harper  <jackson@ximian.com>
8939
8940         * Control.cs: Use the property (instead of the field) to get the
8941         default cursor so it is instantiated correctly.
8942         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8943         resizes so we need to manually repaint the window decorations here.
8944         - Set the titlebar button locations as soon as they are created,
8945         otherwise they are not set correctly on win32.
8946         
8947 2006-06-06  Chris Toshok  <toshok@ximian.com>
8948
8949         * CurrencyManager.cs (set_Position): call PullData before
8950         OnCurrentChanged.
8951         (AddNew): after calling IBindingList.AddNew, update our
8952         listposition, and call OnCurrentChanged/OnPositionChanged (without
8953         calling PullData).
8954         (OnCurrentChanged): remove the call to PullData from here.
8955         (OnItemChanged): remove the call to PushData from here.
8956         (OnPositionChanged): change the test from == null to != null to
8957         match the other methods.
8958         (ListChangedHandler): the grossest part of the patch.  Implement
8959         this such that it passes the unit tests in CurrencyManagerTest and
8960         the output more or less matches that of MS's implementation.
8961  
8962 2006-06-06  Mike Kestner  <mkestner@novell.com>
8963
8964         * ListView.cs : only update check state on single click.
8965         * ThemeWin32Classic.cs : fix focus drawing for details view without
8966         fullrowselect.  Fixes #78454.
8967         * XplatUIX11.cs : fix for double click emission.
8968
8969 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8970
8971         * PropertyGridView.cs : Applied Atsushi's patch to fix
8972         font dialog bug  (#78197).
8973
8974 2006-06-05  Jackson Harper  <jackson@ximian.com>
8975
8976         * TreeNode.cs: Compute the next node for expanding/collapsing
8977         correctly. We now factor in nodes without a NextNode
8978         correctly. (Fixes somes cases in nunit-gui).
8979         * InternalWindowManager.cs: Set the bounds when updating the
8980         virtual position of a tool window.
8981         
8982 2006-06-05  Chris Toshok  <toshok@ximian.com>
8983
8984         * DataGrid.cs: rename cached_currencymgr to list_manager.
8985         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8986         some.
8987         (CurrentRow, CurrentColumn): single accessors so we can make the
8988         cursor movement code a lot easier to understand.
8989         (CurrentRowIndex): implement this in terms of CurrentRow.
8990         (BeginEdit): clean this up a bit.
8991         (CancelEditing): sort out the is_editing/is_changing/is_adding
8992         stuff a little.
8993         (EndEdit): minor changes.
8994         (OnKeyDown): add a comment about a (most likely) unnecessary
8995         check.
8996         (OnMouseDown): cancel editing when we click on a row header.  And
8997         use the CurrentRow setter, not CurrentCell.
8998         (ProcessDialogKey): directly call ProcessGridKey.
8999         (UpdateSelectionAfterCursorMove): factor out this common block of
9000         code (it's used everywhere that we move the cursor by updating row
9001         or column).
9002         (ProcessGridKey): pretty substantial overhaul.  Use the
9003         CurrentRow/CurrentColumn properties to make the code a lot more
9004         readable.  Only use the CurrentCell property when we have to
9005         modify both row and column at once.  Tab behavior is still broken,
9006         and Delete is untested.
9007         (Select): if we have no selected rows, set selection_start to
9008         @row.
9009         (EditCurrentCell): rename EditCell this.  It was only ever invoked
9010         with CurrentCell as the arg, so drop the arg and rename it.
9011
9012         * DataGridColumnStyle.cs: clean up the constructors a little, and
9013         drop CommonConstructor().
9014
9015         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
9016         actually get notified when the user hits it.
9017         (ProcessKeyMessage): *substantially* simplify this method.
9018         There's no reason (that I can see) for the textbox to be making
9019         calls into the datagrid at all.  Remove all of them but the ones
9020         for Enter handling.  those will take some more work.
9021
9022         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
9023         calling HideEditBox.
9024         (HideEditBox): if we have an active textbox, render it invisible
9025         without causing a re-layout of the datagrid.
9026
9027 2006-06-05  Mike Kestner  <mkestner@novell.com>
9028
9029         * ListView.cs : fix NRE crasher when focuseditem is cleared by
9030         collection changes by resetting it to Items[0].  Fixes #78587.
9031
9032 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9033
9034         * MessageBox.cs: if the height of the text is larger than the icon_size,
9035         use that. Fixes bug #78575.
9036
9037 2006-06-05  Jackson Harper  <jackson@ximian.com>
9038
9039         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9040         node is basically responsible for drawing its entire horizontal
9041         area.  When drawing a node it draws its parent node lines if
9042         needed.
9043         - Adjust the clip area to the viewport rectangle
9044         - Fix Left/Right key handling to match MS. (It expand/collapses
9045         and moves to parents/first child but does not move selection to
9046         sibling nodes).
9047         - Fix SetTop to work with new bound calculation code
9048         - When scrollbars are no longer needed we need to reset scrolling
9049         vars and recalculate the visible order so the redraw is correct
9050         * TreeNode.cs: We can't expand/collapse nodes with no children.
9051
9052 2006-06-03  John Luke  <john.luke@gmail.com> 
9053
9054         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9055         so the colors work without dev packages
9056         
9057 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9058
9059         * Control.cs 
9060           - Select: Implemented to just use activate. Seems to match MS 
9061             behaviour closest. Documented to only do actual control walking 
9062             based on it's parameters if in a container control so I moved 
9063             the code there.
9064           - Removed selection check logic from our internal Select() method
9065         * ContainerControl.cs:
9066           - Select: Moved selection logic from Control here, since MS documents
9067             that containers obey the bool arguments. No longer calling base
9068
9069 2006-06-02  Jackson Harper  <jackson@ximian.com>
9070
9071         * TreeView.cs: If the selected node isn't changed when we get
9072         focus update the previously selected node so that we see the
9073         selection box.
9074
9075 2006-06-02  Mike Kestner  <mkestner@novell.com>
9076
9077         * ComboBox.cs: restructure grab and general mouse event handling.
9078         Make the composite control raise mouse events like it was a single
9079         control for leaves/enters/motion/up/down events.  fix dropdown list
9080         coordinate mangling and refactor it into the scrollbar subclass to
9081         reduce code duplication.  Fixes #78282 #78361 and #78457.
9082
9083 2006-06-02  Mike Kestner  <mkestner@novell.com>
9084
9085         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9086         automatically in the Control.WndProc.
9087
9088 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9089
9090         * FileDialog.cs: fix crash when running SharpChess, which sets the
9091         FilterIndex to 2 with only one Filter.
9092
9093 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9094
9095         * ToolBar.cs: add SizeSpecified property.
9096         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9097         try to figure out our real size, otherwise fallback to what the
9098         container says.
9099
9100 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9101
9102         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9103         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9104           up the event
9105
9106 2006-06-01  Mike Kestner  <mkestner@novell.com>
9107
9108         * ListView.cs: revamp the focus management in ListView.  It still
9109         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9110         better than not handling focus at all.  Will revisit when pdb feels
9111         the general focus handling is solid.  Fixes #78526.
9112
9113 2006-06-01  Jackson Harper  <jackson@ximian.com>
9114
9115         * TreeView.cs: Set the default border style in the constructor.
9116         - Move painting to use OnPaintInternal instead of capturing
9117         WM_PAINT, this is the correct way of doing things
9118         - UpdateBelow shouldn't invalidate the scrollbar area
9119         - Cap the top on update below in case the node was above the top
9120         of the viewport rectangle.
9121         - ExpandBelow and Collapse below need to obey Begin/End Update.
9122         * TreeNode.cs: Make is_expanded internal so the treenode
9123         collection can change it without firing the whole event chain.
9124         * TreeNodeCollection.cs: When clearing all the child nodes make
9125         sure to recalc the visible order.
9126         - Improve algo for remove the top node
9127
9128 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9129
9130         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9131           SendMessage directly calling window procedures, which in turn might
9132           call SetFocus()
9133
9134 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9135
9136         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9137           has focus (works around X11 sending a FocusIn after our SetFocus)
9138         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9139
9140 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9141
9142         * Mime.cs: Fix for the NET_2_0 build.
9143           NameValueCollection needs StringComparer now.
9144
9145 2006-05-31  Chris Toshok  <toshok@ximian.com>
9146
9147         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9148         return (via an out parameter) the starting X of the column.
9149         (UpdateVisibleColumn): track change to FromPixelToColumn.
9150         (HitTest): add a ColumnResize case here.
9151         (DrawResizeLine): new function, probably poorly named.
9152
9153         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9154         only need to keep one reference.
9155         (set_ListManager): same.
9156         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9157         Also, add support for HitTestType.ColumnResize.
9158         (OnMouseMove): add column resize behavior here, and change the
9159         cursor to the correct one as we move around the datagrid.
9160         (OnMouseUp): terminate the column resize if we're resizing.
9161         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9162         for the current cell.
9163         (ConnectListManagerEvents): use cached_currencymgr.
9164         (DisconnectListManagerEvents): fill this in, using
9165         cached_currencymgr.
9166         (SetCurrentCell): remove cached_currencymgr_events handling.
9167         (SetDataMember): only call DisconnectListManagerEvents if
9168         cached_currencymgr is != null.
9169         (SetDataSource): same.
9170         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9171         cached_currencymgr.
9172
9173 2006-05-31  Jackson Harper  <jackson@ximian.com>
9174
9175         * BindingManagerBase.cs: Remove somedebug code that creeped into
9176         SVN.
9177         * TreeNode.cs: We get the indent level dynamically right now, so
9178         don't track it as a member.
9179         * TreeNodeCollection.cs: Make sure all nodes added to the list
9180         have parents, treeviews/topnodes setup properly.
9181         - Don't attempt to track indent level.
9182
9183 2006-05-30  Jackson Harper  <jackson@ximian.com>
9184
9185         * BindingContext.cs: Create the currency manager tables here.
9186         This allows us to more easily create null tables (when bad data
9187         members are used), and more easily create related currency
9188         managers.
9189         * CurrencyManager.cs: All the table creation stuff is done by the
9190         binding context now.
9191         - Current should throw an exception if listposition is -1.
9192         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9193         been bound yet.
9194
9195 2006-05-30  Mike Kestner  <mkestner@novell.com>
9196
9197         * ListView.cs: allow reexpansion of zero-width column headers.
9198         Fixes #78528.
9199
9200 2006-05-28  Chris Toshok  <toshok@ximian.com>
9201
9202         * CurrencyManager.cs (get_Current): after the late binding
9203         listposition = -1 fix, we need to guard against it here and return
9204         null, otherwise we raise an exception (which is swallowed
9205         elsewhere, and breaks datagrid databinding.)
9206
9207 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9208
9209         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9210           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9211
9212 2006-05-26  Jackson Harper  <jackson@ximian.com>
9213
9214         * ControlPaint.cs:
9215         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9216         values, it's faster and it's all we care about (we don't care if
9217         the names aren't equal).
9218         * KeyboardLayouts.cs: Eliminate some dead code.
9219         - Lazy init things
9220         * X11Keyboard.cs: Lazy init keyboard detection.
9221         - Cleanup access modifiers a little.
9222
9223 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9224
9225         * XplatUIX11.cs: Once again, attempting to get layout just right.
9226
9227 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9228
9229         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9230           the sizes of each link section, that will result in sizes that
9231           match DrawString's layout (Fixes #78391)
9232
9233 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9234
9235         * FileDialog.cs: If AddExtension property is true autocomplete the
9236           extensions in SaveFileDialog correctly. Fixes bug #78453.
9237           Set MyNetwork and MyComputer to "C:\" for windows. This should
9238           fix part 8 of bug #78446 for now.
9239
9240 2006-05-26  Chris Toshok  <toshok@ximian.com>
9241
9242         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9243         invalidate the current row header if we need to, but presumably
9244         we'll invalidate the row corrsponding to the bounds or
9245         editingControl.
9246         (GridHScrolled): switch back to this method, as it's part of the
9247         public api.  *sigh*.
9248         (GridVScrolled): same.
9249         (OnMouseWheel): hack up something that more or less works.  Call
9250         GridHScrolled/GridVScrolled directly, instead of duplicating much
9251         of their code here.
9252         (EnsureCellVisibility): reinstate a bunch of this code, since we
9253         can't just set the scrollbar Value and expect to do all the work
9254         in the ValueChanged handler.  Also, Call Update() after scrolling
9255         in one direction so the other XplatX11.ScrollWindow call has the
9256         proper stuff in the proper places.
9257         (EditCell): set is_editing to true before calling .Edit.
9258
9259         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9260         don't bother comparing first.
9261         (OnKeyPress): call grid.ColumnStartedEditing before calling
9262         base.OnKeyPress.  this will set is_changing and invalidate the row
9263         header if necessary.
9264         (ProcessKeyMessage): for WM_CHAR messages, call
9265         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9266         and WM_KEYDOWN.
9267         
9268         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9269         it's done in the DataGrid.
9270         (NextState): call grid.ColumnStartedEditing, which takes care of
9271         invalidating the row header (and setting is_changing).
9272
9273         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9274         here.  it's done in the DataGrid.
9275
9276 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9277
9278         * Control.cs: allow changing the cursor when the mouse position is
9279         out of bounds but Capture is set.
9280         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9281         linklabel but released somewhere else.
9282
9283 2006-05-25  Jackson Harper  <jackson@ximian.com>
9284
9285         * TreeView.cs: When we get focus if there is no selected node make
9286         it the top node
9287         - Remove some uneeded setup code from Draw.
9288         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9289         a new node is inserted make the new node the top.
9290         * XplatUIX11.cs:
9291         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9292         be used (should be faster).
9293         
9294 2006-05-25  Chris Toshok  <toshok@ximian.com>
9295
9296         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9297         problem with the last commit.
9298
9299 2006-05-25  Chris Toshok  <toshok@ximian.com>
9300
9301         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9302         need the invalidate call here, while scrolling right-to-left via
9303         the left arrow key (i.e. moving the editing cell while scrolling).
9304
9305         * DataGrid.cs (.ctor): remove the initialization of
9306         ctrl_pressed/shift_pressed.  We no longer track them using key
9307         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9308         to using ValueChanged handlers on the scrollbars instead of
9309         Scrolled event handlers.  This simplifies a bunch of the scrolling
9310         code.
9311         (GridHValueChanged): rename from GridHScrolled, and change it to
9312         work with the new event args.
9313         (GridVValueChanged): same.
9314         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9315         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9316         selected cell.
9317         (ProcessGridKey): correct all the keyboard navigation stuff I
9318         could find.  Ctrl up/down/left/right/home/end work now.
9319         (EnsureCellVisibility): correct method name spelling.  Also,
9320         simplify this a touch by not explicitly calling the
9321         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9322         scrollbar value.
9323         (OnKeyUpDG): no need for this method now.
9324         
9325 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9326
9327         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9328         Fixes bug #78392.
9329
9330 2006-05-25  Chris Toshok  <toshok@ximian.com>
9331
9332         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9333         r61019.
9334
9335 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9336
9337         * Application.cs: Moved setting of is_modal and closing to before
9338           we create the control, to allow the event handlers called as a
9339           result of creation affect closing. Also removed Gonzalo's previous
9340           change to setting DialogResult, the behaviour has been moved to 
9341           Form.ShowDialog()
9342         * Form.cs: 
9343           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9344             handle it instead
9345           - ShowDialog(): If no dialog result is set, we need to return Cancel
9346           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9347             the close is cancelled
9348
9349 2006-05-25  Jackson Harper  <jackson@ximian.com>
9350
9351         * StatusBar.cs: We only need to update the sizes of the other
9352         panels when we have auto size contents.  Also we are only updating
9353         the contents of the panel, not the borders, so compensate for the
9354         border width (TODO: get this width from the theme somehow).
9355         * TreeView.cs: Scrollable is true by default
9356         - Use invalidate instead of refresh where needed
9357         - Factor the scrollable value into scrollbar updating
9358         - Update the scrollbars if the Scrollable property is altered
9359         - Update the selected node if its ImageIndex is changed
9360         - Handle null nodes in UpdateNode (mainly so we don't have to
9361         check if selected is null when updating it
9362         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9363         are factored into the visible count
9364         - Use VisibleCount for clarity in the code
9365         - When the font is changed we need to recurse through all the
9366         nodes and invalidate their sizes
9367         
9368 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9369
9370         * Application.cs: set the DialogResult to fixed when the main form is
9371         hidden or destroyed while being modal.
9372
9373 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9374
9375         * Theme.cs: Use Tangoified messagebox icons. 
9376
9377         (GetSizedResourceImage): Also cope with width = 0 and do not
9378         trigger a warning in that case (0 means "give me your icon from
9379         the resouce, no special size needed).
9380
9381 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9382
9383         * Application.cs: Leave runloop if the the main modal form is 
9384           hidden (fixes #78484)
9385
9386 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9387
9388         * BindingContext.cs : reject null datasource in Contains() and
9389           Item[].
9390         * CurrencyManager.cs : check data_member validity when data_source
9391           is dataset. When it is late binding, the initial position is -1.
9392
9393 2006-05-24  Jackson Harper  <jackson@ximian.com>
9394
9395         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9396         inserted nodes that aren't visible.  This changes the
9397         max_visible_order which confuses scrollbar settings.
9398         - Use the enumerator to get the prev node instead of duplicating
9399         code.
9400         * TreeView.cs: Use new method for setting scrollbar values
9401         - Don't set the bounds every time the scrollbar is updated
9402         - When updating below the root node use an invalidate instead of a
9403         refresh to prevent the child controls (scrollbars) from being
9404         refreshed. (UpdateBelow still needs to be reworked anyways).
9405         - Reenable SetBottom now that visible orders are set correctly,
9406         added some debug code incase we ever get bad values there again.
9407         - Set the scrollbar max to 2 less then the max value, this
9408         compensates for the max value being one above the node count, and
9409         for scrollbars adding one extra "notch".
9410         - When drawing image nodes if there is an imagelist we draw the
9411         first image in the list if the supplied image index is out of the
9412         image list's bounds.
9413         
9414 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9415
9416         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9417           we receive a size change from the WM (Fixes #78503)
9418
9419 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9420
9421         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9422           rectangle (Fixes #78501)
9423
9424 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9425
9426         * ButtonBase.cs: 
9427           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9428             as a bitfield.
9429           - Fixed MouseMove to no longer switch pressed state unless the left
9430             mouse button is pressed. Atsushi provided the original patch (#78485)
9431           
9432 2006-05-24  Jackson Harper  <jackson@ximian.com>
9433
9434         * ScrollBar.cs: New internal methods that allow us to change a
9435         couple values on the scrollbar (the most common case is maximum
9436         and large change) without getting multiple invalidates.
9437
9438 2006-05-24  Chris Toshok  <toshok@ximian.com>
9439
9440         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9441         (Edit): save off the original state in oldState, and set
9442         grid.is_editing to true.
9443         (OnKeyDown): abort editing if escape is pressed.  also, call
9444         NextState if space is pressed.
9445         (OnMouseDown): call NextState.
9446         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9447         here.  Also, only invalidate the row header once (on the initial
9448         is_changing switch) to save on redraws.
9449
9450 2006-05-24  Chris Toshok  <toshok@ximian.com>
9451
9452         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9453         if the value in the cell is different than it was before.  This
9454         keeps us from triggering a layout when we move around a datarid
9455         with a highlighted cell.
9456         (Edit): suspend layout when creating/positining the text box, and
9457         resume passing false so we don't ever actually re-layout.
9458         (ReleaseHostedControl): same.
9459         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9460
9461         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9462         control-key sequences should go to the datagrid - remove that
9463         lock.  Also, modify the conditions under which we move between
9464         cells when moving the cursor within a cell, and remove the "this"
9465         and "base" from field accesses.  We weren't even consistent, given
9466         they all were in the base class.
9467
9468 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9469
9470         * Binding.cs : (.ctor)
9471           An obvious NRE fix for BindingTest.CtorNullTest().
9472
9473 2006-05-23  Chris Toshok  <toshok@ximian.com>
9474
9475         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9476         them between lines.  This fixes some quirks editing cells in the
9477         datagrid.
9478
9479 2006-05-23  Jackson Harper  <jackson@ximian.com>
9480
9481         * TreeView.cs: Use begin/end update when doing expand/collapse all
9482         so that we don't get flicker on the scrollbar.
9483
9484 2006-05-23  Jackson Harper  <jackson@ximian.com>
9485
9486         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9487         treenode calculations to be independant of the painting code. To
9488         do this nodes track a visible order which is calculated by the
9489         treeview.
9490         - Call new methods for expanding/collapsing nodes.  These methods
9491         use scrollwindow so we don't have to update everything below the
9492         node.
9493         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9494         need to update nodes when drawing anymore or calculate scrollbar
9495         stuff.
9496         - Added new methods for expanding/collapsing nodes. These methods
9497         use ScrollWindow so as to not have to redraw all the nodes below.
9498         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9499         we add/remove nodes or sort.
9500         - Handle removing the selected and the top node properly.
9501
9502 2006-05-23  Chris Toshok  <toshok@ximian.com>
9503
9504         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9505         maybe this should actually happen in the datagrid code?
9506         (EndEdit): no need to invalidate anything, given that
9507         ReleaseHostedControl causes the datagrid to relayout, which
9508         invalidates everything anyway.
9509
9510         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9511         in SetCurrentCell).
9512         (set_SelectionBackColor): call InvalidateSelection instead of
9513         Refresh.
9514         (set_SelectionForeColor): same.
9515         (BeginEdit): Flesh this out a bit.
9516         (CancelEditing): only do any of this if we're editing/adding.
9517         (EndEdit): same.
9518         (OnMouseDown): there's no need to cancel editing here, it's done
9519         in SetCurrentCell.
9520         (SetCurrentCell): only invalidate the current row header if it's a
9521         different row than the new one.
9522         (ShiftSelection): fix this to work like MS does.
9523         (ResetSelection): factor out the invalidation of selected_rows to
9524         InvalidateSelection.
9525         (SetDataSource): cancel any editing that's going on.
9526
9527         * DataGridColumnStyle.cs
9528         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9529         call the non-interface version.
9530
9531         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9532         header rectangle with the clip rectangle so we don't redraw the
9533         entire header for just a small area.  Gets rid of the last flicker
9534         when horizontally scrolling.
9535         (DataGridPaintRow): same.
9536
9537 2006-05-23  Mike Kestner  <mkestner@novell.com>
9538
9539         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9540         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9541         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9542         Critical bug report.
9543
9544 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9545
9546         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9547           and this fixes #78493
9548
9549 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9550
9551         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9552         size is not found.  
9553         
9554         * FileDialog.cs: Do not change the background for the side bar as
9555         it wont work nicely with the theme, and also reduces the artifacts
9556         in rendering the icons (which I want to fix too).
9557
9558         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9559         resources, not resgen resources. 
9560
9561         (PlatformDefaultHandler): Pull images using the new API.
9562
9563 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9564
9565         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9566           a reference to the hwnd and will not remove it unless there are
9567           no pending exposures (fixes #78341)
9568         * XplatUI.cs: Improved debug
9569
9570 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9571
9572         * MenuAPI.cs : don't handle OnClick event when it was not the left
9573           button. Fixed bug #78487.
9574
9575 2006-05-23  Mike Kestner  <mkestner@novell.com>
9576
9577         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9578         prefer submenus to the top menu for item lookup, to avoid popping down
9579         top-row items.
9580
9581 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9582
9583         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9584           Graphics.FillRectangle as the visual results are really bad (even
9585           on win). We now draw perfect arrows (and perfect shadows when the
9586           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9587           Pen.DashPattern to draw the dots of each line.
9588
9589 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9590
9591         * FileDialog.cs: Update the filename combobox when navigating through
9592           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9593
9594 2006-05-22  Mike Kestner  <mkestner@novell.com>
9595
9596         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9597         Fixes #78463.
9598
9599 2006-05-22  Mike Kestner  <mkestner@novell.com>
9600
9601         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9602         requests. Fix a misspelled parameter and a copy paste exception error
9603         in Select.
9604
9605 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9606
9607         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9608           to get the same width/height (5/13) on X11 as the default font has on
9609           win32. This means that our DefaultFont emSize is smaller than the 
9610           the MS SWF equivalent (even thought the width/height stays the same)
9611
9612 2006-05-20  Jackson Harper  <jackson@ximian.com>
9613
9614         * MdiClient.cs:
9615         * MdiWindowManager.cs:
9616         * InternalWindowManager.cs: Make sure to use the border width from
9617         the theme.
9618
9619 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9620
9621         * PrintDialog.cs: Implements printer details
9622
9623 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9624
9625         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9626           Fixes part 1 and 2 of bug #78446
9627
9628 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9629
9630         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9631           instead of sticking to the first ever calculated value
9632
9633 2006-05-19  Mike Kestner  <mkestner@novell.com>
9634
9635         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9636         PointToClient, since Capture is set. Fixes #78344.
9637
9638 2006-05-19  Mike Kestner  <mkestner@novell.com>
9639
9640         * ListView.cs: match MS behavior in Details view where items are not
9641         drawn if Columns.Count == 0. 
9642         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9643         Use a separate pen to draw the check, since changing the width affects
9644         the box as well.  Fixes #78454.
9645
9646 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9647
9648         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9649         exception should throw the name of the invalid argument.
9650
9651         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9652         there are no files listed. 
9653
9654 2006-05-18  Jackson Harper  <jackson@ximian.com>
9655
9656         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9657         up.
9658
9659 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9660
9661         * Control.cs: Brought back our old UpdateZOrder method as a private
9662           function and switched our calls from UpdateZOrder to the new one.
9663           This fixes the Paint.Net canvas disappearing bug.
9664
9665 2006-05-18  Jackson Harper  <jackson@ximian.com>
9666
9667         * Theme.cs:
9668         * ThemeWin32Classic.cs:
9669         * InternalWindowManager.cs: Move the drawing into the theme,
9670         expose everything the theme should need from the window manager.
9671
9672 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9673
9674         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9675           from the call to NativeWindow to avoid walking up the parent chain
9676           further than needed (speeds up setting cursors and avoids setting
9677           the wrong cursor if a parent has another cursor defined)
9678         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9679           the icon as hotspot, not what's contained as hotspot in the icon
9680           file. This fixes the perceived drawing offset seen with Paint.Net
9681         
9682 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9683
9684         * XplatUIX11.cs: 
9685           - Store the calculated rectangle in Hwnd object and use it when 
9686             setting the client size
9687           - Force Toolwindows to always be type Dock, to ensure they're on top
9688
9689 2006-05-18  Mike Kestner  <mkestner@novell.com>
9690
9691         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9692         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9693         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9694         Substantial refactoring to remove confusing nested classes. Coding
9695         standard and Get+Set->property refactorings.  Shift to index based
9696         highlighting in ComboListBox instead of constantly using IndexOf and
9697         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9698         in FileDialog growth.  Draw borders manually since Simple mode needs
9699         to look like two independent controls.  Make listbox border
9700         conditional to DropDownStyle.  Improved OwnerDraw support.
9701
9702 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9703
9704         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9705         Don't set the disposed graphics to null, so we can throw the "right"
9706         exception if the graphics is reused later (added a flag to avoid 
9707         double disposing). Some behaviours are different under 2.0 and are
9708         filled under bug #78448.
9709
9710 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9711
9712         * Control.cs: When double-buffering is enabled, we need to reset
9713           our graphics context between paint calls. Otherwise, any 
9714           transformations and other alterations on the context will 
9715           become cumulative (#77734)
9716
9717 2006-05-18  Mike Kestner  <mkestner@novell.com>
9718
9719         * ListView.cs: do focused item selection like MS on clicks. 
9720         Rework focus handling for ItemControl so LostFocus invalidates as
9721         well.
9722         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9723         the ListView ItemControl has focus.
9724
9725 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9726
9727         * XplatUIX11.cs: If client_window ends up being width or height zero
9728           due to border settings, move it off window inside whole_window (#78433)
9729
9730 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9731
9732         * Mime.cs: Shrink the mime file cache correctly.
9733
9734 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9735
9736         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9737
9738 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9739
9740         * XplatUIX11.cs (AddExpose): More sanity checks
9741
9742 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9743
9744         * XplatUIX11.cs:
9745           - AddExpose: Don't add expose ranges outside the size of our
9746             window
9747           - Cast opacity values to Int32 to avoid crashes with certain
9748             values
9749           - Added disabled code paths that protect against illegal cross-
9750             thread painting (Developers.exe)
9751
9752 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * ProgressBar.cs: Invalidate the control when it's resized
9755           since block size is based on control size. (#78388)
9756
9757 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9758
9759         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9760         of setting the incoming argument to the "reset" value, we set the
9761         this.datamember to string.empty (before we were invalidating the
9762         incoming data).   
9763
9764         Fixes 78420
9765
9766 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9767
9768         * Form.cs: Only apply transparency settings after the form
9769           is created. (Fixes #77800)
9770
9771 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9772
9773         * ApplicationContext.cs: Grab the HandleDestroyed event so
9774           we know when to fire OnMainFormClosed 
9775
9776 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9777
9778         * Application.cs: Introduced sub-class to allow tracking of
9779           threads and centralized triggering of the event mess for
9780           ThreadExit, AppExit, etc..  (#76156)
9781
9782 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9783
9784         * MimeIcon.cs:
9785           - Do not return a null icon index value for a mime subclass.
9786             Instead try the main mime type class too.
9787           - Seems that some newer distributions don't have a link to some
9788             gnome default icons anymore. So check the default gnome dir too.
9789           
9790
9791 2006-05-16  Jackson Harper  <jackson@ximian.com>
9792
9793         * MdiClient.cs: Don't paint the parent background image if we have
9794         our own background image.
9795
9796 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9797
9798         * Control.cs:
9799           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9800             controls, all filled controls are supposed to overlap (#78080)
9801           - UpdateZOrder is supposed to update the control's z-order in the
9802             parent's z-order chain. Fixed to behave like that
9803           - BringToFront: Removed obsolete code
9804           - SendToBack: Simplyfied
9805           - SetChildIndex: Trigger layout calculations when Z-order changes
9806             since layout is done by z-order
9807
9808 2006-05-16  Chris Toshok  <toshok@ximian.com>
9809
9810         [ fixes bug #78410 ]
9811         * DataGrid.cs (set_AlternatingBackColor): use
9812         grid_drawing.InvalidateCells instead of Refresh().
9813         (set_BackColor): call grid_drawing.InvalidateCells.
9814         (set_BackgroundColor): use Invalidate instead of Refresh.
9815
9816         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9817         invalidate the cell area.
9818
9819 2006-05-15  Chris Toshok  <toshok@ximian.com>
9820
9821         [ fixes bug #78011 ]
9822         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9823         on to DataGridPaintRow.
9824         (DataGridPaintRow): take a clip argument, and only draw the cells
9825         which intersect it.  same with the not_usedarea.
9826
9827         * Theme.cs (DataGridPaintRow) add @clip parameter.
9828
9829         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9830         XplatUI.ScrollWindow.
9831         (ScrollToRow): same.
9832
9833         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9834         with last column which was causing a gray swath to appear with the
9835         XplatUI.ScrollWindow code.
9836
9837 2006-05-15  Chris Toshok  <toshok@ximian.com>
9838
9839         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9840         use XplatUI.ScrollWindow.
9841         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9842
9843 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9844
9845         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9846
9847 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9848
9849         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9850           file since there are no equivalent X11 cursors
9851
9852 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9853
9854         * MonthCalendar.cs : DateTimePicker should reflect selected date
9855           on mouse*up*, not mouse*down*. Fixed originally reported part of
9856           bug #76474.
9857
9858 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9859
9860         * TabControl.cs : When argument index is equal or more than tab
9861           count, just ignore. Fixed bug #78395.
9862
9863 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9864
9865         * Control.cs: Dispose all child controls when control is diposed (#78394)
9866
9867 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9868
9869         * ColorDialog.cs: Finally it is possible to select the color with
9870           the text boxes
9871
9872 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9873
9874         * PrintDialog.cs: Fix typo
9875
9876 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9877
9878         * PrintDialog.cs: PrintDialog is not resizable
9879         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9880           color. Made some ToolBar drawing methods protected virtual.
9881
9882 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9883
9884         * PrintDialog.cs: Implementation of the PrintDialog
9885
9886 2006-05-12  Chris Toshok  <toshok@ximian.com>
9887
9888         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9889         thumb, instead use MoveThumb.  This has the side effect of making
9890         most of the other thumb moving machinery use MoveThumb as well.
9891         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9892         need to actually invalidate the rectangle where the new thumb will
9893         go.
9894         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9895         We force an Update() after, so it's not as fast as it could be,
9896         but at least there's zero flicker and no droppings.
9897         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9898         (UpdateThumbPos): add another argument (dirty), which says whether
9899         or not to calculate/add dirty regions which we later invalidate.
9900         For cases where we know we're going to use MoveThumb, we pass
9901         false for this.  Otherwise, pass true.
9902
9903 2006-05-12  Jackson Harper  <jackson@ximian.com>
9904
9905         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9906         the status bar.
9907         
9908 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9909
9910         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9911           and GetClipRegion methods and UserClipWontExposeParent property.
9912         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9913           overriding UserClipWontExposeParent property, setting to false, since
9914           Win32 handles the required expose messages to draw our clipped parent
9915           areas internally
9916         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9917           PaintEventStart to set the user clip region if set.
9918         * Control.cs: 
9919           - Now internally tracking the Region for the control since we need to
9920             store it if the handle is not yet created and only set it when it
9921             becomes created. Before setting the region forced handle creation
9922           - Added code to draw the parents underneath a user-clipped region
9923         * Hwnd.cs: Added UserClip property
9924
9925 2006-05-12  Chris Toshok  <toshok@ximian.com>
9926
9927         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9928         (set_Maximum): same.
9929         (set_Minimum): same.
9930         (set_SmallChange): same.
9931         (OnMouseUpSB): remove the call to refresh when releasing the
9932         thumb.  We shouldn't need it.
9933         
9934 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9935
9936         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9937         AutoSize set to None, we do not need to relayout everything, we
9938         just need to invalidate the current region.
9939
9940         (Draw): Do not draw the entire ClientArea, just redraw the
9941         clip area being passed.
9942
9943         * MdiClient.cs: Make MdiClient constructor with the Form argument
9944         internal. 
9945
9946 2006-05-12  Jackson Harper  <jackson@ximian.com>
9947
9948         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9949         parents background image,  but strangely not their own.
9950         - (DrawStatusBarPanel): Take into account horizontal alignment
9951         when drawing the strings and icons.
9952
9953 2006-05-12  Mike Kestner  <mkestner@novell.com>
9954
9955         * ListBox.cs: avoid invalidations for focus when the collection is
9956         empty. 
9957
9958 2006-05-12  Chris Toshok  <toshok@ximian.com>
9959
9960         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9961         invalidate the entire thumb area.  Call InvalidateDirty which
9962         limits the redraw to the thumb itself and surrounding pixels.
9963
9964         * XplatUIX11.cs (ScrollWindow): optimize copying.
9965         
9966 2006-05-12  Chris Toshok  <toshok@ximian.com>
9967
9968         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9969         Figure out the positioning/layout in a single pass instead of
9970         multiple recursive invocations.  Speeds up the initial display of
9971         the data grid.  Also, make many things private that were
9972         originally public but unused outside this class.
9973
9974 2006-05-11  Jackson Harper  <jackson@ximian.com>
9975
9976         * MdiClient.cs: Improved layout code.
9977
9978 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9979
9980         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9981           not SelectedObject.
9982
9983 2006-05-11  Chris Toshok  <toshok@ximian.com>
9984
9985         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9986         union of that will always be {0,0,width,height}.
9987
9988 2006-05-11  Jackson Harper  <jackson@ximian.com>
9989
9990         * Form.cs: Match MS's DefaultSize for forms (they must have
9991         changed the size in sp2).
9992
9993 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9994
9995         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9996
9997 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9998
9999         * TextControl.cs : Fixed bug #78109. This incorrect position
10000           comparison caused crash on automatic line split.
10001         * TextBoxBase.cs : reduce duplicate code.
10002
10003 2006-05-10  Jackson Harper  <jackson@ximian.com>
10004
10005         * MdiClient.cs: Active form is only sent to the back when using
10006         the Next form functionality, when a form is clicked the current
10007         active shouldn't be sent to the back.
10008         - Layout the mdi windows when the container is first made visible.
10009         * Form.cs: Give the MdiClient a ref to the containing form when we
10010         create it.
10011         
10012 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10013
10014         * LinkLabel.cs : link_font could be uninitialized, so populate one
10015           before actual use. Fixed bug #78340.
10016
10017 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10018
10019         * XplatUIX11.cs : clipboard format native value is IntPtr.
10020           Fixed bug #78283.
10021
10022 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10023
10024         * Control.cs: 
10025           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
10026             which is passed up the parent chain by DefWndProc
10027           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
10028             to DefWndProc (#77956)
10029         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
10030
10031 2006-05-10  Jackson Harper  <jackson@ximian.com>
10032
10033         * MdiClient.cs: We need to remove the controls from the mdi
10034         collection, when we close the window.
10035         * MdiWindowManager.cs: Special handling of closing mdi windows.
10036         * InternalWindowManager.cs: Make the close method virtual so the
10037         mdi window manager can handle it specially.
10038
10039 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10040
10041         * DataGrid.cs:
10042           - Recalculate grid when the data source has changed
10043           - Matches styles provided by user from all data sources types
10044         * DataGridTableStyle.cs: For columns that provided by the user set the
10045         with the preferred value is there was unassigned.
10046         * CurrencyManager.cs: throw OnItemChanged event
10047
10048 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10049
10050         * PictureBox.cs: Don't animate until handle is created. Start animation
10051           when handle is created.
10052
10053 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10054
10055         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10056           current codebase.
10057         * XEventQueue.cs: We don't need to provide the extra info
10058
10059 2006-05-10  Jackson Harper  <jackson@ximian.com>
10060
10061         * MdiClient.cs: If the mdi clients parent form has a background
10062         image set, we draw that background image for the mdi area's
10063         background.
10064
10065 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10066
10067         * TextBoxBase.cs: Set IBeam cursor (#78347)
10068
10069 2006-05-10  Mike Kestner  <mkestner@novell.com>
10070
10071         * ToolBar.cs: fix some text padding issues with ButtonSize
10072         calculation. Update the default size to match MS documentation.
10073         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10074         button size. Fixes #78296.
10075
10076 2006-05-10  Mike Kestner  <mkestner@novell.com>
10077
10078         * ListBox.cs: use is_visible for scrollbar positioning in case the
10079         control isn't on screen yet.  Fix off by one with Right vs Width
10080         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10081         
10082 2006-05-10  Jackson Harper  <jackson@ximian.com>
10083
10084         * X11Dnd.cs: Drop to a control with another control on top of it.
10085         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10086         be modified in click handlers. TODO: Look for similar problems in
10087         other controls.
10088
10089 2006-05-09  Jackson Harper  <jackson@ximian.com>
10090
10091         * Form.cs: Window managers need the old window state when setting
10092         window state now.
10093         * InternalWindowManager.cs: Allow the base mdi window manager to
10094         handle more of the MDI only stuff (like maximize buttons).
10095         * MdiWindowManager.cs: Fix some snafus in changing the window
10096         state.  Add all the menu functionality, for both popup and
10097         maximized menus.
10098         * MdiClient.cs: When a new form is selected the currently
10099         activated form is sent to the back, this matches MS.
10100         - Implement a new method to activate the next mdi child window.
10101
10102 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10103
10104         * Control.cs: 
10105           - Added new InternalCapture method to allow controls to prevent
10106             the capture behaviour on the click handlers
10107           - Switched to use InternalCapture
10108         * ComboBox.cs:
10109           - Using InternalCapture to prevent mouse captures from being released
10110             on mouse button release (Fixes #78100)
10111         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10112           returns Form borders if a caption is present. (Fixes #78310)
10113
10114 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10115
10116         * TreeNode.cs: Changed serialization .ctor to not require every field
10117           to be present. (#78265)
10118         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10119
10120 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10121
10122         * MimeIcon.cs: for is faster than foreach for strings.
10123
10124 2006-05-05  Mike Kestner  <mkestner@novell.com>
10125
10126         * CheckedListBox.cs: update check handling code to not use selected.
10127         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10128         behavior for visual feedback, motion response, shift/ctrl handling,
10129         and properly deal with all 4 selection modes. Updates to bounds
10130         handling logic.  Add scroll wheel support. [Fixes #77842]
10131
10132 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10133
10134         * ListView.cs:
10135           - Moved adding of Implicit controls into .ctor. That way, subsequent
10136             creation of the controls will not cause them to think they are 
10137             toplevel windows (fixes #78200 header problem)
10138           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10139           - Switched visibility setting of header control to use internal field
10140             to avoid triggering handle creation
10141           - Now checking if handle is created before causing a refresh when items
10142             are added (This makes us now match handle creation time with MS)
10143         * Splitter.cs: Removed loading of private splitter cursor, switched to
10144           Cursors version now that that is loading the right ones
10145         * Cursors.cs: Load proper splitter cursors from resources
10146         * Cursor.cs: Added second method of loading resource cursors for the 
10147           VS.Net users amongst us
10148
10149 2006-05-05  Mike Kestner  <mkestner@novell.com>
10150
10151         * ListView.cs: give header_control a minimum size based on the
10152         ListView size.
10153
10154 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10155
10156         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10157           window seems to do that with metacity, so set that type. (#78120)
10158
10159 2006-05-05  Mike Kestner  <mkestner@novell.com>
10160
10161         * ListViewItem.cs: fix Details mode checkbox layout bug.
10162         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10163         at the end of the header, if it exists. [Fixes for #78200]
10164
10165 2006-05-04  Jackson Harper  <jackson@ximian.com>
10166
10167         * MdiClient.cs: Add a helper property to get the container form.
10168         * MdiWindowManager.cs: We have to make sure to use the menu origin
10169         when drawing the icons and buttons, this fixes maximized window
10170         icons/buttons on win32.
10171         * InternalWindowManager.cs: Reset the restore captions when a
10172         window goes from Maximized to Minimized and vice versa. Move the
10173         DrawMaximizedButtons into the MdiWindowManager source, tool
10174         windows can't be maximized. NOTE: This could use a little
10175         refactoring if time ever permits.
10176         
10177 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10178
10179         * TextBox.cs: Add MWFCategoryAttributes
10180         * TextBoxBase.cs: Add MWFCategoryAttributes
10181         * Form.cs: Add MWFCategoryAttributes
10182
10183 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10184
10185         * Control.cs: Add MWFCategoryAttributes
10186         * ScrollableControl.cs: Add MWFCategoryAttributes
10187
10188 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10189
10190         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10191           Divider is true. Fix a little glitch in PropertyToolBar
10192           drawing code
10193
10194 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10195
10196         * Control.cs:
10197           - Dispose: Call base.Dispose, this causes the disposed event
10198             to be fired (and probably other, more important stuff)
10199           - SetVisibleCore: Set is_visible to true after creating the
10200             window so that the window still gets created invisible (if
10201             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10202             to generate a WM_ACTIVE message
10203         * Form.cs: Call Dispose when we want to destroy the window, instead of
10204           just destroying the handle (Dispose will do that for us)
10205         * XplatUIX11.cs:
10206           - RootWindow also needs a queue, so we can properly process the
10207             property change events from RootWindow (like Activate)
10208           - Generatic synthetic WM_ACTIVE message when the active window is
10209             being destroyed
10210
10211 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10212
10213         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10214           bounds are changed
10215
10216 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10217
10218         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10219           for determining width and height (image might not be assigned if
10220           we're drawing an imagelist)
10221
10222 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10223
10224         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10225         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10226           height from system
10227         * Theme.cs: No longer returns hardcoded menu height, instead calls
10228           new driver method
10229         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10230           on MS (# 78257)
10231
10232 2006-05-01  Mike Kestner  <mkestner@novell.com>
10233
10234         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10235
10236 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10237
10238         * TextBoxBase.cs: Removed Fixme
10239         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10240
10241 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10242
10243         * XplatUIX11.cs:
10244           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10245             the rectangle relative to the parent, considering borders. We
10246             don't really want that.
10247           - ScrollWindow: Fixed warning to be more understandable
10248         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10249           scrollbars and scroll only the visible area
10250         * RichTextBox.cs: Removed debug output
10251
10252 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10253
10254         * NumericUpDown.cs (Text): Just use base
10255         * UpDownBase.cs: Ensure txtView is created before using it
10256
10257 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10258
10259         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10260           casting to IntPtr to avoid 64bit overflow errors
10261
10262 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10263
10264         * Control.cs:
10265           - AllowDrop: Don't force handle creation.
10266           - CreateHandle: Added call to tell driver if we're allowed to drop
10267
10268 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10269
10270         * FileDialog.cs: Remember the last directory not only for the
10271           current instance but also for new FileDialog instances.
10272
10273 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10274         
10275         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10276           broke sending async messages
10277
10278 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10279
10280         * XplatUIX11.cs:
10281           - ScrollWindow: Fixed method. We finally generate expose events again
10282             for scrolled areas. This was causing 'garbage' when scrolling
10283             textbox and other controls that used ScrollWindow
10284           - Switched from using the regular queue for paint events to the MS 
10285             model of 'generating' paint events when the queue is empty.
10286             We use the new XQueueEvent.Paint subclass to store which windows
10287             need painting.
10288           - AddExpose now takes the x/y/width/height of the exposed area
10289             and inserts the window into the paint queue if not already there
10290           - InvalidateWholeWindow: Switched to use new AddExpose method
10291           - UpdateMessageQueue: Added which queue to monitor for paint events
10292           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10293             the unlikely case nothing above handles it. We reset the expose
10294             pending states to get them off the queue.
10295           - GetMessage: Now pulls a paint event if no other events are in the
10296             queue
10297           - Invalidate: Switched to new AddExpose method
10298           - PeekMessage: Updated to understand pending paint events
10299           - UpdateWindow: Fixed logic bug. We were only updating if the window
10300             didn't need updating. Also switched to sending WM_PAINT directly,
10301             like MS does.
10302         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10303           and random access Remove(). The random access is needed to handle
10304           UpdateWindow() where a WM_PAINT is sent directly without accessing
10305           the queue.
10306         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10307           allow for better feedback when scrolling. Scrollbars are small and
10308           the immediate update should make it 'feel' more responsive without
10309           slowing things down. ScrollBar still needs it's invaliate logic
10310           updated to not always invalidate the whole bar on certain changes.
10311
10312 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10313
10314         * Control.cs:
10315         (BackColor): if the control does not support a transparent background,
10316         return the default backcolor when the parent backcolor is transparent.
10317
10318 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10319
10320         * Application.cs: Updated to new StartLoop/GetMessage API
10321         * RichTextBox.cs: Provide some output on RTF parsing errors
10322         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10323           new queue_id argument to GetMessage and PeekMessage to allow faster
10324           handling of per-thread queues in drivers.
10325         * Hwnd.cs: Added Queue tracking and property
10326         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10327         * XEventQueue.cs: Added thread trackingA
10328         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10329         * XplatUIX11.cs:
10330           - Implemented new per-thread queue
10331           - GetMessage: Fixed return/break behaviour on several cases. We were
10332             returning stale messages in some cases, instead of just processing
10333             the next message
10334
10335 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10336
10337         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10338
10339 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10340
10341         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10342           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10343
10344 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10345
10346         * PropertyGridView.cs: Fix drop down width.
10347
10348 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10349
10350         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10351           a mess in DrawToolBar, so I removed one of them.
10352
10353 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10354
10355         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10356           needed (clip). Otherwise we get artifacts.
10357
10358 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10359
10360         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10361           dimension is fixed
10362         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10363           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10364         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10365           if it matches the scale base font (avoids unneeded scaling)
10366
10367 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10368
10369         * X11DesktopColors.cs: One gtk_init_check should be enough
10370
10371 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10372
10373         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10374           match MS behaviour
10375
10376 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10377
10378         * TextBoxBase.cs: 
10379           - Generate OnTextChanged for Backspace even if we're only deleting
10380             the current selection
10381           - When setting the Text property, only select all text if the
10382             control does not have focus when it is being set. Otherwise
10383             just place the cursor at the beginning of the control
10384
10385 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10386
10387         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10388           Added a little helper to draw PropertyGrid ToolBar with a different
10389           border and a different BackColor.
10390         * PropertyGrid.cs: Some background parts didn't get painted with the
10391           correct background color. Added a class that helps us to draw the
10392           correct border for PropertyGridView and a class that helps us to
10393           draw ToolBars with a different backcolor
10394         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10395
10396 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10397
10398         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10399         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10400
10401 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10402
10403         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10404           into the palette entries. Also, since we're working on a copy
10405           we needed to copy the palette back onto the bitmap.
10406         * Cursor.cs: Same fix as XplatUIWin32.cs.
10407
10408 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10409
10410         * ImageListStreamer.cs: Need to read the var (or we're off)
10411
10412 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10413
10414         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10415           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10416           TextBoxBase.cs: Unused var fixes
10417         * AxHost.cs: Small 2.0 fix
10418         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10419           as it seems that is what at least Metacity expects. This will make
10420           icons show up on 64bit platforms. We still have some 64bit size
10421           issues, though, since the startup app window size still won't match.
10422
10423 2006-04-25  Mike Kestner  <mkestner@novell.com>
10424
10425         * *.cs: cleanup newly reported exception var unused warnings.
10426
10427 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10428
10429         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10430           ms
10431
10432 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10433
10434         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10435           image. The image position is always the same, no matter if the
10436           button is pressed or not.
10437
10438 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10439
10440         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10441           selection and set the correct filename for SaveFileDialog.
10442           Patch by Emery Conrad.
10443
10444 2006-04-24  Mike Kestner  <mkestner@novell.com>
10445
10446         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10447         check for item.X outside the ClientRect instead of item.Y. Fixes
10448         #78151.
10449
10450 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10451
10452         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10453         trust that value blindly and do some sanity check. Fixes bug #77814.
10454
10455 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10456
10457         * ImageListStreamer.cs: save the mask as a 1bpp image.
10458
10459 2006-04-21  Mike Kestner  <mkestner@novell.com>
10460
10461         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10462         pass Checked and Indeterminate to the Theme Engine. Improve
10463         encapsulation with ListBox.
10464         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10465         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10466         nested types.  Move all CheckState functionality to CheckedListBox.
10467         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10468         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10469         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10470         single base list. Fix scrollbar sizing and placement to mirror MS.
10471         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10472         used.
10473         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10474         for CheckedListBox by using new DrawItemState info.  Center the
10475         checkboxes on the items. Use new StringFormat property.
10476
10477 2006-04-18  Jackson Harper  <jackson@ximian.com>
10478
10479         * Form.cs: MdiChildren don't do default locations the same way as
10480         regular forms.  This prevents a crash when trying to position the
10481         mdi windows.
10482
10483 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10484
10485         * PropertyGridTextBox.cs: Formatting, copyright
10486         * PropertiesTab.cs: Formatting
10487         * PropertyGrid.cs: Formatting
10488         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10489           click toggling of values
10490           
10491 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10492
10493         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10494         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10495           every time a control is created
10496         * Application.cs: Removed obsolete EnableRTLMirroring method
10497
10498 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10499
10500         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10501         SelectedIndex to -1. Fixes bug #78121.
10502
10503 2006-04-17  Jackson Harper  <jackson@ximian.com>
10504
10505         * Binding.cs: Handle null values for Current and BindingContext.
10506         This occurs when binding is a little delayed.
10507         * CurrencyManager.cs: return null for Current when there are no
10508         items in the list.
10509         - Hookup to the listchanged event on the DataView and update
10510         bindings when the list is changed.  This fixes late binding of
10511         controls.
10512
10513 2006-04-17  Jackson Harper  <jackson@ximian.com>
10514
10515         * X11Dnd.cs:
10516         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10517         Ringenbach.
10518
10519 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10520
10521         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10522           place
10523         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10524           with the correct ButtonState
10525
10526 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10527
10528         * XplatUIX11.cs: Improved distinguishing between window types to
10529           tell the WM a type closer to what the app wants (Fixes #78107)
10530
10531 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10532
10533         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10534           GrabHandle
10535
10536 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10537
10538         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10539           drawing code to reflect the size grip changes
10540
10541 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10542
10543         * ImageListStreamer.cs: fix handling of the mask that follows the main
10544         bitmap when deserializing and serialize it properly. The generated mask
10545         should better be a 1bpp image, but I'll do that later.
10546
10547 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10548
10549         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10550           path doesn't fit into some of our Current.Places
10551
10552 2006-04-13  Jackson Harper  <jackson@ximian.com>
10553
10554         * ComboBox.cs: Use borders instead of drawing our own decorations,
10555         try to obey correct rules for heights.
10556         * Theme.cs:
10557         * ThemeNice.cs:
10558         * ThemeClearLooks.cs:
10559         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10560         this is now handled by borders.
10561         - Remove unused DrawListBoxDecorationSize method.
10562         
10563 2006-04-13  Mike Kestner  <mkestner@novell.com>
10564
10565         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10566         reported by Alex.
10567
10568 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10569
10570         * ThemeWin32Classic.cs: 
10571           - Fixed CPDrawStringDisabled
10572           - Corrected drawing of disabled menu items
10573           - Fixed drawing of disabled radio buttons (bug #78095)
10574           - Draw check in a disabled CheckBox with color ControlDark 
10575
10576 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10577
10578         * Form.cs: Use the provided width when calculating the menu size;
10579           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10580           and ClientSize.Width won't be updated yet
10581         * Application.cs: Use Visible instead of Show() to make form visible,
10582           this way we create the handle later and menusize is considered
10583
10584 2006-04-12  Mike Kestner  <mkestner@novell.com>
10585
10586         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10587         reporting.
10588
10589 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10590
10591         * TextBox.cs: Implemented context menu
10592
10593 2006-04-12  Mike Kestner  <mkestner@novell.com>
10594
10595         * ListView.cs: implement box selection. fixes #77838.
10596         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10597
10598 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10599
10600         * XplatUIX11.cs: Added setting of window type when transient window
10601           is created (metacity would move it otherwise)
10602         * X11Structs.cs: Added WINDOW_TYPE atoms
10603         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10604           background (the control is Opaque but still wants transparent
10605           backgrounds)
10606
10607 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10608
10609         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10610           that set Opaque but don't mean it (like all ButtonBase-derived
10611           controls) to still draw their background
10612         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10613           the background
10614
10615 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10616
10617         * Control.cs (PaintControlBackground): Set the graphics object
10618           on our PaintEvent to null to prevent it from being disposed
10619           when the PaintEvent gets disposed
10620
10621 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10622
10623         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10624         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10625
10626 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10627
10628         * Control.cs: 
10629           - Added transparency check to BackColor property. Transparent
10630             backgrounds are only allowed if the control styles permit it
10631           - Added recursive painting of parent control background and
10632             foreground if a control with a transparent backcolor is drawn
10633             (Thanks to Tim Ringenback for providing his 'hack' as a base
10634              for this patch) Fixes #77985 and #78026.
10635           - Added Opaque style check before calling OnPaintBackground, no
10636             need to draw the background if the control is opaque
10637           - Removed ControlAccessibleObject owner variable (inherited from
10638             base, no need to define again)
10639           - Added some documentation links explaining the drawing events
10640             and styles
10641
10642 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10643
10644         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10645           that the affected control is the located at the left border of our
10646           parent (Fixes #77936)
10647
10648 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10649
10650         * TextBoxBase.cs: When rendering disabled or readonly controls,
10651           draw the background with 'Control' instead of 'Window' color as
10652           long as the user hasn't specifically set a color
10653
10654 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10655
10656         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10657           since that won't be updated if the user types text (only if it's
10658           programatically set)
10659
10660 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10661
10662         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10663           layout changes do to app-triggered resizes will have the proper
10664           display rectangle for layout
10665
10666 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10667
10668         * ThemeWin32Classic.cs:
10669           - Make use of the SystemBrushes and SystemPens wherever possible
10670           - Corrected some highlight colors
10671           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10672             drawing
10673         * Theme.cs: Added Empty field to CPColor struct
10674
10675 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10676
10677         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10678           is displayed when calculating the display rectangle. Thanks to Mike
10679           for teaching me the err of my ways.
10680
10681 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10682
10683         * ScrollableControl.cs:
10684           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10685             (instead of 0,0) and we now return the real width/height instead of
10686             just the clientrectangle, adjusted for padding. The rectangle is
10687             now cached and created by the new CalculateDisplayRectangle method.
10688           - Created new CalculateDisplayRectange method, which basically does
10689             what get_DisplayRectangle() did originally, but now using the 
10690             right edge instead of DisplayRectangle to determine the size of
10691             our scrollbars
10692           - get_Canvas(): Fixed it to properly calculate canvas for 
10693             right/bottom controls which seem to be placed to the right/bottom
10694             of any controls that have a fixed location
10695           - Removed TODO that's taken care of
10696           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10697             and SetDisplayRectLocation according to new MSDN2 docs
10698           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10699             event when that is called, this is added for compatibility
10700           - ScrollControlIntoView(): Implemented.
10701           - Switched scrollbars to be implicit, they shouldn't be selectable
10702         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10703           call it when the active control is set/changed
10704         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10705         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10706           implicit_control variable (used for native Win32 message generation)
10707         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10708           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10709         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10710         * XplatUIStructs.cs: Added ScrollBarCommands enum
10711
10712 2006-04-10  Jackson Harper  <jackson@ximian.com>
10713
10714         * ButtonBase.cs:
10715         * CheckedListBox.cs:
10716         * ComboBox.cs:
10717         * DataGrid.cs:
10718         * DataGridView.cs:
10719         * Form.cs:
10720         * GroupBox.cs:
10721         * ListBox.cs:
10722         * PrintPreviewControl.cs:
10723         * ProgressBar.cs:
10724         * PropertyGrid.cs:
10725         * Splitter.cs:
10726         * StatusBar.cs:
10727         * TrackBar.cs:
10728         * UpDownBase.cs: Fixup base event overrides.
10729         
10730 2006-04-06  Mike Kestner  <mkestner@novell.com>
10731
10732         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10733         all user-initiated value changes to min <= value <= max-thumbsz+1.
10734         (set_Value): check for vert/horiz when calculating new thumb position.
10735         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10736         like MS does.
10737         (OnMouseMoveSB): refactor the thumb dragging code and refine
10738         invalidation logic to reduce flicker.
10739         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10740         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10741         (UpdateThumbPosition): small code readability cleanup
10742
10743 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10744
10745         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10746           different
10747
10748 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10749
10750         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10751
10752 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10753
10754         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10755         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10756           This dramatically reduces the number of Pen.Dispose calls. 
10757           Where possible call ResPool methods only once instead of calling it
10758           over and over again (for example for the same color).
10759
10760 2006-04-06  Mike Kestner  <mkestner@novell.com>
10761
10762         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10763         Also remove an unused private field on the collection. Fixes #77972.
10764
10765 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10766
10767         * ThemeNice.cs: Added ToolBar drawing code
10768
10769 2006-04-06  Mike Kestner  <mkestner@novell.com>
10770
10771         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10772         I'm assuming that means we need to look up the toplevel for the
10773         provided control. Fixes the crash trace in #77911 but exposes another
10774         crash in some strange reflection usage in NDocGui.
10775
10776 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10777
10778         * ThemeNice.cs: Gave it a little silver touch and added Images
10779           method
10780         * FontDialog.cs: FontDialog is not resizable
10781         * FileDialg.cs: Added SizeGripStyle.Show
10782
10783 2006-04-05  Jackson Harper  <jackson@ximian.com>
10784
10785         * KeyboardLayouts.cs: Remove warning.
10786
10787 2006-04-05  Jackson Harper  <jackson@ximian.com>
10788
10789         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10790         all of our controls instead of Paint +=.
10791         * ListBox.cs:
10792         * ListView.cs:
10793         * MenuAPI.cs:
10794         * MessageBox.cs:
10795         * NotifyIcon.cs:
10796         * ProgressBar.cs:
10797         * ScrollBar.cs:
10798         * Splitter.cs:
10799         * StatusBar.cs:
10800         * TabControl.cs:
10801         * TextBoxBase.cs:
10802         * ToolBar.cs:
10803         * TrackBar.cs:
10804         * UpDownBase.cs:
10805         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10806         use OnPaintInternal. Remove Width/Height and Visible checks in
10807         paint handler, this is done at a higher level now.
10808         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10809         * PaintEventArgs.cs: Add a handled flag so controls that don't
10810         want anymore painting after OnPaintInternal can make sure OnPaint
10811         isn't called.
10812
10813 2006-04-05  Mike Kestner  <mkestner@novell.com>
10814
10815         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10816         state of the form, so that we don't process events when Modal dialogs
10817         are up. Fixes #77922.
10818
10819 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10820
10821         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10822           checking is done.
10823
10824 2006-04-05  Mike Kestner  <mkestner@novell.com>
10825
10826         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10827
10828 2006-04-05  Mike Kestner  <mkestner@novell.com>
10829
10830         * ListView.cs (HeaderMouseMove): null guarding for the over column
10831         when setting up the drag_to_index.  Fixes #78015.
10832
10833 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10834
10835         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10836           in the taskbar. Transient windows seem to accomplish that.
10837
10838 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10839
10840         * Form.cs:
10841           - Re-enabled CreateParams.X/Y code for FormStartPosition
10842           - Added code for manual placement when creating the Control
10843           - Incomplete patch to treat MDI forms differently when
10844             setting the ClientSizeCore. (Still need to figure out handling
10845             x/y coords there)
10846         * XplatUIX11.cs:
10847           - When we're explicitly setting the X/Y position of a non-Child
10848             window, let the WM know. Metacity really wants this.
10849
10850 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10851
10852         * ThemeNice.cs: Added CPDrawButton
10853
10854 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10855
10856         * ThemeNice.cs: Changed the color for focused buttons and activated
10857           the arrows for small scroll buttons.
10858
10859 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10860
10861         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10862           anymore. Changed some method modifiers to protected (virtual)
10863         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10864           changes
10865         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10866           Updated drawing of menus, buttons and progressbars; added
10867           CPDrawBorder3D 
10868
10869 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10870
10871         * ImageListStreamer.cs: implemented serialization/deserialization
10872         of the images.
10873
10874 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10875
10876         * ThemeWin32Classic.cs:
10877           - Removed all the DrawFrameControl stuff; CPDrawButton,
10878             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10879             inside the methods
10880           - Updated and corrected the drawing code of CPDrawButton,
10881             CPDrawCheckBox and CPDrawRadioButton to better match ms
10882           - Updated theme checkbox and radiobutton code to use the CP*
10883             methods
10884
10885 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10886
10887         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10888           bug is fixed
10889
10890 2006-03-31  Jackson Harper  <jackson@ximian.com>
10891
10892         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10893         sometimes.
10894         * UpDownBase.cs: Don't CreateGraphics manually, use a
10895         Refresh. Ideally we would invalidate the correct areas here.
10896
10897 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10898
10899         * XplatUIX11.cs: 
10900           - We now track the mapping state of windows. If a window (or 
10901             one of it's parents) is not mapped we no longer permit
10902             WM_PAINT messages to be generated since we'd otherwise get 
10903             lots of BadMatch X errors. Jackson did all the work figuring
10904             out the problem.
10905           - Destroying the caret if the window it's contained in is 
10906             destroyed. Can't use regular DestroyCaret method since it
10907             might fall into a drawing function (trying to remove the
10908             caret) and with that generate new BadMatch errors. Again,
10909             Jackson tracked this down.
10910           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10911             make sure we send the messages to all windows. (The old code
10912             would send the WM_DESTROY to the window, and then all child
10913             windows would be 'gone' because the WM_DESTROY handle lookup
10914             would no longer find the destroyed window)
10915         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10916         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10917
10918 2006-03-31  Jackson Harper  <jackson@ximian.com>
10919
10920         * ScrollableControl.cs: Dont recalc if we are not visible.
10921
10922 2006-03-31  Mike Kestner  <mkestner@novell.com>
10923
10924         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10925         the visibility branch.
10926
10927 2006-03-31  Jackson Harper  <jackson@ximian.com>
10928
10929         * ScrollBar.cs: Cap values when incrementing/decrementing.
10930
10931 2006-03-31  Mike Kestner  <mkestner@novell.com>
10932
10933         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10934         * ToolTip.cs: guard against timer expirations with no active control.
10935         Not sure why it happened.
10936
10937 2006-03-31  Mike Kestner  <mkestner@novell.com>
10938
10939         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10940         text.
10941         * ToolTip.cs: Position the tooltip based on where the cursor is at
10942         popup time, not at MouseEnter time.  Add a Down state so that we don't
10943         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10944         positioning offset. Lookup DisplaySize at positioning time, since it
10945         can theoretically change during invocation.
10946         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10947         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10948
10949 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10950
10951         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10952           Fixes behaviour when the Text property of the box is String.Empty
10953
10954 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10955
10956         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10957           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10958           a window)
10959
10960 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10961
10962         * FileDialog.cs: Visual enhancement for the popup buttons in 
10963           PopupButtonPanel
10964
10965 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10966
10967         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10968           code
10969
10970 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10971
10972         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10973           highlighted menu items to match ms
10974
10975 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10976
10977         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10978
10979 2006-03-30  Mike Kestner  <mkestner@novell.com>
10980
10981         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10982         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10983         go active to account for HotLight to Selected transition.
10984         * MenuItem.cs: add internal Selected prop. Fill out the Status
10985         property by calculating it from item info. Add HotLight,
10986         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10987
10988 2006-03-30  Mike Kestner  <mkestner@novell.com>
10989
10990         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10991
10992 2006-03-29  Jackson Harper  <jackson@ximian.com>
10993
10994         * Form.cs: Implement TODO.
10995
10996 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10997
10998         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10999           missing proper dialog setup in the constructor
11000
11001 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
11002
11003         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
11004         * Control.cs:
11005           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
11006           - Fixed ResetBindings and removed TODO
11007           - Added check for cross-thread calls to get_Handle()
11008           - Added Marshaller attribute for set_Font to satisfy class status
11009         * FontDialog.cs: Removed TODOs that seemed implemented
11010         * UpDownBase.cs: Removed unneeded TODO and Fixme
11011         * MessageBox.cs: Implemented support for Default button and removed TODO
11012         * FileDialog.cs: Removed obsolete TODO
11013         * DomainUpDown.cs: Removed obsolete TODO
11014         * ButtonBase.cs: Removed obsolete TODO
11015         * XplatUIWin32.cs: Removed obsolete TODO
11016         * Form.cs:
11017           - Removed obsolete TODO
11018           - Calling CheckAcceptButton when the acceptbutton is changed to allow
11019             internal status updates
11020           - Making sure the active control is selected when the control is created
11021         * CurrencyManager.cs: Removed obsolete TODO
11022
11023 2006-03-29  Mike Kestner  <mkestner@novell.com>
11024
11025         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
11026         of PrintPreviewDialog and RichTextBox.
11027
11028 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11029
11030         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
11031           DarkDark, Light and LightLight colors for a specific color
11032         * ThemeWin32Classic.cs:
11033           - Use Button drawing code to draw RadioButtons and CheckBoxes with
11034             Appearance = Button 
11035           - Make use of the new ResPool helper CPColor
11036           - Draw ProgressBar and StatusBar with correct 3D borders
11037
11038 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11039
11040         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11041
11042 2006-03-28  Mike Kestner  <mkestner@novell.com>
11043
11044         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11045         calculating col/row counts.
11046
11047 2006-03-28  Mike Kestner  <mkestner@novell.com>
11048
11049         * ColumnHeader.cs:
11050         * ListView.cs:
11051         * ListViewItem.cs:
11052         * Menu.cs: 
11053         switch to explicit interface method implementation for some methods
11054         corcompare identifies as inconsistent with MS.
11055
11056 2006-03-28  Mike Kestner  <mkestner@novell.com>
11057
11058         * MainMenu.cs: 
11059         * Menu.cs:
11060         add a few missing methods from the class status output.
11061
11062 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11063
11064         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11065           correct.
11066
11067 2006-03-28  Mike Kestner  <mkestner@novell.com>
11068
11069         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11070
11071 2006-03-27  Mike Kestner  <mkestner@novell.com>
11072
11073         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11074         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11075
11076 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11077
11078         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11079
11080 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11081
11082         * ThemeWin32Classic.cs:
11083           - GroupBox: Inserted a little gap between the text and the lines
11084             on the right side
11085           - Made the code in CPDrawBorder3D more readable
11086           - Corrected the drawing location of the up and down arrows in 
11087             CPDrawScrollButton
11088
11089 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11090
11091         * ControlPaint.cs: Corrected line widths in DrawBorder for
11092           ButtonBorderStyle Inset and Outset
11093
11094 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11095
11096         * ThemeWin32Classic.cs:
11097           - Rewrote the totally broken CPDrawBorder3D method. That was
11098             one of the main problems for the terrific ThemeWin32Classic
11099             look
11100           - Updated and corrected Button drawing
11101           - Correct the dimensions of the SizeGrip to match ms ones
11102           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11103         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11104           Border3DStyle.Sunken to match ms.
11105
11106 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11107
11108         * ThemeWin32Classic.cs: First small part of the "de-uglify
11109           ThemeWin32Classic" effort, SizeGrip
11110
11111 2006-03-24  Jackson Harper  <jackson@ximian.com>
11112
11113         * XplatUIX11.cs: Give a max idle time of one second, this matches
11114         MS and forces an Idle event every second when there are no other
11115         events in the queue.
11116
11117 2006-03-24  Mike Kestner  <mkestner@novell.com>
11118
11119         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11120         * ListView.Item.cs: fix layout issues with null image lists and images
11121         smaller than checkbox size.
11122         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11123         mode like MS does.  It's weird, but consistent.  ;-)
11124         Fixes #77890.
11125
11126 2006-03-24  Mike Kestner  <mkestner@novell.com>
11127
11128         * ListView.cs: Scroll wheel support for the item control.  Fixes
11129         #77839.
11130
11131 2006-03-23  Jackson Harper  <jackson@ximian.com>
11132
11133         * ScrollableControl.cs: Special case negative sized areas, not
11134         zero.
11135         * MonthCalendar.cs: Save the rect of the clicked date so we can
11136         use it for invalidation.
11137         - Try to cut down on the number of invalidates
11138         - Invalidate the rect the mouse is over and was over when moving
11139         the mouse, so we get the focus box following the cursor.
11140
11141 2006-03-23  Mike Kestner  <mkestner@novell.com>
11142
11143         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11144         focus rectangle drawing. Fixes #77835.
11145
11146 2006-03-23  Mike Kestner  <mkestner@novell.com>
11147
11148         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11149         the if and else if and reverting back to the original == check on the
11150         None conditional.
11151
11152 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11153
11154         * FontDialog.cs: Update the example panel if the selected index of
11155           the fontListBox changes.
11156
11157 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11158
11159         * FileDialog.cs: Make FileDialog remember which directory it was in
11160           last in the same execution.
11161
11162 2006-03-22  Mike Kestner  <mkestner@novell.com>
11163
11164         * FileDialog.cs: make the DropDownMenu on the toolbar display
11165         RadioChecks since they are mutually exclusive and that's what MS does.
11166
11167 2006-03-22  Mike Kestner  <mkestner@novell.com>
11168
11169         * Theme.cs: add Color param to CPDrawMenuGlyph.
11170         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11171         checks and radio marks and arrows are visible on highlighted items.
11172         * ControlPaint.cs: update to use new Theme signature.
11173
11174 2006-03-22  Mike Kestner  <mkestner@novell.com>
11175
11176         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11177         is active. Fixes #77870.
11178
11179 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11180
11181         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11182           to be focused/selected after startup
11183
11184 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11185
11186         * ColorDialog.cs: 
11187           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11188             CustomColors and ShowHelp properties
11189           - Some internal rewrites to get better results when using the
11190             ColorMatrix
11191
11192 2006-03-22  Mike Kestner  <mkestner@novell.com>
11193
11194         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11195         HoverSelection.  Fixes #77836.
11196
11197 2006-03-22  Mike Kestner  <mkestner@novell.com>
11198
11199         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11200         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11201         1, not 0.  Update ButtonSize based on a pixel count of the win32
11202         control.  Adjust the toolbar size/location for new button size.
11203
11204 2006-03-22  Jackson Harper  <jackson@ximian.com>
11205
11206         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11207         true.
11208         * ScrollBar.cs: When doing increments and decrements we need to
11209         set the Value property so that ValueChanged gets raised. A
11210         possible optimization here would be to make an internal SetValue
11211         that doesn't invalidate immediately.
11212         * ToolTip.cs: Tooltips get added to their container (when
11213         supplied) so they get disposed when the container is disposed.
11214         - Don't create tooltips for String.Empty. This prevents all these
11215         little 2-3 pixel windows from showing up when running nunit-gui
11216         and driving me mad.
11217         * Form.cs: Don't set topmost when setting the owner if the handles
11218         haven't been created yet.  The topmost set will happen when the
11219         handles are created.
11220
11221 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11222
11223         * XplatUIX11.cs:
11224           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11225           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11226             visible (to allow them to recalculate their sizes)
11227
11228 2006-03-21  Mike Kestner  <mkestner@novell.com>
11229
11230         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11231         methods. Removed a ton of redundant code.  Still not really happy with
11232         the border rendering, but I think that's mainly because of the
11233         ControlDarkDark being black instead of a dark grey. Depending on how 
11234         close we want to be, we might want to revisit those color choices.
11235         Among the new features added during the refactor were DropDownArrow
11236         pressed rendering, Disabled image rendering.  Proper flat appearance
11237         boundary rendering.  Removed the Divider and Wrapping dividers since I
11238         can't figure out any combination of themes and conditions to make the
11239         MS control draw a horizontal line on a toolbar despite what the
11240         Divider property docs indicate.
11241         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11242         conditions and incorrect layout.  Updated to coding standard.
11243         * ToolBarButton.cs: refactored layout and positioning code from
11244         ToolBar to here.  Invalidate wherever possible instead of forcing
11245         redraws of the whole toolbar. 
11246         (Known remaining issues: explicit ButtonSize smaller than provided
11247         images.)
11248
11249 2006-03-21  Mike Kestner  <mkestner@novell.com>
11250
11251         * ContextMenu.cs (Show): use the position parameter instead of just
11252         showing at the MousePosition.
11253
11254 2006-03-21  Jackson Harper  <jackson@ximian.com>
11255
11256         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11257         control handle this.
11258         * TreeNodeCollection.cs: If we are clearing the root node we need
11259         to reset top_node so calcs can still happen.
11260         * ThemeWin32Classic.cs: This is a Flags so we need to check
11261         properly.
11262         
11263 2006-03-21  Jackson Harper  <jackson@ximian.com>
11264
11265         * DataGrid.cs: Create columns when the binding context has been
11266         changed.
11267         * X11Structs.cs: Keysyms are uints.
11268         - Add size to fix build.
11269
11270 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11271
11272         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11273           XplatUIOSX.cs: 
11274           - Added ResetMouseHover method to allow controls to retrigger
11275             hovering if they need it more than once
11276           - Implemented MouseHoverTime and MouseHoverSize properties
11277         * Timer.cs: Start() must reset the interval
11278         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11279           properties
11280
11281 2006-03-21  Jackson Harper  <jackson@ximian.com>
11282
11283         * X11Keyboard.cs: improved layout detection. Move the nonchar
11284         tables into this file.
11285         * KeyboardLayouts.cs: Move the tables into resource files.
11286
11287 2006-03-21  Mike Kestner  <mkestner@novell.com>
11288
11289         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11290
11291 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11292
11293         * Mime.cs: Various speed optimizations. Looking up mime types
11294           is now 2 times faster than before
11295
11296 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11297
11298         * CreateParams.cs: Added internal menu field
11299         * Control.cs: 
11300           - Switched call order for UpdateBounds; now we always call
11301             the one that also takes ClientSize, and we're calculating the 
11302             client size via driver method in the others. The previous
11303             method of tracking client size by difference wasn't working
11304             for forms where even the starting client size wouldn't match
11305             the overall form size (due to borders) (Part of fix for #77729)
11306           - CreateParams(): Do not use parent.Handle unless the handle is
11307             already created. Causes havoc with Nexxia and throws off our
11308             creation of controls
11309         * XplatUIX11.cs:
11310           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11311           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11312             method (consolidates code)
11313           - Changed RequestNCRecalc to use new PerformNCCalc method
11314           - Added calls to RequestNCRecalc when menus and borders are changed
11315             to allow app to set NC size. (Part of fix for #77729) This matches
11316             when MS send a WM_NCRECALC on Win32 windows.
11317           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11318             (Part of fix for #77729). This matches what MS does, they also
11319             send that message when the form is made visible.
11320           - XException.GetMessage: Improved usability of X errors by including
11321             a translation of the window into Hwnd and Control class
11322           - Improved debug info for window creation, reparenting and destruction
11323           - Created helper method WindowIsMapped() [Currently not used]
11324         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11325         * Form.cs:
11326           - CreateParams: Now setting our menu on the new internal menu field
11327           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11328             avoid calculating the same property twice
11329         * Hwnd.cs:
11330           - Improved usability of ToString() for debugging purposes
11331           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11332             determine the height of the menu, instead of just the font. This
11333             required to also create a graphics context and to keep a bmp 
11334             around (for performance reasons)
11335
11336 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11337
11338         * MenuAPI.cs: Added OnMouseUp method
11339         * Form.cs:
11340           - Now remembering the requested client size, avoids size errors
11341           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11342             instead of base if the menu is active. This is required due to
11343             control now capturing and releasing on down/up and it would
11344             prematurely release our menu capture
11345
11346 2006-03-17  Jackson Harper  <jackson@ximian.com>
11347
11348         * KeyboardLayouts.cs: Add the czech layouts.
11349
11350 2006-03-16  Jackson Harper  <jackson@ximian.com>
11351
11352         * Control.cs: Use the viewport space when sizing not the controls
11353         client size, so things like ScrollableControl that effect the
11354         viewport size (when scrollbars are added) are computed correctly.
11355         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11356         of ManagerEntrys.
11357         - Handle creating BindingManagers for null data sources.
11358         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11359         source, otherwise when rows are added they are added to the 'fake'
11360         datasource and we will crash when trying to set the position in
11361         those rows.
11362         - Use Implicit scrollbars on the datagrid so they arent
11363         selectable.
11364         
11365 2006-03-16  Jackson Harper  <jackson@ximian.com>
11366
11367         * Binding.cs:
11368         * InternalWindowManager.cs:
11369         * MdiWindowManager.cs:
11370         * X11Keyboard.cs: I really want Mike to love me again (fix
11371         compiler warnings).
11372
11373 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11374
11375         * DataGrid.cs:
11376           - OnMouseDown: Switch to editing mode when clicking on the cell
11377                          even if we're clicking on the cell that's currently 
11378                          selected
11379           - ProcessGridKey: Left/Right now wrap like MS.Net does
11380           - ProcessGridKey: Tab now knows to add a new row when tab is
11381                             pressed in the cell of the last column of the 
11382                             last row
11383           - ProcessGridKey: Enter now adds another row  if pressed in the last
11384                             row and selectes the new row, same column cell
11385           - ProcessGridKey: Home/End navigate columns, not rows, like 
11386                             originally implemented
11387           - Broke ProcessKeyPreview code out into an extra Internal method
11388             so it can be called from the edit code
11389         * DataGridTextBox.cs (ProcessKeyMessage):
11390           - Switched to accept Tab keypresses
11391           - Added F2 handling to allow jumping to the end of the edited cell
11392           - Added logic to allow moving caret left/right inside edited cell
11393             and making the edited cell jump when the caret hits cell borders
11394           - Tab and Enter are now passed to the datagrid after being handled
11395         * TextBoxBase.cs:
11396           - Removed capture code now that Control handles it
11397           - set_SelectionStart now ensures caret is visible
11398
11399 2006-03-16  Jackson Harper  <jackson@ximian.com>
11400
11401         * TrackBar.cs: Debackwards the increment/decrement for handling
11402         mouse clicks on the bar with vertical trackbars.
11403         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11404         bottom to match MS.
11405
11406 2006-03-16  Mike Kestner  <mkestner@novell.com>
11407
11408         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11409         consistent with the MS control. Fix a bug in
11410         SelectedListViewItemCollection.Clear that was pissing me off for the
11411         better part of a day because the collection was being altered
11412         underneath us as we walked the list.
11413
11414 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11415
11416         * Control.cs: Not sure how we could miss this so long, but it seems
11417           that MS.Net has Capture set all the way from before calling 
11418           OnMouseDown through sending the mouse events until after
11419           OnMouseUp. This will fix DataGrid's selection being set to end
11420           at the location of the MouseUp.
11421
11422 2006-03-15  Jackson Harper  <jackson@ximian.com>
11423
11424         * BindingContext.cs: Check the binding after its added so that it
11425           can initialize the binding managers and hookup to events.
11426         * Binding.cs: Data members seem to sometimes include rows/cols in
11427           the format Row.Column we now take this into account.
11428           - Hookup to the position changed event so we can update the
11429           control when the position has changed in the data set.
11430         * CurrencyManager.cs: Take into account the row/col naming
11431           convention when creating dataset tables.
11432         * BindingContext.cs: Using a newer better way of storing
11433           datasource/datamember pairs.  Hopefully this better matches MS for
11434           looking up binding managers.
11435
11436
11437 2006-03-15  Jackson Harper  <jackson@ximian.com>
11438
11439         * BindingContext.cs: The currency manager needs the data member
11440         name, if the member is a data set we use the name to find the
11441         correct table.
11442         * CurrencyManager.cs: When creating the list prefer an IList over
11443         an IListSource.
11444         - Attempt to create a DataTable from a DataSet (TODO: might need
11445         some better error checking here, although MS doesn't seem to have much)
11446         - If we have a DataTable create a view and use it as our list.
11447
11448 2006-03-15  Mike Kestner  <mkestner@novell.com>
11449
11450         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11451         keyboard navigation. Support Up/Down/Left/Right selection correctly
11452         for all 4 View modes.
11453         * ListViewItem.cs: add internal row/col fields for icon layouts.
11454
11455 2006-03-15  Jackson Harper  <jackson@ximian.com>
11456
11457         * TabControl.cs: Redraw the tabs when we resize so their newly
11458         calculated sizes are drawn on screen.
11459         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11460         composite characters.
11461         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11462         - filter events so that composite characters can be created
11463         patches by peter
11464         * X11Structs.cs: Add XIMProperties enum.
11465
11466 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11467
11468         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11469           unless it's created
11470
11471 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11472
11473         * Control.cs (PerformLayout): We don't need to consider visiblity
11474           for anchoring, only for docking. This fixes 'whacky' alignment
11475           in listbox and other controls that use implicit scrollbars after
11476           the previous PerformLayout patch
11477         * ListBox.cs: Switched to use implicit scrollbars
11478           
11479 2006-03-14  Mike Kestner  <mkestner@novell.com>
11480
11481         * ToolBar.cs: 
11482         * VScrollBar.cs:
11483         - chain up the "new event" overrides to base and use
11484         OnEvent to raise them.  Part of fix for bug #76509.
11485
11486 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11487
11488         * FileDialog.cs: Do not select an item in the parent directory
11489           on backspace
11490
11491 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11492
11493         * Control.cs (PerformLayout): It would seem that we considered
11494           invisible windows for our layout. Not quite the right thing
11495           to do. Now we don't any longer, thereby fixing bug #76889.
11496
11497 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11498
11499         * Control.cs (CanFocus): I goofed. A control can have focus 
11500           even though it's not selectable. Made it match MS docs.
11501
11502 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11503
11504         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11505           center by default (fixes #76895)
11506         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11507           all uses of Border3DSides.All with the explicit ORd together
11508           Left|Right|Top|Bottom because I assume that nobody was aware 
11509           that All also implies a center fill. Most places I checked had
11510           a fill right above.
11511         * ProgressBarStyle.cs: Added
11512
11513 2006-03-13  Mike Kestner  <mkestner@novell.com>
11514
11515         * ListView.cs: fix breakage in drag shadow header positioning 
11516         from Peter's csc compilation fix.
11517
11518 2006-03-13  Mike Kestner  <mkestner@novell.com>
11519
11520         * ListView.cs: fix NRE produced by backspacing twice in a focused
11521         FileDialog.
11522
11523 2006-03-13  Mike Kestner  <mkestner@novell.com>
11524
11525         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11526
11527 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11528
11529         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11530           be changed
11531         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11532           the allowed size before making programmatic size changes
11533
11534 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11535
11536         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11537           set, metacity is broken and will still use the emty sizes in 
11538           the struct. (Fix for #77089)
11539
11540 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11541
11542         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11543           WindowExStyles and marked both enums as Flags
11544         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11545           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11546           to match WindowStyles split
11547         * XplatUIX11.cs:
11548           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11549           - Updated to match WindowStyles split
11550         * XplatUIWin32.cs:
11551           - Fixed FosterParent creation, was using ExStyle on the Style field
11552             (This should help with Popup focus issues)
11553           - Updated to match WindowStyles split
11554
11555 2006-03-13  Jackson Harper  <jackson@ximian.com>
11556
11557         * MdiWindowManager.cs: Use the system menu height. Fixes some
11558         strange sizing issues.
11559
11560 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11561
11562         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11563         * TextBoxBase.cs:
11564           - Scroll to caret after inserting text (#77672)
11565           - Make scroll range one pixel higher, fixes off-by-one error (and
11566             makes underlines visible on the last line)
11567
11568 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11569
11570         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11571           the keyboard state from being stuck with keys in 'pressed' state when
11572           focus is switched away via keyboard
11573         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11574           reset the keyboard if no X11 KeyUp events are expected to come
11575         * X11Structs.cs: Switched type of Visible to bool to match driver
11576
11577 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11578
11579         * TextControl.cs:
11580           - Switched caret to be just 1 pixel wide, matches MS and looks less
11581             clunky
11582           - Moved caret display 1 pixel down from the top of the control
11583             to improve view
11584           - InsertCharAtCharet: Update the selection start if moving the caret
11585             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11586           - No longer always creating the caret when the caret methods are
11587             called. Only the actual ShowCaret/HideCaret will do that now
11588           - Only setting caret visible if the owner control has focus
11589           - UpdateView: Added invalidation-shortcut logic for center and right 
11590             aligned text. Previously we'd update all according to the left
11591             logic which caused drawing errors. Also fixed height of invalidated
11592             areas, now properly invalidating the whole area (was off-by-one)
11593           - owner_HandleCreated: Always generate the document when the
11594             handle is created; this ensures that 
11595         * TextBoxBase.cs:
11596           - Fixed situation where caret would disappear under the right
11597             window border, also improved scrolling behaviour on left-
11598             aligned textboxes
11599           - Fixed right-aligned textboxes to have a border to the
11600             right instead of the caret being under the right border
11601         * XplatUIX11.cs:
11602           - Switched from 'nested' to simple visible/not visible tracking 
11603             for caret (part of fix for #77671)
11604           - No longer passing through translated FocusIn/FocusOut messages
11605             since we were notifying too often and the wrong windows. Instead
11606             we just notify our focussed window of receiving or loosing focus
11607         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11608           counting for caret to simple visible yes/no behaviour (part of 
11609           fix for #77671)
11610
11611 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11612
11613         * Mime.cs: Remove debug code...
11614
11615 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11616
11617         * MimeGenerated.cs: Removed
11618         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11619           and subclasses) from /usr/(local/)share/mime and
11620           $HOME/.local/share/mime.
11621
11622 2006-03-10  Jackson Harper  <jackson@ximian.com>
11623
11624         * MdiWindowManager.cs: Recalc the NC area when a window is
11625         maximized/restored so that the menu area is drawn on forms that
11626         don't have a menu.
11627
11628 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11629
11630         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11631           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11632           us to force a WM_NCCALCRESIZE message being sent. This is needed
11633           for MDI maximizing.
11634
11635 2006-03-10  Jackson Harper  <jackson@ximian.com>
11636
11637         * Form.cs: We need to use the ActiveMenu when calculating menu
11638         height.
11639         - Fix nullref when the window manager hasn't been created yet.
11640         * Control.cs: Fix nullref when we try to bring a control to the
11641         front that has no parent.
11642         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11643         height.
11644         - Add a dummy item to the maximized menu so it always has the
11645         correct height. Otherwise when there are no menus we don't get our
11646         icon and buttons.
11647         
11648
11649 2006-03-10  Jackson Harper  <jackson@ximian.com>
11650
11651         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11652         stuff.
11653         * Form.cs: Make the window_state internal so the window managers
11654         can track it.
11655         - When an MDI child is maximized let its window manager create the
11656         main menu (so it can add its icon).
11657         - Notify the window managers of state changes
11658         - Let the window manager paint its buttons and handle button
11659         clicks on the menu when it is maximized.
11660         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11661         window manager, since tool windows don't use it, only mdi windows.
11662         - Tell the main form that we don't want it to handle NCPAINT
11663         itself to avoid extra painting.
11664         - Handle clicks on a maximized windows menu.
11665         - Handle window state changes
11666         - Handle minimize/maximize clicks correctly by setting the window state.
11667         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11668         when clicking on the forms icon).
11669         - New method to create a forms maximized menu. This is its normal
11670         menu + an icon.
11671         - Handle window state changes.
11672         - Handle sizing of maximized windows.  Maximized windows are just
11673         drawn bigger then the parent visible area. All controls are still
11674         there, they are just outside the visible area (this matches windows).
11675         * MdiClient.cs: No scrollbars when a child window is maximized.
11676         - Let the children windows figure out how big they should be when
11677         sizing maximized windows.
11678         - Implement a version of ArrangeIconicWindows somewhat similar to
11679         Windows version.  There are some little differences, but I don't
11680         think any app will rely on the layout of minimized mdi windows.
11681
11682 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11683
11684         * Padding.cs: Several fixes to allow compiling with csc 2.0
11685
11686 2006-03-09  Jackson Harper  <jackson@ximian.com>
11687
11688         * Menu.cs:
11689         * MenuItem.cs: Cheap hack so we can add items to the list without
11690         the events being raised.  This allows adding mdi items during
11691         drawing. TODO: Should probably find a better time to add the items.
11692
11693 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11694
11695         * ThemeWin32Classic.cs:
11696           - CheckBox_DrawText: Added logic to not wrap if not enough space
11697             is available (Fix for bug #77727)
11698           - RadioButton_DrawText: Added logic not to wrap if not enough
11699             space is available (Fix for bug #77727). Also removed some
11700             duplicate code, DrawString always drawing the regular text
11701             before hitting the if statement.
11702
11703 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11704
11705         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11706
11707 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11708
11709         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11710         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11711           methods. Moved the new 2.0 properties into alphabetical order with
11712           other properties and added MonoTODO tags
11713
11714 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11715
11716         * AutoScaleMode.cs: Added. Fix build.
11717
11718 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11719
11720         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11721           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11722           and was requiring premature handle creation for calls from above
11723         * Form.cs, Control.cs: Removed handle arguments from calls to
11724           CalculateClientRect()
11725
11726 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11727
11728         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11729           drag_column.column_rect is MarshalByRef and can't be used that way
11730
11731 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11732
11733         * AxHost.cs: Added deserialization constructor for 
11734           AxHost+State (fixes 77743)
11735
11736 2006-03-09  Mike Kestner  <mkestner@novell.com>
11737
11738         * ListView.cs: 
11739         - Added column drag reordering for details view.
11740         - fixed behavior when mouse is dragged off column and
11741         AllowColumnReorder is false.
11742         * ColumnHeader.cs: clone the format too in Clone.
11743         * Theme.cs: add DrawListViewHeaderDragDetails method.
11744         * ThemeWin32Classic.cs:
11745         - impl new method for drawing drag column shadows and targets.
11746         - support column offset for details mode in DrawListViewItem.
11747
11748 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11749
11750         * TextControl.cs: Reset the char_count when the document is cleared
11751           (Fixes bug reported on mono-winforms mailing list)
11752
11753 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11754
11755         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11756           of calling base we simply process the key ourselves, since both
11757           DefWindowProc and the handled method would set m.Result. 
11758           (Fixes #77732)
11759
11760 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11761
11762         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11763           method also moves the window; instead implemented a copy of
11764           Control.ScaleCore (Part of fix for #77456)
11765         * TextBoxBase.cs: 
11766           - Created new CreateGraphicsInternal method to allow providing
11767             a graphics context when no handle is created without triggering
11768             handle creation. (Part of fix for #77456)
11769           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11770         * TextControl.cs: 
11771           - Switched Constructor to require TextBoxBase instead of Control (to
11772             allow uncast access to CreateGraphicsInternal)
11773           - Safeguarded use of owner.Handle property. No longer accessing it
11774             unless the handle is already created.
11775           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11776           - Now triggering a recalc when owning control becomes visible
11777         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11778           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11779           premature handle creation (Part of fix for #77456)
11780         * Control.cs:
11781           - We now only destroy our double-buffering buffers when the
11782             control is resized or disposed, but not when visibility
11783             changes. (The code even re-created them twice every time)
11784           - Now requiring a redraw of the buffer on visibility changes
11785             (fixes bug 77654 part 2)
11786           - Not passing OnParentVisibleChanged up unless the control
11787             is visible
11788           - CanFocus: Fixed to match MS documentation
11789           - Focus: Fixed to return actual focus state and to check if
11790             setting focus is legal before setting it
11791
11792 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11793
11794         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11795           when to draw focus rectangle by looking at parent focus and
11796           selected state instead. This fixes TabPages on Linux sometimes
11797           having none or multiple focus rectangles.
11798         * XplatUIX11.cs (SetFocus): 
11799           - Don't set the focus if the same window already has focus
11800           - Use SendMessage instead of PostMessage (like it's Win32
11801             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11802             to match MS behaviour
11803         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11804           are not selectable.
11805
11806 2006-03-07  Jackson Harper  <jackson@ximian.com>
11807
11808         * PictureBox.cs: Revert line I accidently committed last week.
11809
11810 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11811
11812         * Control.cs: 
11813           - Added new IsRecreating and ParentIsRecreating properties to
11814             allow testing if RecreateHandle has been called on ourselves
11815             or one of our parents
11816           - WndProc(WM_DESTROY): If our control handle is being recreated
11817             we immediately need to create the handle when receiving the
11818             destroy, that way our child windows find a valid parent handle
11819             when they themselves are being recreated upon WM_DESTROY receipt
11820             (fix for bug #77654 part 1)
11821         * XplatUIX11.cs:
11822           - DestroyWindow: WM_DESTROY must be sent to our own window before
11823             notifying any child windows. MS documents that child windows
11824             are still valid when WM_DESTROY is received. (Control now relies on
11825             this behaviour)
11826           - Added some fine-grain debug options
11827
11828 2006-03-06  Jackson Harper  <jackson@ximian.com>
11829
11830         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11831         box and base calculations off this.
11832         * MdiChildContext.cs:
11833         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11834         anymore.
11835         
11836 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11837
11838         * Splitter.cs: In situations where the affected control is added
11839           to the parent's control list after the splitter, we would not
11840           populate affected. Now we try populating it on mousedown, if
11841           it's not already set, and force it to be re-set whenever our
11842           parent changes.
11843
11844 2006-03-03  Matt Hargett  <matt@use.net>
11845
11846         * Control.cs: implement Control.Padding
11847         * Padding.cs: -Padding.All returns -1 when constructing with the
11848         implicit default ctor
11849         -Padding.ToString() matches MS.NET
11850         * ContainerControl.cs: implement
11851         ContainerControl.AutoScaleDimensions
11852         * ListControl.cs: implement ListControl.FormattingEnabled
11853         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11854         * ButtonBase.cs:
11855         * TabPage.cs: Implement UseVisualStyleBackColor.
11856         * PictureBox.cs: Implement PictureBox.InitialImage.
11857
11858 2006-03-03  Mike Kestner  <mkestner@novell.com>
11859
11860         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11861         event declarations to proxy to base event.
11862         * ListViewItem.cs: update to use ItemControl.
11863         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11864         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11865         column header label rendering for 0 width columns.
11866
11867 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11868
11869         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11870           that causes the control to be created. Fixes #77476.
11871
11872 2006-03-02  Jackson Harper  <jackson@ximian.com>
11873
11874         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11875         expose_pending.
11876
11877 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11878
11879         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11880           passed in for the EventArgs (fixes #77690)
11881
11882 2006-03-01  Jackson Harper  <jackson@ximian.com>
11883
11884         * ScrollBar.cs: Refresh afterbeing resized.
11885
11886 2006-02-28  Mike Kestner  <mkestner@novell.com>
11887
11888         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11889         Clean up a tracker compile warning.
11890         * MenuItem.cs: add internal PerformPopup method.
11891         [Fixes #77457]
11892
11893 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11894
11895         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11896           implicit expose) when the text is set to null
11897
11898 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11899
11900         * RichTextBox.cs (FlushText): When newline is true, we always
11901           need to split the line, even if no text is on it and we may
11902           never eat newlines. (Fixes #77669)
11903
11904 2006-02-28  Mike Kestner  <mkestner@novell.com>
11905
11906         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11907         and set Selected instead.
11908         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11909         collections.
11910
11911 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11912
11913         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11914
11915 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11916
11917         * FontDialog.cs:
11918           - Got rid of the panel. All controls are now directly added to
11919             the dialog form
11920           - It is now possible to set a font with the Font property
11921           - MinSize and MaxSize property do now what they should
11922           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11923           - Searching and selecting a font with the font textbox works now,
11924             the same applies to the style and size textbox
11925           - Draw the correct 3D border in the example panel
11926           - Fixed a little mem leak (unused fonts didn't get disposed)
11927           - Many other internal updates/rewrites...
11928           - Fix typo
11929
11930 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11931
11932         * TextControl.cs: 
11933           - InsertRTFFromStream: Added 'number of characters inserted' argument
11934           - set_SelectedRTF: Now using the number of characters to calculate
11935             the new location for the selection and cursor (x/y cannot be used
11936             due to potentially already wrapped text)
11937
11938 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11939
11940         * TextControl.cs: Added property and implemented means to allow 
11941           disabling recalculation of a document (can be used to speed up
11942           multiple inserts and is needed to make RTF inserts predictable, see
11943           bug #77659)
11944         * RichTextBox.cs: Using the new NoRecalc property of Document to
11945           keep x/y insert locations predictable. Also makes it faster inserting
11946           large chunks of RTF
11947
11948 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11949
11950         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11951           it's easier for a child control to handle the other messages without
11952           having to duplicate the special functionality
11953         * TextBoxBase.cs
11954           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11955             code to handle processing the key ourselves, in order to get 
11956             access to the result of KeyEventArgs.Handled. We now only call 
11957             ProcessKey if they key hasn't been handled already. Fixes #77526.
11958           - set_Text: If null or empty string is given, just clear the 
11959             document. Fixes part of #77526
11960
11961 2006-02-27  Jackson Harper  <jackson@ximian.com>
11962
11963         * SizeGrip.cs: Paint the background color before painting the grip
11964         so things look right.
11965         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11966
11967 2006-02-27  Mike Kestner  <mkestner@novell.com>
11968
11969         * ListView.cs:
11970           - Restructure layout and invalidation model to remove a ton of
11971           flicker from the control and speed up performance in general.
11972           - Add manual column resize, flickers like crazy, but I already have
11973           some ideas on how I'll fix that. (#76822)
11974           - Merge the three Icon-based views into a single layout method.
11975           - Move item selection interaction logic from the item since 
11976           interaction with the collections is more appropriate to the view.
11977           - Deselection on non-item clicks.
11978         * ListViewItem.cs:
11979           - Encapsulate most of the layout. Add some internal props to trigger
11980           layout.  Move to a model where Items invalidate themselves instead
11981           of just invalidating the whole control every time something changes.
11982           - Invalidate on Text/Caption changes.
11983           - switch to an offset based layout model to avoid having to absolute
11984           position every element on item moves.
11985           - correct checkbox layout to conform to MS layout.
11986         * ThemeWin32Classic.cs:
11987           - refactor some column header drawing code.
11988           - fix string justification for column headers (#76821)
11989           - make SmallIcon labels top justified for compat with MS impl.
11990         * ThemeClearlooks.cs:
11991           - adjust to new ListViewItem internal checkbox bounds api.
11992
11993 2006-02-27  Jackson Harper  <jackson@ximian.com>
11994
11995         * Control.cs:  Change where implicit controls fall in the zorder.
11996         They are now on top of all children.
11997         - Synced AddImplicit code with Add
11998         - Removed unused enumerator.
11999         * SizeGrip.cs: Remove the TODO as its been TODONE.
12000
12001 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
12002
12003         * TextControl.cs(Insert): Combine the last lines unless the insertion
12004           string ends with \n\n, otherwise we leave one line too many (Fixes
12005           something I noticed with the testapp for #77526; the bug itself was
12006           already fixed in the previous checkin)
12007
12008 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
12009
12010         * RichTextBox.cs:
12011           - SelectionColor and SelectionFont methods no longer set absolute
12012             styles. Instead, the keep font or color respectively (This 
12013             resolves a long-standing FIXME in the code)
12014           - When flushing RTF text, the insert code now considers text trailing
12015             behind the insertion point (Fixes the bug where when replacing
12016             the selected text via SelectedRTF the remainder of the line behind 
12017             the selection would stay on the first insertion line)
12018         * TextBoxBase.cs:
12019           - AppendText now updates the selection points after inserting text
12020           - AppendText now ensures that the last tag (sometimes 0-length) of
12021             the document is used for the style information (Fixes part of 
12022             bug #77220)
12023         * TextControl.cs:
12024           - Created new FontDefiniton class to allow describing partial style
12025             changes
12026           - StreamLine() now takes a lines argument, to allow it to decide
12027             whether an encountered zero-length tag is the last in the document
12028             (which must be kept to not loose the font/color contained in it,
12029             for later appends)
12030           - Created Combine() and Split() methods for Marker structs, to 
12031             support marker updates due to reformatted documents (soft line
12032             wraps)
12033           - Implemented Document.CaretTag setter
12034           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
12035             of the last line (Not the cause, but also exposed by bug #77220)
12036           - Added LineTag argument to InsertString method, to allow callers
12037             to force a certain tag to be used (required to force use of the
12038             trailing zero-length tag of a document)
12039           - Now updating markers in Combine(), to avoid stale tag markers
12040           - Added some method descriptions to aid maintenance
12041           - Implemented new FormatText concept, allowing additive/subtractive
12042             formatting by only specifying the components that are to be 
12043             changed. This was needed for resolving the RTB.SelectedColor/
12044             RTB.SelectedFont fixmes
12045           - Added Break() support method to allow breaking up linetags (used
12046             for partial formatting)
12047           - Added GenerateTextFormat() method. It is used for partial 
12048             formatting and allows to generate a full font/color from given
12049             attributes and an existing tag.
12050
12051 2006-02-26  Jackson Harper  <jackson@ximian.com>
12052
12053         * XplatUIX11.cs:  Use the correct caption height.
12054         - Translate hittest coordinates to screen coords to match MS.
12055         * XplatUIWin32.cs: When we create MDI windows we need to reset
12056         some of the style flags, so we get a nice blank window, and can
12057         draw all the decorations ourselves.
12058         - Set a clipping rectangle on the non client paint event, the
12059         window manager drawing code needs one.
12060         * Form.cs: The window manager needs to know when the window state
12061         has been updated.
12062         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12063         don't need to factor in border and title sizes in these
12064         methods. TODO: Remove the args and fix the call points.
12065         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12066         properly.
12067         - Let the driver set the cursors.
12068         - Improve active window handling
12069         - Correct sizes for title bars and buttons.
12070         - Match MS drawing better
12071         * MdiWindowManager.cs: We don't need to handle border style
12072         updates specially anymore.
12073         - Check for scrollbars when windows are done moving
12074         - Handle Active properly.
12075         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12076         correctly. I am spewing the exception though, so we don't hide the
12077         bugs.
12078         
12079 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12080
12081         * DataGridViewRowPostPaintEventArgs.cs,
12082           DataGridViewCellPaintingEventArgs.cs,
12083           DataGridViewRowCollection.cs,
12084           DataGridViewRowPrePaintEventArgs.cs,
12085           DataGridViewCell.cs: Clear a few warnings and implement a few
12086           exceptions that should be thrown.
12087
12088 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12089
12090         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12091           'inheriting' our parent's (non-default) cursor. (Part of
12092            the fix for #77479)
12093
12094 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12095
12096         * XplatUIX11.cs: Fixed cast to make csc happy
12097
12098 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12099
12100         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12101           it's for the client area (part of fix for #77479 and needed
12102           for MDI window cursor handling)
12103         * XplatUIX11.cs
12104           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12105             the appropriate default cursors and also passing the message
12106             up the parent chain 
12107           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12108             for non-client areas
12109
12110 2006-02-15  Jackson Harper  <jackson@ximian.com>
12111
12112         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12113         is a real MDI window
12114
12115 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12116
12117         * X11DesktopColors.cs: Instead of checking the desktop session
12118           string for "KDE" check if it starts with "KDE"
12119
12120 2006-02-10  Jackson Harper  <jackson@ximian.com>
12121
12122         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12123         systems).
12124
12125 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12126
12127         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12128           errors
12129         * ColorDialog.cs:
12130           - Got rid of the panel. All controls are now directly added to
12131             the dialog form
12132           - Changed to mono coding style
12133
12134 2006-02-10  Jackson Harper  <jackson@ximian.com>
12135
12136         * InternalWindowManager.cs: We don't need the set visibility to
12137         false hack anymore now that peter has written beautiful shutdown
12138         code.
12139
12140 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12141
12142         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12143           where already explicitly destroyed
12144
12145 2006-02-10  Jackson Harper  <jackson@ximian.com>
12146
12147         * MdiClient.cs: Handle the case where windows are too high or to
12148         the left and we need scrollbars.
12149
12150 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12151
12152         * MimeIcon.cs: Added some icons
12153         * FileDialog.cs:
12154           - Fixed bug #77477
12155           - Got rid of the panel. All controls are now directly added to
12156             the dialog form
12157           - Changed to mono coding style
12158           - On Linux "My Computer" and "My Network" will now show some
12159             more usefull information. A new class, MasterMount, gathers
12160             this information from /proc/mount. Updated MWFFileView to make
12161             use of this information
12162           - Fixed a bug that caused FileDialog to crash when
12163             ".recently_used" file had a zero size
12164           - FilterIndex does now what it should
12165           - Some Refactoring
12166         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12167             FileDialog changes
12168
12169 2006-02-09  Jackson Harper  <jackson@ximian.com>
12170
12171         * ComboBox.cs: Don't touch if null.
12172
12173 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12174
12175         * Cursor.cs: 64bit safeness fix
12176         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12177
12178 2006-02-09  Jackson Harper  <jackson@ximian.com>
12179
12180         * Form.cs: If a form is made into an MDI form update the styles so
12181         all the props can get set correctly.
12182         - Kill the mdi_container when we dont need it anymore.
12183         * InternalWindowManager.cs: Add missing NOT
12184
12185 2006-02-08  Jackson Harper  <jackson@ximian.com>
12186
12187         * InternalWindowManager.cs: Respek clipping when drawing MDi
12188         decorations.
12189
12190 2006-02-08  Jackson Harper  <jackson@ximian.com>
12191
12192         * Hwnd.cs: Add bits to track non client expose events.
12193         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12194         gives us a proper invalid rect and will allow for some nice
12195         optimizations with NC client drawing
12196         - MDI windows are children windows, so move their style handling
12197         into the child window block.
12198         * InternalWindowManager.cs: Remove a state reset that was
12199         getting invoked at the wrong time. Fixes managed windows getting
12200         into a 'stuck' captured state.
12201
12202 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12203
12204         * TextControl.cs (Document.ctor): Now initializing 
12205           selection_anchor. Fixes #77493
12206
12207 2006-02-07  Jackson Harper  <jackson@ximian.com>
12208
12209         * TrackBar.cs: The increment/decrements were backwards.
12210
12211 2006-02-07  Mike Kestner  <mkestner@novell.com>
12212
12213         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12214         to the instance itself.
12215
12216 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12217
12218         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12219           on ulongs and pointers, the size differs between 32bit and 64bit
12220           systems. 
12221
12222 2006-02-07  Mike Kestner  <mkestner@novell.com>
12223
12224         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12225         for 64 bit platforms to work around a metacity bug. 
12226
12227 2006-02-07  Jackson Harper  <jackson@ximian.com>
12228
12229         * TrackBar.cs: Process the input keys we need, and hookup to
12230         KeyDown instead of using WndProc, so we get key messages.
12231
12232 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12233
12234         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12235           machine we're on. 
12236         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12237           we need to translate the XdndVersion atoms array before sending it
12238
12239 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12240
12241         * XplatUIX11.cs: 
12242           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12243             number of bits for the property, not the number of bytes. The
12244             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12245             but would not crash since it specified 8 bits instead of 4 bits)
12246           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12247             defined as XID -> long in the C headers)
12248           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12249             references since those are now IntPtr to begin with
12250           - Switched all Atom.XXX 'int' casts to IntPtr casts
12251           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12252           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12253           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12254         * X11Structs.cs:
12255           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12256           - Changed atom in HoverStruct to be IntPtr
12257         * X11DnD.cs:
12258           - Removed local DllImports, switched code to use those from XplatUIX11
12259           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12260
12261 2006-02-06  Mike Kestner  <mkestner@novell.com>
12262
12263         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12264         method signatures in the import region.  There may still be some
12265         lingering struct marshaling issues, as I didn't drill down into those.
12266         Yet.
12267
12268 2006-02-06  Jackson Harper  <jackson@ximian.com>
12269
12270         * ComboBox.cs: Dont manually set the top_item, this is computed
12271         when the scrollbar position is set.
12272
12273 2006-02-06  Mike Kestner  <mkestner@novell.com>
12274
12275         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12276         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12277         usage of Atom needs to be mapped to IntPtr for example.  And there are
12278         likely other int/long issues to be addressed.
12279
12280 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12281
12282         * FileDialog.cs: One more...
12283
12284 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12285
12286         * FileDialog.cs: Next try
12287
12288 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12289
12290         * FileDialog.cs: First part of fix for #77464
12291
12292 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12293
12294         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12295           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12296           AcceptButton border drawing.
12297
12298 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12299
12300         * Form.cs: Moved positioning of form after auto scaling is applied,
12301           otherwise it would possibly use wrong form size.
12302
12303 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12304
12305         * Control.cs (RecreateHandle): No need to re-create any child
12306           controls, the child windows will get destroyed automatically by
12307           the windowing system or driver, and re-created when the handle
12308           is being accessed the first time. Fixes #77456
12309         * Form.cs: No longer setting the form to closing if the handle is 
12310           being recreated. This seems like the right thing to do, don't
12311           have a bug or testcase for this, though.
12312
12313 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12314
12315         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12316           controls to avoid unwanted side effects
12317
12318 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12319
12320         * Control.cs: 
12321           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12322             control. Fixes #77416.
12323           - DefaultSize is 0,0 for control
12324         * TextBoxBase.cs: 
12325           - DefaultSize is 100, 20
12326           - SetBoundsCore: Now enforcing the height, no matter if the provided
12327             height is more or less than the preferred one, as long as AutoSize
12328             is on
12329         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12330
12331 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12332
12333         * Control.cs:
12334           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12335             call unless both performLayout is true *and* we have a pending
12336             layout change
12337           - ResumeLayout: MS does not completely nest Suspend and Resume,
12338             they bottom out at 0, fixed our code to match that.
12339           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12340             SetBoundsCore, we were updating even when we shouldn't. This fixes
12341             swf-anchors mis-anchoring when resizing the app fast and lots.
12342           - UpdateDistances: Now only setting the left and top distance if 
12343             we have a parent and are not suspended, this is based on
12344             a suggestion by Don Edvaldson in bug #77355.
12345           - OnVisibleChanged: Fixed logic when to create the control. We may
12346             not create the control if we have no parent or if it's not visible;
12347             switched to using Visible property instead of is_visible field 
12348             since the property also considers parent states. This fixes a bug
12349             when starting Paint.Net
12350
12351 2006-02-02  Jackson Harper  <jackson@ximian.com>
12352
12353         * Form.cs: If the forms handle hasn't been created yet don't call
12354         into xplatui to make it top most, just set the topmost flag on the
12355         form in CreateParams
12356         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12357
12358 2006-02-01  Jackson Harper  <jackson@ximian.com>
12359
12360         * ScrollableControl.cs: Refactored the Recalculate method a
12361         little, this wasn't handling all the variants of bottom and right
12362         bars needed to be added and added/removed based on their
12363         counterparts being added/removed (which changes the drawable
12364         size). Also we special case client widths and heights of 0 and
12365         don't add the scrollbar for those.
12366
12367 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12368
12369         * XplatUIX11.cs: 
12370           - Added method to get AbsoluteGeometry(); currently unused, but might
12371             be used in the future, if we try again to figure out toplevel
12372             coordinates with some more crappy window managers
12373           - Added FrameExtents() method to retrieve the WM set decoration size
12374           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12375             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12376         * Hwnd.cs: 
12377           - Added whacky_wm tracking var for metacity
12378           - Added logic to have default menu height if the actual menu height
12379             has not yet been calculated (part of fix for #77426)
12380         * Form.cs: Keep track whether client size has been set and re-set 
12381           it if a menu is added/removed afterwards (Fixes #77426)
12382
12383 2006-01-31  Jackson Harper  <jackson@ximian.com>
12384
12385         * Control.cs: When a new Site is set on the component attempt to
12386         pull the AmbientProperties from it.
12387
12388 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12389
12390         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12391           in the background of the owning form. Fixes #77332
12392
12393 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12394
12395         * MimeIcon.cs: Fix for #77409
12396
12397 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12398
12399         * XplatUIX11GTK.cs: Initial import
12400
12401 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12402
12403         * FixedSizeTextBox: fixes class signature
12404
12405 2006-01-30  Jackson Harper  <jackson@ximian.com>
12406
12407         * FixedSizeTextBox.cs: New internal class that represents a
12408         textBox that will not be scaled.
12409         * TreeView.cs:
12410         * ComboBox.cs:
12411         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12412         standard TextBox.
12413                 
12414 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12415
12416         * XplatUIX11.cs: Retrieve default screen number instead of
12417           assuming 0. Attempted fix for #77318
12418
12419 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12420
12421         * XplatUIWin32.cs: 
12422           - GetWindowPos: When a window is parented by FosterParent, use 
12423             the desktop instead of FosterParent as the base to get coordinates
12424           - CreateWindow: Don't make FosterParent the parent window for Popups
12425             if we don't want a taskbar entry, Popups automatically don't get one
12426         * Hwnd.cs: Need to call remove to actually remove the key from the
12427           hash table
12428
12429 2006-01-30  Mike Kestner  <mkestner@novell.com>
12430
12431         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12432
12433 2006-01-30  Jackson Harper  <jackson@ximian.com>
12434
12435         * TreeView.cs:
12436         * TreeNode.cs: Raise events no matter how the treenode is
12437         checked. Patch by Don Edvalson.
12438
12439 2006-01-30  Jackson Harper  <jackson@ximian.com>
12440
12441         * TreeNode.cs: Signature fix.
12442
12443 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12444
12445         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12446
12447 2006-01-20  Mike Kestner  <mkestner@novell.com>
12448
12449         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12450         event forwarding when menus are active.
12451         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12452         Most of the patch is pdb's with a little rework.
12453
12454 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12455
12456         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12457           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12458           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12459         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12460         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12461           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12462           the PaintWindowDecorations method
12463         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12464         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12465         * MenuAPI.cs: Made tracker window invisible
12466         * XplatUIWin32.cs:
12467           - Removed GetMenuDC and ReleaseMenuDC methods
12468           - Implemented the client=false path for PaintEventStart and
12469             PaintEventEnd
12470
12471 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12472
12473         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12474         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12475           styles
12476         * Form.cs: 
12477           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12478             the style
12479           - CreateParams: Reworked the styles to match MS look'n'feel,
12480             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12481             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12482
12483 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12484
12485         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12486           window is not mapped, since otherwise every form that's being 
12487           created is considered minimized, which is wrong.
12488         * Form.cs: Catching the exception and returning our internal value
12489           instead
12490
12491 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12492
12493         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12494           SetWindowMinMax() to have means to tell the driver about the minimum,
12495           maximum and maximized state window sizes. (Part of the fix for #76485)
12496         * Form.cs:
12497           - Implemented tracking of minimum and maximum window size, now calling
12498             new SetWindowMinMax() driver method to tell the driver (Part of the
12499             fix for #76485)
12500           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12501             (Completes fix for #76485)
12502           - Calling new SetWindowMinMax driver method when the handle for a 
12503             form is created, to make sure the driver knows about it even if
12504             the values have been set before the window was created
12505           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12506             to avoid messing up our anchoring calculations (partial fix
12507             for #77355)
12508         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12509         * XplatUIX11.cs:
12510           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12511           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12512             (and presumably other freedesktop.org compliant WMs). Left the
12513             assumption unmapped=minimized, needed for SetVisible to work.
12514           - Now setting the window state when creating windows
12515           - Fixed SetVisible to consider/set the window state when mapping
12516             a Form. We cannot set the state before it's mapped, and we cannot
12517             use Form.WindowState once it's mapped (since it would ask the
12518             driver and get 'normal'. Therefore, we grab the state before
12519             mapping, map, and then set state.
12520           - Implmemented SetWindowMinMax method; Metacity does not seem to
12521             honor the ZoomHints, though.
12522         * XplatUIWin32.cs:
12523           - Removed MINMAXINFO (moved to XplatUIStructs)
12524           - Added SetWindowMinMax stub (on Win32 the only way to set that
12525             information is in response to the WM_GETMINMAXINFO message, which
12526             is handled in Form.cs)
12527           - Added logic to SetVisible to set the proper window state when a 
12528             form is made visible (fixes #75720)
12529
12530 2006-01-26  Jackson Harper  <jackson@ximian.com>
12531
12532         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12533         same way we handle them with Invoke.
12534
12535 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12536
12537         * Form.cs:
12538           - Added tracking of window state so CreateParams can return
12539             the appropriate style
12540           - Moved setting of WS_CAPTION style in CreateParams to allow
12541             styles without caption
12542         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12543           control if the TextBox property is accessed. Fixes #77345
12544         * Control.cs:
12545           - get_Created: now uses is_disposed and is_created to determine
12546             return value (suggested by Jackson)
12547           - CreateHandle: No longer exits if the handle is being recreated
12548           - RecreateHandle: If the handle is not yet created call the 
12549             appropriate method to create either control or handle. If the
12550             control is already created CreateHandle will simply exit instead
12551             of just creating the handle
12552         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12553           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12554           is called.
12555         * XplatUIX11.cs: 
12556           - When DestroyWindow is called, instead of waiting for the 
12557             DestroyNotification from X11, we directly post it to the WndProc
12558             and immediately dispose the hwnd object.
12559             Same applies to DestroyChildWindows, and this obsoletes the
12560             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12561             child windows before our own, to avoid X11 errors.
12562           - Removed the direct sending of WM_PAINT on UpdateWindow
12563         * XplatUIWin32.cs:
12564           - Reworked DoEvents and GetMessage to allow access to internal queue
12565             even when trying non-blocking access to the queue.  Fixes #77335. 
12566             Based on a patch suggestion by Don Edvalson. The new private
12567             GetMessage can now also be used as a backend for a PeekMessage
12568             frontend version.
12569         * XplatUI.cs: Improved debug output for CreateWindow
12570
12571 2006-01-25  Jackson Harper  <jackson@ximian.com>
12572
12573         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12574
12575 2006-01-24  Jackson Harper  <jackson@ximian.com>
12576
12577         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12578         when we have a MaxDropItems lower then the selected index.
12579
12580 2006-01-24  Jackson Harper  <jackson@ximian.com>
12581
12582         * Control.cs: Don't allow selection of non visible controls, allow
12583         selection of controls without parents.
12584
12585 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12586
12587         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12588         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12589
12590 2006-01-23  Jackson Harper  <jackson@ximian.com>
12591
12592         * UpDownBase.cs: Make the textbox handle all the selection and
12593         tabbing. This fixes tabing to updown controls.
12594
12595 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12596
12597         * TextBoxBase.cs: fixes exception thown the object was null
12598
12599 2006-01-23  Jackson Harper  <jackson@ximian.com>
12600
12601         * ButtonBase.cs: Just use the base CreateParams. They set
12602         visibility and enabled correctly.
12603         * ComboBox.cs:
12604         * TrackBar.cs:
12605         * MonthCalendar.cs: Lets let the base set as much of the
12606         createparams as possible so we don't have duplicate code all over
12607         the place.
12608
12609 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12610
12611         * ThemeGtk.cs: Added TrackBar and some experimental code to
12612           get double buffering back
12613
12614 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12615
12616         * DataGrid.cs: Allows row number set internally higher than the last
12617         when creating a new row. Restores the editing functionality.
12618
12619 2006-01-20  Mike Kestner  <mkestner@novell.com>
12620
12621         * MimeIcon.cs: delay Image creation until the icons are accessed
12622         instead of creating 190 scaled images on GnomeHandler startup.
12623
12624 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12625
12626         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12627           first call base before processing the event. Fixes #77279
12628
12629 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12630
12631         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12632           that the stride for the GDI bitmap would match the stride of
12633           a DIB or a Cursor.
12634
12635 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12636
12637         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12638
12639 2006-01-19  Jackson Harper  <jackson@ximian.com>
12640
12641         * ComboBox.cs: Hookup the text controls keydown event so we get
12642         those when the text control has the focus.
12643
12644 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12645
12646         * Label.cs: Now using the base events instead of defining new ones;
12647           this allows us to just call the base properties without having to
12648           duplicate all base property logic 
12649
12650 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12651
12652         * Label.cs: A label by default is not a tabstop (Fixes one of our
12653           failing nunit tests)
12654
12655 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12656
12657         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12658         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12659
12660 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12661
12662         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12663           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12664           This fixes #77218
12665         * XplatUIWin32.cs: 
12666           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12667             constructor creates images that can't be saved. Part of the fix
12668             for #76103
12669           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12670           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12671             bug fix for handling window state in forms properly)
12672
12673 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12674
12675         * ThemeGtk.cs: Simplify ScrollBar drawing
12676
12677 2006-01-18  Jackson Harper  <jackson@ximian.com>
12678
12679         * Splitter.cs: Set the default dock style for the splitter control
12680         in the constructor.
12681
12682 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12683
12684         * ThemeGtk.cs: Corrected StateType and ShadowType for
12685           gtk_paint_box
12686
12687 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12688
12689         * Control.cs: Make use of Theme.DoubleBufferingSupported
12690         * ThemeGtk.cs:
12691           - Added drawing for flat style buttons
12692           - Added ScrollBar drawing
12693
12694 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12695
12696         * ThemeClearlooks.cs: Removed some unneeded code.
12697         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12698
12699 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12700
12701         * LinkLabel.cs: We need to update the hover drawing when
12702           leaving the control as well.
12703
12704 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12705
12706         * DataGrid.cs: Clicking on non empty areas in the columns
12707            area was giving an exception
12708
12709 2006-01-17  Jackson Harper  <jackson@ximian.com>
12710
12711         * ThemeWin32Classic.cs:
12712         * ListView.cs: Do not draw/clip the headers when the header style
12713         is None.
12714
12715 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12716
12717         * DataGrid.cs: Fixes 77260
12718         
12719 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12720
12721         * DataGrid.cs: Clicking on a column on a empty grid was giving
12722           an exception
12723
12724 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12725
12726         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12727           or any keypress will crash the grid.
12728
12729 2006-01-17  Mike Kestner  <mkestner@novell.com>
12730
12731         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12732         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12733         invisible/previously-visible items.
12734         [Fixes #76909]
12735
12736 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12737
12738         * ThemeClearlooks.cs:
12739         - Added CL_Draw_Button method; now other theme controls that are 
12740           not derived from button or do not have a button can draw buttons
12741           too
12742         - Updated ComboBox drawing
12743         - Beautified RadioButton drawing
12744         - Corrected drawing of bottom and left tabs
12745         - Beautified DateTimePicker and MonthCalendar
12746         - Added CPDrawButton and CPDrawRadioButton
12747
12748 2006-01-16  Jackson Harper  <jackson@ximian.com>
12749
12750         * ComboBox.cs: Set the initial value of the scrollbar to the
12751         current index. Reduce the numbers of refreshs and IndexOfs called.
12752
12753 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12754
12755         * FileDialog.cs: When the file listview is focused hitting the
12756           backspace key moves the fileview to the parent directory
12757
12758 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12759
12760         * Form.cs: 
12761           - Added RecreateHandle call when changing taskbar visibility to 
12762             trigger reparenting in Win32 driver (Fixes #75719)
12763           - If a window has minimize or maximize buttons, it cannot have
12764             a help button
12765         * XplatUIWin32.cs:
12766           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12767             the toplevel form with FosterParent (A toolwindow not on the
12768             taskbar) (Fixes #75719)
12769           - Made FosterParent a toolwindow
12770
12771 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12772
12773         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12774
12775 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12776
12777         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12778           is currently over that control, make sure that tooltip_window.Text
12779           gets updated
12780
12781 2006-01-13  Mike Kestner  <mkestner@novell.com>
12782
12783         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12784
12785 2006-01-13  Jackson Harper  <jackson@ximian.com>
12786
12787         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12788         value passed.  Also redraw the selected node when we recieve
12789         focus, so tabbing between trees works correctly.
12790
12791 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12792
12793         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12794           ~/.gconf/%gconf-tree.xml, so use
12795           .gconf/desktop/gnome/interface/%gconf.xml
12796
12797 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12798
12799         * TextControl.cs: Draw text in gray if control is disabled
12800
12801 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12802
12803         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12804           make sure it's always visible. Fixes #76680.
12805
12806 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12807
12808         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12809
12810 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12811
12812         * PageSetupDialog.cs: Added.
12813         * PrintDialog.cs: Attributes.
12814         * PrintPreviewControl.cs: Updates.
12815         * PrintPreviewDialog.cs: Updates.
12816         
12817 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12818
12819         * Control.cs: Undid my selection check fix, since it's not needed
12820         * TextBoxBase.cs:
12821           - Now considering the presence of hscroll/vscroll when sizing
12822             vscroll/hscroll respectively. Fixed bug #77077
12823           - Added Left/Up/Down/Right to IsInputKey list to prevent
12824             ContainerControl from stealing them. This fixes what I broke
12825             with my last checkin.
12826
12827 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12828
12829         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12830           I finally understand how the property can be set without a setter :-)
12831
12832 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12833
12834         * Application.cs:
12835           - Switched RunLoop to use static Message.Create to create a 
12836             Message object
12837           - Added PreProcessMessage call in runloop for keyboard events; this
12838             is part of the fix for #77219, I overlooked this originally in the
12839             MSDN doc for PreProcessMessage
12840         * Control.cs:
12841           - Removed call to PreProcessMessage from handling of keyboard 
12842             messages; it's supposed to be done in the message pump
12843           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12844             per MSDN documentation.
12845           - IsInputChar: All chars are input chars by default; removed the 
12846             parent calling chain, MS does not document that
12847           - PreProcessMessage: If IsInputChar is true, we want to return false
12848             to allow dispatching of the message
12849           - When selecting the next control, now also check that we're not
12850             selecting ourselves again and therefore return a false positive.
12851         * TextBoxBase.cs:
12852           - Tried to match return values for IsInputKey and ProcessDialogKey
12853             to what MS returns; moved processing of our special keys outside
12854             ProcessDialogKey since MS does not seem to return true on those.
12855           - Moved code that previously was in ProcessDialogKey into new private
12856             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12857           - Reworked handling of WM_CHAR to not have to duplicate code from
12858             Control.cs anymore, instead we simply call down to base.
12859            
12860 2006-01-12  Jackson Harper  <jackson@ximian.com>
12861
12862         * ComboBox.cs: We always need to refresh the text area when
12863         EndUpdate is called. Fixes the combobox in the file dialog.
12864         * Control.cs: Don't create the creator_thread until the controls
12865         handle is created.  Also in InvokeRequired we check if the
12866         creator_thread is null. This gives the effect of InvokeRequired
12867         returning true if the controls handle is not created yet, and
12868         matches MS.
12869
12870 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12871
12872         * XplatUI.cs:
12873           - Added StartLoop() driver method. This is used to allow drivers to
12874             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12875             loop for a particular thread
12876           - Added EndLoop() driver method. This is called once the message
12877             pump for the thread is shut down
12878           - Added SupportsTransparency method to allow the driver to indicate
12879             opacity support for windows
12880         * Form.cs:
12881           - Removed TODO attribute, completed AllowTransparency property
12882           - Added documented logic to Opacity
12883         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12884           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12885           versions of CompatibleTextRendering
12886         * X11Structs.cs: Added opacity atom to our atom enumeration
12887         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12888           of a form might be set before it's reparented by the WM, and we need
12889           the opacity value without calling up to Form)
12890         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12891           SupportsTransparency() driver methods
12892         * Application.cs: Now calling StartLoop and EndLoop driver methods
12893         * XplatUIX11.cs:
12894           - Added opacity atom registration
12895           - Added StartLoop()/EndLoop() methods. They're empty right now but
12896             will need to get implemented when we switch to a per-thread queue
12897           - Implemented SupportsTransparency() method
12898           - Implemented SetWindowTransparency() method
12899           - Added support for setting the opacity value when a window is
12900             reparented (since the opacity needs to be set on the WM frame)
12901         * XplatUIOSX.cs, XplatUIWin32.cs:
12902           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12903
12904 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12905
12906         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12907
12908 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12909
12910         * FileDialog.cs: Added ToolTip for MWFFileView
12911         * MimeIcon.cs: Rewrote GnomeHandler.
12912           - Get currently used gnome icon theme from
12913             ($HOME)/.gconf/%gconf-tree.xml
12914           - Make use of inherited icon themes
12915           - Support SVG icon themes like Tango via librsvg
12916
12917 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12918
12919         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12920         builds. 
12921         
12922         * Application.cs: Move the use_compatible_text_rendering outside
12923         the NET_2_0 define.  If we ever need to use the
12924         use_compatible_text_rendering on the individual controls they will
12925         access the variable from the common shared code paths.
12926
12927 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12928
12929         * XplatUI.cs:
12930           - Added more granular debug options
12931           - Added method to print both window text and id
12932           - Switched debug output to use new Window() debug method
12933           - Added IsEnabled() driver method
12934           - Added EnableWindow() driver method
12935         * Form.cs:
12936           - Removed end_modal; no longer needed, new loop handles termination
12937             via 'closing' variable
12938           - If form is modal, setting DialogResult will now initiate loop
12939             termination via 'closing' variable
12940           - Added support for is_enabled/WS_DISABLED to CreateParams
12941           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12942             does all the work
12943           - Removed code that's now in RunLoop from ShowDialog()
12944           - Added various documented sanity checks to ShowDialog()
12945           - Added handling of WM_DESTROY message; we set 'closing' on getting
12946             the message to indicate the message pump to terminate
12947           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12948             send by the Application.ExitThread method. (We send the message
12949             to destroy the window after all other events have been
12950             processed through the queue, instead of destroying the handle 
12951             directly)
12952           - Moved code from Close() method to WM_CLOSE handler; added logic
12953             to only send close-related events if the form is not displayed
12954             modal
12955         * Splitter.cs (..ctor): Fixed typo in resource name
12956         * Control.cs:
12957           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12958             brush now
12959           - set_Cursor: Now only setting calling into XplatUI if the handle for
12960             the control is already created; this avoids implict handle creation
12961             or crashes if it's not created
12962           - set_Enabled: Now setting the enabled state via the new driver method
12963             instead of just tracking it
12964           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12965           - CreateControl: Reordered event firing and method calls to more
12966             closely fire events in the order MS does. Now setting the
12967             enabled state in the driver when creating the control.
12968           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12969             match MS order
12970         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12971           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12972         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12973         * Hwnd.cs:
12974           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12975           - Added EnabledHwnd property to easily allow a driver to find the
12976             handle of the first enabled window in the parent chain (this is
12977             used by drivers to pass up input events of disabled windows)
12978         * XplatUIDriver.cs: Added IsEnabled() method
12979         * Application.cs:
12980           - Removed crude and obsolete exiting tracking variable
12981           - Removed internal ModalRun(); replaced by RunLoop()
12982           - Implemented private CloseForms() method to allow closing all 
12983             windows owned by a particular (or all) threads
12984           - Exit() now properly closes all windows without forcing the message
12985             pump to quit
12986           - Removed obsolete InternalExit() method
12987           - Changed Run() methods to use new RunLoop() message pump
12988           - Implemented new RunLoop() method for both modal and non-modal forms
12989         * CommonDialog.cs:
12990           - get_CreateParams: Added setting of WS_DISABLED
12991           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12992             invoked via Form.ShowDialog()
12993         * NativeWindow.cs: We don't remove the window from the collection when
12994           the handle is destroyed; there might still be messages for it in the
12995           queue (mainly the resulting WM_DESTROY); instead it will be removed
12996           when Control calls InvalidateHandle in the WM_DESTROY handler
12997         * XplatUIX11.cs:
12998           - CreateWindow: Added logic to handle the WS_DISABLED window style
12999           - EnableWindow: Implemented based on Hwnd.Enabled
13000           - GetMessage: Reset PostQuitState so the method can be called again
13001           - Implemented support for disabled windows (passing messages to the
13002             first enabled parent) in handling all input messages
13003           - Added optimizations for handling Expose events
13004           - Implemeted new driver method IsEnabled()
13005           - Now always resetting paint pending tracking vars when we start paint
13006           - Re-implemented UpdateWindow via just sending a WM_PAINT message
13007         * XplatUIOSX.cs: Added IsEnabled method stub
13008         * XplatUIWin32.cs: Implemented new IsEnabled() method
13009
13010 2006-01-11  Jackson Harper  <jackson@ximian.com>
13011
13012         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13013         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
13014         variables a little.
13015         * ColorDialog.cs: Clear out the old form before adding the new
13016         panel.  
13017
13018 2006-01-11  Jackson Harper  <jackson@ximian.com>
13019
13020         * X11Dnd.cs: Make sure to add all the text formats when adding
13021         strings to the data object.
13022         * TreeNodeCollection.cs: When adding to a sorted tree we need to
13023         do some redrawing too.  Also change the UpdateNode to an
13024         UpdateBelow so the newly added node gets painted.
13025         
13026 2006-01-11  Miguel de Icaza  <miguel@novell.com>
13027
13028         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13029         LinkLabel.cs, PropertyGrid.cs: Implement the
13030         UseCompatibleTextRendering property for 2.x
13031
13032         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
13033
13034 2006-01-11  Jackson Harper  <jackson@ximian.com>
13035
13036         * TreeView.cs: Use the property for setting the selected node so
13037         the correct events get raised.
13038         * TreeNode.cs: Update the tree when the fore/back colours of a
13039         node are set.
13040
13041 2006-01-10  Jackson Harper  <jackson@ximian.com>
13042
13043         * TreeView.cs: Allow setting SelectedNode to null.
13044
13045 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13046
13047         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13048
13049 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13050
13051         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13052
13053 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13054
13055         * PrintDialog.cs: Added attributes and set default property values.
13056
13057 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13058
13059         * PrintControllerWithStatusDialog.cs: 
13060         Added PrintControllerWithStatusDialog.
13061
13062 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13063
13064         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13065         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13066
13067 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13068
13069         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13070
13071 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13072
13073         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13074         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13075
13076 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13077
13078         * MimeIcon.cs: Added internal class SVGUtil.
13079
13080 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13081
13082         * FileDialog.cs: Don't crash if there are two files with the
13083           same name but different locations.
13084
13085 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13086
13087         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13088         dates across multiple month grids. Used to not highlight entire 
13089         month, but does now.
13090         
13091 2006-01-06  Jackson Harper  <jackson@ximian.com>
13092
13093         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13094         message loop. Change timer intervals to numbers that seem more
13095         natural.
13096
13097 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13098
13099         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13100           object for location info since screen object is now implemented.
13101
13102 2006-01-05  Jackson Harper  <jackson@ximian.com>
13103
13104         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13105         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13106         AsyncMethodResult, this is because we ALWAYS want the
13107         ManualResetEvent to get set.
13108         * Control.cs: When disposing use an async invoke to call shutdown
13109         code, so that thigns don't block on the finalizer thread.  Also
13110         check if we even have a message loop before trying to send
13111         messages, if we don't then don't bother sending messages.
13112         - No more weak references for async methods
13113         * XplatUIDriver.cs: No more weak references for async methods.
13114
13115 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13116
13117         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13118           returns two FontFamily with the same name
13119
13120 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13121
13122         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13123           drawing disabled text. Instead using the ColorGrayText color
13124
13125 2006-01-04  Jackson Harper  <jackson@ximian.com>
13126
13127         * TreeNode.cs: redraw the node when its image index is changed.
13128
13129 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13130
13131         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13132           time I checked there are no others like it.
13133
13134 2006-01-04  Jackson Harper  <jackson@ximian.com>
13135
13136         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13137         this gives the behavoir I was looking for.
13138         * Control.cs: Special case Invoking EventHandlers, this matches MS
13139         and fixes part of bug #76326.
13140
13141 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13142
13143         * ThemeClearlooks.cs, FileDialog.cs:
13144           - Reflect the latest Theme class changes
13145           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13146             with DateTime
13147             
13148 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13149
13150         * Theme.cs: Cache UI resource images and resize them if needed
13151
13152 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13153
13154         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13155           is called. This fixes the crash in Nexxia when setting the font
13156           attributes in the chat. [However, RTF needs a look-over to make sure
13157           that all SelectionXXX methods handle the special case that selection
13158           is empty and therefore the change must be applied to all text starting
13159           at the cursor/selection start]
13160
13161 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13162
13163         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13164           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13165         * X11Keyboard.cs: Switched to new way of calling PostMessage
13166
13167 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13168
13169         * Theme.cs: Added theme interface for images to allow the theme to
13170           control what images are used for things like FileDialog, MessageBox
13171           icons, etc.
13172         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13173
13174 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13175
13176         * FileDialog.cs:
13177           - Removed some dead code
13178           - Opening a recently used file does work now
13179           - Small UI enhancements
13180           - Refactoring
13181
13182 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13183
13184         * FileDialog.cs: Forgot too add __MonoCS__
13185
13186 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13187
13188         * FileDialog.cs: We are able to read recently used files now let's
13189           go on and write them.
13190
13191 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13192
13193         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13194           button
13195         * MimeIcon.cs: Do a check for the top level media type also
13196
13197 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13198
13199         * ThemeClearlooks.cs:
13200           - Added CPDrawStringDisabled
13201           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13202             some chars if the text doesn't fit into text_rect
13203           - DrawListViewItem: If View = View.LargeIcon center the image;
13204             rewrote the drawing of ListViewItem.Text if View = 
13205             View.LargeIcon
13206
13207 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13208
13209         * MimeIcon.cs: Use default KDE icon theme if there is no
13210           "48x48" directory for the current icon theme, fixes #77114
13211         * Mime.cs: Disable not working and actually not used code. 
13212         * ThemeWin32Classic.cs:
13213           - Replace "new SolidBrush" in GetControlBackBrush and
13214             GetControlForeBrush with ResPool.GetSolidBrush
13215           - Changed DrawListViewItem from private to protected virtual
13216         * FileDialog.cs:
13217           - Added form.MaximizeBox = true
13218           - Don't throw an exception if there is a broken symbolic link
13219
13220 2005-12-23  Jackson Harper  <jackson@ximian.com>
13221
13222         * TabControl.cs: Give the panels focus, keyboard navigation is
13223         fixed so this works correctly now.
13224         - We need these key events also.
13225         * ToolBar.cs: Remove some of the poor mans double buffering.
13226         
13227 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13228
13229         * ComboBox.cs: The internal TextBox now returns the focus.
13230
13231 2005-12-23  Jackson Harper  <jackson@ximian.com>
13232
13233         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13234
13235 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13236
13237         * Control.cs: Removed debug code
13238         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13239           implicit children
13240
13241 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13242
13243         * Control.cs: When creating the control, update the Z-order after
13244           all it's children are created, too. (Fixes nexxia not showing
13245           picturebox bug)
13246
13247 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13248
13249         * Control.cs: Do not update the anchoring distances if layout is
13250           suspended, instead do it once layout is resumed
13251
13252 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13253
13254         * Control.cs: 
13255           - After many hours of debugging, for both Jackson and
13256             myself, it turns out that it helps to set the parent of a control
13257             if you want to actually see it onscreen. In the spirit of that
13258             discovery, we're now setting the parent of the control and
13259             it's children when the control's handle is created. This fix
13260             will make Lutz Roeder's Reflector run happily. 
13261           - now just creating the handle instead of the whole control when
13262             getting a graphics context for the control.
13263
13264 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13265
13266         * ScrollableControl.cs: When calculating the canvas, don't consider
13267           the scrollbar widths. Instead, predict if horizontal scrollbar
13268           will affect canvas when deciding on vertical display and vice versa.
13269
13270 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13271
13272         * RichTextBox.cs: Set default RTF font for documents that don't
13273           have a font table (Fixes #77076)
13274
13275 2005-12-22  Jackson Harper  <jackson@ximian.com>
13276
13277         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13278         clipboard. This prevents a NullRef in that case.
13279         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13280         clipboard. PRIMARY is for the currently selected text only. (We
13281         should implement PRIMARY at some point.
13282
13283 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13284
13285         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13286           a Unicode function with a structure that was defined in Ansi way.
13287           This fixes #76942.
13288
13289 2005-12-21  Jackson Harper  <jackson@ximian.com>
13290
13291         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13292         on. Because thats how it rolls. (and this avoids it using ambient
13293         colours).
13294         * ThemeWin32Classic.cs: Use the proper back color for filling.
13295         * Menu.cs: Use the system menu bar color for drawing menu
13296         bars. Using the window back color will bring ambient colours into
13297         the picture.
13298
13299 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13300
13301         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13302           Bitmaps were created and not disposed.
13303
13304 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13305
13306         * Control.cs (CreateControl): Don't do anything if the control is
13307           already created, otherwise we'd fire the OnCreated event more than
13308           once
13309
13310 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13311
13312         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13313           will always match. Instead return -1. Fixes #76464.
13314
13315 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13316
13317         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13318           neither the beginning nor the end of the line (Fixes bug #76479)
13319
13320 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13321
13322         * Control.cs:
13323           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13324             where handle is invalid
13325           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13326             instead of slower linear search
13327         * NativeWindow.cs: Don't remove the window from the hashtable until
13328           after the driver has destroyed it (since the driver might use
13329           Control.FromHandle to lookup the control object
13330         * Hwnd.cs: Added DestroyPending property to track if a window is 
13331           already destroyed as far as the driver is concerned and only hasn't
13332           yet notified the control
13333         * XplatUIX11.cs:
13334           - Activate(): Check if the window is still valid before using the 
13335             handle
13336           - Implemented DestroyChildWindow() method to mark child windows as
13337             destroyed when a window is destroyed. This prevents situations 
13338             where we might call an X method based on queued events for a
13339             window that already has been destroyed but we haven't yet pulled
13340             the destroy method from the queue.
13341           - Added a call to the new DestroyChildWindow() method to the drivers
13342             DestroyWindow code. Also now marking the destroyed window itself
13343             as pending
13344
13345 2005-12-20  Jackson Harper  <jackson@ximian.com>
13346
13347         * StatusBar.cs:
13348         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13349         anymore. Just do them when needed, also track the rects of panels
13350         so that we can optimize refreshing more in the future.
13351
13352 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13353
13354         * ColorDialog.cs: Fixed focus drawing in small color controls
13355
13356 2005-12-19  Jackson Harper  <jackson@ximian.com>
13357
13358         * InternalWindowManager.cs:
13359         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13360         moving windows works properly.
13361
13362 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13363
13364         * Control.cs: 
13365           - Removed call to InitLayout() from SetBoundsCore(); doc says
13366             it's only called when a control is added to a container
13367           - Split InitLayout logic, moved to separate UpdateDistances() method
13368             since we need to perform those calculations more often than just
13369             when adding the control to a container. (Needed to fix #77022)
13370           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13371           - Reduced the OnBindingContextChanged events count, don't send them
13372             unless the control is created, we still aren't totally matching
13373             MS, but I can't quite figure out some of their rules
13374
13375 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13376
13377         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13378           stripes
13379
13380 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13381
13382         * ThemeClearlooks.cs:
13383           - Updated ProgressBar drawing
13384           - Corrected drawing of ScrollBars and scroll buttons
13385           - Some temporary fixes for minor pixel artefacts
13386
13387 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13388
13389         * Control.cs:
13390           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13391             cause events to be sent in the same order as MS does.
13392           - Added ChangeParent() method to trigger various OnXXXChanged events
13393             that need to be fired when a parent changes (This is a reworking
13394             of the patch from r54254, with the X11 errors fixed)
13395           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13396             since on MS we get OnLayoutChanged events when calling Clear()
13397           - Changed Enabled property to consider parent state as well, if a
13398             parent is not enabled, the control will not be either
13399           - Changed Parent property to simply call Controls.Add() since that
13400             now does all the work required, this way we avoid code duplication
13401           - Threw in a few OnBindingsContextChanged calls to try and match
13402             when MS sends them. We seem to send a few too many, though.
13403           - Added call to CreateControl when adding the control to a parent.
13404             We were never calling CreateControl. Still needs some work, in
13405             some places we treat HandleCreated and ControlCreated as equal, 
13406             which is wrong
13407           - Removed obsolete commented out code from UpdateZOrder()
13408
13409 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13410
13411         * ThemeClearlooks.cs: Updated TrackBar drawing.
13412
13413 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13414
13415         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13416
13417 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13418
13419         * FileDialog.cs: Add the Help button and the open readonly
13420           checkbox only if needed
13421
13422 2005-12-16  Jackson Harper  <jackson@ximian.com>
13423
13424         * Control.cs: Make sure we have an active menu before trying to
13425         process commands on it. Prevents menu-less forms from crashing
13426         when Alt is pressed.
13427         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13428         Dieter Bremes.
13429         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13430         2.0 build.
13431
13432 2005-12-16  Jackson Harper  <jackson@ximian.com>
13433
13434         * InternalWindowManager.cs: Don't translate tool windows screen
13435         coordinates. This fixes windows 'bouncing' around when being moved.
13436
13437 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13438
13439         * TextBoxBase.cs:
13440           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13441             not quite MS compatible, MS uses that number only for single line
13442             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13443             the limit at 2GB)
13444           - Now enforcing the MaxLength limit when entering characters
13445           - Added argument to internal Paste() method to track if it's called
13446             from programatically or via keyboard, since keyboard driven pastes
13447             need to enforce max-length
13448           - Added logic to Paste to only paste as many chars as MaxLength 
13449             allows
13450         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13451         * TextControl.cs:
13452           - Added Length property to return number of characters in document
13453           - Added private CharCount property which only tracks actual chars
13454             in the document (no linefeeds) and fires event when CharCount
13455             changes
13456           - Added tracking of character count to all methods that alter it
13457           - Added LengthChanged event to allow applications to subscribe
13458             to any changes to the document
13459
13460 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13461
13462         * TextBox.cs: 
13463           - Removed local password_char field (moved to TextBoxBase)
13464           - Now setting the document's password var when password is
13465             set
13466         * TextBoxBase.cs:
13467           - Added password_char field (needed here so MultiLine can
13468             access it)
13469           - Added logic to MultiLine property setter to set the document's
13470             variable when password display is allowed
13471           - Removed debug code and made some debug code conditional
13472         * TextControl.cs:
13473           - Added RecalculatePasswordLine() method to handle special password
13474             char only lines
13475           - Added PasswordChar property, also added related tracking vars
13476           - Draw() method now uses local text var for grabbing text to draw,
13477             this var is set to line.text unless we're doing password display,
13478             then it is set to the pre-generated all-password-chars line
13479           - Added calling RecalculatePasswordLine() method for password lines
13480
13481 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13482
13483         * Hwnd.cs: 
13484           - Added Reparented property to allow tracking of Window Manager
13485             reparenting actions (which affect X/Y calculations of toplevel 
13486             windows)
13487           - Made ToString() print window handles in hex
13488         * XplatUIX11.cs:
13489           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13490             determine if X/Y needs offsetting
13491           - AddConfigureNotify(): Fixed offset calculations
13492           - Now adds ReparentNotify messages into the queue
13493           - Now processes ReparentNotify messages and causes a 
13494             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13495             is reparented (as most likely it's X/Y coordinates are changed
13496             due to that)
13497
13498 2005-12-14  Jackson Harper  <jackson@ximian.com>
13499
13500         * XplatUIX11.cs: Tool windows still need to respek focus.
13501
13502 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13503
13504         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13505           have a working release
13506
13507 2005-12-13  Jackson Harper  <jackson@ximian.com>
13508
13509         * Form.cs: Update styles after setting the border style regardless
13510         of whether or not the window is using a window manager.
13511
13512 2005-12-13  Jackson Harper  <jackson@ximian.com>
13513
13514         * Form.cs: We now hook into an internal window manager instead of just an
13515         MDI subsystem, this is so we can have properly behaving tool windows.
13516         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13517         * InternalWindowManager.cs: New internal class that acts as a
13518         window manager for tool windows and as a base for mdi windows.
13519         * MdiWindowManager.cs: New class that acts as a window manager for
13520         mdi windows.
13521
13522 2005-12-12  Jackson Harper  <jackson@ximian.com>
13523
13524         * Control.cs: Updates so we match behavoir for for implicit
13525         controls. Fixes explosions in MDI.
13526
13527 2005-12-12  Jackson Harper  <jackson@ximian.com>
13528
13529         * Control.cs: Implement Invalidate (Region).
13530
13531 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13532
13533         * Control.cs: 
13534           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13535             the same events as MS does. MS fires events for each property 
13536             except, for unknown reasons, Cursor, when the control is reparented. 
13537             I can't seem to totally match add/remove since MS also fires some 
13538             VisibleChanged events, which makes no sense. Consolidated the
13539             parenting code into a separate method so it can be called from
13540             both Add and Remove. set_Parent no longer needs any special logic
13541             as it calls the parent's add method which implicitly fires
13542             all events
13543           - Removed some obsolete code and debug output
13544           - Enabled state is inherited from parents, if this is enabled
13545
13546 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13547
13548         * Form.cs: Removed commented out code
13549
13550 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13551
13552         * Control.cs:
13553           - Added internal version of Invoke, with additional argument 
13554             indicating if we're calling it from a Dispose() handler. That
13555             way we can avoid BeginInvoke throwing an exception if we're
13556             calling for an already destroyed window.
13557           - Added a dispose argument to BeginInvokeInternal, and made the
13558             check if a valid window handle chain exists conditional on
13559             it not being a dispose call
13560           - Removed code in DestroyHandle to destroy our children. Since we
13561             now handle the WM_DESTROY message we will catch all our children
13562             being destroyed.
13563           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13564         * Form.cs:
13565           - Added a field to track the application context of the form.
13566           - No need to set closing variable as response to WM_CLOSE, instead
13567             we destroy the window. We also call PostQuitMessage if the form
13568             has an application context (which makes it the main app form,
13569             which, when closed terminates the app)
13570         * XplatUI.cs:
13571           - Dropped Exit() method, it's naming was confusing
13572           - Added PostQuitMessage() which causes GetMessage to return false
13573             once the message queue is empty
13574         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13575           PostQuitMessage()
13576         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13577           no longer a valid XplatUI method, but left it in since it's used
13578           internally. Added empty PostQuitMessage() method.
13579         * MenuAPI.cs: Replaced call to Exit() with call to
13580           PostQuitMessage, even though this is probably no longer needed.
13581         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13582         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13583         * Application.cs:
13584           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13585           - Removed old debug code that would call XplatUI for exception
13586             display, enabled standard exception handling (Still not enabled
13587             though, until NativeWindow's ExternalExceptionHandler define
13588             is removed
13589         * NativeWindow.cs:
13590           - Added internal method to allow control to update NativeWindow
13591             after a window has been destroyed
13592           - Added handling of already destroyed windows when calling i
13593             DestroyWindow
13594           - Added removal of handle from list on ReleaseHandle
13595         * XplatUIX11.cs:
13596           - Dropped GetMessageResult var and related code
13597           - Added PostQuitState to field to track if PostQuitMessage has been
13598             called
13599           - Dropped Exit() method
13600           - Added PostQuitMessage() method
13601           - GetMessage now will return false if PostQuitState is set and no
13602             more messages are in the queue.
13603           - Expose handler will no longer generate WM_PAINT messages if we are
13604             in PostQuitState since it's very likely any windows have already
13605             been destroyed, and since Hwnd won't get updated until we have
13606             processed the DestroyNotify we'd be causing X errors.
13607         
13608 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13609
13610         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13611           Thanks to Mike for pointing out the err of my ways.
13612
13613 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13614
13615         * Control.cs(PreProcessMessage): Moved menu handling back, but
13616           after all other key handling, to match MS (who handles Menu in
13617           DefWndProc)
13618         * Menu.cs (WndProc): Removed my brainfart
13619
13620 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13621
13622         * Control.cs(PreProcessMessage): Removed special menu handling 
13623         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13624
13625 2005-12-07  Mike Kestner  <mkestner@novell.com>
13626
13627         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13628         state according in tracker.
13629         * Menu.cs : promote tracker field to base class and provide a tracker
13630         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13631         has a tracker. Unparent items that are removed from the collection.
13632         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13633         * Theme*.cs: add always_show_hotkeys field to support configurability
13634         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13635         pressed.
13636
13637 2005-12-07  Jackson Harper  <jackson@ximian.com>
13638
13639         * MdiChildContext.cs: Use Control.ResetCursor.
13640         * Control.cs: ResetCursor needs to set the property so that the
13641         correct XplatUI call gets made.
13642
13643 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13644
13645         * Control.cs: More fixes to make our key events match MS. We
13646           were not setting the modifier state on KeyData, and we were
13647           not generating any events when Alt was pressed with a key
13648           since handling of WM_SYSxxx was missing for the OnKey methods.
13649
13650 2005-12-07  Jackson Harper  <jackson@ximian.com>
13651
13652         * MdiChildContext.cs: reenable the sizing code.
13653         - When the mouse leaves a window reset its cursor.
13654
13655 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13656
13657         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13658
13659 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13660
13661         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13662           widths of Fixed3D borders
13663
13664 2005-12-07  Jackson Harper  <jackson@ximian.com>
13665
13666         * MdiClient.cs: Fix warnings. Earn Mike's love.
13667
13668 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13669
13670         * ThemeClearlooks.cs:
13671           - Adjusted mouse over button color
13672           - Added first parts of CheckBox drawing
13673           - Added correct color for selected text background
13674           - Fixed ComboBox drawing
13675           - Added CPDrawBorder3D and CPDrawBorder
13676
13677 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13678
13679         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13680
13681 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13682
13683         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13684           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13685           alert users via sound. We could add an enum arg with different
13686           types of alerts in the future
13687
13688 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13689
13690         * Control.cs: Fix behaviour problems pointed out by Mike
13691
13692 2005-12-05  Mike Kestner  <mkestner@novell.com>
13693
13694         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13695         prop setters.  Calls parent.Refresh for now, but could be maybe be
13696         optimized with an internal method on StatusBar at some point.
13697         [Fixes #76513]
13698
13699 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13700
13701         * RichTextBox.cs: Implemented get_SelectionColor
13702
13703 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13704
13705         * ThemeClearlooks.cs:
13706           - Removed dead code
13707           - Draw black button border only if button is Form.AcceptButton
13708           - Draw correct button color for pressed RadioButton if the mouse 
13709             has entered the button
13710           - Updated ProgressBar drawing!
13711           - Updated CPDrawSizeGrip drawing
13712           - Updated StatusBarPanel drawing
13713
13714 2005-12-05  Mike Kestner  <mkestner@novell.com>
13715
13716         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13717         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13718
13719 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13720
13721         * ThemeClearlooks.cs: Initial check-in, activate with
13722           export MONO_THEME=clearlooks
13723         * ThemeEngine.cs: Added ThemeClearlooks
13724
13725 2005-12-03  Mike Kestner  <mkestner@novell.com>
13726
13727         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13728         [Fixes #76897]
13729
13730 2005-12-02  Jackson Harper  <jackson@ximian.com>
13731
13732         * Form.cs: If the child form has no menu the default main menu is
13733         used as the active menu.
13734
13735 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13736
13737         * ListBox.cs: Check if any items exist before trying to resolve 
13738           coordinates into items
13739
13740 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13741
13742         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13743           as the second color for the background hatch
13744
13745 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13746
13747         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13748         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13749           sure that what we pass to FormatText is always 1-based. Fixes #76885
13750
13751 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13752
13753         * NumericUpDown.cs (EndInit): When we are done initializing,
13754         reflect any updates on the UI.
13755
13756 2005-12-02  Jackson Harper  <jackson@ximian.com>
13757
13758         * ImplicitHScrollBar.cs:
13759         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13760         their container controls.
13761         * TreeView.cs: Use the new implicit scrollbars.
13762
13763 2005-12-02  Jackson Harper  <jackson@ximian.com>
13764
13765         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13766         can play with it.
13767         * TreeNodeCollection.cs: If we remove the topnode we need to
13768         update topnode to the next node in line.
13769         - When clearing nodes go through the same process as removing
13770         them, so they get depareneted and checked if they are top node.
13771
13772 2005-12-01  Jackson Harper  <jackson@ximian.com>
13773
13774         * TreeView.cs: When imagelists are used the image area is
13775         selectable as well as the text.
13776         - If there are no selected nodes select the first one.
13777         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13778         so don't do it more then we need to.
13779
13780 2005-12-01  Jackson Harper  <jackson@ximian.com>
13781
13782         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13783         that arrows can be scaled.
13784
13785 2005-12-01  Jackson Harper  <jackson@ximian.com>
13786
13787         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13788         fail. Patch by Dieter Bremes
13789
13790 2005-11-30  Jackson Harper  <jackson@ximian.com>
13791
13792         * Form.cs: Property is 2.0 only
13793         * PrintDialog.cs: Signature fix.
13794
13795 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13796
13797         * TextControl.cs: 
13798           - No longer artificially moves text 2 pixels down (now that we have
13799             borders this is no longer needed)
13800           - Added calcs for left, hanging and right indent
13801
13802 2005-11-23  Mike Kestner  <mkestner@novell.com>
13803
13804         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13805
13806 2005-11-30  Jackson Harper  <jackson@ximian.com>
13807
13808         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13809         get cloned as part of CloneMenu ().
13810         * Menu.cs: Make sure the parent of the items get set correctly
13811         when they are added.  And the owners are notified of the changes.
13812         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13813         we can change the menu being displayed/handled by the form without
13814         changing the menu assosciated with the form.
13815         - Don't let Mdi children draw/handle menus.
13816         
13817 2005-11-30  Jackson Harper  <jackson@ximian.com>
13818
13819         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13820         a MenuChanged event. Just to make the API a little more
13821         consistent.
13822         * MainMenu.cs:
13823         * MenuItem.cs: Use the new OnMenuChanged
13824         * MdiChildContext.cs: Handle menu merging.
13825         * Form.cs: Implement MergedMenu.
13826         
13827 2005-11-30  Jackson Harper  <jackson@ximian.com>
13828
13829         * Menu.cs: We were misusing Add. Add goes behind the specified
13830         index according to the docs, and does not replace the specified
13831         index. So I added an Insert method.
13832
13833 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13834
13835         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13836           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13837           is for Jackson
13838         * RichTextBox.cs: Added calls to base for DnD events
13839
13840 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13841
13842         * TextControl.cs:
13843           - Fixed drag-selection related crash; style fixes
13844           - Implemented undo class
13845             o Implemented method to capture document state for specified
13846               range in document tree
13847             o Implemented method to restore captured document state
13848             o Implemented cursor tracking
13849             o Implemented basic undo stack
13850           - Added undo cursor tracking to methods altering cursor location
13851           - Added undo tracking to selection deletion (still missing
13852             other text-altering hookups)
13853         * RichTextBox.cs:
13854           - Added SelectionLength property
13855           - Implemented CanPaste()
13856           - Implemented Paste()
13857           - Added missing protected methods
13858           - Fixed RTF->Document conversion; now uses font index 0 and color 
13859             index 0 as the default font for the parsed text
13860           - Fixed RTF<->Document font size translation
13861           - Fixed RTF generation, now properly handles cross-tag boundaries
13862             for single line selection
13863           - No longer always appends blank line to generated RTF
13864           - Removed TODOs
13865           - Added missing attributes
13866           - Hooked up undo-related methods
13867         * TextBoxBase.cs:
13868           - Implemented Copy()
13869           - Implemented Paste()
13870           - Implemented Cut()
13871           - Fixed caret mis-behaviour on backspace across line-boundaries
13872
13873 2005-11-29  Jackson Harper  <jackson@ximian.com>
13874
13875         * MdiClient.cs: Add a method for activating mdi children. Very
13876         basic right now. I imagine someday it might need more girth.
13877         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13878         children windows names are added to the menu item.
13879         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13880         mdilist. This happens regardless of whether or not there are any
13881         mdi windows to see in the list, and according to my tests happens
13882         before the items are even added. Also happens if there isn't even
13883         an mdi client to get windows from.
13884
13885 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13886
13887         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13888         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13889
13890 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13891
13892         * DataGridTableStyle.cs:
13893           - Create always the styles for the missing columns even if they are
13894             provided by the user (not default table style)
13895         * DataGrid.cs:
13896           - Fixes bug 76770
13897           - Fixes SetDataBinding (always re-attach source)
13898           - Fixes SetNewDataSource (only clear styles if they are not for 
13899             this source)
13900          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13901             and remove properly
13902
13903 2005-11-29  Jackson Harper  <jackson@ximian.com>
13904
13905         * FileDialog.cs: Implement missing bits, remove some dead
13906         code.
13907         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13908         creation of the panel so that the options set on the dialog are
13909         seen when the panel is created.
13910         * TreeView.cs: raise a click when items are clicked.
13911         
13912 2005-11-29  Jackson Harper  <jackson@ximian.com>
13913
13914         * MdiClient.cs: Pass some signature methods through to base.
13915
13916 2005-11-28  Jackson Harper  <jackson@ximian.com>
13917
13918         * ListView.cs: Raise the click event when items are clicked.
13919
13920 2005-11-28  Jackson Harper  <jackson@ximian.com>
13921
13922         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13923         a nullref.
13924
13925 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13926
13927         * ThemeNice.cs: - Removed 1 pixel bitmaps
13928           - Use SmoothingMode.AntiAlias where it makes sense
13929             (ScrollButton arrow for example)
13930           - Enhanced Button focus drawing
13931           - Fixed ComboBox drawing (no artefacts anymore, focus
13932             rectangle is back again, reduced size of ComboButton, etc.)
13933           - Fixed RadioButton focus drawing for Appearence.Button
13934           - Slight ScrollButton redesign
13935           - Some LinearGradientBrush size fixes
13936           - GroupBoxes have now rounded edges
13937           - Fixed StatusBar drawing
13938
13939 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13940
13941         * ThemeNice.cs: - Remove dead code
13942           - use correct background colors for menus, etc.
13943           - Fake pixel drawing with 1 pixel bitmaps
13944
13945 2005-11-24  Jackson Harper  <jackson@ximian.com>
13946
13947         * MdiClient.cs: Size the scrollbars when resizing the window.
13948         - Resize the maximized windows when the client is resized
13949         * Form.cs: Make the child context available
13950         
13951 2005-11-23  Jackson Harper  <jackson@ximian.com>
13952
13953         * MdiChildContext.cs: Don't size windows if they are maximized.
13954
13955 2005-11-23  Mike Kestner  <mkestner@novell.com>
13956
13957         * ContextMenu.cs: use MenuTracker.
13958         * Control.cs: remove menu handle usage.
13959         * Form.cs: remove menu handle usage.
13960         * Hwnd.cs: remove menu handle usage.
13961         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13962         motion and clicks to the new Tracker handlers.
13963         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13964         and handle usage.
13965         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13966         Killed the MENU and MENUITEM data types and associated collections
13967         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13968         MenuTracker class that exposes the leftovers from the old MenuAPI
13969         static methods. Restructured Capture handling so that only one grab is
13970         done for the entire menu hierarchy instead of handing off grabs to
13971         submenus. Tracker now has an invisible control to Capture when active.
13972         * MenuItem.cs: add sizing accessors, kill Create
13973         and handle usage.
13974         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13975         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13976         MENU(ITEM). remove menu handle usage, use Menu directly.
13977         * XplatUIDriver.cs: remove menu handle usage.
13978         * XplatUIOSX.cs: remove menu handle usage.
13979         * XplatUIWin32.cs: remove menu handle usage.
13980         * XplatUIX11.cs: remove menu handle usage.
13981
13982 2005-11-22  Jackson Harper  <jackson@ximian.com>
13983
13984         * Hwnd.cs: Don't compute the menu size for
13985         DefaultClientRectangle.
13986         - Reenable menu sizes being computed for GetClienRectangle.
13987         * Form.cs: Remove comment of trechery
13988         
13989 2005-11-22  Jackson Harper  <jackson@ximian.com>
13990
13991         * Hwnd.cs: The adjustments for the menu bar are made when it is
13992         attached to the form.
13993
13994 2005-11-19  Jackson Harper  <jackson@ximian.com>
13995
13996         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13997         (just like on windows).
13998
13999 2005-11-19  Jackson Harper  <jackson@ximian.com>
14000
14001         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
14002         use real buttons anymore because they are in non client area. The
14003         one TODO here is that I need to somehow invalidate a section of
14004         the non client area.
14005
14006 2005-11-18  Jackson Harper  <jackson@ximian.com>
14007
14008         * Control.cs: Put the enum check back in now that MDI doesnt have
14009         to use this to set border styles.
14010         * Form.cs: Only set mdi child windows borders if the handle has
14011         been created.
14012         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
14013         this directly on to the driver.
14014         - Get the move start position before adjusting for the titlebar
14015         height, this fixes the windows "skipping" when they are first
14016         moved.
14017
14018 2005-11-18  Jackson Harper  <jackson@ximian.com>
14019
14020         * XplatUIX11.cs: Just compute the mdi borders separately as they
14021         don't totally match up with normal form borders.
14022
14023 2005-11-18  Jackson Harper  <jackson@ximian.com>
14024
14025         * Control.cs: Set WS_ styles for borders, so that the driver does
14026         not have to retrieve the control instance to figure out what kind
14027         of borders it should have.
14028         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
14029         driver can know its an mdi child easily.
14030         * XplatUIX11.cs: Get the border styles and whether the window is
14031         MDI from the Styles and ExStyles params instead of having to get a
14032         control. This prevents a chicken and egg problem.       
14033
14034 2005-11-18  Jackson Harper  <jackson@ximian.com>
14035
14036         * MdiClient.cs: Fix typo so scrollbars show up correctly.
14037
14038 2005-11-18  Jackson Harper  <jackson@ximian.com>
14039
14040         * MdiClient.cs: Calculate when to add and remove scrollbars
14041         correctly.
14042         * MdiChildContext.cs: Adjust the y position to take the titlebar
14043         into account.
14044         - No height for FormBorderStyle.None
14045
14046 2005-11-18  Jackson Harper  <jackson@ximian.com>
14047
14048         * Control.cs: Allow non enum values to be used for
14049         InternalBorderStyle.  MDI does this to set a special border style.
14050         - New utility methods for converting points to/from client coords
14051         - Add the newly created control to the Controls collection before
14052         updating its style. This way UpdateStyle can walk the control
14053         heirarchy to find the control if needed.
14054         so I don't need to create a new Point object all the time.
14055         * Form.cs: Let MDI windows handle their border styles.
14056         - Set styles on MDI windows so the correct title style is derived.
14057         * MdiChildContext.cs: Move all the painting and window handling
14058         into the non client area.
14059         - Use correct sizing and put correct buttons on frames based on
14060         the FormBorderStyle.
14061         - Notify the mdi client about scrolling
14062         - Need to handle the buttons ourselves now, because they are all
14063         in non client areas and we can't add controls there.
14064         * MdiClient.cs: Halfway to scrolling, this implementation is
14065         somewhat broken though, we need to check to make sure other
14066         windows aren't causing scrolling before removing the bars. Also
14067         the bars need to be drawn on top, maybe I can switch implicit
14068         controls to be on top.
14069         * Hwnd.cs: caption_height and tool_caption_height are now
14070         properties of an hwnd, this way they can be set by the driver
14071         based on the type of window they are.  In X11 the window manager
14072         handles the decorations so caption_height is zero unless its an
14073         MDI window.
14074         - Add 3 pixel borders for MDI windows (0xFFFF).
14075         - Get rid of some code duplication, have DefaultClientRectanle
14076         just call GetClientRectangle.
14077         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14078         Hwnd now.
14079         - Set border styles differently for mdi windows.
14080         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14081         Hwnd now.
14082         
14083 2005-11-15  Mike Kestner  <mkestner@novell.com>
14084
14085         * Menu.cs: when adding an item to the collection, if item is already 
14086         parented, remove it from the parent.
14087
14088 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14089
14090         * X11DesktopColors.cs: Added KDE support
14091
14092 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14093
14094         * XplatUIWin32.cs: 
14095           - Clipboard methods now can translate Rtf format
14096           - No longer removes clipboard contents whenever a new format is added
14097             to allow placing multiple formats on the clipboard
14098         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14099           will place all formats contained in it onto the clipboard. Also
14100           now cleans the clipboard before placing a new object onto it
14101         * RichTextBox.cs:
14102           - Implemented set_Rtf
14103           - Implemented set_SelectedRtf
14104           - Created InsertRTFFromStream() method to allow single code base
14105             for all properties and methods that insert RTF into document
14106           - Removed debug output
14107         * TextControl.cs:
14108           - Fixed Delete(int) to fix up line numbers
14109           - Fixed ReplaceSelection to combine start and end line
14110           - Fixed serious DeleteChars bug that would leave the document tree
14111             broken
14112           - Improved DumpTree with several logic checks to detect broken
14113             document trees
14114           - Removed debug lines
14115           - Fixed Caret.WordForward/WordBack moving code, now always also 
14116             updates caret.tag (fixes crash when word-selecting across tag
14117             boundaries via keyboard)
14118           - Added Insert() method for inserting multiline text into documents
14119           - Fixed DeleteChars() calculation errors that would cause a broken
14120             tag chain with multiple tag lines
14121           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14122           - Split() no longer moves caret if split is at caret location
14123           - ReplaceSelection() now updates the cursor and re-displays it
14124           - ReplaceSelection() now uses new Insert() method to avoid code
14125             duplication
14126           - FormatText() can now handle formatting partial lines
14127         * TextBoxBase.cs:
14128           - Append now uses new TextControl.Insert() method (this avoids 
14129             duplicate code)
14130           - Implemented Ctrl-X (Cut) (
14131           - Implemented Ctrl-C (Copy)
14132           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14133             regeneration when pasting text; roundtripping Copy&Paste within
14134             edit control still fails due to some calculation bugs in GenerateRTF)
14135           - The Delete key will now remove the current selection if it is visible
14136         * TextBox.cs: Removed debug lines
14137         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14138           driver to be initialized and can't therefore be done via a static ctor)
14139
14140 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14141
14142         * TextControl.cs: Added backend code for finding char arrays and strings
14143         * TextBoxBase.cs:
14144           - Added mouse wheel scroll support
14145           - Added support for VScroll and HScroll events
14146         * RichTextBox.cs:
14147           - Implemented all seven Find() variants
14148           - Implemented GetCharFromPosition()
14149           - Implemented GetCharIndexFromPosition()
14150           - Implemented GetLineFromIndex()
14151           - Implemented GetPositionFromCharIndex();
14152           - Implemented SaveFile for PlainText and UnicodeText
14153           - Fixed set_Font, now setting a new font applies that font to
14154             the whole document
14155           - Implemented generic Document to RTF converter
14156           - Implemented SaveFile for RichText format (still missing unicode
14157             conversion for non-ansi chars)
14158           - Implemented get_Rtf
14159           - Implemented get_SelectedRtf
14160
14161 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14162
14163         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14164           to allow any captures to be released before triggering OnClick. This
14165           way a click handler may capture the mouse without interference.
14166         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14167           This way we send them even though X may not allow a grab (if the window
14168           isn't visible, for example)
14169
14170 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14171
14172         * DataGridViewRowEventArgs.cs: DataGridView implementation
14173         * DataGridViewElement.cs: DataGridView implementation
14174         * DataGridViewComboBoxCell.cs: DataGridView implementation
14175         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14176         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14177         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14178         * ImageLayout.cs: DataGridView implementation
14179         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14180         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14181         * DataGridViewSelectionMode.cs: DataGridView implementation
14182         * IDataGridViewEditingControl.cs: DataGridView implementation
14183         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14184         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14185         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14186         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14187         * DataGridViewColumnSortMode.cs: DataGridView implementation
14188         * DataGridView.cs: DataGridView implementation
14189         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14190         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14191         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14192         * Padding.cs: DataGridView implementation
14193         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14194         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14195         * DataGridViewRowEventHandler.cs: DataGridView implementation
14196         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14197         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14198         * DataGridViewButtonCell.cs: DataGridView implementation
14199         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14200         * DataGridViewEditMode.cs: DataGridView implementation
14201         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14202         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14203         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14204         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14205         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14206         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14207         * DataGridViewCellEventHandler.cs: DataGridView implementation
14208         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14209         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14210         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14211         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14212         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14213         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14214         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14215         * QuestionEventArgs.cs: DataGridView implementation
14216         * IDataGridViewEditingCell.cs: DataGridView implementation
14217         * DataGridViewTriState.cs: DataGridView implementation
14218         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14219         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14220         * DataGridViewColumnCollection.cs: DataGridView implementation
14221         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14222         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14223         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14224         * DataGridViewColumn.cs: DataGridView implementation
14225         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14226         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14227         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14228         * DataGridViewRow.cs: DataGridView implementation
14229         * DataGridViewImageCellLayout.cs: DataGridView implementation
14230         * DataGridViewImageCell.cs: DataGridView implementation
14231         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14232         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14233         * DataGridViewHeaderCell.cs: DataGridView implementation
14234         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14235         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14236         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14237         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14238         * QuestionEventHandler.cs: DataGridView implementation
14239         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14240         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14241         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14242         * DataGridViewCell.cs: DataGridView implementation
14243         * DataGridViewCellEventArgs.cs: DataGridView implementation
14244         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14245         * DataGridViewCellStyle.cs: DataGridView implementation
14246         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14247         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14248         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14249         * TextFormatFlags.cs: DataGridView implementation
14250         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14251         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14252         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14253         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14254         * DataGridViewButtonColumn.cs: DataGridView implementation
14255         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14256         * HandledMouseEventArgs.cs: DataGridView implementation
14257         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14258         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14259         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14260         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14261         * DataGridViewRowCollection.cs: DataGridView implementation
14262         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14263         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14264         * DataGridViewHitTestType.cs: DataGridView implementation
14265         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14266         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14267         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14268         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14269         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14270         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14271         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14272         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14273         * DataGridViewContentAlignment.cs: DataGridView implementation
14274         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14275         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14276         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14277         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14278         * DataGridViewPaintParts.cs: DataGridView implementation
14279         * DataGridViewCellCollection.cs: DataGridView implementation
14280         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14281         * DataGridViewImageColumn.cs: DataGridView implementation
14282         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14283         * DataGridViewElementStates.cs: DataGridView implementation
14284         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14285         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14286         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14287         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14288         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14289         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14290         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14291         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14292         * DataGridViewTextBoxCell.cs: DataGridView implementation
14293         * DataGridViewBand.cs: DataGridView implementation
14294         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14295         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14296         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14297         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14298         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14299         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14300         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14301         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14302         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14303         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14304         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14305
14306 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14307
14308         * ThemeWin32Classic.cs: 
14309           - Draw the outside focus rectangle around buttons
14310           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14311             doesn't use end caps for every dash of a line anymore. This
14312             workaround ignores the forecolor.
14313
14314 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14315
14316         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14317           endian safe.
14318
14319 2005-11-07  Jackson Harper  <jackson@ximian.com>
14320
14321         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14322
14323 2005-11-07  Jackson Harper  <jackson@ximian.com>
14324
14325         * ScrollableControl.cs: Calculate the maximum and change vars
14326         (more) correctly so that scrollbars appear as a sensible size.
14327
14328 2005-11-04  Jackson Harper  <jackson@ximian.com>
14329
14330         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14331         collection.
14332         * TreeView.cs: When the tree is sorted null out the top_node so
14333         that it is recalculated.
14334         - Use dotted lines instead of dashed lines to match MS better.
14335
14336 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14337
14338         * ListView.cs: 
14339           - Implements key search for items. Useful when browsing files with FileDialog
14340           - When changing view mode or when clear the items reset scrollbar positions
14341
14342 2005-11-04  Jackson Harper  <jackson@ximian.com>
14343
14344         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14345         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14346         as to what the method may do as there is no real way of creating a
14347         derived CurrencyManager and calling the method. 
14348
14349 2005-11-03  Jackson Harper  <jackson@ximian.com>
14350
14351         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14352         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14353         method which seems to just be used internally to refresh the tabs.
14354
14355 2005-11-03  Jackson Harper  <jackson@ximian.com>
14356
14357         * TabControl.cs: Implement the remove method. Fix some broken
14358         comments.
14359
14360 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14361
14362         * DateTimePicker.cs:
14363           - Added missing DateTimePickerAccessibleObject class
14364           - Added missing events
14365           - Added OnFontChanged method
14366         * Form.cs: Added missing attributes
14367         * TreeView.cs: Added missing attributes
14368
14369 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14370
14371         * GridItemCollection.cs: Fix signatures
14372
14373 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14374
14375         * XplatUI.cs: Updated build rev/date
14376         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14377           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14378         * Application.cs: Trigger context-specific ExitThread events
14379
14380 2005-11-03  Jackson Harper  <jackson@ximian.com>
14381
14382         * Menu.cs:
14383         * MainMenu.cs:
14384         * GridTableStylesCollection.cs:
14385         * Timer.cs:
14386         * TabPage.cs:
14387         * HelpProvider.cs:
14388         * StatusBar.cs:
14389         * MonthCalendar.cs: Signature fixes
14390
14391 2005-11-03  Jackson Harper  <jackson@ximian.com>
14392
14393         * TreeNodeCollection.cs: Remove should not be virtual.
14394         * TreeView.cs: Implement the last of the missing methods.
14395
14396 2005-11-03  Jackson Harper  <jackson@ximian.com>
14397
14398         * TreeNodeConverter.cs: Implement to get off my class-status back.
14399
14400 2005-11-03  Jackson Harper  <jackson@ximian.com>
14401
14402         * TreeView.cs: Hookup the bits for drag and drop.
14403         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14404         that nodes can be moved from tree to tree easily this just causes
14405         all sorts of problems.
14406         * TreeNodeCollection: Don't need to give treenodes an index and
14407         treeview anymore when they are added, these are computed on the
14408         fly. Also make sure to remove a node before its added.
14409
14410 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14411
14412         * TextControl.cs:
14413           - Added CaretSelection enum
14414           - Added comparison methods to Marker struct, makes selection code
14415             more readable
14416           - Added SelectionStart and SelectionEnd as 'moveable' location for
14417             the CaretDirection enum and handler
14418           - Added selection_prev variable to track optimized invalidation for
14419             word and line selection
14420           - Added SelectionVisible property (returns true if there is a valid 
14421             selection)
14422           - Switched CaretHasFocus to only display the caret if there is no
14423             visible selection
14424           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14425             using the direct character index; should be much faster
14426           - Added various conditional debug statements
14427           - Fixed invalidation calculation for selection ranges
14428           - Added ExpandSelection() method to support word and line selection
14429           - Switched SetSelectionToCaret to use new Marker compare overloads
14430           - Added central IsWordSeparator() method to determine word 
14431             separators/whitespace and FindWordSeparator() to streamline common
14432             usage of IsWordSeparator()
14433         * TextBoxBase.cs:
14434           - Removed unneeded grabbed variable, it was just mirroring
14435             Control.Capture
14436           - No longer firing OnTextChanged event when Text setter is called,
14437             since the base will fire the event for us
14438           - Added handling of Ctrl-Up/Down selection
14439           - Added handling of Shift-Cursorkey selection
14440           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14441             words
14442           - Added handling of Shift and Ctrl-Shift-Home/End selection
14443           - Removed some debug output
14444           - Added handling for single/double/tripple-click to place caret/
14445             select word/select line respectively (Fixes bug #76031)
14446           - Added support for drag expansion of word/line selection
14447         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14448           current selection
14449
14450 2005-11-02  Jackson Harper  <jackson@ximian.com>
14451
14452         * X11Dnd.cs: If the drag is going to and from a MWF window just
14453         copy the data instead of sending it out through the X Selection
14454         mechanism.
14455
14456 2005-11-02  Jackson Harper  <jackson@ximian.com>
14457
14458         * X11Dnd.cs:
14459         * XplatUIX11.cs: When in a drag we don't want motion notify
14460         messages to get passed on to the other controls. This prevents
14461         mouse move messages from showing up in the drag source.
14462
14463 2005-11-02  Jackson Harper  <jackson@ximian.com>
14464
14465         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14466         the correct button is release to end a drag.
14467         * XplatUIX11.cs: Make the button state internal so the drag system
14468         can access it.  Dragging needs to know about all button releases,
14469         not just left button.
14470
14471 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14472
14473         * Form.cs (Icon): If the icon is null, reset the icon to the
14474         default value. 
14475
14476         * Cursor.cs: When writing the AND-mask bitmap do not include the
14477         number of colors, but hardcode those to two (black and white),
14478         fixes the loading of color cursors (Paint Dot Net).
14479
14480         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14481         turn off autoscaling.
14482
14483         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14484
14485 2005-11-02  Jackson Harper  <jackson@ximian.com>
14486
14487         * X11Dnd.cs: Make sure to send a status message if the pointer
14488         enters a control that can not accept a drop, otherwise the cursor
14489         isn't updated correctly. Also tried to compress the lines of code
14490         a bit.
14491
14492 2005-11-02  Jackson Harper  <jackson@ximian.com>
14493
14494         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14495         set actions correctly.  This isn't perfect as XDND and win32 have
14496         some differences on how you allow actions. I'll clear this up by
14497         adding a path for drag from MWF to MWF windows.
14498         * XplatUIX11.cs: Hook into the dnd system.
14499
14500 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14501
14502         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14503         previously shown but they are no longer need it. Very obvious when 
14504         browsing files with FileDialog.
14505
14506 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14507
14508         * Control.cs: We always need to call OnPaintBackground. We pretty much
14509           ignore AllPaintingInWmPaint and always do the painting there, whether 
14510           it's set or not, since we always ignore the WM_ERASEBKGND message 
14511           (which we don't generate on X11). This fixes #76616.
14512         * Panel.cs: Removed unneeded background painting. This happens properly
14513           in Control.cs already
14514
14515 2005-10-31  Mike Kestner  <mkestner@novell.com>
14516
14517         * Menu.cs: Add items to collection before setting their index.
14518         * MenuItem.cs : add range checking with ArgumentException like MS.
14519         [Fixes #76510]
14520
14521 2005-10-31  Jackson Harper  <jackson@ximian.com>
14522
14523         * ListBox.cs: Invalidate if the area is visible at all not just
14524         contained in the visible rect. Fixes unselection of semi visible
14525         items.
14526
14527 2005-10-31  Jackson Harper  <jackson@ximian.com>
14528
14529         * Control.cs: Consistently name the dnd methods. Make them
14530         internal so we can override them to match some MS behavoir
14531         internally.
14532         * Win32DnD.cs: Use the new consistent names.
14533
14534 2005-10-31  Jackson Harper  <jackson@ximian.com>
14535
14536         * TreeView.cs: Don't draw the selected node when we lose focus.
14537
14538 2005-10-31  Jackson Harper  <jackson@ximian.com>
14539
14540         * X11Dnd.cs: We still need to reset the state even though a full
14541         reset isn't being done, otherwise status's still get sent all over
14542         the place.
14543
14544 2005-10-31  Jackson Harper  <jackson@ximian.com>
14545
14546         * Control.cs: Make the dnd_aware flag internal so the dnd
14547         subsystem can check it. Catch exceptions thrown in dnd handlers to
14548         match MS behavoir.
14549         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14550         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14551         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14552         flags to reduce the number of dnd enters/status's sent.
14553
14554 2005-10-31  Jackson Harper  <jackson@ximian.com>
14555
14556         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14557
14558 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14559
14560         * PictureBox.cs: Fixes 76512
14561
14562 2005-10-28  Jackson Harper  <jackson@ximian.com>
14563
14564         * X11Dnd.cs: Early implementation to support winforms being a drag
14565         source for data on X11. Also restructured the converters so they
14566         can go both ways now.
14567         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14568         
14569 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14570
14571         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14572           clipboard requests
14573
14574 2005-10-27  Jackson Harper  <jackson@ximian.com>
14575
14576         * TreeNode.cs: Implement serialization so my DnD examples will work.
14577
14578 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14579
14580         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14581           TreeView.cs: Don't dispose objects that are not owned.
14582           
14583 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14584
14585         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14586           should retrieve the current cursor and report that, but XplatUI
14587           doesn't (yet) have an interface for that (and I'm not sure I even
14588           can, on X11)
14589         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14590           until any message loop processing is done (and the WM_SETCURSOR
14591           replaces the cursor to the proper one)
14592         * XplatUIX11.cs: 
14593           - Fixed override behaviour, we can't set the cursor globally on X11, 
14594             just for our windows.
14595           - Invalidating the System.Drawing X11 display handle when we are
14596             shutting down
14597         * Control.cs: Fix to make csc happy
14598
14599 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14600
14601         * TextBoxBase.cs: 
14602           - get_Text: Add last line (without trailing newline) to returned
14603             value (Fixes 76212)
14604           - get_TextLength: Count last line in returned length
14605           - ToString: Call Text property instead of duplicating code
14606
14607 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14608
14609         * ImageList.cs: Dispose ImageAttributes objects.
14610
14611 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14612
14613         * ImageList.cs: Use attribute constructors with less arguments where
14614           possible.
14615
14616 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14617
14618         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14619           Use typeof instead of strings when assembly is referenced. Added
14620           some more comments.
14621
14622 2005-10-21  Jackson Harper  <jackson@ximian.com>
14623
14624         * ListView.cs: Raise a double click event. Also tried to somewhat
14625         fix when the selectedindexchanged event is raised. Its still
14626         broken though.
14627
14628 2005-10-21  Jackson Harper  <jackson@ximian.com>
14629
14630         * TreeView.cs: New method to invalidate the plus minus area of a
14631         node without invalidating the whole node (maybe this can be used
14632         in some more places).
14633         * TreeNodeCollection.cs: When adding to an empty node we need to
14634         invalidate its plus minus area so the little block shows up.
14635         
14636 2005-10-21  Jackson Harper  <jackson@ximian.com>
14637
14638         * TreeView.cs: Make sure that when we invalidate a node the bounds
14639         are big enough to cover the selected box and the focus
14640         rectangle. Use a different colour for the lines connecting nodes
14641         so they show up with all themes.
14642
14643 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14644
14645         * NativeWindow.cs: Don't call anything that could call into the driver,
14646           we might be on a different thread.
14647
14648 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14649
14650         * Control.cs(Dispose): Since Dispose might run on a different thread,
14651           make sure that we call methods that could call into the driver via
14652           invoke, to avoid thread issues
14653
14654 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14655
14656         * XplatUI.cs: Removed finalizer
14657         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14658           not allowing to be called on the finalizer thread.
14659
14660 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14661
14662         * ImageList.cs:
14663           - Reverted r51889 and r51891.
14664           - Added ImageListItem class that stores unmodified image items and image
14665             properties required to create list images until handle is created.
14666           - Added AddItem and moved image creation logic to AddItemInternal.
14667           - Added CreateHandle method that creates images based on unmodified items.
14668           - Added DestroyHandle that changes state to store unmodified items.
14669           - Add and AddStrip methods no more create handle.
14670           - ReduceColorDepth has no return value.
14671           - Dispose destroys handle.
14672           - Modified other methods to reflect the above changes.
14673           - Implemented key support.
14674           - Added profile 2.0 members and attributes.
14675           - Added private Reset and ShouldSerialize methods that provide the same
14676             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14677             them as they are private.
14678           - Added some more comments about implementation details.
14679
14680 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14681
14682         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14683
14684 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14685
14686         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14687
14688 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14689
14690         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14691         * DataGridColumnStyle.cs: Remove debug message
14692
14693 2005-10-20  Jackson Harper  <jackson@ximian.com>
14694
14695         * TreeView.cs: We can always get input keys regardless of whether
14696         or not editing is enabled. They are used for navigation.
14697
14698 2005-10-20  Jackson Harper  <jackson@ximian.com>
14699
14700         * TreeNode.cs: Use the viewport rect for determining if a node
14701         needs to be moved for visibility. Don't use Begin/End edit. This
14702         calls a full refresh when its done.
14703         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14704         rect property internal so the treenodes can see it. When clicking
14705         on a node we need to ensure that its visible because it might just
14706         be partly visible when clicked.
14707
14708 2005-10-20  Jackson Harper  <jackson@ximian.com>
14709
14710         * TreeNodeCollection.cs: Remove debug code.
14711
14712 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14713
14714         * Datagrid.cs: Implements column sorting in Datagrid
14715         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14716
14717 2005-10-20  Jackson Harper  <jackson@ximian.com>
14718
14719         * TreeNodeCollection.cs: Remove items properly. Update the correct
14720         area after removing them.
14721
14722 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14723
14724         * Datagrid.cs: Should not call base.OnPaintBackground
14725
14726 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14727
14728         * XplatUIX11.cs (GetMessage):
14729           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14730             window instead of client window
14731           - Now properly calculates NC_xBUTTONUP message coordinates
14732           - ScreenToMenu now properly calculates it's coordinates of whole 
14733             window, since menus are in the whole window, not in the client
14734             window
14735           - Added WholeToScreen coordinate translation method
14736
14737 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14738
14739         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14740           want to return a message, loop back to the beginning of the function
14741           and grab the next real message to process instead.
14742
14743 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14744
14745         * Splitter.cs: Properly set limits if no filler control is used
14746
14747 2005-10-19  Jackson Harper  <jackson@ximian.com>
14748
14749         * ColorDialog.cs: Don't show the help button if it is not enabled
14750         instead of disabling it (this is what MS does). Don't create the
14751         panel until the dialog is run, otherwise the vars (such as
14752         ShowHelp) are not set yet.
14753
14754 2005-10-19  Jackson Harper  <jackson@ximian.com>
14755
14756         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14757         are reduced when adding nodes.
14758         * TreeNode.cs:
14759         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14760         tree.
14761         
14762 2005-10-19  Jackson Harper  <jackson@ximian.com>
14763
14764         * FolderBrowserDialog.cs: End editing our treeview so the window
14765         actually gets refreshed.
14766
14767 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14768
14769         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14770           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14771           inside of WM_PAINT
14772
14773 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14774
14775         * MenuAPI.cs: Returns after Hidding window
14776         * XplatUIX11.cs: Added TODO found while debugging menu issues
14777
14778 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14779
14780         * XplatUIX11.cs: Do not re-map the whole window when it's size
14781           becomes non-zero unless it's supposed to be actually visible
14782
14783 2005-10-18  Jackson Harper  <jackson@ximian.com>
14784
14785         * TreeView.cs: We don't need to keep a count anymore.
14786         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14787         use the Grow method.
14788
14789 2005-10-18  Jackson Harper  <jackson@ximian.com>
14790
14791         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14792         implement it manually here.
14793
14794 2005-10-18  Jackson Harper  <jackson@ximian.com>
14795
14796         * ImageList.cs: Dont kill the list when the colour depth is
14797         changed, just change the colour depth of all the images.
14798         - Same goes for setting the image size. Just resize them all
14799         instead of killing the list softly.
14800
14801 2005-10-18  Jackson Harper  <jackson@ximian.com>
14802
14803         * Control.cs: Don't invalidate empty rectangles.
14804
14805 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14806
14807         * ListViewItem.cs:
14808           - Adds checked item to the Checked/Item lists (where empty before)
14809           - Do not add items to the Selected lists if they are already present
14810         * ListView.cs:
14811           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14812           - When deleting items make sure that we delete them for the Selected
14813           and Checked list also.
14814
14815 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14816
14817         * Label.cs: Dispose objects no longer used
14818         * ThemeWin32Classic.cs: Dispose objects no longer used
14819
14820 2005-10-18  Jackson Harper  <jackson@ximian.com>
14821
14822         * TabControl.cs: Don't refresh the whole control when the tabs are
14823         scrolled, we just need to refresh the tab area.
14824
14825 2005-10-17  Jackson Harper  <jackson@ximian.com>
14826
14827         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14828         after handle when we need it.
14829
14830 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14831
14832         * Control.cs: When the parent size changes, recalculate anchor 
14833           positions. Partial fix for #76462
14834
14835 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14836
14837         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14838           drawn. Fixes #76462
14839
14840 2005-10-17  Jackson Harper  <jackson@ximian.com>
14841
14842         * MonthCalendar.cs: Don't create the numeric up down until our
14843         handle is created. Otherwise our handle is created in the
14844         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14845         yet.
14846
14847 2005-10-17  Jackson Harper  <jackson@ximian.com>
14848
14849         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14850         correctly.
14851
14852 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14853         * TreeNode.cs : small logical fix (was using local var instead of field)
14854         
14855 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14856
14857         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14858
14859 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14860
14861         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14862
14863 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14864
14865         * Control.cs: 
14866           - Re-implemented anchoring code. My first version was really broken.
14867             This fixes bug #76033. Unlike the previous implementation we will
14868             no longer have round errors since all numbers are calculated from
14869             scratch every time. Removed various anchor-related obsolete vars.
14870           - InitLayout no longer causes layout event firing and layout to be 
14871             performed
14872
14873 2005-10-16  Jackson Harper  <jackson@ximian.com>
14874
14875         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14876         which was broken).
14877
14878 2005-10-16  Jackson Harper  <jackson@ximian.com>
14879
14880         * TabControl.cs: Remove debug code.
14881
14882 2005-10-16  Jackson Harper  <jackson@ximian.com>
14883
14884         * XEventQueue.cs: Increase the default queue size (very simple
14885         apps needed to grow the queue).
14886         * Hwnd.cs: No finalizer so we don't need to suppress
14887         finalization. Compute the invalid area manually so a new rectangle
14888         does not newto be created.
14889         * ScrollableControl.cs: Don't set any params (otherwise visibility
14890         isn't set correctly).
14891         * MdiChildContext.cs: New constructor takes the mdi parent so it
14892         doesn't have to be computed and avoids a crash on windows. Draw
14893         the window icon properly, and allow the text to be seen.
14894         * Form.cs: Use new MdiChildContext constructor. Make sure the
14895         child context isn't null in wndproc.
14896         * TabControl.cs: Don't set focus, this is muddling keyboard
14897         behavoir. Expand the tab rows when a window size increase will
14898         allow extra tabs to be seen. Don't allow tabs smaller than the
14899         width of a window to be scrolled out of view.
14900         * TreeNode.cs:
14901         * TreeView.cs: Use measure string to calculate a nodes width, the
14902         width is cached and only updated when the text or the font is
14903         changed. Don't check for expand/collapse clicks on the first level
14904         nodes if root lines are disabled.
14905         
14906 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14907
14908         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14909
14910 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14911
14912         * DataGridBoolColumn.cs: fixes warning
14913
14914 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14915
14916         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14917         to match more to match more precisely the MS Net behavior
14918
14919 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14920
14921         * Hwnd.cs: Added field to track if window is mapped
14922         * XplatUIX11.cs: 
14923           - Unmap windows if they become 0-size, re-map when 
14924             they are >0 again; fixes #76035
14925           - Re-set our error handler after initializing X11Desktop
14926             to override any error handlers Gtk or whatever was called
14927             may have set.
14928
14929 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14930
14931         * CheckedListBox.cs: Removed unused vars
14932         * ListView.cs: Fixed signatures
14933         * RichTextBox.cs: Removed unused vars
14934         * TextBoxBase.cs: Removed unused vars
14935         * XplatUIWin32.cs: Removed unused vars
14936         * XplatUIX11.cs: Removed unused vars
14937         * XplatUI.cs: Updated version and date to latest published
14938
14939 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14940
14941         * Cursor.cs: Added private .ctor to work around a bug in
14942           resourceset (Thanks to Geoff Norton for the help on this)
14943         * SplitterEventArgs.cs: Made fields accessible so we don't
14944           waste boatloads of objects and can reuse the same one
14945           in Splitter
14946         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14947           any captions and borders when generating screen coordinates
14948         * Splitter.cs: Reimplemented control, now fully complete, uses
14949           rubberband drawing, supports and obeys all properties, has
14950           proper cursors
14951
14952 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14953
14954         * Form.cs (Form): Setup default values for autoscale and
14955         autoscale_base_size;  Make these instance variables, not static
14956         variables. 
14957
14958         (OnLoad): on the first load, adjust the size of the form.
14959
14960 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14961
14962         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14963           width argument to DrawReversibleRectangle()
14964         * XplatUIWin32.cs, XplatUIX11.cs: 
14965           - Implemented width for DrawReversibleRectangle()
14966           - Added logic to DrawReversibleRectangle that recognizes a zero
14967             width or height and only draws a line in that situation
14968         
14969 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14970
14971         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14972         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14973         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14974           method (it uses our FosterParent window to get a graphics context)
14975
14976 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14977
14978         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14979           and SetWindowBackground methods
14980         * Control.cs:
14981           - Setting proper ControlStyles
14982           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14983             EraseWindowBackground, instead we draw the window background
14984             ourselves in PaintControlBackground. This behaviour is
14985             required to match MS, where, when OnPaintBackground is not
14986             called, the background is not drawn.
14987           - Removed unneeded Refresh() in set_Text
14988         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14989         * XplatUIX11.cs:
14990           - Created DeriveStyles method to translate from CreateParams to
14991             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14992             matches FormBorderStyle enum values)
14993           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14994             style calculations into single DeriveStyles method
14995           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14996             from redrawing the whole window on any resize or expose.
14997           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14998             all styles were applied to our whole/client window appropriately
14999           - Removed EraseWindowBackground() and SetWindowBackground() methods
15000           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
15001             no longer clear/redraw the background through X
15002           - Removed handling of erase_pending bit, we have no use for it (or
15003             so it seems)
15004         * XplatUIOSX.cs:
15005           - Removed generation and handling of WM_ERASEBKGND message
15006           - Removed EraseWindowBackground() and SetWindowBackground() methods
15007           - Removed handling of hwnd.ErasePending flag
15008         * XplatUIWin32.cs:
15009           - Removed EraseWindowBackground() and SetWindowBackground() methods
15010           - We no longer call EraseWindowBackground on PaintEventStart, we 
15011             ignore the fErase flag, erasing is handled in Control in the
15012             background handler
15013         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
15014           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
15015           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
15016           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
15017           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
15018           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
15019           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
15020
15021 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
15022
15023         * PropertyGrids.cs: Get sub properties
15024         * PropertyGridView.cs: Fix drawing code
15025
15026 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15027
15028         * ListBox.cs: Fixes 76383
15029
15030 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15031
15032         * DataGridTextBoxColumn.cs: Sets location and size before attachment
15033         * ThemeWin32Classic.cs: Fixes border drawing and calculations
15034         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
15035
15036
15037 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15038
15039         * ComboBox.cs: Fixes border drawing
15040
15041 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15042
15043         * MimeIcon.cs: Ignore errors if the file can not be read.
15044
15045 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15046
15047         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15048          - Fixed border calculations
15049          - Fixed horizontal scrolling in single column listboxes
15050          - Fixed drawing issues
15051
15052 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15053
15054         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15055           FormBorderStyle enum
15056         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15057           code to determine FormBorderStyles from CreateParams
15058         * Form.cs:
15059           - Fixed bug where we'd set the wrong window styles if we were
15060             not creating an MDI window
15061           - Added call to XplatUI.SetBorderStyle when form borders are set
15062         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15063         * Hwnd.cs:
15064           - Removed obsolete edge style
15065           - Switched from BorderStyle to FormBorderStyle
15066         
15067 2005-10-10  Jackson Harper  <jackson@ximian.com>
15068
15069         * Form.cs: Use the property to get the window handle instead of
15070         accessing it directly. Prevents a null reference exception.
15071
15072 2005-10-10  Jackson Harper  <jackson@ximian.com>
15073
15074         * TreeView.cs: Don't adjust the rect given to DrawString now that
15075         our libgdiplus draws correctly.
15076
15077 2005-10-08  Jackson Harper  <jackson@ximian.com>
15078
15079         * TreeView.cs: Don't try to find the clicked on node if there are
15080         no nodes in the tree.
15081
15082 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15083
15084         * RichTextBox.cs:
15085
15086           restore
15087
15088 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15089
15090         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15091           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15092           ErrorProvider.cs:
15093           Use ResPool for brushes and dispose System.Drawing objects that
15094           are not used anymore.
15095
15096 2005-10-07  Jackson Harper  <jackson@ximian.com>
15097
15098         * MdiChildContext.cs: Use the new borders instead of drawing them
15099         ourselves.
15100
15101 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15102
15103         * Calling UpdateBounds after changing the window's BorderStyle 
15104         since the style can change the ClientSize
15105
15106 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15107
15108         * Control.cs: Made PaintControlBackground virtual
15109         * Panel.cs: Overriding PaintControlBackground instead of using paint
15110           event; paint event method was interfering with 'real' users of the
15111           event.
15112
15113 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15114
15115         * ThemeWin32Classic.cs: remove border drawing since it is handled
15116         by the base control class now and was causing double border drawing.
15117
15118 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15119
15120         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15121           but it does seem to match MS behaviour. This fixes bug #75324
15122
15123 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15124
15125         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15126           somewhat hackish looking
15127
15128 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15129
15130         * TextBoxBase.cs:
15131           - We now accept Enter even if AcceptEnter is false, if the containing
15132             form does not have an AcceptButton configured (fixes bug #76355)
15133           - Calculations are now fixed to no longer use Width/Height, but
15134             ClientSize.Width/Height, since we now support borders (this was
15135             a result of fixing borders and therefore bug #76166)
15136           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15137             true (fixes bug #76354)
15138         
15139 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15140
15141         * Control.cs: 
15142           - Defaulting BorderStyle and setting it in XplatUI when our window 
15143             is created
15144           - Added enum check to InternalBorderStyle setter
15145         * XplatUIX11.cs: 
15146           - Added drawing of window borders
15147           - Now properly calculates WM decorations offset for toplevel 
15148             windows (fixes bug #74763)
15149         * XplatUIWin32.cs: 
15150           - Implemented BorderStyles for windows (we're letting win32 draw 
15151             the border for us)
15152           - Fixed the signature for SetWindowLong
15153         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15154           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15155           setting borders
15156         * UpDownBase.cs: Remove drawing of borders, this is handled by
15157           the driver, outside the client area
15158         * ListView.cs: Removed bogus border calculations. The control should
15159           be oblivious to borders, since those are not part of the client
15160           area. 
15161         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15162         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15163           drawing code
15164
15165 2005-10-06  Jackson Harper  <jackson@ximian.com>
15166
15167         * MdiChildContext.cs: Clear out the old virtual position remove
15168         all the unneeded calls to CreateGraphics.
15169
15170 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15171
15172         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15173
15174 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15175
15176         * Form.cs: 
15177           - Added loading and setting of our new default icon
15178           - Only set icon if window is already created
15179
15180 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15181
15182         * Label.cs:
15183           - Do not explicitly set the foreground and background colors, to
15184             allow inheriting from parents (fixes #76302)
15185           - Use Control's InternalBorderStyle property to deal with borders
15186
15187 2005-10-06  Jackson Harper  <jackson@ximian.com>
15188
15189         * MdiChildContext.cs: Use the new xplatui function to draw a
15190         reversible rect.
15191
15192 2005-10-06  Jackson Harper  <jackson@ximian.com>
15193
15194         * Form.cs: Add the parent before creating the child context cause
15195         we need the parent when setting up the child.
15196
15197 2005-10-06  Jackson Harper  <jackson@ximian.com>
15198
15199         * FolderBrowserDialog.cs: redo the tree population code so a
15200         second thread isn't used. Should be a lot faster and more stable
15201         now.
15202
15203 2005-10-05  Jackson Harper  <jackson@ximian.com>
15204
15205         * TreeView.cs: There are no expand/collapse boxes if the node has
15206         no children.
15207
15208 2005-10-05  Jackson Harper  <jackson@ximian.com>
15209
15210         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15211
15212 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15213
15214         * FileDialog.cs: Fix InitialDirectory
15215
15216 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15217
15218         * ComboBox.cs:
15219                 - Fixes changing between styles
15220                 - Fixes simple mode
15221                 - Fixes last item crashing when navigating with keyboard
15222
15223 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15224
15225         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15226
15227 2005-10-05  Jackson Harper  <jackson@ximian.com>
15228
15229         * TreeView.cs: If updating the root node do a full refresh.
15230         * TreeNode.cs: The root node should be expanded by default. Also
15231         added a utility prop to tell if we are the root node.
15232         * TreeNodeCollection.cs: Only refresh if the node we are being
15233         added to is expanded. Also added a comment on a potential
15234         optimization.
15235         
15236 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15237
15238         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15239           in dispose method. Fixes #76330
15240
15241 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15242
15243         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15244
15245                 - Implements vertical and horizontal scrolling using XplatUI
15246                 - Fixes keyboard navagation
15247                 - Fixes EnsureVisible
15248                 - Drawing fixes
15249                 - Handles and draws focus properly
15250
15251
15252 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15253
15254         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15255           Create handle. NET_2_0: Destroy handle when value is null.
15256
15257 2005-10-03  Jackson Harper  <jackson@ximian.com>
15258
15259         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15260         revert and a new patch to prevent the thumb from refreshing so
15261         much.
15262
15263 2005-10-02  Jackson Harper  <jackson@ximian.com>
15264
15265         * ScrollBar.cs: Don't update position if it hasn't actually
15266         changed. This occurs when you hold down the increment/decrement
15267         buttons and the thumb gets to the max/min.
15268
15269 2005-10-01  Jackson Harper  <jackson@ximian.com>
15270
15271         * Form.cs:
15272         * MdiChildContext.cs:
15273         * MdiClient.cs: Implement ActiveMdiChild in Form.
15274
15275 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15276
15277         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15278
15279 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15280
15281         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15282           be found
15283
15284 2005-09-30  Jackson Harper  <jackson@ximian.com>
15285
15286         * ListBox.cs: Don't do a full refresh unless some data has
15287         actually changed.
15288
15289 2005-09-30  Jackson Harper  <jackson@ximian.com>
15290
15291         * TreeView.cs: Make sure that the checkboxes size is factored in
15292         even when not visible.
15293
15294 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15295
15296         * FileDialog.cs: Fix Jordi's build break
15297
15298 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15299
15300         * FileDialog.cs: 
15301                 - Use standard the Windows colours for the combobox as espected
15302                 - Dispose objects that use resouces when no longer need them
15303
15304 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15305
15306         * X11DesktopColors.cs: Initial incomplete implementation
15307         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15308
15309 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15310
15311         * Theme.cs: 
15312           - Switched Theme color names to match the names defined in 
15313             System.Drawing.KnownColors. Life's hard enough, no need to make 
15314             it harder.
15315           - Added setters to all theme color properties so themes can set
15316             their color schemes. The setters also propagate the color changes
15317             to System.Drawing.KnownColors via reflection
15318         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15319           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15320           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15321           use the new, more logical theme color names
15322         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15323           post-NT colors
15324         * ThemeWin32Classic.cs:
15325           - Removed code to set the old classic Windows colors. Instead it
15326             now relies on the colors returned by System.Drawing.KnownColors
15327             which will be either modern static colors (Unix) or colors
15328             read from the user's configuration (Win32)
15329           - Updated to use the new, more logical theme color names
15330           - Switched DataGrid drawing code to use only Theme colors instead of
15331             a mix of System.Drawing.KnownColors and Theme colors
15332           - DrawFrameControl(): Removed code that fills the button area, the
15333             fill would overwrite any previous fill done by a control. This
15334             fixes bug #75338 
15335           - Added DrawReversibleRectangle() stub
15336         * ScrollableControl.cs: Set visible state to false when scrollbars
15337           are removed (pdn fix)
15338         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15339           DrawReversibleRectangle() method to allow drawing primitive 
15340           'rubber bands'
15341         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15342
15343 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15344
15345         * ImageList.cs: Add(Icon): Create handle.
15346
15347 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15348
15349         * ListView.cs:
15350         * ThemeWin32Classic.cs:
15351                 - Fixes detail mode
15352                 - Sets clippings
15353                 - Issues with drawing
15354
15355 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15356
15357         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15358           source has to be the ImageList.
15359
15360 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15361
15362         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15363
15364 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15365
15366         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15367
15368 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15369
15370         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15371
15372 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15373         * GridItem.cs: Fixed TODOs
15374         * GridItemCollection.cs: Added ICollection interface
15375
15376 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15377
15378         * ImageList.cs: Resize icons when needed.
15379
15380 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15381
15382         * ListViewItem.cs
15383                 - Fixes GetBounds and returns on screen rects
15384         * ListView.cs:
15385                 - Fixes vertical and horzintal scrolling of items
15386         * ThemeWin32Classic.cs:
15387                 - Fixes drawing
15388                 
15389 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15390
15391         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15392
15393 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15394
15395         * ImageList.cs: Added comments about handle creation. Moved Handle,
15396           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15397           Handle is created in Add methods.
15398
15399 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15400          
15401         * DataGridDrawingLogic.cs: 
15402                 - Takes rows into account on Colum calculations
15403                 - Returns the column when clickig
15404         * DataGrid.cs:
15405                 - Fixes default HitTestInfo values
15406                 - Fixes HitTestInfo.ToString
15407                 - Fixes ResetBackColor          
15408         
15409 2005-09-28  Jackson Harper  <jackson@ximian.com>
15410
15411         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15412         sizing or cursor changes). Also added some temp code to draw the
15413         titlebars text (Makes dev a little easier).
15414
15415 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15416
15417         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15418
15419 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15420          
15421         * ListBox.cs: Fixes bug 76253
15422
15423 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15424
15425         * ImageList.cs: Added comments about the current implementation. Added
15426           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15427           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15428           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15429           with Bitmap.LockBits for better performance. Revised the whole file to
15430           match MS.NET behaviour and provide better performance. Non-public
15431           interface members are calling public members even when they throw
15432           NotSupportedException for better maintainability. Moved ColorDepth,
15433           ImageSize, ImageStream and TransparentColor implementations to
15434           ImageCollection for better performance as these properties are not used
15435           by ImageList.
15436         * ImageListStreamer.cs: Added a new internal constructor that takes an
15437           ImageList.ImageCollection and serializes Images based on
15438           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15439           match ImageList property name.
15440
15441 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15442
15443         * ListBox.cs: Fixes IndexFromPoint for last item
15444
15445 2005-09-27  Jackson Harper  <jackson@ximian.com>
15446
15447         * Form.cs: Set the position of new mdi children correctly.
15448
15449 2005-09-27  Jackson Harper  <jackson@ximian.com>
15450
15451         * MdiClient.cs: New mdi children need to be added to the back of
15452         the controls collection so the zorder is set correctly. Also add a
15453         count of all the child windows that have been created.
15454
15455 2005-09-27  Jackson Harper  <jackson@ximian.com>
15456
15457         * Form.cs (CreateParams): Setup MDI forms correctly.
15458
15459 2005-09-27  Jackson Harper  <jackson@ximian.com>
15460
15461         * MdiChildContext.cs:
15462         * MonthCalendar.cs:
15463         * UpDownBase.cs:
15464         * ListBox.cs:
15465         * ListView.cs:
15466         * TextBoxBase.cs:
15467         * TreeView.cs:
15468         * ScrollableControl.cs:
15469         * ComboBox.cs: Add implicit controls using the new implict control
15470         functionality in ControlCollection. Also try to block multiple
15471         control add in a suspend/resume layout to save some cycles.
15472         
15473 2005-09-27  Jackson Harper  <jackson@ximian.com>
15474
15475         * Control.cs: Add functionality to the controls collection to add
15476         'implicit controls' these are controls that are created by the
15477         containing control but should not be exposed to the user. Such as
15478         scrollbars in the treeview.
15479         * Form.cs: The list var of the ControlsCollection is no longer
15480         available because of the potential of implicit controls getting
15481         ignored by someone accessing the list directly.
15482
15483 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15484
15485         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15486           loose it's parent. (Fixed bug introduced in r49103 when we added
15487           setting the child parent to null on Remove)
15488
15489 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15490
15491         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15492         * Splitter.cs: Added missing attributes for BorderStyle property.
15493         * TextBoxBase.cs: Marked Calculate* methods internal.
15494         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15495         MS.NET.
15496
15497 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15498          
15499         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15500
15501 2005-09-25  Jackson Harper  <jackson@ximian.com>
15502
15503         * TreeView.cs: Update the node bounds correctly regardless of
15504         whether the node is visible.
15505
15506 2005-09-25  Jackson Harper  <jackson@ximian.com>
15507
15508         * ImageList.cs: Don't dispose the image after it is added to the
15509         image list. Only reformat images that need to be resized.
15510
15511 2005-09-25  Jackson Harper  <jackson@ximian.com>
15512
15513         * ImageList.cs: Don't set the format when changing the image.
15514
15515 2005-09-25  Jackson Harper  <jackson@ximian.com>
15516
15517         * TreeView.cs: We can't just assume the node has a font. Use the
15518         treeviews font if no node font is available.
15519
15520 2005-09-25  Jackson Harper  <jackson@ximian.com>
15521
15522         * TreeView.cs: Allow the scrollbars to be reset with negative
15523         values.
15524         - Don't add scrollbars to negative sized windows.
15525
15526 2005-09-23  Jackson Harper  <jackson@ximian.com>
15527
15528         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15529         old Mono.Posix. Also remove some stray code that shouldn't have
15530         been committed.
15531
15532 2005-09-23  Jackson Harper  <jackson@ximian.com>
15533
15534         * TreeView.cs: Attempt at proper sizing of the horizontal
15535         scrollbar. Also don't resize the scrollbars unless they are
15536         visible.
15537
15538 2005-09-23  Jackson Harper  <jackson@ximian.com>
15539
15540         * TreeView.cs: We don't need to expand the invalid area when the
15541         selection changes, as this is all drawn in the node's bounding
15542         box. The area needs to be expanded (previous typo was contracting
15543         it) when the focus rect moves.
15544
15545 2005-09-23  Jackson Harper  <jackson@ximian.com>
15546
15547         * TreeView.cs: Display the selection box under the correct
15548         circumstances. We were rendering white text with no selection box
15549         before.
15550
15551 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15552
15553         * TextControl.cs(Split): Now updates selection start/end if it points 
15554           into a line that's being split. Fixes a FIXME and bug #75258
15555
15556 2005-09-23  Jackson Harper  <jackson@ximian.com>
15557
15558         * Binding.cs:
15559         * ListControl.cs: Don't use the path when retrieving binding
15560         managers from the binding context. My bat sense tells me that the
15561         path is only used on insertion.
15562
15563 2005-09-22  Jackson Harper  <jackson@ximian.com>
15564
15565         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15566
15567 2005-09-22  Jackson Harper  <jackson@ximian.com>
15568
15569         * Splitter.cs: There are special cursors used for splitting.
15570         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15571
15572 2005-09-22  Jackson Harper  <jackson@ximian.com>
15573
15574         * Splitter.cs: Change the cursor appropriately when the splitter
15575         is moused over, so the user actually knows there is a splitter
15576         there.
15577
15578 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15579
15580        * Label.cs : Fix ToString method to give same output as MS.NET
15581
15582 2005-09-22  Jackson Harper  <jackson@ximian.com>
15583
15584         * TreeView.cs: Create the scrollbars when the handle is created
15585         and add them right away, just make them invisble. Also account for
15586         the window being shrunk vertically to the point that the vert
15587         scrollbar needs to be added.
15588         - Remove some 0.5 adjustments to get around anti aliasing issues.
15589         
15590 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15591          
15592         * MainMenu.cs: Fixes default value
15593         * MenuItem.cs: Fixes default value
15594
15595 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15596
15597         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15598
15599 2005-09-21  Jackson Harper  <jackson@ximian.com>
15600
15601         * Control.cs: Don't try to set the border style on the window if
15602         it hasn't been created. When the window is created the border
15603         style will be used.
15604
15605 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15606
15607         * Control.cs (Update): Don't call XplatUI if we don't have a
15608           window handle yet
15609
15610 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15611
15612         * ContainerControl.cs: Instead of throwing an exception, print
15613           a one-time warning about Validate not being implemented
15614         * XplatUIWin32.cs: Removed debug output
15615
15616 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15617
15618         * Control.cs: Only set XplatUI background if we expect the windowing
15619           system to handle the background. This stops controls that draw their
15620           own background from flickering
15621
15622         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15623           creation. This allows, amongst other things, using MWF X11 windows 
15624           with OpenGL.
15625
15626 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15627
15628         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15629           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15630           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15631           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15632           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15633           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15634           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15635           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15636           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15637           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15638           GridColumnStylesCollection.cs, 
15639           IDataGridColumnStyleEditingNotificationService.cs,
15640           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15641           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15642           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15643           TreeNodeCollection.cs, AmbientProperties.cs, 
15644           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15645           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15646           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15647           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15648           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15649           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15650           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15651           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15652           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15653           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15654           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15655           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15656           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15657           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15658           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15659           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15660           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15661           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15662           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15663           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15664           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15665           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15666           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15667           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15668           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15669           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15670           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15671           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15672           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15673           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15674           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15675           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15676           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15677           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15678           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15679           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15680           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15681
15682 2005-09-21  Jackson Harper  <jackson@ximian.com>
15683
15684         * TreeNode.cs: Call Before/After Expand not Collapse when
15685         expanding.
15686
15687 2005-09-20  Jackson Harper  <jackson@ximian.com>
15688         
15689         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15690
15691 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15692          
15693         * ListViewItem.cs:
15694                 - Fixes bug 76120
15695                 - Fixes proper storing of subitems
15696                 - Fixes not updated items
15697
15698 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15699
15700         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15701           things if our window handle isn't created yet. Also disabled 
15702           debug for TextBoxBase
15703
15704 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15705
15706         * MenuAPI.cs: Remove filtering of events to allow menu usage
15707
15708 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15709
15710         * Cursor.cs: Allow null to be passed to Cursor.Current.
15711
15712 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15713
15714         * ThemeWin32Classic.cs:
15715           - Change some private methods/fields to protected virtual so that 
15716             they can be accessed and overriden in derived classes
15717           - First refactoring of some methods. Derived themes now don't 
15718             need to duplicate the complete code from ThemeWin32Classic
15719         * ThemeNice.cs:
15720           - Added nice StatusBar
15721           - Derive from ThemeWin32Classic and not Theme
15722           - Removed duplicate ThemeWin32Classic code
15723
15724 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15725
15726         * Control.cs (ControlCollection.Add): If the value null is passed
15727         the control is ignored. 
15728
15729         Optimize this loop.
15730
15731 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15732
15733         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15734           PostQuitMessage state.
15735         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15736
15737 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15738
15739         * Application.cs: Our constructor will never get called, move 
15740           initialization to fields; fixes bug #75933
15741
15742 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15743
15744         * FileDialog.cs :
15745                 - Allow files to be selected properly using file name
15746                 combo box.
15747                 - Add ability to change diretory (absolute / relative)
15748                 using file name combo box.
15749
15750 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15751          
15752         * ListBox.cs: 
15753                 - Fixes Multicolumn listboxes item wrong calculations
15754                 - Allows to click when only one item is in the listbox
15755                 - Fixes crash when no items using keyboard navigation
15756
15757 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15758
15759         * ComboBox.cs: Reverted almost everything from the latest patch which
15760           broke ComboBox
15761
15762 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15763         
15764         * ToolTip.cs:
15765                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15766         * ComboBox.cs:
15767                 - When DropDownStyle is Simple, it does not show scrollbar 
15768                 to the last item of the list.
15769                 - When DropDownStyle is Simple, it crashed when the list was 
15770                 scrolled down with the down cursor key.
15771                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15772                 selected item was not shown.
15773                 - The position of the selected item was not preserved when 
15774                 the next dropdown happened.
15775         * ThemeWin32Classic.cs:
15776                 - Items were wrapped at the right end.
15777         * CheckedListBox.cs:
15778                 - Fixed Add method
15779         * ListBox.cs:
15780                 - Items should be fully shown.
15781                 - When resizing and vertical scrollbar disappeared, the item 
15782                 of index 0 should be on the top of the list.
15783                 - GetItemRectangle should consider the size of ver. scrollbar
15784         * StatusBar.cs:
15785                 - SizingGrip area should not be allocated when it is not 
15786                 displayed.
15787                 - Now it reflects MinWidth of the containing panel and 
15788                 fixed a crash that happens when its width becomes so small.
15789
15790 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15791
15792         * CheckedListBox.cs: Fixes bug 76028
15793         * ListBox.cs: Fixes bug 76028
15794
15795 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15796
15797         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15798         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15799
15800 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15801
15802         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15803
15804 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15805
15806         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15807
15808 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15809
15810         * IRootGridEntry.cs: Added
15811         * PropertyGridCommands.cs: Added
15812         * PropertiesTab.cs: Added missing methods and property
15813         * PropertyGridView.cs: Made class internal
15814         * PropertyGridTextBox.cs: Made class internal
15815
15816 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15817
15818         * MimeIcon.cs: Try to check some other environment variables
15819           if "DESKTOP_SESSION" returns "default"
15820
15821 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15822
15823         * ThemeNice.cs: Corrected background colors (e.g. menus)
15824         * ColorDialog.cs: Use correct background colors for controls
15825
15826 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15827
15828         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15829
15830 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15831
15832         * RichTextBox.cs: Added initial implementation
15833         * lang.cs: Removed. Was accidentally checked in long time ago
15834         * TODO: Removed. Contents were obsolete
15835
15836 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15837                                                                                 
15838         * PropertiesTab.cs : Added
15839
15840 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15841                                                                                 
15842         * PropertyGrid.cs : Update
15843         * PropertyGridView.cs : Update
15844         * System.Windows.Forms.resx : Added images and strings
15845
15846 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15847
15848         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15849  
15850 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15851
15852         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15853           a busy loop right after the Ungrab the X11 display is otherwise 
15854           blocked
15855
15856 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15857
15858         * ThemeWin32Classic.cs: Optimise the use of clipping
15859
15860 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15861
15862         * DataGrid.cs: fixes recursion bug
15863
15864 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15865
15866         * ThemeNice.cs: 
15867           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15868           - Cleanup
15869
15870 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15871
15872         * ThemeNice.cs: Draw nice ProgressBars
15873
15874 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15875
15876         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15877
15878         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15879         bug finder.
15880
15881 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15882
15883         * ThemeNice.cs:
15884           - Added nicer menu drawing
15885           - Updated DrawTab
15886           - some refactoring
15887
15888 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15889
15890         * CreateParams.cs (ToString): Made output match MS
15891         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15892             handle is already created (to avoid forcing window creation)
15893         * XplatUIX11.cs: Set window text to caption after creating window,
15894           in case Text was set before window was created
15895         * Form.cs: Use this.Text instead of a static string as caption
15896
15897 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15898
15899         * NotifyIcon.cs: Don't set the window to visible; this screws
15900           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15901           OnPaint without a bitmap)
15902         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15903           happen very often anyway; we could add the check to the WM_PAINT 
15904           event generation code
15905
15906 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15907
15908         * NotifyIcon.cs: Fill the icon area with a background color, to 
15909           avoid 'residue' when transparent icons are drawn
15910         * XplatUIX11.cs:
15911           - Handle whole_window == client_window when destroying windows
15912           - SystrayAdd(): Set client_window to whole_window value to
15913             get mouse and other events passed to NotifyIcon
15914
15915 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15916
15917         * Form.cs: Set proper default for Opacity property
15918         * NotifyIcon.cs:
15919           - ShowSystray(): Don't bother creating telling the OS
15920             about the systray item if no icon is provided
15921           - Now handles WM_NCPAINT message to deal with whole/client window
15922             split
15923           - Create window as visible to not get caught by Expose optimization
15924         * Hwnd.cs: Removed debug message
15925         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15926           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15927             PaintEventStart/End to use new client argument
15928         * TextBoxBase.cs:
15929           - Commented out debug messages
15930           - Switched PaintEventStart/End to use new client argument
15931         * XplatUI.cs: Added client window bool to PaintEventStart()/
15932           PaintEventEnd() calls, to support drawing in non-client areas
15933         * XplatUIDriver.cs: 
15934           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15935             calls, to support drawing in non-client areas
15936           - Added conditional compile to allow using MWF BeginInvoke 
15937             on MS runtime
15938         * XplatUIX11.cs:
15939           - Added some conditional debug output
15940           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15941             whole/client window split
15942           - Implemented handling of client argument to PaintEventStart()/End()
15943         * Control.cs:
15944           - Throw exception if BeginInvoke() is called and the window handle
15945             or one of the window's parent handles is not created
15946           - Added conditional compile to allow using MWF BeginInvoke on
15947             MS runtime
15948           - get_Parent(): Only sets parent if handle is created. This avoids
15949             forcing window handle creation when parent is set.
15950           - Now fires Layout and Parent changed events in proper order
15951           - Switched to use Handle instead of window.Handle for Z-Order setting,
15952             the get_Parent() patch above causes us to possibly get null for 'window'
15953           - Implemented handling of client argument to PaintEventStart()/End()
15954           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15955             default handling)
15956           - Now sends a Refresh() to all child windows when Refresh() is called
15957
15958 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15959
15960         * Form.cs: Added (non-functional) Opacity property
15961         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15962
15963 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15964         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15965           use export MONO_THEME=nice to activate it.
15966           Currently supported controls:
15967           - Button
15968           - ComboBox
15969           - ScrollBar
15970           - TabControl (TabAlignment.Top only, other will follow)
15971         * ThemeEngine.cs: Add theme nice
15972         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15973           if enabled
15974
15975 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15976
15977         * Splitter.cs: Resize docked control and its neighbor.
15978
15979 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15980         -- Making Windows with Menus layout correctly --
15981         * Form.cs : The first leg of the fix
15982                 Menu setter - adjust Client Size as needed to make space for the menu
15983                 SetClientSizeCore - doesn't call base version to be able to pass the 
15984                         menu handle to XplatUI.CalculateWindowRect
15985         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15986         * XplatUIX11.cs: The critical second leg of the fix
15987                 GetWindowPos needs to use a recalculated client_rect
15988                 so that resizing the window doesn't break layout of child controls. 
15989                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15990                 Lots of \t\n killed
15991
15992 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15993
15994         * Label.cs: Now properly recalculates width and height on Font and Text
15995           changes if AutoSize is set
15996
15997 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15998         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15999
16000 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
16001
16002         * ImageList.cs: Makes ToString method compatible with MS
16003
16004 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
16005
16006         * MenuAPI.cs: fixes bug 75716
16007
16008 2005-08-11 Umadevi S <sumadevi@novell.com>
16009         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
16010
16011 2005-08-11 Umadevi S <sumadevi@novell.com>
16012         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
16013
16014 2005-08-10  Umadevi S <sumadevi@novell.com>
16015         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
16016
16017 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
16018
16019         * Menu.cs: fixes bug 75700
16020         * MenuAPI.cs: fixes navigation issues
16021
16022 2005-08-09  Umadevi S <sumadevi@novell.com>
16023         * CheckedListBox.cs - simple fix for GetItemChecked.
16024
16025 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
16026
16027         * ComboBox.cs: Serveral fixes
16028         * ListBox.cs: Serveral fixes
16029
16030 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16031
16032         * ComboBox.cs: Fixes FindString methods and GetItemHeight
16033         * ListBox.cs: Fixes FindString methods
16034
16035 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16036
16037         * DataGrid.cs: fixes bugs exposed by new tests
16038
16039 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16040
16041         * Mime.cs: Compile Mono assembly references only if compiling
16042           with Mono (Allows to build with VS.Net again)
16043
16044 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16045
16046         * Control.cs (PaintControlBackground): Draw background image
16047         corrrectly.
16048         (CheckForIllegalCrossThreadCalls): Stubbed.
16049         
16050         * Form.cs (OnCreateControl): Center when should be centered.
16051         
16052         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16053
16054 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16055
16056         * Binding.cs: Binding to properties should be case unsensitive
16057
16058 2005-07-18 vlindos@nucleusys.com
16059
16060         * DataGrid.cs: fixes setmember order
16061
16062 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16063
16064         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16065         * FileDialog.cs: FileDialog is now resizable and uses the new
16066           MimeIconEngine
16067
16068 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16069
16070         * DataGridTextBoxColumn.cs: default value
16071         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16072         * GridTableStylesCollection.cs: fixes checking MappingName
16073         * DataGridDrawingLogic.cs: fixes drawing logic issues
16074         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16075         * DataGrid.cs: fixes    
16076
16077 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16078
16079         * MimeGenerated.cs: Use case sensitive comparer for
16080           NameValueCollections
16081
16082 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16083
16084         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16085         * ThemeWin32Classic.cs: bug fixes, code refactoring
16086         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16087         * DataGrid.cs: bug fixes, code refactoring
16088         * DataGridTextBox.cs: bug fixes, code refactoring
16089         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16090         * Theme.cs:  bug fixes, code refactoring
16091
16092 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16093
16094         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16095           and other text box usage
16096
16097 2005-07-01  Jackson Harper  <jackson@ximian.com>
16098
16099         * TabControl.cs: Make sure the bottom of the tab covers the pages
16100         border.
16101
16102 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16103
16104         * Form.cs (ShowDialog): Assign owner of the dialog
16105         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16106           might have been moved to a tag with different height
16107
16108 2005-06-30  Jackson Harper  <jackson@ximian.com>
16109
16110         * Form.cs: Don't create an infinite loop when setting focus
16111         * MenuItem.cs: Don't dirty the parents if we don't have any
16112
16113 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16114
16115         * LibSupport.cs: Rename
16116
16117 2005-06-29  Peter Bartok  <pbartok@novell.com>
16118
16119         * TextBoxBase.cs: Re-align caret after deleting a character
16120         * TextControl.cs:
16121           - DeleteChars(): Ensure that tag covers the provided position
16122           - StreamLine(): Drop reference for dropped tag
16123
16124 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16125
16126         * TextControl.cs: 
16127           - Selections now work properly, anchoring at the initial location
16128             and properly extending in either direction (SetSelectionToCaret(),
16129             SetSelectionStart() and SetSelectionEnd())
16130           - No longer redraws the whole control on selection change, now
16131             calculates delta between previous and new selection and only
16132             invalidates/redraws that area
16133           - Fixed FindPos() math off-by-one errors
16134           - Changed DeleteChars() to verify the provided tag covers the
16135             provided position, selections may have a tag that doesn't cover
16136             the position if the selection is at a tag border
16137           - Fixed off-by-one errors in DeleteChars()
16138           - Added missing streamlining check in DeleteChars() to remove
16139             zero-length tags
16140           - Implemented Invalidate() method, now properly calculates exposures
16141             between two given lines/positions
16142           - Implemented SetSelection()
16143           - Obsoleted and removed FixupSelection()
16144           - Improved RecalculateDocument() logic, removing code duplication
16145
16146 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16147
16148         * LibSupport.cs: changes to match different input/output arguments.
16149
16150 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16151
16152         * LibSupport.cs: added libsupport.so init routine.
16153
16154 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16155         
16156         * ControlBindingsCollection.cs
16157                 - Throws an exception on null datasource when adding
16158                 - Checks for duplicated bindings when adding
16159
16160 2005-06-28  Jackson Harper  <jackson@ximian.com>
16161
16162         * TreeView.cs (OnKeyDown): Support left and right properly
16163         (navigates as well as expanding and collapsing.
16164         - Add support for Multiply, this expands all the selected nodes
16165         children.
16166         - Fix some tabbing.
16167
16168 2005-06-28  Jackson Harper  <jackson@ximian.com>
16169
16170         * TreeView.cs: Implement keyboard navigation, currently supports,
16171         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16172         support for toggling checkboxes with the space bar.
16173
16174 2005-06-28  Jackson Harper  <jackson@ximian.com>
16175
16176         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16177         tree.
16178
16179 2005-06-28  Jackson Harper  <jackson@ximian.com>
16180
16181         * TreeView.cs: Add missing event.
16182
16183 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16184
16185         * TextControl.cs:
16186           - Made line ending size configurable (now allows for counting 
16187             lineendings as \n or \r\n)
16188           - Added margin to viewport to keep caret visible on right side
16189           - Fixed translation routines for line/pos to documentpos to consider
16190             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16191           - Fixed some line-endings to be unix style
16192           - Fixed Document.FormatText to perform it's calculations 1-based
16193           - Added descriptions for a few methods that might otherwise get 
16194             used wrong
16195           - Added NOTE section with some basic conventions to remember at 
16196             the top of the file
16197           - Major fixup for RichTextBox selection drawing:
16198             * Fixed crashes when multiple tags on a single line were selected
16199             * fixed selection box drawing not overlaying text
16200             * fixed bogus offset calculation for tags not starting at index 1
16201             * Switched behaviour from using multiple Substrings of a 
16202               StringBuilder.ToString() to using multiple 
16203               StringBuilder.ToString(start, length) statements, hoping this is
16204               faster (kept original version commented out in the code, in case
16205               original version was faster)
16206         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16207           alignment != Left
16208         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16209           call it as well
16210
16211 2005-06-27  Jackson Harper  <jackson@ximian.com>
16212
16213         * TabControl.cs: Move to the left and right with the arrow
16214         keys. These keys don't cycle beyond first and last like
16215         tab. Refresh all the tabs when scrolling them to the left or
16216         right.
16217
16218 2005-06-27  Jackson Harper  <jackson@ximian.com>
16219
16220         * TabControl.cs:
16221           - ToString: Added method
16222           - CreateParams: Remove TODO and comment
16223           - OnKeyDown: Cycle through bounds properly.
16224           - SelectedIndex: Scroll to the right or left if we need to
16225           display the newly selected tab.
16226
16227 2005-06-23  Jackson Harper  <jackson@ximian.com>
16228
16229         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16230         set.
16231
16232 2005-06-23  Jackson Harper  <jackson@ximian.com>
16233
16234         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16235         CTRL-SHIFT-TAB, and HOME, END are there any others?
16236
16237 2005-06-23  Jackson Harper  <jackson@ximian.com>
16238
16239         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16240
16241 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16242         
16243         * DataGridTextBoxColumn.cs: fixes and enhancements
16244         * ThemeWin32Classic.cs: fixes and enhancements
16245         * DataGridBoolColumn.cs:  fixes and enhancements
16246         * DataGridDrawingLogic.cs:  fixes and enhancements
16247         * CurrencyManager.cs: fixes and enhancements
16248         * DataGrid.cs: fixes and enhancements
16249         * DataGridColumnStyle.cs:  fixes and enhancements
16250
16251 2005-06-22  Jackson Harper  <jackson@ximian.com>
16252
16253         * TabControl.cs: Add some missing methods that just call into the
16254         base. Make the TabPageCollection's IList interface behave in the
16255         same manner as the MS implementation.
16256
16257 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16258
16259         * TextControl.cs: Added sanity check
16260         * TextBoxBase.cs: 
16261           - Fixed wrapping behaviour, don't set wrap on single line controls
16262             (this fixes the breakage of colordialog introduced in an earlier
16263              checkin)
16264           - Added rudimentary support for autoscrolling right-aligned controls
16265             (still needs fixing, also, center alignment scroll is missing)
16266
16267 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16268         
16269         * ScrollBar.cs: Fixes thumbpos on Maximum values
16270
16271 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16272         
16273         * PropertyGridView.cs: Pass context information to UITypeEditors 
16274
16275 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16276
16277         * TextBoxBase.cs:
16278           - Now calling PositionCaret with absolute space coordinates
16279           - Enabled vertical scrolling
16280           - Better tracking of scrollbar changes, tied into WidthChange
16281             event
16282           - Improved cursor tracking
16283           - Removed debug output
16284         * TextControl.cs:
16285           - PositionCaret coordinates are now works in absolute space, not 
16286             the canvas
16287           - Improved tracking of document size
16288           - Added events for width and height changes
16289
16290 2005-06-21  Peter Bartok  <pbartok@novell.com>
16291
16292         * Form.cs: Set focus to active control when form is activated
16293         * TextControl.cs: 
16294           - Added word-wrap functionality to RecalculateLine() 
16295           - Added some short function descriptions for VS.Net to aid in
16296             writing dependent controls
16297           - Added Caret property, returning the current coords of the caret
16298           - Added ViewPortWidth and ViewPortHeight properties
16299           - Added Wrap property
16300           - Added CaretMoved event
16301           - Removed some old debug code
16302           - Split() can now create soft splits
16303           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16304           - Added method to format existing text
16305           - Fixed size/alignment calculations to use viewport
16306           - RecalculateDocument now can handle changing line-numbers while
16307             calculating lines
16308
16309         * TextBox.cs:
16310           - Added some wrap logic, we don't wrap if alignment is not left
16311           - Added casts for scrollbar var, base class switched types to
16312             also support RichTextBoxA
16313           - Implemented handling of scrollbar visibility flags
16314
16315         * TextBoxBase.cs:
16316           - Switched scrollbars type to RichTextBoxScrollBars to support
16317             RichTextBox
16318           - Added tracking of canvas width/height
16319           - Switched scrollbars to be not selectable (to keep focus on text)
16320           - Added central CalculateDocument() method to handle all redraw
16321             requirements
16322           - Added ReadOnly support
16323           - Added WordWrap support
16324           - Fixed handling of Enter key (we now treat it as a DialogKey)
16325           - Fixed caret positioning when h or v scroll is not zero
16326           - Fixed placing/generation of vertical scrollbar
16327           - Added CalculateScrollBars() method to allow updating scrollbar
16328             limits and visibility
16329           - Fixed handling of horizontal scroll
16330           - Added handling of vertical scroll
16331           - Implemented auto-'jump' when caret moves to close to a left or
16332             right border and there is text to be scrolled into view (currently
16333             there's the potential for a stack overflow, until a bug in
16334             scrollbar is fixed)
16335
16336 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16337         
16338         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16339
16340 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16341
16342         * Mime.cs:
16343         - added inodes.
16344         - return application/x-zerosize for files with size zero
16345           (if no extension pattern matches).
16346         - check matches collection for strings too.
16347         - return only the first mime type if the name value
16348           collection has more than one mime type.
16349
16350 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16351         
16352         * PropertyGrid.cs: Cleaned up some TODOs
16353         * PropertyGridView.cs: Added support for UITypeEditors
16354
16355 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16356         
16357         * DataGrid.cs: clears cached value
16358
16359 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16360
16361         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16362         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16363         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16364         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16365         
16366 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16367
16368         * ThemeWin32Classic.cs: fixes colour
16369
16370 2005-06-15  Peter Bartok  <pbartok@novell.com>
16371
16372         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16373         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16374         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16375         * Control.cs: Added some MWFCategory and MWFDescription attributes
16376         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16377
16378 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16379
16380         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16381         usage
16382
16383 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16384
16385         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16386         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16387         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16388         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16389         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16390         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16391
16392 2005-06-13  Jackson Harper  <jackson@ximian.com>
16393
16394         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16395         isn't printed when the user enables dropping. (X11 does accept
16396         drops).
16397         
16398 2005-06-13  Jackson Harper  <jackson@ximian.com>
16399
16400         * TreeView.cs: Remove some TODOS.
16401
16402 2005-06-13  Jackson Harper  <jackson@ximian.com>
16403
16404         * Form.cs: Hook into the mdi framework.
16405         * MdiClient.cs: Use the base control collections add method so
16406         parents get setup correctly. Set the default back colour and dock
16407         style.
16408         * MdiChildContext.cs: New class, this bad actor handles an
16409         instance of an MDI window. Right now there is only basic
16410         support. You can drag, close, and resize windows. Minimize and
16411         Maximize are partially implemented.
16412
16413 2005-06-13  Jackson Harper  <jackson@ximian.com>
16414
16415         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16416         freaky when both vals are negative. NOTE: There are probably other
16417         places in XplatUIX11 that this needs to be done.
16418
16419 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16420
16421         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16422         * DataGridColumnStyle.cs: fixes signature
16423
16424 2005-06-12  Jackson Harper  <jackson@ximian.com>
16425
16426         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16427         windows.
16428
16429 2005-06-11  Jackson Harper  <jackson@ximian.com>
16430
16431         * StatusBarPanel.cs: Signature cleanups. Implement
16432         BeginInit/EndInit.
16433
16434 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16435
16436         * DataGridTextBoxColumn.cs: Honors aligment
16437         * GridColumnStylesCollection.cs: Contains is case unsensitive
16438         * GridTableStylesCollection.cs: several fixes
16439         * DataGridTableStyle.cs: default column creation
16440         * DataGridDrawingLogic.cs: fixes
16441         * CurrencyManager.cs: ListName property
16442         * DataGrid.cs: multiple styles support
16443         * DataGridColumnStyle.cs: fixes
16444         
16445
16446 2005-06-10  Peter Bartok  <pbartok@novell.com>
16447
16448         * Control.cs(Select): Moved SetFocus call to avoid potential
16449           loops if controls change the active control when getting focus
16450         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16451           the up/down buttons
16452
16453 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16454
16455         * ImageListConverter.cs: Implemented
16456
16457 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16458
16459         * MonthCalendar.cs: Wired in NumericUpDown control for year
16460
16461 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16462
16463         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16464           DoubleClick events, since they are not meant to be fired.
16465
16466 2005-06-09  Peter Bartok  <pbartok@novell.com>
16467
16468         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16469           Jonathan's standalone controls into MWF, implemented missing
16470           events, attributes and methods; added xxxAccessible classes
16471         * AccessibleObject.cs: Made fields internal so other classes
16472           can change them if needed
16473
16474 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16475
16476         * UpDownBase.cs: Complete implementation
16477         * NumericUpDown.cs: Complete implementation
16478         * DomainUpDown.cs: Complete implementation
16479
16480 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16481
16482         * DataGridTextBoxColumn.cs: drawing fixes
16483         * DataGridCell.cs: fixes ToString method to match MSNet
16484         * DataGridTableStyle.cs: fixes
16485         * DataGridBoolColumn.cs: fixes, drawing
16486         * DataGridDrawingLogic.cs: fixes, new methods
16487         * DataGridTextBox.cs: Keyboard and fixes
16488         * DataGrid.cs:
16489                 - Keyboard navigation
16490                 - Scrolling fixes
16491                 - Row selection (single, multiple, deletion, etc)
16492                 - Lots of fixes
16493         
16494 2005-06-07  Jackson Harper  <jackson@ximian.com>
16495
16496         * ThemeWin32Classic.cs: Clear the background area when drawing
16497         buttons.
16498
16499 2005-06-06  Peter Bartok  <pbartok@novell.com>
16500
16501         * ImageListStreamer.cs: Fixed signature for GetData
16502         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16503         * ComboBox.cs:
16504           - Added missing ChildAccessibleObject class
16505           - Added missing OnXXXFocus overrides, switched to using those
16506             instead of the event handler
16507         * Control.cs:
16508           - Added Parent property for ControlAccessibleObject
16509           - Fixed signatures
16510           - Fixed attributes
16511           - Added ResetBindings()
16512         * ListBindingConverter.cs: Implemented some methods
16513         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16514         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16515         * ContainerControl.cs: Fixed signature, now subscribing to the
16516           ControlRemoved event instead of overriding the handler, LAMESPEC
16517         * CurrencyManager.cs: Added missing attribute
16518         * MonthCalendar.cs: Added missing properties
16519
16520 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16521
16522         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16523         
16524 2005-06-06  Gaurav Vaish and Ankit Jain
16525
16526         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16527         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16528         
16529 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16530
16531         * Control.cs: fixes CreateParams Width / Height.
16532
16533 2005-06-05  Peter Bartok  <pbartok@novell.com>
16534
16535         * Win32DnD.cs: Removed compilation warnings
16536
16537 2005-06-05  Peter Bartok  <pbartok@novell.com>
16538
16539         * Control.cs (CreateParams): Since we don't know if one of the
16540           properties we use is overridden, lets make sure if we fail accessing
16541           we continue with a backup plan
16542
16543 2005-06-05  Peter Bartok  <pbartok@novell.com>
16544
16545         * Win32DnD.cs:
16546           - Removed debug output
16547           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16548             struct
16549           - Plugged resource leak
16550         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16551           MS size
16552
16553 2005-06-05  Peter Bartok  <pbartok@novell.com>
16554
16555         * XplatUIWin32.cs: Removed DnD code
16556         * Win32DnD.cs: Implemented drop source and drop target functionality
16557
16558 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16559
16560         * UpDownBase.cs: remove duplicate addition of event, enable some code
16561         that was commented out.
16562         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16563         Validate input when a key is pressed. It works fine now for every
16564         combination of Hexadecimal. Only missing some drawing love when sharing
16565         space with other controls.
16566
16567 2005-06-04  Peter Bartok  <pbartok@novell.com>
16568
16569         * Control.cs:
16570           - We need to pass a window for DragDrop, so enable callback events
16571           - Added DnD callback events when being a DragSource
16572         * XplatUI.cs (StartDrag): Added window handle argument
16573         * XplatUIDriver.cs (StartDrag): Added window handle argument
16574         * QueryContinueDragEventArgs: Made fields internally accessible so
16575           drivers can set them
16576         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16577           can set them
16578
16579 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16580
16581         * DataGridTextBoxColumn.cs: column text editing
16582         * DataGridTableStyle.cs: Respect columns styles created by the user
16583         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16584         * DataGridBoolColumn.cs: bool column editing
16585         * DataGrid.cs: fixes to scrolling, properties, etc
16586         * DataGridTextBox.cs: handle keyboard
16587         * DataGridColumnStyle.cs: fixes
16588
16589 2005-06-02  Jackson Harper  <jackson@ximian.com>
16590
16591         * ImageListStreamer.cs: Somewhat broken implementation of
16592         GetObjectData. The RLE needs some work to match MS properly.
16593
16594 2005-06-02  Jackson Harper  <jackson@ximian.com>
16595
16596         * X11Dnd.cs: Attempting to keep at least one file in MWF
16597         monostyled.
16598
16599 2005-06-02  Peter Bartok  <pbartok@novell.com>
16600
16601         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16602           that way
16603
16604 2005-06-02  Peter Bartok  <pbartok@novell.com>
16605
16606         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16607         * XplatUI.cs: Added DoDragDrop() method
16608         * XplatUIDriver.cs: Added DoDragDrop() method
16609
16610 2005-06-02  Jackson Harper  <jackson@ximian.com>
16611
16612         * Splitter.cs: Implement BorderStyle.
16613
16614 2005-06-02  Jackson Harper  <jackson@ximian.com>
16615
16616         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16617         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16618         X11 using XDND.
16619
16620 2005-06-02  Peter Bartok  <pbartok@novell.com>
16621
16622         * DataObject.cs:
16623           - Added Data setter
16624           - Fixed broken insertion code for SetData, now also
16625             overwrites any existing entry of the same format name
16626         * Hwnd.cs: Added list of pointers that automatically gets
16627           freed when the window is disposed
16628         * XplatUI.cs: Call driver initialization method when loading
16629           a driver
16630         * Control.cs:
16631           - OnDragLeave takes EventArgs, not DragEventArgs
16632           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16633             supported
16634           - Forces style update when drop state changes
16635         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16636           not perfect since we cannot (yet) call the IDataObject.GetData()
16637           method, we keep getting 0x80004005 error, dunno why)
16638
16639 2005-06-02  Peter Bartok  <pbartok@novell.com>
16640
16641         * DragEventArgs.cs: Make fields internal so we can cache the
16642           object and re-set the fields from XplatUI
16643
16644 2005-06-02  Jackson Harper  <jackson@ximian.com>
16645
16646         * Control.cs: Add some internal methods so the DnD subsystem can
16647         raise DnD events. Also call into the driver when AllowDrop is set.
16648         * XplatUI.cs:
16649         * XplatUIDriver.cs: New method for setting whether or not a window
16650         is allowed to accept drag and drop messages.
16651                 
16652 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16653         
16654         * ScrollBar.cs: Make sure that values sent in Scroll events
16655         are always between Maximum and Minimum.
16656
16657 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16658
16659         * Menu.cs: Call MenuChanged when menuitem visibility has been
16660         changed.
16661         * MenuItem.cs: Rebuild menu when item is (not) visible.
16662         * MainMenu.cs: MainMenu has special MenuChanged.
16663         * Theme.cs: Caption and FrameBorderSize are not fixed.
16664         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16665         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16666         * XplatUIX11.cs,
16667         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16668         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16669
16670 2005-05-30  Jackson Harper  <jackson@ximian.com>
16671
16672         * DataFormat.cs: We can't statically initialize this stuff because
16673         it calls into the xplatui and could create a loop. So we lazy init
16674         it.
16675
16676 2005-05-28  Jackson Harper  <jackson@ximian.com>
16677
16678         * Control.cs: Proper implementation of Product(Name/Version).
16679
16680 2005-05-27  Jackson Harper  <jackson@ximian.com>
16681
16682         * DataObject.cs: Dont crash if no data is found.
16683
16684 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16685         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16686                 as per status page, guessing it should be set to true
16687
16688 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16689
16690         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16691         * DataGridTableStyle.cs: set proper formatting text, def header text
16692         * ThemeWin32Classic.cs: new themable paramaters
16693         * DataGridBoolColumn.cs: paint check box, get data, fixes
16694         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16695         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16696         * DataGridColumnStyle.cs: fixes
16697         * Theme.cs: new themable paramaters
16698                 
16699 2005-05-26  Peter Bartok  <pbartok@novell.com>
16700
16701         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16702
16703 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16704         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16705
16706 2005-05-24  Peter Bartok  <pbartok@novell.com>
16707
16708         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16709           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16710           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16711           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16712           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16713           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16714           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16715           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16716           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16717           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16718           missing attributes, etc
16719         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16720
16721 2005-05-24  Peter Bartok  <pbartok@novell.com>
16722
16723         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16724           when user tries to get help
16725         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16726           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16727           to suppress warnings
16728         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16729           avoid unreachable code warning
16730
16731 2005-05-20  Peter Bartok  <pbartok@novell.com>
16732
16733         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16734
16735 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16736
16737         * DataGridTextBoxColumn.cs: Basic painting methods
16738         * DataGridTableStyle.cs: Set table style in the column
16739         * ThemeWin32Classic.cs: Use Theme for colors
16740         * DataGridDrawingLogic.cs: Implement more drawing
16741         * DataGrid.cs: drawing, theming, enhacements, fixes
16742         * DataGridColumnStyle.cs: fixes, drawing
16743         * Theme.cs: theming for Datagrid
16744
16745 2005-05-20  Peter Bartok  <pbartok@novell.com>
16746
16747         * Cursor.cs: Implemented GetObjectData() method
16748
16749 2005-05-20  Peter Bartok  <pbartok@novell.com>
16750
16751         * Cursors.cs: Added setting of cursor name
16752         * Cursor.cs:
16753           - Implemented constructors
16754           - Implemented Draw and DrawStretched
16755           - Implemented Current property
16756           - Implemented == and != operators
16757           - Implemented Dispose()
16758           - Implemented ToString
16759           - Added missing attributes
16760         * XplatUIX11.cs:
16761           - Added missing reset for OverrideCursor when DoEvents is called
16762           - Fixed creation of cursor, logic was wrong
16763         * XplatUIWin32.cs:
16764           - Added missing reset for OverrideCursor when DoEvents is called
16765           - Fixed creation of cursor, bit arrays were swapped
16766         * Clipboard.cs: Removed obsolete MonoTODO attribute
16767
16768 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16769
16770         * ComboBox.cs: fixes OnSelectedItemChanged
16771         * ControlBindingsCollection.cs: fixes item range check
16772
16773 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16774
16775         * UpDownBase.cs:
16776                 - Calc preferred height properly
16777                 - Implement missing properties
16778                 
16779         * NumericUpDown.cs: Implement missing events
16780
16781 2005-05-19  Jackson Harper  <jackson@ximian.com>
16782
16783         * TabControl.cs: New method that resizes the tab pages before
16784         redrawing them. This as needed as the control is double buffered
16785         and sizing will not be recalculated unless ResizeTabPages is
16786         called.
16787         * TabPage.cs: Set base.Text instead of Text in the constructor so
16788         that UpdateOwner does not get called. Use the new Redraw method of
16789         TabControl instead of Refresh so the sizing is recalculated.
16790         * ThemeWin32Classic.cs: Draw the text for button tabs.
16791
16792 2005-05-19  Jackson Harper  <jackson@ximian.com>
16793
16794         * Control.cs: Paint control background images. Fix typo where
16795         PaintControlBackground was not getting called correctly.
16796
16797 2005-05-19  Peter Bartok  <pbartok@novell.com>
16798
16799         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16800           I can investigate, apparently I broke FileDialog
16801
16802 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16803
16804         * AxHost.cs: Some simple properties.
16805         * Control.cs: window must be accessible after ctor.
16806         * Form.cs: Added TransparencyKey property.
16807         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16808         * XplatUIWin32.cs: SetBorderStyle implemented.
16809
16810 2005-05-18  Peter Bartok  <pbartok@novell.com>
16811
16812         * DataObject.cs: Entries are not global but particular to the
16813           DataObject, now it behaves that way
16814         * XplatUIWin32.cs: Implemented Clipboard methods
16815         * Clipboard.cs: Implemented
16816         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16817         * XplatUIOSX.cs: Updated to final clipboard prototypes
16818         * XplatUIX11.cs: Implemented Clipboard methods
16819         * XplatUIDriver.cs: Updated to final clipboard prototypes
16820         * XplatUIStructs.cs:
16821           - Added BITMAPINFOHEADER struct
16822           - Added ClipboardFormats enum
16823         * X11Structs.cs:
16824           - Added ClipboardStruct
16825           - Added Atom enum items for clipboard types
16826           - Fixed atom types for Selection event structures
16827         * DataFormats.cs:
16828           - Added internal properties and methods for drivers to enumerate
16829             all known formats
16830           - Switched initialization method to allow drivers to assign their
16831             own IDs even for the MS predefined clipboard IDs
16832         * XplatUI.cs: Updated to final clipboard interface
16833
16834 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16835         * PropertyGridView.cs: Fixed compiler warnings.
16836
16837 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16838         * PropertyGrid.cs: Added some event calls
16839         * PropertyGridView.cs: Change drawing code to use double buffering
16840         * PropertyGridTextBox.cs: Changed Text property name
16841         * GridItem.cs: Added Bounds property.
16842         * GridEntry.cs: Added Bounds property.
16843
16844 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16845
16846         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16847         since GetType() may not return the correct type if the object is
16848         a remoting proxy.
16849
16850 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16851
16852         * TreeNodeCollection.cs: fixes get/set item ranges
16853         
16854 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16855
16856         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16857                 
16858 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16859
16860         * ComboBox.cs: Fix item range comparation
16861         * ListView.cs: Fix item range comparation
16862
16863 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16864
16865         * FontDialog.cs:
16866           - Clear example panel when OnPaint is called
16867           - Better solution for displaying the example panel text
16868           - Select default indexes in the ListBoxes
16869
16870 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16871
16872         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16873
16874 2005-05-11  Peter Bartok  <pbartok@novell.com>
16875
16876         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16877         * SelectionRangeConverter.cs: Implemented
16878         * PropertyGrid.cs: Fixed attribute value
16879         * Control.cs:
16880           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16881           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16882         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16883           that's common to all drivers. First methods to go there are
16884           Sebastien Pouliot's CAS Stack Propagation helper methods
16885         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16886           Sebastien Pouliot for CAS Stack Propagation
16887
16888 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16889
16890         * OSXStructs.cs:
16891           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16892
16893 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16894
16895         * DataGridTextBoxColumn.cs: fixed some members
16896         * GridColumnStylesCollection.cs: indexed column is case insensitive
16897         * DataGridTableStyle.cs: fixes
16898         * ThemeWin32Classic.cs: add new theme parameter
16899         * Theme.cs: add new theme parameter
16900         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16901         * DataGrid.cs: fixes, new internal properties, etc.
16902         * DataGridColumnStyle.cs: allows to set grid value
16903         *
16904
16905 2005-05-10  Peter Bartok  <pbartok@novell.com>
16906
16907         * AccessibleObject.cs:
16908           - Removed MonoTODO attribute on help, method is correct
16909           - Fixed Bounds property
16910         * AxHost.cs: Moved MonoTODO
16911         * ButtonBase.cs: Now setting AccessibleObject properties
16912         * RadioButton.cs: Setting proper AccessibleObject role
16913         * CheckBox.cs: Setting proper AccessibleObject role
16914         * ControlBindingsCollection.cs: Added properties, methods and attributes
16915         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16916           userdefined DataFormats.Format items as well
16917         * ListControl.cs: Removed data_member from the public eye
16918         * OpenFileDialog.cs:
16919           - Made class sealed
16920           - Added missing attributes
16921         * SaveFileDialog.cs: Added missing attributes
16922         * ImageListStreamer.cs: Fixed code that caused warnings
16923         * LinkLabel.cs: Removed unreachable code
16924         * TreeView.cs: Fixed code that caused warnings
16925         * PropertyGridView.cs: Fixed code that caused warnings
16926         * GridColumnStylesCollection.cs: Added missing attributes
16927         * GridTableStylesCollection: Added missing attribute
16928         * PropertyManager: Added .ctor
16929         * SecurityIDType: Added
16930         * DataObject.cs: Implemented class
16931         * LinkArea.cs: Added missing attribute
16932
16933 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16934
16935         * RadioButton.cs: call base method to allow to fire OnClick event
16936         * UpDownBase.cs: OnMouseUp call base method
16937         * CheckedListBox.cs: call base method before returning
16938         * TrackBar.cs: call base method before returning
16939         
16940
16941 2005-05-10  Peter Bartok  <pbartok@novell.com>
16942
16943         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16944           for messages
16945
16946 2005-05-10  Peter Bartok  <pbartok@novell.com>
16947
16948         * DataFormats.cs: Implemented
16949         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16950           XplatUIX11.cs: Added Clipboard APIs
16951         * XplatUIWin32.cs: Implemented Clipboard APIs
16952         * FolderBrowserDialog.cs: Added missing event, attributes
16953
16954 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16955
16956         * CheckBox.cs: call base method to allow to fire OnClick event
16957
16958 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16959
16960         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16961
16962 2005-05-06  Peter Bartok  <pbartok@novell.com>
16963
16964         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16965         * Screen.cs: Implemented
16966         * HelpNavigator.cs: Added
16967         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16968           property
16969         * HelpProvider.cs: Implemented all we can do until we have a CHM
16970           help library (which means that "What's This" does work now)
16971
16972 2005-05-06  Jackson Harper  <jackson@ximian.com>
16973
16974         * XplatUIX11.cs: Fix waking up the main loop.
16975                 
16976 2005-05-05  Peter Bartok  <pbartok@novell.com>
16977
16978         * XplatUI.cs: Updated revision
16979         * Form.cs: Removed enless loop
16980         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16981         * Label.cs (OnPaint): Added call to base.OnPaint()
16982         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16983         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16984         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16985         * AxHost.cs: Added
16986         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16987         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16988           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16989           reuse of ToolTipWindow by other controls
16990         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16991         * XplatUIX11.cs: Now clipping drawing area (experimental)
16992         * PictureBox.cs: Moved base.OnPaint() call to end of method
16993         * Theme.cs: Fixed ToolTip abstracts to match new format
16994         * ErrorProvider.cs: Implemented
16995
16996 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16997
16998         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16999         * LinkLabel.cs:
17000                 - Adds cursors
17001                 - Handles focus
17002                 - Implements LinkBehavior
17003                 - Fixes many issues
17004
17005 2005-05-03  Jackson Harper  <jackson@ximian.com>
17006
17007         * ListView.cs: Calculate the scrollbar positioning on resize and
17008         paint, so they get put in the correct place.
17009
17010 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17011
17012         * ColorDialogs.cs: The small color panels are now handled by
17013           SmallColorControl. This fixes drawing of the focus rectangle
17014           and adds a 3D border.
17015
17016 2005-05-03  Peter Bartok  <pbartok@novell.com>
17017
17018         * Control.cs: Modified version of Jonathan Chamber's fix for
17019           double-buffering
17020
17021 2005-05-03  Jackson Harper  <jackson@ximian.com>
17022
17023         * ListView.cs: Remove redraw variable. Control now handles whether
17024         or not a redraw needs to be done, and will only raise the paint
17025         event if redrawing is needed.
17026
17027 2005-05-03  Jackson Harper  <jackson@ximian.com>
17028
17029         * Splitter.cs: No decorations for the splitter form. Cache the
17030         hatch brush.
17031
17032 2005-05-03  Jackson Harper  <jackson@ximian.com>
17033
17034         * TreeView.cs: Use dashed lines to connect nodes. Use the
17035         ControlPaint method for drawing the focus rect instead of doing
17036         that in treeview.
17037
17038 2005-05-02  Peter Bartok  <pbartok@novell.com>
17039
17040         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17041
17042 2005-04-29  Jackson Harper  <jackson@ximian.com>
17043
17044         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17045         entire image buffer. Just clear the clipping rectangle.
17046
17047 2005-04-29  Jackson Harper  <jackson@ximian.com>
17048
17049         * ThemeWin32Classic.cs: Don't draw list view items that are
17050         outside the clipping rectangle.
17051
17052 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17053
17054         * ListBox.cs: added horizontal item scroll
17055
17056 2005-04-29  Jackson Harper  <jackson@ximian.com>
17057
17058         * ThemeWin32Classic.cs: Remove some old debug code that was
17059         causing flicker with the new double buffering code.
17060
17061 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17062
17063         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17064         behave like combobox and comboboxlist (still not sure if this is
17065         correct though).
17066
17067 2005-04-28  Jackson Harper  <jackson@ximian.com>
17068
17069         * ThemeWin32Classic.cs: Don't fill the middle of progress
17070         bars. This fills areas outside of the clip bounds that don't need
17071         to be filled.
17072
17073 2005-04-28  Jackson Harper  <jackson@ximian.com>
17074
17075         * Control.cs: Don't expose functionality to touch the image buffers.
17076         * ProgressBar.cs:
17077         * ListView.cs: We do not need to (and no longer can) manipulate
17078         the image buffers directly. All of this is handled by Control.
17079
17080 2005-04-28  Peter Bartok  <pbartok@novell.com>
17081
17082         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17083           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17084           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17085
17086 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17087
17088         * Combobox:
17089                 - Adjust control's height for non-simple comboboxes (bug fix)
17090                 - Remove dead code
17091         * MenuAPI.cs: remove unused var
17092         * ScrollBar.cs: remove unsed var
17093                  
17094         * ListBox.cs: unselect items when clearing
17095
17096 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17097
17098         * ListControl.cs: honors OnPositionChanged and default Selected Item
17099         * ListBox.cs: unselect items when clearing
17100
17101 2005-04-27  Jackson Harper  <jackson@ximian.com>
17102
17103         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17104         if a "correct" keyboard is not found. This will make us not crash,
17105         but might give some users bad keyboard layouts...seems to be the
17106         same thing rewind does.
17107
17108 2005-04-27  Jackson Harper  <jackson@ximian.com>
17109
17110         * BindingManagerBase.cs: Attach the current/position changed
17111         handlers to their respective events.
17112
17113 2005-04-27  Jackson Harper  <jackson@ximian.com>
17114
17115         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17116         not just a blit.
17117         * ThemeWin32Classic.cs: Don't fill the background for picture
17118         boxes. This could overright user drawing.
17119         * ComboBox.cs: Just fill the clipping rect not the entire client
17120         rect when drawing the background. This prevents pieces of the
17121         image buffer from getting overwritten and is theoretically faster.
17122
17123 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17124
17125         * ComboBox.cs: Databinding support fixes, fire missing events
17126         * ListControl.cs: implement missing methods and properties, fixes
17127         * ThemeWin32Classic.cs: Databiding support on Drawing
17128         * CheckedListBox.cs: Databinding support fixes, fire missing events
17129         * ListBox.cs: Databinding support fixes, fire missing events
17130         
17131 2005-04-25  Peter Bartok  <pbartok@novell.com>
17132
17133         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17134
17135 2005-04-25  Jackson Harper  <jackson@ximian.com>
17136
17137         * TreeView.cs: Use the horizontal scrollbars height not width when
17138         determining how much of the client area is available.
17139
17140 2005-04-25  Jackson Harper  <jackson@ximian.com>
17141
17142         * Control.cs: Double buffering is handled differently now. As per
17143         the spec, the extra buffer is created in the WM_PAINT message and
17144         passed down to the control's drawing code.
17145         * GroupBox.cs:
17146         * Label.cs:
17147         * CheckBox.cs:
17148         * ProgressBar.cs:
17149         * RadioButton.cs:
17150         * ColorDialog.cs:
17151         * ComboBox.cs:
17152         * PropertyGridView.cs:
17153         * UpDownBase.cs:
17154         * MessageBox.cs:
17155         * MenuAPI.cs:
17156         * ListView.cs:
17157         * ButtonBase.cs:
17158         * SizeGrip.cs:
17159         * ScrollBar.cs:
17160         * ListBox.cs:
17161         * TrackBar.cs:
17162         * ToolBar.cs:
17163         * PictureBox.cs:
17164         * DateTimePicker.cs:
17165         * StatusBar.cs:
17166         * TreeView.cs: Update to new double buffering system.
17167         * MonthCalendar.cs: Uncomment block, as Capture is now
17168         working. Update to new double buffering
17169         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17170         * PaintEventArgs.cs: New internal method allows us to set the
17171         graphics object. This is used for double buffering.
17172         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17173         rectangle. The internal paint_area var has been removed from
17174         StatusBar. The clipping rect should be used instead.
17175         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17176         * TabPage.cs: The RefreshTabs method was removed, so just call the
17177         tab controls Refresh method now.
17178         * TabControl.cs: Update to new double buffering. Make sure the
17179         handle is created before sizing the tab pages, otherwise we will
17180         get stuck in a loop.
17181
17182 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17183
17184         * LinkLabel.cs: Fix typo, bug #74719; patch
17185           from Borja Sanchez Zamorano
17186
17187 2005-04-22  Jackson Harper  <jackson@ximian.com>
17188
17189         * TreeNode.cs: Implement Handle stuff.
17190         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17191
17192 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17193
17194         * DataGridTextBoxColumn.cs: call base constructors, fixes
17195         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17196         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17197         * DataGridTableStyle.cs: implements create default column styles
17198         * DataGridBoolColumn.cs: which types can handle
17199         * DataGrid.cs: missing methods, fixes, new functionality
17200         * DataGridColumnStyle.cs: fixes
17201
17202 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17203         * FolderBrowserDialog.cs:
17204         - Use a thread to fill the TreeView
17205         - Adjusted some sizes
17206
17207 2005-04-19  Peter Bartok  <pbartok@novell.com>
17208
17209         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17210           property. Fixes #74360.
17211
17212 2005-04-19  Jackson Harper  <jackson@ximian.com>
17213
17214         * XEventQueue.cs: Lock when getting the lockqueue size.
17215         * PictureBox.cs: Call base OnPaint
17216         
17217 2005-04-19  Peter Bartok  <pbartok@novell.com>
17218
17219         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17220           messages were no longer being processed (this broke BeginInvoke)
17221
17222           
17223 2005-04-18  Jackson Harper  <jackson@ximian.com>
17224
17225         * TreeView.cs: buglet that caused node images to get drawn
17226         regardless of whether or not they were in the clipping rectangle.
17227
17228 2005-04-18  Jackson Harper  <jackson@ximian.com>
17229
17230         * CurrencyManager.cs: There are four rules for GetItemProperties:
17231         - If the type is an array use the element type of the array
17232         - If the type is a typed list, use the type
17233         - If the list contains an Item property that is not an object, use
17234         that property
17235         - use the first element of the list if there are any elements in
17236         the list.
17237         
17238 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17239
17240         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17241         click. This handles offsets for scrolling properly and reduces
17242         memory. Also fixed GetNode to not offset now that TopNode works
17243         properly.
17244         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17245         
17246 2005-04-17  Jackson Harper  <jackson@ximian.com>
17247
17248         * CursorConverter.cs: Initial implementation.
17249
17250 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17251
17252         * ListControl.cs: work towards complex data binding support on ListControl
17253         * CurrencyManager.cs: work towards complex data binding support on ListControl
17254         * ListBox.cs: work towards complex data binding support on ListControl
17255
17256
17257 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17258
17259         * GridTableStylesCollection.cs: fixes name and constructor
17260         * DataGridTableStyle.cs: fixes
17261         * DataGridBoolColumn.cs: fixes names and constructors
17262         * DataGrid.cs: define methods and properties. Some init implementations
17263         * DataGridCell.cs: define methods and properties. Some init implementations
17264         * GridTablesFactory.cs: Define methods and properties
17265
17266 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17267
17268         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17269         graphics port changes.  We still want the coordinates in global screen
17270         coordinates.
17271
17272 2005-04-14  Jackson Harper  <jackson@ximian.com>
17273
17274         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17275         check plus minus or checkbox clicks unless those features are enabled.
17276
17277 2005-04-14  Jackson Harper  <jackson@ximian.com>
17278
17279         * TreeView.cs: Add methods for setting the top and bottom visible
17280         nodes. TreeNode::EnsureVisible uses these methods.
17281         * TreeNode.cs: Implement EnsureVisible
17282
17283 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17284
17285         * Form.cs: Pospone menu assignation if the window has not been created yet
17286         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17287         size and position
17288
17289 2005-04-12  Jackson Harper  <jackson@ximian.com>
17290
17291         * TreeView.cs: Set the TopNode properly when scrolling
17292         occurs. This has the added benifit of reducing the amount of
17293         walking that needs to be done when drawing. Also removed an old
17294         misleading TODO.
17295         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17296         
17297 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17298
17299         * Timer.cs: fixes interval setting when the timer is already enabled
17300         
17301 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17302
17303         * FolderBrowserDialog.cs: First approach
17304
17305 2005-04-09  Peter Bartok  <pbartok@novell.com>
17306
17307         * FolderBrowserDialog: Added
17308
17309 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17310
17311         * LinkLabel.cs: move drawing code into the theme
17312         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17313         * Theme.cs: define DrawLinkLabel method
17314
17315 2005-04-05  Jackson Harper  <jackson@ximian.com>
17316
17317         * BindingContext.cs: Use weak references so these bad actors don't
17318         stay alive longer then they need to.
17319
17320 2005-04-05  Jackson Harper  <jackson@ximian.com>
17321
17322         * ListControl.cs: Basic implementation of complex databinding.
17323         * ComboBox.cs:
17324         * ListBox.cs: Add calls to ListControl databinding methods.
17325
17326 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17327
17328         * FileDialog.cs:
17329           - Don't change PopupButtonState to Normal when the
17330             PopupButton gets pressed several times.
17331           - Renamed ButtonPanel to PopupButtonPanel
17332
17333 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17334
17335         * ColorDialog.cs: Use cached objects instead of creating them
17336         * LinkLabel.cs: Use cached objects instead of creating them
17337         * Splitter.cs: Use cached objects instead of creating them
17338         * FontDialog.cs: Use cached objects instead of creating them
17339         * PropertyGridView.cs: Use cached objects instead of creating them
17340         * MessageBox.cs: Use cached objects instead of creating them
17341         * FileDialog.cs: Use cached objects instead of creating them
17342         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17343         * TreeView.cs: Use cached objects instead of creating them
17344         
17345 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17346
17347         * Control.cs: use Equals to compare the font since no == op
17348         * ScrollBar.cs: use Equals to compare the font since no == op
17349
17350 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17351
17352         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17353
17354 2005-04-01  Jackson Harper  <jackson@ximian.com>
17355
17356         * Binding.cs: Implement IsBinding.
17357         * BindingManagerBase.cs:
17358         * PropertyManager.cs:
17359         * CurrencyManager.cs: Add IsSuspended property.
17360
17361 2005-04-01  Jackson Harper  <jackson@ximian.com>
17362
17363         * Binding.cs: Had some IsAssignableFrom calls backwards.
17364
17365 2005-04-01  Jackson Harper  <jackson@ximian.com>
17366
17367         * Binding.cs: Handle null data members when pulling data.
17368         * PropertyManager.cs: Handle the data member being a property that
17369         does not exist.
17370
17371 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17372
17373         * DataGridTextBoxColumn.cs: fixes signature
17374         * DataGrid.cs: calls right constructor
17375
17376 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17377
17378         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17379         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17380         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17381         * DataGridTableStyle.cs: implements DataGridTableStyle
17382         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17383         * DataGridTextBox.cs: implements DataGridTextBox
17384         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17385
17386 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17387
17388         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17389
17390 2005-03-29  Peter Bartok  <pbartok@novell.com>
17391
17392         * Application.cs:
17393           - Properly implemented CompanyName property
17394           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17395             returns a path that includes CompanyName, ProductName and
17396             Version (fixes bug #70330)
17397
17398 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17399
17400         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17401           fixes bug #72588.
17402
17403 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17404
17405         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17406         
17407           - Added ReadOnly CheckBox
17408           - Further refactoring: moved some code from Open-/SaveFileDialog
17409             to FileDialog
17410
17411 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17412
17413         * OpenFileDialog.cs: Fixed CheckFileExists
17414         * FileDialog.cs:
17415           Moved FileView and DirComboBox outside FileDialog class.
17416           They can now be used outside FileDialog
17417
17418 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17419
17420         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17421         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17422
17423 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17424
17425         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17426           - Added missing CreatePrompt property in SaveDialog
17427           - Overall SaveDialog handling should be better now
17428           - Added non standard ShowHiddenFiles property
17429           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17430           - Added InitialDirectory and RestoreDirectory support
17431
17432 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17433
17434         * FileDialog.cs: Made dirComboBox usable
17435
17436 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17437
17438         * FileDialog.cs: Added Filter support (case sensitiv)
17439
17440 2005-03-24  Jackson Harper  <jackson@ximian.com>
17441
17442         * TabControl.cs: Need a couple more pixels for the lines.
17443
17444 2005-03-23  Jackson Harper  <jackson@ximian.com>
17445
17446         * TabControl.cs: Give the tab page focus when it is selected.
17447
17448 2005-03-23  Jackson Harper  <jackson@ximian.com>
17449
17450         * TabControl.cs: Account for the drawing of tabs borders when
17451         invalidating. If the slider was clicked dont do click detection on
17452         the tabs.
17453
17454 2005-03-23  Jackson Harper  <jackson@ximian.com>
17455
17456         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17457
17458 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17459
17460         * CategoryGridEntry.cs: Added
17461         * GridItem.cs: Added helper properties
17462         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17463         * GridEntry.cs: Updated code for collection
17464         * PropertyGrid.cs: Cleaned up some formatting
17465         * PropertyGridView.cs: Added drop down functionality for enums.
17466         * GridItemCollection.cs: Added enumerator logic
17467         * PropertyGridEntry.cs: Added
17468
17469 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17470
17471         * FileDialog.cs:
17472           - Removed unnecessary commented code
17473           - Fixed handling for entering the filename manually in the combobox
17474
17475 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17476
17477         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17478
17479 2005-03-18  Peter Bartok  <pbartok@novell.com>
17480
17481         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17482           them being touching the border
17483
17484 2005-03-18  Peter Bartok  <pbartok@novell.com>
17485
17486         * TextControl.cs: Quick hack to center text better
17487
17488 2005-03-18  Peter Bartok  <pbartok@novell.com>
17489
17490         * ControlPaint.cs:
17491           - Don't throw NotImplemented exceptions, just print a notice once
17492             instead (requested by Miguel). This makes running existing SWF
17493             apps a bit easier
17494         * Control.cs:
17495           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17496           - Added context menu trigger on right click
17497         * Panel.cs: Trigger invalidate on resize
17498         * StatusBar.cs:
17499           - Removed old double-buffer drawing
17500           - Added ResizeRedraw style to force proper update of statusbar
17501         * ListView.cs:
17502           - Removed debug output
17503         * ThemeWin32Classic.cs:
17504           - Fixed drawing of status bar, now draws Text property if there
17505             are no defined panels
17506
17507 2005-03-18  Jackson Harper  <jackson@ximian.com>
17508
17509         * ImageList.cs: When the image stream is set pull all the images
17510         from it.
17511         * ImageListStreamer.cs: Implement reading image list streams.
17512
17513 2005-03-18  Peter Bartok  <pbartok@novell.com>
17514
17515         * ThemeWin32Classic.cs (DrawPictureBox):
17516           - Fixed calculations for centered drawing
17517           - Fixed drawing for normal mode, not scaling the image on normal
17518
17519 2005-03-18  Peter Bartok  <pbartok@novell.com>
17520
17521         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17522           textbox
17523         * FileDialog.cs:
17524           - Made Open/Save button the accept button for FileDialog
17525           - Tied the cancel button to the IButtonControl cancel button
17526           - Save/Open now properly builds the pathname
17527           - Now handles user-entered text
17528           - Preventing crash on right-click if no item is selected
17529           - Fixed Text property, now uses contents of textbox
17530           - Fixed SelectedText property, now just returns the text part that
17531             is selected in the text box
17532
17533 2005-03-18  Jackson Harper  <jackson@ximian.com>
17534
17535         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17536         rect, make sure to de-adjust the interior rect after drawing the
17537         tab text.
17538
17539 2005-03-18  Peter Bartok  <pbartok@novell.com>
17540
17541         * MenuAPI.cs: Remove menu *before* executing selected action to
17542           prevent the menu from 'hanging around'
17543           
17544 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17545
17546         * XplatUIOSX.cs: Implemented WorkingArea property
17547
17548 2005-03-17  Peter Bartok  <pbartok@novell.com>
17549
17550         * XplatUIX11.cs: Fixed menu coord calculations
17551         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17552           for calculating offsets
17553
17554 2005-03-17  Peter Bartok  <pbartok@novell.com>
17555
17556         * Hwnd.cs: Do not consider menu presence for default client
17557           rectangle location/size
17558         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17559           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17560           translation functions
17561         * FileDialog.cs: Fixed (what I presume is a) typo
17562
17563 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17564
17565         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17566           X access (avoids X-Async errors)
17567
17568 2005-03-16  Jackson Harper  <jackson@ximian.com>
17569
17570         * TabControl.cs: Raise the SelectedIndexChanged event.
17571
17572 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17573
17574         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17575           - Removed vertical ToolBar and replaced it with a custom panel
17576             (desktop and home button already work)
17577           - Added Help button (some controls get resized or relocated then)
17578           - Draw correct text depending on Open or Save.
17579           - Fixed some typos...
17580
17581 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17582
17583         * ScrollBar.cs:
17584           - Only change Maximum and Minimum when need it (bug fix)
17585
17586 2005-03-15  Peter Bartok  <pbartok@novell.com>
17587
17588         * Form.cs: Use Handle for icon, to trigger creation if
17589           the window does not yet exist
17590         * Control.cs:
17591           - CanSelect: Slight performance improvement
17592           - Focus(): Preventing possible recursion
17593           - Invalidate(): Removed ControlStyle based clear flag setting
17594           - WM_PAINT: fixed logic for calling OnPaintBackground
17595           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17596             EraseWindowBackground if the control doesn't paint background
17597         * XplatUIWin32.cs:
17598           - Moved EraseWindowBackground() method to internal methods
17599           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17600             is sent via SendMessage on BeginPaint call on Win32
17601         * XplatUIX11.cs:
17602           - Added EraseWindowBackground() method
17603           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17604             PaintEventStart, which more closely matches Win32 behaviour
17605           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17606           - Fixed SetFocus() to properly deal with client and whole windows
17607         * Hwnd.cs: Added ErasePending property
17608         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17609         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17610
17611 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17612
17613         * XplatUIOSX.cs:
17614           - Fix hard loop when timers exist.
17615           - Fix bugs with middle and right click for 3 button mice.
17616
17617 2005-03-11  Peter Bartok  <pbartok@novell.com>
17618
17619         * XplatUIX11.cs:
17620           - get_WorkingArea: Need to call X directly, GetWindowPos only
17621             returns cached data now
17622           - Added sanity check to GetWindowPos hwnd usage
17623
17624 2005-03-11  Jackson Harper  <jackson@ximian.com>
17625
17626         * BindingManagerBase.cs: This method isn't used anymore as
17627         PullData now updates the data in the control.
17628
17629 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17630
17631         * Form.cs: fixes menu drawing on X11
17632         * MenuAPI.cs:  fixes menu drawing on X11
17633
17634 2005-03-11  Peter Bartok  <pbartok@novell.com>
17635
17636         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17637           from Jonathan Gilbert; should fix bug #73606
17638         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17639           in Screen coordinates. Thanks, Jordi.
17640         * Form.cs: Added missing attribute
17641
17642 2005-03-11  Peter Bartok  <pbartok@novell.com>
17643
17644         * Form.cs:
17645           - Rudimentary Mdi support
17646           - Removed outdated FormParent code
17647           - Implemented lots of missing properties and methods, still missing
17648             transparency support
17649           - Added missing attributes
17650           - Implemented support for MaximumBounds
17651           - Added firing of various events
17652         * XplatUI.cs: Added SetIcon() method
17653         * XplatUIDriver.cs: Added SetIcon() abstract
17654         * XplatUIOSX.cs: Stubbed out SetIcon() method
17655         * XplatUIX11.cs:
17656           - Implemented SetIcon() support
17657           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17658           - Switched to unix line endings
17659         * XplatUIWin32.cs:
17660           - Made POINT internal so for can access it as part of MINMAX
17661           - Implemented SetIcon() support
17662           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17663             native Mdi support again, might have to go managed)
17664         * Control.cs: Now fires the StyleChanged event
17665         * MdiClient.cs: Added; still mostly empty
17666
17667 2005-03-10  Peter Bartok  <pbartok@novell.com>
17668
17669         * SaveFileDialog.cs: Added emtpy file
17670
17671 2005-03-08  Peter Bartok  <pbartok@novell.com>
17672
17673         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17674           in turn triggers OnCreateContro) when creating a handle for the
17675           first time.
17676         * TextControl.cs: Fixed endless loop in certain cases when
17677           replacing the current selection
17678
17679 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17680
17681         * ScrollBar.cs:
17682           - Honors NewValue changes in Scroll events allowing apps to change it
17683           - Adds First and Last Scroll events
17684           - Fixes Thumb events
17685
17686 2005-03-07  Peter Bartok  <pbartok@novell.com>
17687
17688         * Hwnd.cs: Added DefaultClientRectangle property
17689         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17690           more detailed debug information
17691         * XplatUIX11.cs:
17692           - Fixed size-change feedback loop, where we would pull an old size
17693             off the queue and mistakenly change our window's size to an
17694             earlier value
17695           - Now compressing ConfigureNotify events, to reduce looping and
17696             redraw issues
17697         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17698           is called
17699
17700 2005-03-07  Jackson Harper  <jackson@ximian.com>
17701
17702         * Binding.cs: Push data pushes from data -> property. Check if the
17703         property is readonly when attempting to set it.
17704
17705 2005-03-07  Jackson Harper  <jackson@ximian.com>
17706
17707         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17708         instead of IsSubclassOf. Pulling data now sets the value on the
17709         control.
17710         * PropertyManager.cs:
17711         * CurrencyManager.cs: Just need to pull data when updating now,
17712         because PullData will set the value on the control.
17713
17714 2005-03-04  Jackson Harper  <jackson@ximian.com>
17715
17716         * Binding.cs: Implement data type parsing and converting on pulled
17717         data. TODO: Are there more ways the data can be converted?
17718
17719 2005-03-04  Jackson Harper  <jackson@ximian.com>
17720
17721         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17722         controls Validating method so we can repull the data when the
17723         control loses focus.
17724
17725 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17726
17727         * ColumnHeader.cs:
17728           - Fixes null string format
17729           
17730         * ListView.cs:
17731           - Adds enum type checks
17732           - Fixes redrawing and recalc need after changing some properties
17733           - Fixes on focus_item set after the event
17734           - Fixes adding columns after the control has been created
17735           
17736         * ThemeWin32Classic.cs:
17737           - Fixes CheckBox focus rectangle
17738           - Fixes ColumnHeader drawing
17739
17740
17741 2005-03-03  Jackson Harper  <jackson@ximian.com>
17742
17743         * Binding.cs: Bind to <Property>Changed events so we can detect
17744         when properties are changed and update the data.
17745
17746 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17747
17748         * ImageList.cs:
17749           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17750           - Fixes ImageList constructor with ImageList container
17751           - Fixes image scaling (wrong parameters at DrawImage)
17752
17753 2005-02-02  Jackson Harper  <jackson@ximian.com>
17754
17755         * Binding.cs: Make property searches case-insensitive. Eliminate
17756         some duplicated code.
17757
17758 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17759
17760         * ComboBox.cs:
17761                 - Handle focus event
17762                 - Fix scrollbar events
17763                 - Discard highlighted item if remove it
17764                 - Fixes SelectedItem with strings
17765
17766 2005-03-01  Peter Bartok  <pbartok@novell.com>
17767
17768         * Control.cs:
17769           - Fixed Visible property, now follows (once again) parent chain
17770             to return false if any control in the chain is visible=false
17771           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17772           - Fixed several places where is_visible instead of Visible was used
17773           - Implemented FIXME related to focus selection when setting focused
17774             control to be invisible
17775
17776         * XplatUIWin32.cs: Now using proper method to find out if window is
17777           visible. Thanks to Jordi for pointing it out
17778
17779 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17780
17781         * ComboBox.cs: show/hide scrollbar instead of creating it
17782
17783 2005-02-27  Jackson Harper  <jackson@ximian.com>
17784
17785         * CurrencyManager.cs: Add PositionChanged stuff.
17786
17787 2005-02-27  Peter Bartok  <pbartok@novell.com>
17788
17789         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17790         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17791         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17792         * XplatUIX11.cs:
17793           - Implemented GetMenuDC()
17794           - Implemented GetMenuOrigin()
17795           - Implemented ReleaseMenuDC()
17796           - Implemented generation of WM_NCPAINT message
17797           - Implemented generation and handling of WM_NCCALCSIZE message
17798         * Form.cs: Added debug helper message for Jordi's menu work
17799         * Hwnd.cs:
17800           - Modified ClientRect property; added setter, fixed getter to handle
17801             setting of ClientRect
17802           - Added MenuOrigin property
17803
17804 2005-02-26  Peter Bartok  <pbartok@novell.com>
17805
17806         * XplatUIX11.cs:
17807           - Destroys the caret if a window that's being destroyed contains it
17808           - Ignores expose events coming from the X11 queue for windows that
17809             already are destroyed
17810           - Now uses the proper variable for handling DestroyNotify, before we
17811             marked the wrong window as destroyed
17812           - Improved/added some debug output
17813
17814 2005-02-26  Peter Bartok  <pbartok@novell.com>
17815
17816         * X11Keyboard.cs: Fixes to work on 64bit systems
17817
17818 2005-02-26  Peter Bartok  <pbartok@novell.com>
17819
17820         * Control.cs:
17821           - Now calling OnHandleDestroyed from DestroyHandle()
17822             instead of Dispose()
17823           - Removed bogus call to controls.Remove() from DestroyHandle()
17824
17825 2005-02-26  Peter Bartok  <pbartok@novell.com>
17826
17827         * Control.cs: Properly destroy child windows when our handle is
17828           destroyed
17829
17830 2005-02-25  Peter Bartok  <pbartok@novell.com>
17831
17832         * XplatUI.cs:
17833           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17834           - Alphabetized Static Methods and Subclasses
17835
17836         * XplatUIX11.cs:
17837           - Added XException class to allow custom handling of X11 exceptions
17838           - Created custom X11 error handler, tied into XException class
17839           - Added support for MONO_XEXCEPTIONS env var to allow the user
17840             to either throw an exception on X errors or continue running
17841             after displaying the error
17842           - Added handling of DestroyNotify message
17843           - Added handler for CreateNotify message (still disabled)
17844           - Improved (tried to at least) Where method to provide file and lineno
17845         * X11Structs.cs:
17846           - Added XErrorHandler delegate
17847           - Added XRequest enumeration (to suppor translation of errors)
17848
17849 2005-02-25  Jackson Harper  <jackson@ximian.com>
17850
17851         * PropertyManager.cs: Implement editing features
17852         * CurrencyManager.cs:
17853         * Binding.cs: First attempt at UpdateIsBinding
17854         * BindingManagerBase.cs: Call UpdateIsBinding before
17855         pushing/pulling data.
17856
17857 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17858
17859         * MenuAPI.cs: Respect disabled items
17860         * ThemeWin32Classic.cs
17861                 - Caches ImageAttributes creation for DrawImageDisabled
17862                 - Fixes vertical menu line drawing
17863                 - Draws disabled arrows in disable menu items
17864
17865 2005-02-24  Peter Bartok  <pbartok@novell.com>
17866
17867         * Hwnd.cs:
17868           - Added UserData property to allow associating arbitrary objects
17869             with the handle
17870           - Fixed leak; now removing Hwnd references from static windows array
17871         * XplatUIWin32.cs:
17872           - Fixed Graphics leak in PaintEventEnd
17873           - Removed usage of HandleData, switched over to Hwnd class
17874         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17875
17876 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17877
17878         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17879         * ScrollBar.cs: Fixes bug
17880         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17881          keyboard navigation enhancements
17882
17883 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17884
17885         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17886         * GroupBox.cs: Add control styles
17887         * Label.cs: Add control styles
17888         * UpDownBase.cs: Add control styles
17889         * ListBox.cs: Add control styles
17890         * XplatUIWin32.cs: Fixes wrong parameter order
17891
17892
17893 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17894
17895         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17896
17897 2005-02-23  Jackson Harper  <jackson@ximian.com>
17898
17899         * PropertyManager.cs: Implement property binding. This doesn't
17900         seem to work yet though as (I think) there are some bugs in
17901         System.ComponentModel.PropertyDescriptor.
17902         * BindingContext.cs: Use new PropertyManager constructor.
17903
17904 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17905
17906         * ProgressBar.cs: use clip region in ProgressBar
17907         * ThemeWin32Classic.cs: use clip region in ProgressBar
17908
17909 2004-02-22  Jackson Harper  <jackson@ximian.com>
17910
17911         * BindingsCollection.cs: Remove some debug code.
17912
17913 2005-02-22  Jackson Harper  <jackson@ximian.com>
17914
17915         * BindingContext.cs:
17916         * ControlBindingsCollection.cs:
17917         * CurrencyManager.cs:
17918         * Binding.cs:
17919         * BindingManagerBase.cs: Initial implementation
17920         * BindingsCollection.cs: Add an internal contains method that the
17921         BindingManagerBase uses to ensure bindings aren't added twice to
17922         the collection.
17923         * PropertyManager.cs: Stubbed out.
17924         * Control.cs:
17925         * ContainerControl.cs: Hook up databinding
17926         
17927 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17928
17929         * XplatUIOSX.cs:
17930           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17931           Fixed Invalidate/Update chain.
17932           Fixed tons of other minor bugs (this is almost a complete rewrite).
17933
17934 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17935
17936         * ComboBox.cs: do subcontrol creation when the control is created
17937
17938 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17939
17940         * Label.cs: fixes image drawing (image and imagelist)
17941         * ThemeWin32Classic.cs: cache brushes
17942         
17943 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17944
17945         * Form.cs: Move menu drawing code to Theme class
17946         * ComboBox.cs: Move ComboBox drawing code to Theme class
17947         * MenuItem.cs: Move menu drawing code to Theme class
17948         * MenuAPI.cs: Move menu drawing code to Theme class
17949         * ThemeWin32Classic.cs: New methods
17950         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17951         * ListBox.cs: Move Listbox drawing code to Theme class
17952         * Theme.cs: New methods
17953
17954 2005-02-20  Peter Bartok  <pbartok@novell.com>
17955
17956         * Control.cs:
17957           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17958             only process mnemonics on those)
17959           - Fixed event sequence for key handling; first calling
17960             ProcessKeyEventArgs now
17961         * TextBoxBase.cs:
17962           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17963             for processing non-character keys
17964           - Fixed WM_CHAR to generate proper event sequence before processing
17965         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17966           generation
17967
17968 2005-02-19  Peter Bartok  <pbartok@novell.com>
17969
17970         * UserControl.cs: Added TextChanged event; added attributes
17971         * SizeGrip.cs: Implemented resizing and optional display of grip
17972         * Form.cs: Fixed attribute
17973         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17974           Changed meaning of ScrollWindow bool argument; instead of the
17975           clear attribute (which will be true usually anyway), it gives the
17976           option of moving child controls as well.
17977         * XplatUIX11.cs:
17978           - Changed to match new ScrollWindow argument
17979           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17980             now handles the implicit parent window a WM puts around us
17981         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17982           to work)
17983         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17984         * TreeView.cs: Adjusted to new ScrollWindow arguments
17985
17986 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17987
17988         * Form.cs: Menu integration with non-client area
17989         * MenuItem.cs: Menu integration with non-client area
17990         * MenuAPI.cs: Menu integration with non-client area
17991
17992 2005-02-18  Peter Bartok  <pbartok@novell.com>
17993
17994         * MethodInvoker.cs: Added
17995         * MdiLayout.cs: Added
17996         * SendKeys.cs: Started implementation
17997         * ErrorIconAlignment.cs: Added
17998
17999 2005-02-18  Peter Bartok  <pbartok@novell.com>
18000
18001         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
18002         * Form.cs: Added handling for Menu-related Non-client messages
18003
18004 2005-02-17  Peter Bartok  <pbartok@novell.com>
18005
18006         * UpDownBase.cs: Fixed typo, compilation errors
18007         * DomainUpDown.cs: Fixed attribute value
18008
18009 2005-02-16  Miguel de Icaza  <miguel@novell.com>
18010
18011         * UpDownBase.cs: Attach entry events.
18012         Propagate events.
18013         Add ForeColor property, Focused, InterceptArrowKeys (interception
18014         does not work yet).
18015
18016 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
18017
18018         * Form.cs:
18019                 - Redraw non client are on Setmenu
18020                 - Calc proper menu starting point
18021
18022 2005-02-17  Peter Bartok  <pbartok@novell.com>
18023
18024         * Application.cs: Fixed message_filter check
18025
18026 2005-02-17  Peter Bartok  <pbartok@novell.com>
18027
18028         * Application.cs: Now calls registered message filters
18029         * DockStyle.cs: Fixed attribute
18030         * Form.cs: Fixed attribute
18031         * Menu.cs: Fixed attribute
18032         * ToolTip.cs: Fixed attribute
18033         * TreeNode.cs: Added missing attributes and arranged in regions
18034         * PropertyGrid.cs: Fixed signatures
18035         * TreeNodeCollection.cs: Added attributes
18036         * Splitter.cs: Added missing attributes; arranged into regions
18037         * TabPage.cs: Added missing attributes; arranged into regions
18038         * TextBoxBase.cs: Added missing attributes
18039         * TextBox.cs: Added missing attributes
18040         * ArrangeDirection.cs: Added missing attributes
18041         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18042         * ToolBarButton.cs: Fixed attributes
18043         * AnchorStyles.cs: Fixed attribute
18044         * TrackBar.cs: Fixed attributes
18045         * TabControl.cs: Added missing attributes and arranged into regions
18046         * ToolBar.cs: Fixed attribute
18047         * StatusBar.cs: Fixed signature, organized into regions and added
18048           attributes
18049         * StatusBarPanel.cs: Fixed attributes
18050         * ContentsResizedEventArgs.cs: Implemented
18051         * ContentsResizedEventHandler.cs: Implemented
18052         * DateBoldEventArgs.cs: Implemented
18053         * DateBoldEventHandler.cs: Implemented
18054         * UpDownEventArgs.cs: Implemented
18055         * UpDownEventHandler.cs: Implemented
18056         
18057 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18058
18059         * Form.cs: first Menu NC refactoring
18060         * MenuAPI.cs: first Menu NC refactoring
18061         
18062 2005-02-16  Peter Bartok  <pbartok@novell.com>
18063
18064         * ImeMode.cs: Added missing attributes
18065         * Menu.cs: Fixed attribute
18066         * GroupBox.cs: Fixed attribute
18067         * Label.cs: Fixed attribute
18068         * ColorDialog.cs (RunDialog): Removed TODO attribute
18069         * ComboBox.cs: Fixed attributes
18070         * ListControl.cs: Added missing attributes
18071         * PropertyGrid.cs: Fixed attributes
18072         * Control.cs: Fixed attributes
18073         * ListViewItem.cs: Added TypeConverter attribute
18074         * NotifyIcon.cs: Fixed attributes
18075         * ListView.cs: Fixed attributes
18076         * ButtonBase.cs: Fixed attribute
18077         * ImageList.cs: Added missing attributes
18078         * ContainerControl.cs: Fixed signature
18079         * CheckedListBox.cs: Fixed attribute; added missing attributes
18080         * Panel.cs: Fixed attributes
18081         * PropertyTabChangedEventArgs.cs: Added missing attribute
18082         * PropertyValueChangedEventArgs.cs: Added missing attribute
18083         * Binding.cs: Fixed attribute
18084         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18085         * ListBox.cs: Fixed attribute; added missing attributes;
18086         * ScrollableControl.cs: Added missing attributes
18087         * PictureBox.cs: Added missing attributes; implemented missing property
18088         * DateTimePicker.cs: Added missing attributes
18089         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18090         * MonthCalendar.cs: Fixed attributes
18091         * StatusBarPanel.cs: Added missing attributes
18092         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18093
18094 2005-02-16  Peter Bartok  <pbartok@novell.com>
18095
18096         * TextBoxBase.cs: The previous method to enforce height yet remember
18097           the requested high was less than ideal, this is an attempt to do
18098           it better.
18099         * Control.cs: Added comment about possible problem
18100         * Copyright: Updated format
18101         * GridItemType.cs: Fixed swapped values
18102
18103 2005-02-15  Jackson Harper  <jackson@ximian.com>
18104
18105         * BaseCollection.cs: Use property so we never access an
18106         uninitialized list. Also initialize the list in the property.
18107
18108 2005-02-15  Peter Bartok  <pbartok@novell.com>
18109
18110         * GroupBox.cs (ProcessMnemonic): Implemented
18111         * Label.cs (ProcessMnemonic): Implemented
18112         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18113           hotkeys
18114
18115 2005-02-15  Peter Bartok  <pbartok@novell.com>
18116
18117         * RadioButton.cs (ProcessMnemonic): Implemented
18118         * CheckBox.cs (ProcessMnemonic): Implemented
18119         * Control.cs:
18120           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18121             handling
18122           - Added internal method to allow calling ProcessMnemonic from other
18123             controls
18124         * ContainerControl.cs:
18125           - Started support for handling validation chain handling
18126           - Implemented ProcessMnemonic support
18127           - Added Select() call to Active, to make sure the active control
18128             receives focus
18129         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18130           FormParent rewrite)
18131         * ThemeWin32Classic.cs:
18132           - DrawCheckBox(): Fixed stringformat to show hotkeys
18133           - DrawRadioButton(): Fixed stringformat to show hotkeys
18134         * CommonDialog.cs: Removed WndProc override, not needed
18135
18136 2005-02-14  Peter Bartok  <pbartok@novell.com>
18137
18138         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18139           missed those in the rewrite
18140
18141 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18142
18143         * NumericUpDown.cs (Increment, ToString): Add.
18144         (DecimalPlaces): implement.
18145         
18146         Add attributes.
18147         
18148         * UpDownBase.cs: Add the designer attributes.
18149
18150 2005-02-13  Peter Bartok  <pbartok@novell.com>
18151
18152         * Panel.cs: Removed border_style, now in Control
18153         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18154           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18155
18156 2005-02-13  Peter Bartok  <pbartok@novell.com>
18157
18158         * MouseButtons.cs: Added missing attributes
18159         * XplatUIStructs.cs: Added enumeration for title styles
18160         * LeftRightAlignment.cs: Added missing attributes
18161         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18162           it compatible with Graphics.FromHwnd()
18163         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18164         * Keys.cs: Added missing attributes
18165         * SelectionRange.cs: Added missing attributes
18166         * SelectionRangeConverter.cs: Added
18167         * XplatUI.cs:
18168           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18169             ReleaseMenuDC methods
18170           - Renamed ReleaseWindow to UngrabWindow
18171           - Added proper startup notice to allow version identification
18172         * Form.cs:
18173           - Added missing attributes
18174           - Removed FormParent concept
18175         * Label.cs: Removed border_style field, now in Control
18176         * RadioButton.cs: Now properly selects RadioButton when focus is
18177           received
18178         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18179         * Control.cs:
18180           - Added missing attributes
18181           - Added borderstyle handling
18182           - Removed FormParent concept support
18183           - Fixed calls to XplatUI to match changed APIs
18184           - Fixed bug that would case us to use disposed Graphics objects
18185           - Removed unneeded internal methods
18186           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18187           - SelectNextControl(): Fixed to properly check common parents
18188         * TextBoxBase.cs: Removed border_style field (now in Control)
18189         * MessageBox.cs:
18190           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18191             fixed calculations for form size
18192           - Added support for localized strings and icons
18193           - Improved form size calculations, added border
18194         * ListView.cs: Removed border_style field (now in Control)
18195         * X11Structs.cs: Moved several structs from X11 driver here
18196         * X11Keyboard.cs: Changed debug message
18197         * Application.cs: Removed FormParent concept support
18198         * CommonDialog.cs:
18199           - Resetting end_modal flag
18200           - Removed FormParent concept support
18201         * NativeWindow.cs: Removed FormParent concept support
18202         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18203           Client area and Non-Client whole window to allow support for WM_NC
18204           messages
18205         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18206           prevent using it until it supports Hwnd as per Geoff Norton's request
18207         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18208         * PictureBox.cs: Removed border_style field, now in Control
18209         * XplatUIWin32.cs: Added new driver methods
18210
18211 2005-02-12  Peter Bartok  <pbartok@novell.com>
18212
18213         * OpacityConverter.cs: Implemented
18214         * Hwnd.cs: Internal class to support drivers that need to emulate
18215           client area/non-client area window behaviour
18216
18217 2005-02-11  Peter Bartok  <pbartok@novell.com>
18218
18219         * KeysConverter.cs: Implemented
18220
18221 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18222
18223         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18224         * LinkLabel: Added missing attributes
18225         * MainMenu.cs: fixes ToString
18226         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18227         * ListBox.cs: fixes event position
18228         * TrackBar.cs: adds missing attributes and events
18229         
18230 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18231
18232         * MenuItem.cs: Use SystemInformation and bug fixes
18233         * MenuAPI.cs: Use SystemInformation and bug fixes
18234
18235 2005-02-09  Jackson Harper  <jackson@ximian.com>
18236
18237         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18238         their keystate otherwise things like VK_MENU get stuck "on".
18239
18240 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18241
18242         * ListBox.cs: Fixes AddRange bug
18243         
18244 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18245
18246         * ProgressBar.cs
18247                 - Add missing attributes
18248                 - Add missing method
18249                 
18250         * CheckedListBox.cs: Added missing attributes
18251                 - Add missing attributes
18252                 - Remove extra method
18253         
18254         * ComboBox.cs: Added missing attributes
18255         * VScrollBar.cs: Added missing attributes
18256         * ScrollBar.cs:  Added missing attributes
18257         * ListBox.cs: Fixes signature, add missing consts
18258         * LinkArea.cs:   Added missing attributes
18259         
18260
18261 2005-02-08  Peter Bartok  <pbartok@novell.com>
18262
18263         * Menu.cs: Added missing attributes
18264         * MainMenu.cs: Added missing attributes
18265         * GroupBox.cs: Added missing attributes
18266         * Label.cs: Added missing attributes
18267         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18268         * ColorDialog.cs:
18269           - Added Instance and Options properties
18270           - Added missing attributes
18271         * Cursor.cs: Made Serializable
18272         * NotifyIcon: Added missing attributes
18273         * MenuItem.cs: Added missing attributes
18274         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18275         * Panel.cs: Added Missing attributes
18276         * MonthCalendar.cs: Fixed CreateParams
18277
18278 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18279         
18280         * LinkLabel.cs:
18281                 - Fixes signature
18282                 - Fixes issues with links
18283                 - Adds the class attributes
18284
18285 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18286         
18287         * ComboBox.cs:
18288                 - Fixes button when no items available in dropdown
18289                 - Fixes repainting problems
18290                 - Adds the class attributes
18291                 
18292 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18293
18294         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18295         the current theme.  Cache these on startup.
18296
18297 2005-02-07  Jackson Harper  <jackson@ximian.com>
18298
18299         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18300         the scrollbar buttons when they are depressed.
18301
18302 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18303
18304         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18305         Get the display size from the main displayid.  We currently dont
18306         support multiple display configurations.
18307
18308 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18309
18310         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18311
18312 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18313
18314         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18315
18316 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18317
18318         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18319
18320 2005-02-04  Jackson Harper  <jackson@ximian.com>
18321
18322         * ThemeWin32Classic.cs: Respect the clipping rect when
18323         drawing. Only fill the intersection of clips and rects so there
18324         isn't a lot of large fills.
18325         * ScrollBar.cs: Pass the correct clipping rect to the theme
18326         engine. Remove some debug code.
18327
18328 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18329         
18330         * DateTimePicker.cs:
18331                 - Fixed crash on DateTime.Parse, use Constructor instead
18332
18333 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18334         
18335         * MenuItem.cs:
18336         * MenuAPI.cs:
18337                 - Owner draw support (MeasureItem and DrawItem)
18338
18339 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18340         
18341         *  Menu.cs:
18342                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18343                 - Fixes MenuItems.Add range
18344         * MenuItem.cs:
18345                 - MergeMenu and Clone and CloneMenu functions
18346
18347 2005-02-03  Jackson Harper  <jackson@ximian.com>
18348
18349         * ScrollBar.cs: Make abstract
18350         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18351         is abstract.
18352
18353 2005-02-03  Jackson Harper  <jackson@ximian.com>
18354
18355         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18356         all the unneeded refreshes and uses invalidates with properly
18357         computed rects.
18358
18359 2005-02-03  Peter Bartok  <pbartok@novell.com>
18360
18361         * ComponentModel.cs: Added
18362         * IDataGridEditingService.cs: Added
18363         * Timer.cs: Added missing attributes
18364         * ToolTip.cs: Added missing attributes
18365
18366 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18367
18368         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18369
18370 2005-02-03  Peter Bartok  <pbartok@novell.com>
18371
18372         * ListBox.cs: Added missing attributes
18373
18374 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18375         
18376         * ListBox.cs:
18377                 - Fixes font height after font change
18378                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18379                 
18380 2005-02-02  Peter Bartok  <pbartok@novell.com>
18381
18382         * HandleData.cs: Introduced static methods to allow class
18383           to be more self-contained and track it's own HandleData objects
18384         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18385           HandleData to use new static methods
18386
18387 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18388
18389         * Combobox.cs:
18390                 - Fixes default size and PreferredHeight
18391                 - Missing events
18392                 - ObjectCollection.Insert implementation
18393                 
18394         * ListControl.cs
18395                 - Fixes signature
18396         * ListBox.cs:
18397                 - Several fixes
18398                 - ObjectCollection.Insert implementation
18399                 - No selection after clean
18400                 - Small fixes
18401
18402 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18403
18404         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18405
18406 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18407
18408         * Combobox.cs:
18409                 - Caches ItemHeight calculation for OwnerDrawVariable
18410                 - Handles dropdown properly
18411                 - Fixes several minor bugs
18412
18413 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18414
18415         * ListBox.cs:
18416                 - Fixes 71946 and 71950
18417                 - Fixes changing Multicolumn on the fly
18418                 - Fixes keyboard navigation on Multicolumn listboxes
18419
18420 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18421         
18422         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18423         crash reporter log.
18424
18425 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18426
18427         * XplatUIOSX.cs: Allow applications to actually exit.
18428
18429 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18430
18431         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18432         their parent at creation time rather than lazily later.  Fixes a major
18433         regression we were experiencing.
18434
18435 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18436
18437         * ThemeWin32Classic.cs: more date time picker painting fixes
18438         * DateTimePicker.cs: more monthcalendar drop down fixes
18439         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18440
18441 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18442
18443         * ScrollBar.cs:
18444                 - When moving the thumb going outside the control should stop the moving
18445                 - Adds the firing of missing events
18446                 - Fixes no button show if Size is not specified
18447                 - End / Home keys for keyboard navigation
18448
18449 2005-01-30  Peter Bartok  <pbartok@novell.com>
18450
18451         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18452           sanity check to prevent theoretical loop
18453         * XplatUIWin32.cs (SetVisible): Removed debug output
18454         * XplatUIX11.cs (SystrayChange): Added sanity check
18455         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18456         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18457           behaviour, valid until the X11 client window rewrite is done
18458         * TextBox.cs (ctor): Setting proper default foreground and background
18459           colors
18460
18461 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18462
18463         * Theme: Added DrawDateTimePicker to interface
18464         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18465         * DateTimePicker.cs: Created (still needs keys and painting code)
18466         * DateTimePickerFormat.cs: added
18467         * MonthCalendar.cs: fixed CreateParams for popup window mode
18468           
18469 2005-01-29  Peter Bartok  <pbartok@novell.com>
18470
18471         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18472           this should also the calculations for ligher/darker
18473         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18474
18475 2005-01-29  Peter Bartok  <pbartok@novell.com>
18476
18477         * ArrangeDirection.cs: Added
18478         * ArrangeStartingPositon.cs: Added
18479         * SystemInformation.cs: Implemented
18480         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18481           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18482           used by SystemInformation class
18483         * X11Strucs.cs: Added XSizeHints structure
18484         * MenuAPI.cs:
18485           - Fixed CreateParams to make sure the menu window is always visible
18486           - TrackPopupMenu: Added check to make sure we don't draw the
18487             menu offscreen
18488
18489 2005-01-29  Peter Bartok  <pbartok@novell.com>
18490
18491         * HandleData.cs: Added method for altering invalid area
18492         * TextBoxBase.cs: Implemented TextLength
18493
18494 2005-01-28  Peter Bartok  <pbartok@novell.com>
18495
18496         * XplatUIX11.cs: Improvement over last patch, not sending
18497           the WM_PAINT directly anymore, instead we scroll any pending
18498           exposed areas and let the system pick out the WM_PAINT later
18499
18500 2005-01-28  Peter Bartok  <pbartok@novell.com>
18501
18502         * SWF.csproj: Deleted, no longer used. Instead,
18503           Managed.Windows.Forms/SWF.csproj should be used
18504         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18505           directly, to avoid a potential race condition with the next
18506           scroll
18507
18508 2005-01-28  Peter Bartok  <pbartok@novell.com>
18509
18510         * XplatUI.cs: Made class internal
18511
18512 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18513
18514         * CheckedListBox.cs:
18515                 - Draw focus
18516                 - Fixed Drawing
18517                 - Missing methods and events
18518
18519 2005-01-27  Peter Bartok  <pbartok@novell.com>
18520
18521         * Application.cs (Run): Don't use form if we don't have one
18522
18523 2005-01-27  Peter Bartok  <pbartok@novell.com>
18524
18525         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18526
18527 2005-01-27  Peter Bartok  <pbartok@novell.com>
18528
18529         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18530         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18531         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18532         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18533         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18534         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18535         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18536         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18537         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18538         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18539         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18540         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18541
18542 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18543
18544         * Combobox.cs:
18545                 - Draw focus on Simple Combobox
18546                 - Fixes drawing issues
18547                 - fixes 71834
18548
18549 2005-01-27  Peter Bartok  <pbartok@novell.com>
18550
18551         * Form.cs:
18552           - Place window in default location, instead of hardcoded 0/0
18553           - Send initial LocationChanged event
18554         * Control.cs:
18555           - UpdateBounds after creation to find out where the WM placed us
18556           - Make sure that if the ParentForm changes location the Form
18557             is notified
18558         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18559             to the root, but to whatever the WM placed around us.
18560             Translate to root coordinates before returning toplevel
18561             coordinates
18562         * XplatUIWin32.cs: Removed debug output
18563         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18564           flag to GetWindowPos, to allow translation of coordinates on X11
18565
18566 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18567
18568         * ListBox.cs: connect LostFocus Event
18569
18570 2005-01-27  Peter Bartok  <pbartok@novell.com>
18571
18572         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18573           XplatUIX11.cs: Extended the Systray API
18574         * Form.cs: Removed debug output
18575         * Application.cs: Fixed focus assignment, always need to call
18576           XplatUI.Activate() since Form.Activate() has rules that may
18577           prevent activation
18578         * NotifyIcon.cs: Should be complete now
18579         * ToolTip.cs: Worked around possible timer bug
18580
18581 2005-01-27  Jackson Harper  <jackson@ximian.com>
18582
18583         * TabControl.cs:
18584         - Only invalidate the effected tabs when the
18585         selected index changes. This reduces drawing and gets rid of some
18586         flicker.
18587         - Only refresh if the tabs need to be shifted, otherwise only
18588         invalidate the slider button.
18589         - On windows the tabs are not filled to right if the slider is
18590         visible.
18591         
18592 2005-01-27  Jackson Harper  <jackson@ximian.com>
18593
18594         * TabControl.cs: Only refresh on mouseup if we are showing the
18595         slider. Also only invalidate the button whose state has changed.
18596
18597 2005-01-26  Peter Bartok  <pbartok@novell.com>
18598
18599         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18600         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18601           and SystrayRemove() methods
18602         * XplatUIOSX.cs: Stubbed Systray methods
18603         * XplatUIX11.cs:
18604           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18605             methods
18606           - Fixed broken XChangeProperty calls (marshalling messed up things)
18607         * X11Structs.cs: Added enums and structs required for Size hinting
18608         * NotifyIcon.cs: Added & implemented
18609
18610 2005-01-26  Jackson Harper  <jackson@ximian.com>
18611
18612         * TabControl.cs: Space vertically layed out tabs properly.
18613
18614 2005-01-26  Peter Bartok  <pbartok@novell.com>
18615
18616         * Form.cs (CreateClientParams): Always set the location to 0,0
18617           since we're a child window.
18618
18619         * Control.cs (SetVisibleCore): Always explicitly setting the location
18620           of a toplevel window, apparently X11 doesn't like to move windows
18621           while they're not mapped.
18622
18623 2005-01-26  Jackson Harper  <jackson@ximian.com>
18624
18625         * TabControl.cs: Implement FillToRight size mode with vertically
18626         rendered tabs.
18627
18628 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18629
18630         * ControlPaint.cs, ThemeWin32Classic.cs
18631                 - Fixes DrawFocusRectangle
18632
18633 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18634
18635         * MenuAPI.cs:
18636                 - MenuBar tracking only starts when item is first clicked
18637                 - Fixes menu hidding for multiple subitems
18638                 - Unselect item in MenuBar when item Executed
18639                 - Fixes bug 71495
18640
18641 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18642
18643         * ListControl.cs:
18644                 - IsInputKey for ListBox
18645         * ListBox.cs:
18646                 - Focus item
18647                 - Shift and Control item selection
18648                 - Implement SelectionMode.MultiExtended
18649                 - Fixes RightToLeft
18650         * ComboBox.cs:
18651                 - IsInputKey implemented
18652                 - Do not generate OnTextChangedEdit on internal txt changes
18653                 
18654 2005-01-23  Peter Bartok  <pbartok@novell.com>
18655
18656         * AccessibleObject.cs: Partially implemented Select()
18657         * MonthCalendar.cs: Added missing attributes and events
18658         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18659           form can properly override CreateParams.
18660         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18661           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18662           Control performs Invalidate & Update
18663         * NativeWindow (CreateHandle): Added special handling for Form
18664           and Form.FormParent classes to allow overriding of From.CreateParams
18665         * Control.cs:
18666           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18667             name 'owner'
18668           - ControlNativeWindow: Added Owner property
18669           - Removed usage of Refresh() on property changes, changed into
18670             Invalidate(), we need to wait until the queue is processed for
18671             updates, direct calls might cause problems if not all vars for
18672             Paint are initialized
18673           - Added call to UpdateStyles() when creating the window, to set any
18674             styles that CreateWindow might have ignored.
18675           - Added support for Form CreateParent overrides to UpdateStyles()
18676         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18677           CreateParams are now properly overridable
18678         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18679           CreateParams are now properly overridable
18680
18681 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18682
18683         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18684         OnTextBoxChanged.
18685
18686         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18687         recursive invocation that I have not figured out yet.
18688
18689         Reset the timer when not using (it was accumulating).
18690
18691
18692         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18693         user has made changes that require validation.
18694
18695         Reset changing to avoid loops.
18696
18697 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18698
18699         * NumericUpDown.cs: Display value at startup.
18700
18701         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18702         ValidateEditText.
18703
18704         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18705         filled in.  Added some basic parsing of text.
18706
18707         Still missing the OnXXX method overrides, and figuring out the
18708         events that must be emitted.
18709
18710         * UpDownBase.cs: Handle UserEdit on the Text property.
18711         
18712 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18713
18714         * ComboBox.cs:
18715           - Fixes IntegralHeight
18716           - ToString method
18717
18718 2005-01-21  Jackson Harper  <jackson@ximian.com>
18719
18720         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18721         is set so that the page visibility is updated and the tabs are
18722         sized correctly.
18723
18724 2005-01-21  Jackson Harper  <jackson@ximian.com>
18725
18726         * TabControl.cs: Use cliping rectangle for blitting. Give the
18727         theme the clipping rect so we can do clipping while
18728         drawing. Remove some debug code.
18729
18730 2005-01-21  Jackson Harper  <jackson@ximian.com>
18731
18732         * TabPage.cs: Add a new method so tab pages can force the tab
18733         control to recalculate the tab page sizes.
18734         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18735         sizes.
18736
18737 2005-01-20  Jackson Harper  <jackson@ximian.com>
18738
18739         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18740
18741 2005-01-20  Jackson Harper  <jackson@ximian.com>
18742
18743         * TreeView.cs: Set the bounds for nodes properly. They were
18744         getting screwed up when checkboxes were not enabled, but images
18745         were.
18746
18747 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18748
18749         * ListBox.cs:
18750                 - Owner draw support
18751                 - Fixes
18752                 
18753 2005-01-20  Jackson Harper  <jackson@ximian.com>
18754
18755         * XplatUIStructs.cs: More misc keys
18756         * X11Keyboard.cs: Ignore some control keys.
18757
18758 2005-01-20  Jackson Harper  <jackson@ximian.com>
18759
18760         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18761         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18762
18763 2005-01-19  Peter Bartok  <pbartok@novell.com>
18764
18765         * Control.cs: Un-selecting the control when it is loosing focus
18766
18767 2005-01-19  Jackson Harper  <jackson@ximian.com>
18768
18769         * TreeView.cs: Hook up to the text controls leave event so we can
18770         end editing when the users clicks outside the text box.
18771         
18772 2005-01-19  Jackson Harper  <jackson@ximian.com>
18773
18774         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18775         get set in the conversion array.
18776
18777 2005-01-19  Peter Bartok  <pbartok@novell.com>
18778
18779         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18780           focus is properly set
18781         * Button.cs:
18782           - Added missing attributes
18783           - removed styles, those are already set in the base class
18784         * ButtonBase.cs:
18785           - Added missing attributes
18786           - Added clip window styles
18787         * CheckBox.cs: Added missing attributes
18788         * CommonDialog.cs:
18789           - FormParentWindow.CreateParams: Added required clip styles
18790         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18791           also filters modifier keys
18792         * MessageBox.cs:
18793           - Added assignment of Accept and Cancel button to enable Enter
18794             and Esc keys in MessageBox dialogs
18795           - FormParentWindow.CreateParams: Added required clip styles
18796         * RadioButton.cs: Added missing attributes
18797         * TextControl.cs: No longer draws selection if control does not
18798           have focus
18799         * TextBoxBase.cs:
18800           - Now draws simple rectangle around test area to make it obvious
18801             there's a control. This is a hack until we properly support borders
18802           - A few simple fixes to support selections better, now erases selected
18803             text when typing, and resets selection when using movement keys
18804
18805 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18806
18807         * UpDownBase.cs: Added some new properties.
18808
18809         * DomainUpDown.cs: Implement a lot to get my test working.
18810
18811 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18812
18813         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18814
18815 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18816
18817         * OSXStructs (WindowAttributes): Fixed csc complaints
18818
18819 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18820
18821         * XplayUIOSX.cs:
18822           OSXStructs.cs: Initial refactor to move enums and consts into
18823           OSXStructs and use them in the driver for greater readability.
18824
18825 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18826
18827         * XplatUIOSX.cs: Initial support for Standard Cursors.
18828         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18829
18830 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18831
18832         * ComboBox.cs: ability to change style when the ctrl is already
18833         created, missing methods and events, bug fixes, signature fixes
18834
18835 2005-01-19  Peter Bartok  <pbartok@novell.com>
18836
18837         * Cursors.cs (ctor): Added ctor to fix signature
18838
18839 2005-01-18  Peter Bartok  <pbartok@novell.com>
18840
18841         * Button.cs: Implemented DoubleClick event
18842         * ButtonBase.cs:
18843           - Fixed keyboard handling to behave like MS, where the press of
18844             Spacebar is equivalent to a mousedown, and the key release is
18845             equivalent to mouseup. Now a spacebar push will give the same
18846             visual feedback like a mouse click.
18847           - Added missing attributes
18848           - Added ImeModeChanged event
18849           - Added support for generating DoubleClick event for derived classes
18850         * CheckBox.cs:
18851           - Implemented DoubleClick event
18852           - Added missing attributes
18853         * CommonDialog.cs: Added missing attribute
18854         * ContextMenu.cs: Added missing attributes
18855         * RadioButton.cs:
18856           - AutoChecked buttons do not allow to be unselected when clicked
18857             (otherwise we might end up with no selected buttons in a group)
18858           - Added missing attributes
18859           - Implemented DoubleClickEvent
18860         * ThreadExceptionDialog.cs: Enabled TextBox code
18861
18862 2005-01-18  Peter Bartok  <pbartok@novell.com>
18863
18864         * Form.cs: Removed debug output
18865         * Button.cs: Added support for DoubleClick method
18866
18867 2005-01-18  Peter Bartok  <pbartok@novell.com>
18868
18869         * Form.cs:
18870           - Added method to parent window that allows triggering size
18871             calculations when a menu is added/removed
18872           - set_Menu: Cleaned up mess from early days of Form and Control,
18873             now properly triggers a recalc when a menu is added/removed
18874           - Added case to select form itself as focused form if no child
18875             controls exist
18876           - Added PerformLayout call when showing dialog, to ensure properly
18877             placed controls
18878         * Control.cs:
18879           - Select(): Made internal so Form can access it
18880           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18881             status
18882         * Application.cs (Run): Removed hack and calls PerformLayout instead
18883           to trigger calculation when Form becomes visible
18884
18885 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18886
18887         * ComboBox.cs: fixes for ownerdraw
18888
18889 2005-01-18  Peter Bartok  <pbartok@novell.com>
18890
18891         * TextControl.cs:
18892           - Sentinel is no longer static, each Document gets it's own, this
18893             avoids locking or alternatively overwrite problems when more
18894             than one text control is used simultaneously.
18895           - Switched to use Hilight and HilightText brushes for text selection
18896
18897         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18898
18899 2005-01-18  Peter Bartok  <pbartok@novell.com>
18900
18901         * Control.cs:
18902           - Hooked up the following events:
18903                 o ControlAdded
18904                 o ControlRemoved
18905                 o HandleDestroyed
18906                 o ImeModeChanged
18907                 o ParentChanged
18908                 o TabStopChanged
18909                 o Invalidated
18910                 o SystemColorsChanged
18911                 o ParentFontChanged
18912                 o Move
18913           - Removed debug output
18914           - Added a call to the current theme's ResetDefaults when a color change
18915             is detected
18916         * Form.cs: Now setting the proper ImeMode
18917         * Theme.cs: Defined a method to force recreation of cached resources
18918           and rereading of system defaults (ResetDefaults())
18919         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18920
18921 2005-01-17  Peter Bartok  <pbartok@novell.com>
18922
18923         * Control.cs: Added missing attributes
18924
18925 2005-01-17  Jackson Harper  <jackson@ximian.com>
18926
18927         * TreeNode.cs: Implement editing. Add missing properties selected
18928         and visible.
18929         * TreeView.cs: Implement node editing. Also some fixes to use
18930         Invalidate (invalid area) instead of Refresh when selecting.
18931
18932 2005-01-17  Peter Bartok  <pbartok@novell.com>
18933
18934         * Control.cs:
18935           - Implemented InvokeGotFocus() method
18936           - Implemented InvokeLostFocus() method
18937           - Implemented InvokePaint() method
18938           - Implemented InvokePaintBackground() method
18939           - Implemented InvokeClick() method
18940           - Implemented FindForm() method
18941           - Implemented RectangleToClient() method
18942           - Implemented ClientToRectangle() method
18943           - Implemented ResetBackColor() method
18944           - Implemented ResetCursor() method
18945           - Implemented ResetFont() method
18946           - Implemented ResteForeColor() method
18947           - Implemented ResetImeMode() method
18948           - Implemented ResetLeftToRight() method
18949           - Implemented ResetText() method
18950           - Implemented Scale() methods
18951           - Implemented ScaleCore() method
18952           - Implemented Update() method
18953           - Removed unused variables
18954           - Stubbed AccessibilityNotifyClients and
18955             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18956             with those yet)
18957           - Now setting proper default for RightToLeft property
18958           - Fixed bug in SetClientSizeCore that would cause windows to get
18959             really big
18960           - Now sending Click/DoubleClick events
18961           - Now selecting controls when left mouse button is clicked on
18962             selectable control
18963         * AccessibleEvents.cs: Added
18964         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18965         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18966         * XplatUIWin32.cs: Implemented UpdateWindow() method
18967         * XplatUIX11.cs: Implemented UpdateWindow() method
18968         * Form.cs: Removed stray semicolon causing CS0162 warning
18969         * ThemeWin32Classic.cs: Fixed unused variable warnings
18970         * ScrollableControl.cs: Now calls base method for ScaleCore
18971         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18972           style to avoid interference with internal click handler (which is
18973           different than standard Control click handling)
18974         * RadioButton.cs:
18975           - Now unchecks all sibling radio buttons when control is
18976             selected (Fixes #68756)
18977           - Removed internal tabstop variable, using the one inherited from
18978             Control
18979
18980 2005-01-17  Jackson Harper  <jackson@ximian.com>
18981
18982         * NavigateEventArgs.cs: Fix base type.
18983         * LinkLabel.cs: Sig fix
18984         
18985 2005-01-17  Jackson Harper  <jackson@ximian.com>
18986
18987         * TreeView.cs: Only invalidate the effected nodes bounds when
18988         selecting nodes.
18989
18990 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18991
18992         * XplatUIWin32.cs: fixes Win32 marshaling
18993         * XplatUIX11.cs: fixes method signature
18994
18995 2005-01-17  Peter Bartok  <pbartok@novell.com>
18996
18997         * XplatUIX11.cs: Clean up resources when we no longer need them
18998
18999 2005-01-17  Peter Bartok  <pbartok@novell.com>
19000
19001         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
19002           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
19003           and DestroyCursor() methods.
19004         * Cursor.cs: Partially implemented, now supports standard cursors;
19005           still contains some debug code
19006         * Cursors.cs: Implemented class
19007         * Control.cs:
19008           - WndProc(): Added handling of WM_SETCURSOR message, setting the
19009             appropriate cursor
19010           - Implemented Cursor property
19011           - Replaced break; with return; more straightforwar and possibly
19012             faster
19013           - Now properly setting the result for WM_HELP
19014         * X11Structs.cs: Added CursorFontShape enum
19015         * XplatUIStructs.cs:
19016           - Added StdCursor enum (to support DefineStdCursor() method)
19017           - Added HitTest enum (to support sending WM_SETCURSOR message)
19018         * XplatUIX11.cs:
19019           - Now sends the WM_SETCURSOR message
19020           - Implemented new cursor methods
19021         * XplatUIOSX.cs: Stubbed new cursor methods
19022         * XplatUIWin32.cs:
19023           - Implemented new cursor methods
19024           - Added GetSystemMetrics function and associated enumeration
19025
19026 2005-01-15  Peter Bartok  <pbartok@novell.com>
19027
19028         * Control.cs:
19029           - WndProc(): Now handles EnableNotifyMessage
19030           - SelectNextControl(): Fixed bug where if no child or sibling
19031             controls exist we looped endlessly
19032
19033 2005-01-14  Jackson Harper  <jackson@ximian.com>
19034
19035         * TreeView.cs: Recalculate the tab pages when a new one is added
19036         so that the proper bounding rects are created.
19037
19038 2005-01-14  Jackson Harper  <jackson@ximian.com>
19039
19040         * TreeView.cs: Draw a gray box instead of a grip in the lower
19041         right hand corner when there are both horizontal and vertical
19042         scroll bars.
19043
19044 2005-01-14  Jackson Harper  <jackson@ximian.com>
19045
19046         * Control.cs: When erasing backgrounds use FromHwnd instead of
19047         FromHdc when there is a NULL wparam. This occurs on the X driver.
19048         * XplatUIX11.cs: Set the wparam to NULL.
19049
19050 2005-01-13  Jackson Harper  <jackson@ximian.com>
19051
19052         * PictureBox.cs: Implement missing methods (except ToString, need
19053         to test that on windows) and events. When visibility is changed we
19054         need to redraw the image because the buffers are killed. When size
19055         is changed refresh if the sizemode needs it.
19056
19057 2005-01-13  Peter Bartok  <pbartok@novell.com>
19058
19059         * Control.cs (SelectNextControl): Was using wrong method to select
19060           a control
19061
19062 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19063
19064         * ComboBox.cs: fixes dropstyle
19065
19066 2005-01-13  Peter Bartok  <pbartok@novell.com>
19067
19068         * Form.cs:
19069           - Implemented Select() override
19070           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19071           - Now sets keyboard focus on startup
19072         * Control.cs (SelectNextControl): Now properly handles directed=true
19073         * TextBoxBase.cs:
19074           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19075           - Added (really bad) focus rectangle (mostly for testing)
19076         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19077           to enforce redraw on focus changes
19078         * ContainerControl.cs:
19079           - Fixed detection of Shift-Tab key presses
19080           - Fixed traversal with arrow keys
19081         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19082           gonna keep this or if it's complete yet
19083         
19084 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19085
19086         * ComboBox.cs: missing properties, fixes
19087
19088 2005-01-13  Peter Bartok  <pbartok@novell.com>
19089
19090         * Panel.cs (ctor): Setting Selectable window style to off
19091         * Splitter.cs (ctor): Setting Selectable window style to off
19092         * GroupBox.cs (ctor): Setting Selectable window style to off
19093         * Label.cs (ctor): Setting Selectable window style to off
19094
19095 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19096
19097         * UpDownBase.cs (InitTimer): If the timer has been already
19098         created, enable it.
19099
19100         Use a TextBox instead of a Label.
19101
19102 2005-01-12  Jackson Harper  <jackson@ximian.com>
19103
19104         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19105         draw the connecting node lines (when ShowLines is true).
19106         * TreeNode.cs: The nodes index can now be updated. This is used
19107         when a node collection is sorted.
19108         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19109         insert or an existing unsorted node collection can be sorted.
19110         
19111 2005-01-12  Peter Bartok  <pbartok@novell.com>
19112
19113         * ContainerControl.cs: Implemented ProcessDialogKeys()
19114
19115 2005-01-12  Peter Bartok  <pbartok@novell.com>
19116
19117         * Control.cs:
19118           - Implemented SelectNextControl() method
19119           - Several focus related bug fixes
19120           - Fixed Docking calculations to match MS documentation and
19121             behaviour
19122
19123 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19124
19125         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19126         bug fixes
19127
19128 2005-01-12  Peter Bartok  <pbartok@novell.com>
19129
19130         * Control.cs:
19131           - Fixed broken Contains() method
19132           - Implemented GetNextControl() method. Finally. This is the pre-
19133             requisite for focus handling.
19134
19135 2005-01-12  Peter Bartok  <pbartok@novell.com>
19136
19137         * OSXStrucs.cs: Added
19138
19139 2005-01-12  Peter Bartok  <pbartok@novell.com>
19140
19141         * XplatUIWin32.cs:
19142           - Removed PeekMessageFlags
19143           - Implemented SetWindowStyle() method
19144         * XplatUIStructs.cs: Added PeekMessageFlags
19145         * X11Structs: Added missing border_width field to XWindowChanges struct
19146         * XplatUIX11.cs:
19147           - PeekMessage: Now throws exception if flags which are not yet
19148             supported are passed
19149           - Implemented SetWindowStyle() method
19150           - Fixed SetZOrder to handle AfterHwnd properly
19151         * XplatUI.cs: Added SetWindowStyle() method
19152         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19153         * Control.cs:
19154           - Implemented UpdateStyles() method
19155           - Implemented UpdateZOrder() method
19156         * XplatUIOSX.cs: Added SetWindowStyle() stub
19157
19158 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19159
19160         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19161         button mouse).
19162
19163
19164 2005-01-11  Jackson Harper  <jackson@ximian.com>
19165
19166         * TreeView.cs: Still need to draw lines to siblings even if out of
19167         the current node is out of the clip.
19168
19169 2005-01-11  Jackson Harper  <jackson@ximian.com>
19170
19171         * TreeView.cs: When setting the hbar/vbar/grip position use
19172         SetBounds so that perform layout is only called once. Also suspend
19173         and resume layout so layout is only done once for all controls.
19174         - Removed some debug fluff
19175         * SizeGrip.cs: Call base implmentation in overriding methods.
19176         - When visibility is changed the drawing buffers are killed so we
19177         need to redraw.
19178
19179 2005-01-11  Jackson Harper  <jackson@ximian.com>
19180
19181         * TreeView.cs: Calculate the open node count while drawing. This
19182         saves us an entire tree traversal for every paint operation. Use
19183         a member var for the open node count so less vars are passed around.
19184
19185 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19186
19187         * MonthCalendar.cs:
19188         - fixed selection to use mousemove, not mouse polling on timer
19189         * ThemeWin32Classic.cs
19190         - removed redundant unused variable "no_more_content"
19191         
19192 2005-01-11  Peter Bartok  <pbartok@novell.com>
19193
19194         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19195           are pending, so it now calls PeekMessage instead of GetMessage;
19196           implemented a incomplete version of PeekMessage
19197         
19198 2005-01-11  Peter Bartok  <pbartok@novell.com>
19199
19200         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19201           I18n issues
19202         * TextBoxBase.cs: Added sending of TextChanged event
19203
19204 2005-01-10  Jackson Harper  <jackson@ximian.com>
19205
19206         * TreeView.cs: Try not to draw outside the clipping rectangle on
19207         each node element.
19208
19209 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19210
19211         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19212
19213 2005-01-10  Jackson Harper  <jackson@ximian.com>
19214
19215         * TreeView.cs:
19216         - Implement fast scrolling. Now only the newly
19217         exposed nodes are drawn and the old image is moved using the
19218         XplatUI::ScrollWindow method.
19219         - Factor in height of nodes when calculating whether or not the
19220         node is in the clipping rect.
19221
19222 2005-01-10  Jackson Harper  <jackson@ximian.com>
19223
19224         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19225
19226 2005-01-10  Peter Bartok  <pbartok@novell.com>
19227
19228         * Application.cs: Added temporary hack to resolve all our resize
19229           required issues on startup. This will get fixed properly at
19230           some point in the future
19231
19232 2005-01-10  Jackson Harper  <jackson@ximian.com>
19233
19234         * SizeGrip.cs: New internal class that is used as a sizing
19235         grip control...hence the name.
19236
19237 2005-01-10  Peter Bartok  <pbartok@novell.com>
19238
19239         * Control.cs: Implemented proper TabIndex handling, now assigning
19240           a tabindex when a control is added to a container
19241         * GroupBox.cs (ctor): Now sets the Container style bit, required
19242           for Control.GetNextControl()
19243
19244 2005-01-09  Jackson Harper  <jackson@ximian.com>
19245
19246         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19247
19248 2005-01-09  Peter Bartok <pbartok@novell.com>
19249
19250         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19251           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19252           an overload for ScrollWindow to allow only scrolling a rectangle
19253
19254 2005-01-09  Peter Bartok <pbartok@novell.com>
19255
19256         * Form.cs:
19257           - Implemented SetDesktopBounds method
19258           - Implemented SetDesktopLocation method
19259
19260 2005-01-08  Jackson Harper  <jackson@ximian.com>
19261
19262         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19263         the node count has changed, this removes to VScroll::Refresh calls
19264         when drawing.
19265
19266 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19267
19268         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19269
19270 2005-01-07  Jackson Harper  <jackson@ximian.com>
19271
19272         * TreeNode.cs: Just update the single node when it is
19273         checked. Don't refresh after toggling, the Expand/Collapse already
19274         handles this.
19275         * TreeView.cs: Respect clipping a little more when drawing. Try
19276         not to redraw things that don't need to be redrawn. Just hide the
19277         scrollbars when they are no longer needed instead of removing
19278         them, so they don't have to be created again and again.
19279         
19280 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19281
19282         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19283         coordinates to window space to place the caret properly, FIXED.
19284         Implement GetWindowState & SetWindowState
19285
19286 2005-01-06  Peter Bartok <pbartok@novell.com>
19287
19288         * Form.cs:
19289           - Implemented ClientSize property
19290           - Implemented DesktopBounds property
19291           - Implemented DesktopLocation property
19292           - Implemented IsRestrictedWindow property
19293           - Implemented Size property
19294           - Implemented TopLevel property
19295           - Implemented FormWindowState property
19296         * Control.cs:
19297           - Implemented GetTopLevel() method
19298           - Implemented SetTopLevel() method
19299         * X11Structs.cs (Atom):
19300           - Added AnyPropertyType definition
19301           - Added MapState definiton and updated XWindowAttribute struct
19302         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19303         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19304         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19305         * XplatUIWin32.cs:
19306           - Implemented GetWindowState() and SetWindowState() methods
19307           - Fixed Win32GetWindowLong return type
19308         * XplatUIX11.cs:
19309           - Introduced central function for sending NET_WM messages
19310           - Implemented GetWindowState() and SetWindowState() methods
19311         * TextBoxBase.cs (set_Lines):
19312           - Now uses Foreground color for text added via Text property (Duh!)
19313           - Added code to remember programmatically requested size (fixes
19314             behaviour when Multiline is set after Size)
19315           - Added AutoSize logic
19316
19317 2005-01-06  Jackson Harper  <jackson@ximian.com>
19318
19319         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19320
19321 2005-01-06  Jackson Harper  <jackson@ximian.com>
19322
19323         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19324         set to less then 0.
19325
19326 2005-01-06  Jackson Harper  <jackson@ximian.com>
19327
19328         * ScrollableControl.cs: Lazy init the scrollbars.
19329         
19330 2005-01-06  Jackson Harper  <jackson@ximian.com>
19331
19332         * Theme.cs: Speed up getting pens and solid brushes, by using
19333         their ARGB as a hash instead of tostring and not calling Contains.
19334
19335 2005-01-06  Peter Bartok <pbartok@novell.com>
19336
19337         * Form.cs:
19338           - Implemented OnActivated and OnDeactivate event trigger
19339           - Implemented Activate() method
19340           - Fixed ShowDialog() to activate the form that was active before
19341             the dialog was shown
19342         * XplatUIX11.cs:
19343           - Added global active_window var that tracks the currently active
19344             X11 window
19345           - Now always grabs Property changes from the root window to always
19346             catch changes on the active window property
19347           - Added code to PropertyNotify handler to send Active/Inactive
19348             messages when state changes. This puts X11 and Win32 en par on
19349             WM_ACTIVATE notifications (except for double notifications when
19350             the user clicks away from our modal window to another one of our
19351             windows)
19352
19353 2005-01-05  Jackson Harper  <jackson@ximian.com>
19354
19355         * ImageList.cs: Implment ctor
19356
19357 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19358
19359         * XplatUIOSX.cs: Implement Activate/SetTopmost
19360
19361 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19362
19363         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19364
19365 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19366
19367         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19368
19369 2005-01-05  Peter Bartok <pbartok@novell.com>
19370
19371         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19372           XplatUIOSX.cs: Added GetActive method to return the currently
19373           active window for the application (or null, if none is active)
19374         * Form.cs:
19375           - Implemented ActiveForm
19376           - Commented out owner assignment for modal dialogs (causes problems
19377             on Win32, since the owner will be disabled)
19378           - Reworked some Active/Focus handling (still incomplete)
19379         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19380           (causes problems on Win32, since the owner will be disabled)
19381         * IWin32Window: Added ComVisible attribute
19382
19383 2005-01-05  Peter Bartok <pbartok@novell.com>
19384
19385         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19386           required XplatUI functions.
19387
19388 2005-01-05  Peter Bartok <pbartok@novell.com>
19389
19390         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19391           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19392           to implement focus and activation handling; still incomplete and
19393           with debug output
19394
19395 2005-01-04  Peter Bartok <pbartok@novell.com>
19396
19397         * TextBoxBase.cs: Changed access level for Document property to
19398           match switch to internal for TextControl
19399
19400 2005-01-04  Peter Bartok <pbartok@novell.com>
19401
19402         * AccessibleObject: Added ComVisible attribute
19403
19404 2005-01-04  Jackson Harper  <jackson@ximian.com>
19405
19406         * X11Keyboard.cs: Remove unneeded var.
19407
19408 2005-01-04  Jackson Harper  <jackson@ximian.com>
19409
19410         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19411         but PAINT.
19412         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19413         ClientMessage. This makes apps exit cleanly (more often).
19414         
19415 2005-01-04  Jackson Harper  <jackson@ximian.com>
19416
19417         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19418         handling focus, return correct colors and fonts,
19419         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19420         handle selection, horizontal scrolling, and mouse interaction.
19421
19422 2005-01-04  Peter Bartok <pbartok@novell.com>
19423
19424         * ICommandExecutor.cs: Added
19425         * IDataGridColumnStyleEditingNotificationService.cs: Added
19426         * IFeatureSupport.cs: Added
19427         * IFileReaderService.cs: Added
19428         * IDataObject.cs: Added ComVisible attribute
19429         * AmbientProperties.cs: Added
19430         * BaseCollection.cs: Added missing attributes
19431         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19432         * BaseCollection.cs: Added missing attributes
19433         * Binding.cs: Added TypeConverter attribute
19434         * BindingContext.cs: Added DefaultEvent attribute
19435         * BindingsCollection.cs: Added DefaultEvent attribute
19436         * Button.cs: Added DefaultValue attribute
19437         * DragEventArgs.cs: Added ComVisible attribute
19438         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19439         * KeyEventArgs.cs: Added ComVisible attribute
19440         * KeyPressEventArgs.cs: Added ComVisible attribute
19441         * MouseEventArgs.cs: Added ComVisible attribute
19442         * NavigateEventArgs.cs: Added
19443         * NavigateEventHandler.cs: Added
19444         * FeatureSupport.cs: Added
19445         * OSFeature.cs: Added
19446         * Theme.cs: Added abstract Version property to support OSFeature
19447         * ThemeWin32Classic.cs: Added Version property to
19448           support OSFeature.Themes
19449         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19450           the proper styles to avoid background drawing are set, also doesn't
19451           match MS signature
19452         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19453         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19454         * ScrollEventArgs.cs: Added ComVisible attribute
19455         * SplitterEventArgs.cs: Added ComVisible attribute
19456         * AccessibleSelection.cs: Added Flags attribute
19457         * Appearance.cs: Added ComVisible attribute
19458         * Border3DSide.cs: Added ComVisible attribute
19459         * Border3DStyle.cs: Added ComVisible attribute
19460         * BorderStyle.cs: Added ComVisible attribute
19461         * DragAction.cs: Added ComVisible attribute
19462         * ErrorBlinkStyle.cs: Added
19463         * ScrollEventType.cs: Added ComVisible attribute
19464         * AnchorStyles.cs: Added Editor attribute
19465         * DockStyle.cs: Added Editor attribute
19466         * HorizontalAlignment.cs: Added ComVisible attribute
19467         * HelpEventArgs.cs: Added ComVisible attribute
19468         * PaintEventArgs.cs: Added IDisposable
19469
19470 2005-01-04  Peter Bartok <pbartok@novell.com>
19471
19472         * TextControl.cs: Switched Line, LineTag and Document classes to
19473           internal
19474
19475 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19476
19477         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19478         Simple mode, fixes, IntegralHeight, etc.
19479
19480 2005-01-04  Peter Bartok <pbartok@novell.com>
19481
19482         * TextBoxBase.cs: Using proper font variable now
19483
19484 2005-01-04  Peter Bartok <pbartok@novell.com>
19485
19486         * Form.cs (ShowDialog): Set parent to owner, if provided
19487         * GroupBox.cs: Removed unused vars
19488         * TextControl.cs:
19489           - Added GetHashCode() for Document and LineTag classes
19490           - Removed unused variables
19491           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19492             to allow translation between continuous char position and line/pos
19493         * CheckBox.cs: Removed vars that are provided by base class
19494         * RadioButton.cs: Removed vars that are provided by base class, added
19495           new keyword where required
19496         * LinkLabel.cs: Added new keyword where required
19497         * Control.cs (WndProc): Removed unused variable
19498         * TextBoxBase.cs:
19499           - Finished SelectionLength property
19500           - Implemented SelectionStart property
19501           - Implemented Text property
19502           - Removed unused vars
19503         * MessageBox.cs: Added new keyword where required
19504         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19505           WndProc signature
19506         * MenuAPI.cs: Added new keyword where required
19507         * ButtonBase.cs: Removed vars that are provided by base class, added
19508           new keyword where required
19509         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19510           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19511           into this)
19512         * Application.cs (Run): Now triggers the ThreadExit event
19513         * CommonDialog.cs: Added new keyword where required; now properly sets
19514           parent (owner) for dialog
19515         * XplatUIX11.cs: Commented out unused vars
19516         * StatusBar.cs: Fixed signature for Text property
19517         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19518
19519 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19520
19521         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19522         TrackBar.cs, MonthCalendar.cs: remove unused vars
19523
19524 2005-01-03  Jackson Harper  <jackson@ximian.com>
19525
19526         * ThemeWin32Classic.cs:
19527         * X11Keyboard.cs: Remove unused vars.
19528
19529 2005-01-03  Peter Bartok  <pbartok@novell.com>
19530
19531         * TextBox.cs:
19532           - set_Text: Tied into TextControl
19533           - set_TextAlignment: Tied into TextControl
19534         * TextControl.cs:
19535           - Added alignment properties and implemented alignment handling
19536             and drawing (still has a bug, not generating proper expose events)
19537           - Added new Line() constructor to allow passing the line alignment
19538           - Fixed selection setting, properly handling end<start now
19539           - Added aligment considerations to RecalculateDocument()
19540         * TextBoxBase.cs:
19541           - Now properly enforces control height for single line controls
19542           - Added support for CharacterCasing
19543           - Added IsInputKey override
19544           - Fixed Keys.Enter logic
19545           - Added SetBoundsCore override
19546           - Fixed mouse selection handling
19547
19548 2005-01-03  Jackson Harper  <jackson@ximian.com>
19549
19550         * TreeView.cs:
19551           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19552           - Checkboxes are always aligned to the bottom of the node,
19553           regardless of item height.
19554           - Use the node bounds to draw the text so we can center it when
19555           the item height is greater then the font height.
19556           - Node::Bounds are only the text part of the node.
19557         * TreeNode.cs: New method to combine collapsing and unchecking all
19558           nodes recursively.
19559
19560 2005-01-02  Jackson Harper  <jackson@ximian.com>
19561
19562         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19563         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19564         tree when a check is changed. TODO: Only refresh the checked node.
19565
19566 2004-12-30  Jackson Harper  <jackson@ximian.com>
19567
19568         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19569         * TreeNode.cs: When collapsing make sure to never collapse the
19570         root node.
19571
19572 2004-12-29  Jackson Harper  <jackson@ximian.com>
19573
19574         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19575         
19576 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19577
19578         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19579
19580 2004-12-28  Peter Bartok  <pbartok@novell.com>
19581
19582         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19583           not yet assigned
19584
19585 2004-12-28  Peter Bartok  <pbartok@novell.com>
19586
19587         * Control.cs (WndProc): Added WM_HELP handler, now generates
19588           HelpRequested event
19589         * Form.cs: Added HelpButton property and required support code
19590         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19591
19592 2004-12-28  Peter Bartok  <pbartok@novell.com>
19593
19594         * CommonDialog.cs:
19595           - Made DialogForm.owner variable internal
19596           - Added check to ensure owner form is set before setting
19597             owner properties in CreateParams
19598
19599 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19600
19601         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19602           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19603           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19604           system to support borderless/titleless windows (implements menus).
19605           Fix GetWindowPos.  Implement initial background color support for
19606           views.
19607
19608 2004-12-28  Peter Bartok  <pbartok@novell.com>
19609
19610         * Form.cs (get_CreateParams): Make sure we have an owner before using
19611           the owner variable. Implement proper default if no owner exists
19612
19613 2004-12-28  Peter Bartok  <pbartok@novell.com>
19614
19615         * In preparation for making Managed.Windows.Forms the default build target
19616           for System.Windows.Forms, the following stubbed files were added.
19617           Dialogs are currently being implemented by contributors and are only
19618           short-term place holders.
19619         * ColorDialog.cs: Initial check-in (minmal stub)
19620         * DataGrid.cs: Initial check-in (minimal stub)
19621         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19622         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19623         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19624         * FontDialog.cs: Initial check-in (minimal stub)
19625         * FileDialog.cs: Initial check-in (minimal stub)
19626         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19627         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19628         * OpenFileDialog: Initial check-in (minimal stub)
19629         * IComponentEditorPageSite.cs: Initial check-in
19630         * Splitter.cs: Initial check-in (for Jackson)
19631         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19632         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19633         * TextBox.cs: Initial check-in; still needs some wiring to
19634           TextControl backend
19635         * Form.cs: Implemented ControlBox property
19636         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19637         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19638         * TextControl.cs: Added selection functionality; added todo header
19639         * TextBoxBase.cs:
19640           - Implemented Lines property
19641           - Implemented TextHeight property
19642           - Implemented SelectedText property
19643           - Implemented SelectionLength property
19644           - Implemented SelectAll method
19645           - Implemented ToString method
19646           - Removed and cleaned up some debug code
19647           - Implemented (still buggy) mouse text selection
19648
19649 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19650
19651         * ComboBox.cs: Complete DropDownList implementation, fixes.
19652
19653 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19654
19655         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19656         * ComboBoxStyle.cs: ComboBoxStyle enum
19657         * ComboBox.cs: Initial work on ComboBox control
19658
19659 2004-12-21  Peter Bartok  <pbartok@novell.com>
19660
19661         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19662           forward so that anything that creates a window gets the default,
19663           also no longer uses Visible property in CreateParams to avoid
19664           walking up the parent chain and possibly get the wrong visible
19665           status. Fixed IsVisible to no longer walk up to the parent.
19666
19667 2004-12-21  Peter Bartok  <pbartok@novell.com>
19668
19669         * Form.cs (ShowDialog): Unset modality for the proper window
19670  
19671 2004-12-20  Peter Bartok  <pbartok@novell.com>
19672
19673         * CommonDialog.cs: Initial check-in
19674
19675 2004-12-20  Peter Bartok  <pbartok@novell.com>
19676
19677         * Control.cs (Visible): Now uses the parent window instead of the
19678           client area window for the property
19679
19680         * Form.cs
19681           - ShowDialog(): Now uses the proper window for modality
19682           - The default visibility state for the form parent is now false. This
19683             will prevent the user from seeing all the changes to the form and
19684             its controls before the application hits Application.Run()
19685           - Removed some stale commented out code
19686
19687         * NativeWindow.cs:
19688           - Added FindWindow() method to have a method to check for existence
19689             of a window handle
19690           - Added ability to override default exception handling (for example
19691             when debugging with VS.Net; to do this the ExternalExceptionHandler
19692             define must be set
19693           - Removed some useless debug output
19694
19695         * XplatUIX11.cs:
19696           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19697             not working as expected
19698           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19699             property to allow switching back to the modal window if focus is
19700             given to another one of our windows (Application Modal)
19701           - Now only sets override_redirect if we create a window
19702             without WS_CAPTION
19703           - Moved EventMask selection before mapping of newly created window
19704             so we can catch the map event as well
19705           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19706           - Added various Atom related DllImports
19707           - Implemented Exit() method
19708           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19709             in the CreateParams
19710
19711         * MessageBox.cs: Now properly deals with the FormParent window by
19712           providing an override the FormParent CreateParams property to
19713           set as POPUP instead of OVERLAPPED window.
19714
19715 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19716
19717         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19718         Minor code cleanup.
19719
19720 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19721         
19722         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19723
19724 2004-12-18  Peter Bartok  <pbartok@novell.com>
19725
19726         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19727           implementing SetModal() method
19728
19729 2004-12-18  Peter Bartok  <pbartok@novell.com>
19730
19731         * X11Structs.cs (XGCValues): Fixed type of function element
19732         * XplatUI.cs: Added ScrollWindow() method
19733         * XplatUIDriver.cs: Added ScrollWindow() abstract
19734         * XplatUIWin32.cs: Implemented ScrollWindow() method
19735         * XplatUIX11.cs: Implemented ScrollWindow() method
19736         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19737
19738 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19739
19740         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19741         Some more keyboard support (INCOMPLETE)
19742
19743 2004-12-17  Peter Bartok  <pbartok@novell.com>
19744
19745         * TextControl.cs:
19746         - Added color attribute to line tags.
19747         - Added color argument to all functions dealing with tags
19748         - Added color argument support to various functions
19749         - Fixed miss-calculation of baseline/shift in certain circumstances
19750
19751         * TextBoxBase.cs: Added new color option to test code
19752
19753 2004-12-17  Jackson Harper  <jackson@ximian.com>
19754
19755         * TreeNode.cs:
19756         * MonthCalendar.cs: Signature fixes
19757
19758 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19759
19760         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19761         keyboard event moved it.  Create a new graphics context for each paint resolves this
19762
19763 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19764
19765         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19766         Make caret exist and go blink blink.  Initial keyboard support.
19767         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19768         works.
19769
19770 2004-12-17  Jackson Harper  <jackson@ximian.com>
19771
19772         * XplatUIStructs.cs: Updated set of virtual keycodes.
19773         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19774
19775 2004-12-17  Jackson Harper  <jackson@ximian.com>
19776
19777         * XplatUIX11.cs: Prune old keyboard code.
19778
19779 2004-12-17  Jackson Harper  <jackson@ximian.com>
19780
19781         * XplatUIX11.cs: When generating mouse wparams get the modifier
19782         keys from the ModifierKeys property.
19783
19784 2004-12-17  Jackson Harper  <jackson@ximian.com>
19785
19786         * X11Keyboard.cs: Send up/down input when generating
19787         messages. Remove some unused vars.
19788
19789 2004-12-17  Jackson Harper  <jackson@ximian.com>
19790
19791         * TabControl.cs:
19792         * TreeView.cs: get rid of warnings.
19793
19794 2004-12-17  Jackson Harper  <jackson@ximian.com>
19795
19796         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19797
19798 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19799
19800         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19801           CheckedListBox.cs: Implementation
19802
19803 2004-12-17  Peter Bartok  <pbartok@novell.com>
19804
19805         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19806
19807 2004-12-16  Peter Bartok  <pbartok@novell.com>
19808
19809         * TextControl.cs:
19810           - InsertCharAtCaret(): Fixed start pos fixup
19811           - CaretLine_get: No longer derives the line from the tag, the tag
19812             could be stale if lines in the document have been added or deleted
19813           - RebalanceAfterDelete(): Fixed bug in balancing code
19814           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19815           - Line.Streamline(): Now can also elminate leading empty tags
19816           - DumpTree(): Added a few more tests and prevented exception on
19817             uninitialized data
19818           - Added Debug section for Combining lines
19819           - Delete(): Now copies all remaining properties of a line
19820           
19821         * TextBoxBase.cs:
19822           - Left mousebutton now sets the caret (and middle button still acts
19823             as formatting tester, which must go away soon)
19824           - Added Debug section for Deleting/Combining lines
19825           - Fixed calculations for UpdateView after Combining lines
19826
19827 2004-12-16  Peter Bartok  <pbartok@novell.com>
19828
19829         * TextControl.cs: Now properly aligns text on a baseline, using the
19830           new XplatUI.GetFontMetrics() method. Simplified several calculations
19831         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19832           defined
19833
19834 2004-12-16  Peter Bartok  <pbartok@novell.com>
19835
19836         * XplatUI.cs: Added GetFontMetrics() method
19837         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19838         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19839           into libgdiplus, our private GetFontMetrics function
19840         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19841         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19842
19843 2004-12-16  Jackson Harper  <jackson@ximain.com>
19844
19845         * XplatUIStruct.cs: Add enum for dead keys
19846         * X11Keyboard.cs: Map and unmap dead keys.
19847
19848 2004-12-16  Jackson Harper  <jackson@ximian.com>
19849
19850         * X11Keyboard.cs: Detect and use the num lock mask.
19851
19852 2004-12-16  Peter Bartok  <pbartok@novell.com>
19853
19854         * Control.cs (CreateGraphics): Added check to make sure the
19855           handle of the window exists before calling Graphics.FromHwnd()
19856
19857 2004-12-16  Peter Bartok  <pbartok@novell.com>
19858
19859         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19860           contains a lot of code that's not supposed to be there for the
19861           real thing, but required for developing/testing the textbox
19862           backend.
19863
19864 2004-12-16  Peter Bartok  <pbartok@novell.com>
19865
19866         * TextControl.cs:
19867         - Fixed Streamline method
19868         - Added FindTag method to Line
19869         - Added DumpTree method for debugging
19870         - Added DecrementLines() method for deleting lines
19871         - Fixed UpdateView to update the cursor to end-of-line on single-line
19872           updates
19873         - Added PositionCaret() method
19874         - Fixed MoveCaret(LineDown) to move into the last line, too
19875         - Added InsertChar overload
19876         - Fixed InsertChar tag offset calculations
19877         - Added DeleteChar() method
19878         - Added Combine() method for folding lines
19879         - Fixed Delete() method, no longer allocates wasted Line object and
19880           now copies all properties when swapping nodes
19881         - Delete() method now updates document line counter
19882
19883 2004-12-15  Jackson Harper  <jackson@ximian.com>
19884
19885         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19886         * X11Keyboard.cs: Expose the currently selected modifier keys
19887         through a property.
19888
19889 2004-12-15  Peter Bartok  <pbartok@novell.com>
19890
19891         * TextControl.cs: Initial check-in. Still incomplete
19892
19893 2004-12-15  Jackson Harper  <jackson@ximian.com>
19894
19895         * TreeNode.cs:
19896         * TreeView.cs: Fix build on csc (second time today ;-))
19897
19898 2004-12-15  Jackson Harper  <jackson@ximian.com>
19899
19900         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19901         is calculated and use this for click testing.
19902         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19903
19904 2004-12-15  Jackson Harper  <jackson@ximian.com>
19905
19906         * TreeView.cs: Pass the nodes image index to the image list when
19907         drawing that image.
19908
19909 2004-12-15  Jackson Harper  <jackson@ximian.com>
19910
19911         * X11Keyboard.cs: Set messages hwnd.
19912         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19913         post_message calls.
19914
19915 2004-12-15  Jackson Harper  <jackson@ximian.com>
19916
19917         * X11Keyboard.cs: Fix to compile with csc.
19918         
19919 2004-12-15  Jackson Harper  <jackson@ximian.com>
19920
19921         * X11Structs.cs: Add key mask values
19922         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19923         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19924         down/up foo into WM_CHAR foo
19925         * KeyboardLayouts.cs: Common keyboard layouts
19926         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19927         post messages into the main queue.
19928
19929 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19930
19931         * Button.cs: implement ProcessMnemonic
19932         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19933           brushes everytime
19934         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19935         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19936
19937 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19938         
19939         * MonthCalendar.cs: Implemented click-hold for next/previous month
19940           and date selection
19941           
19942 2004-12-11  Peter Bartok  <pbartok@novell.com>
19943
19944         * X11Structs.cs:
19945           - Added XKeyboardState (moved from XplatUIX11.cs)
19946           - Added XCreateGC related enums and structures
19947           - Added GXFunction for XSetFunction
19948
19949         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19950
19951         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19952           CaretVisible() calls
19953
19954         * ToolTip.cs: Added code to prevent stealing focus from app windows
19955
19956         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19957           DestroyCaret, SetCaretPos and CaretVisible)
19958
19959         * XplatUIX11.cs:
19960           - Added implementation for caret functions
19961           - Moved hover variables into a struct, to make it a bit easier
19962             on the eyes and to debug
19963           - Removed XKeyboardState (moved to XplatUIX11.cs)
19964           - Moved Keyboard properties into the properties region
19965
19966         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19967           call to get a graphics context for our control
19968
19969         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19970
19971         * TreeView.cs: Fixed bug. No matter what color was set it would always
19972           return SystemColors.Window
19973
19974         * XplatUIWin32.cs: Implemented caret overrides
19975
19976 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19977
19978         * ListBox.cs: fire events, implement missing methods and properties,
19979         sorting.
19980
19981 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19982
19983         * MonthCalendar.cs: invalidation bug fixing
19984         * ThemeWin32Classic.cs: paint fixing
19985
19986 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19987
19988         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19989         prepare the CGContextRef there now.
19990
19991 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19992
19993         * MonthCalendar.cs:
19994           - optimisationL only invalidate areas that have changed
19995         * ThemeWin32Classic.cs:
19996           - only paint parts that intersect with clip_area
19997
19998 2004-12-09  Peter Bartok  <pbartok@novell.com>
19999
20000         * Application.cs: Undid changes from r37004 which cause problems
20001         on X11
20002
20003 2004-12-09  Ravindra  <rkumar@novell.com>
20004
20005         * ToolBar.cs: Added support for displaying ContextMenu
20006         attached to a button on ToolBar.
20007         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
20008         property.
20009
20010 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20011
20012         * Label.cs: autosize works in text change and removes unnecessary
20013         invalidate
20014
20015 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20016
20017         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
20018         remove warnings
20019
20020 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
20021
20022         * XplatUIOSX.cs: Added mouse move/click/grab support
20023         Remove some debugging WriteLines not needed anymore.
20024         Add window resizing/positioning.
20025         Fix visibility on reparenting.
20026
20027 2004-12-08  Peter Bartok  <pbartok@novell.com>
20028
20029         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
20030
20031 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
20032
20033         * XplatUIOSX.cs: Initial checkin
20034         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
20035
20036 2004-12-03  Ravindra <rkumar@novell.com>
20037
20038         * ListView.cs: Added some keybindings and fixed scrolling.
20039         ScrollBars listen to ValueChanged event instead of Scroll
20040         Event. This would let us take care of all changes being
20041         done in the scrollbars' values programmatically or manually.
20042         * ListView.cs (CanMultiselect): Added a check for shift key.
20043         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20044         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20045         of ListViewSubItemCollection as well.
20046
20047 2004-12-06  Peter Bartok <pbartok@novell.com>
20048
20049         * Control.cs (Parent): Added check and exception to prevent
20050         circular parenting
20051
20052 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20053
20054         * ListBox.cs: implemented clipping, selection single and multiple,
20055         bug fixing
20056
20057 2004-12-03  Ravindra <rkumar@novell.com>
20058
20059         * ListView.cs (ListView_KeyDown):
20060         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20061         when CTRL key is pressed.
20062         * ListViewItem.cs (Selected): Fixed setting the property.
20063
20064 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20065
20066         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20067
20068         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20069         MinimizeBox, ShowInTaskbar, TopMost properties.
20070
20071         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20072         will be implemented).
20073
20074 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20075
20076         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20077
20078         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20079         tests.
20080         
20081         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20082         
20083         * TreeView.cs: BackColor is Colors.Window.
20084
20085 2004-12-01  Jackson Harper  <jackson@ximian.com>
20086
20087         * TreeView.cs: When resizing the tree if the user is making it
20088         smaller we don't get expose events, so we need to handle adding
20089         the horizontal scrollbar in the size changed handler as well as
20090         the expose handler.
20091
20092 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20093
20094         * DrawItemState.cs: fixes wrong enum values
20095
20096 2004-12-01  Jackson Harper  <jackson@ximian.com>
20097
20098         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20099
20100 2004-12-01  Jackson Harper  <jackson@ximian.com>
20101
20102         * NodeLabelEditEventArgs.cs:
20103         * NodeLabelEditEventHandler.cs:
20104         * OpenTreeNodeEnumerator.cs:
20105         * TreeNode.cs:
20106         * TreeNodeCollection.cs:
20107         * TreeView.cs:
20108         * TreeViewAction.cs:
20109         * TreeViewCancelEventArgs.cs:
20110         * TreeViewCancelEventHandler.cs:
20111         * TreeViewEventArgs.cs:
20112         * TreeViewEventHandler.cs: Initial implementation.
20113
20114 2004-12-01  Ravindra <rkumar@novell.com>
20115
20116         * ListView.cs (CalculateListView): Fixed scrolling related
20117         calculations. Also, removed some debug statements from other
20118         places.
20119         * ListViewItem.cs: Changed access to 'selected' instance variable
20120         from private to internal.
20121         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20122
20123 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20124
20125         * ThemeWin32Classic.cs: remove cache of brush and pens for
20126         specific controls and use the global system, fixes scrollbutton
20127         bugs (for small sizes, disabled, etc)
20128         
20129         * ScrollBar.cs: does not show the thumb for very small controls
20130         (as MS) and allow smaller buttons that the regular size
20131
20132 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20133
20134         * UpDownBase.cs: Add abstract methods for the interface.
20135         Add new virtual methods (need to be hooked up to TextEntry when it
20136         exists).
20137         Add override methods for most features.
20138         Computes the size, forces the height of the text entry.
20139
20140         * NumericUpDown.cs: Put here the current testing code.
20141
20142         * Set eol-style property on all files that do not have mixed line
20143         endings, to minimize the future problems.  There are still a few
20144         files with mixed endings, and someone should choose whether they
20145         want to move it or not.
20146
20147 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20148
20149         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20150         System.Colors
20151         
20152 2004-11-30  Ravindra <rkumar@novell.com>
20153
20154         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20155         drawing and replaced use of SystemColors by theme colors.
20156         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20157         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20158         same ListViewItem is being added more than once.
20159
20160 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20161
20162         * MonthCalendar.cs:
20163           - ControlStyles love to make the control not flicker
20164           
20165 2004-11-30  Peter Bartok  <pbartok@novell.com>
20166
20167         * CharacterCasing.cs: Added
20168
20169 2004-11-29  Peter Bartok  <pbartok@novell.com>
20170
20171         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20172           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20173           I am removing these files as they conflict with already completed
20174           work. While it is fantastic to get contributions to MWF, I
20175           respectfully ask that everyone please coordinate their contributions
20176           through mono-winforms-list or #mono-winforms at this time. We're
20177           explicitly avoiding stubbing and don't want controls that don't have
20178           their basic functionality implemented in svn. Please also see
20179           http://www.mono-project.com/contributing/winforms.html
20180
20181
20182 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20183
20184         * Application.cs (ModalRun): Don't hang after exit.
20185
20186         * Theme.cs: New TreeViewDefaultSize property.
20187
20188         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20189         with less hardcoded SystemColors constant.
20190         Implemented TreeViewDefaultSize.
20191
20192         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20193         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20194
20195
20196 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20197
20198         * MonthCalendar.cs:
20199           - Fix NextMonthDate and PrevMonthDate click moving calendar
20200
20201 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20202
20203         * MonthCalendar.cs:
20204           - Fix usage of ScrollChange Property when scrolling months
20205
20206 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20207
20208         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20209          - Fixes menu destroying
20210          - Support adding and removing items on already created menus
20211
20212 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20213
20214         * MonthCalendar.cs:
20215           - Re-worked all bolded dates handling to match win32
20216         * ThemeWin32Classic.cs:
20217           - Fixed rendering with bolded dates
20218
20219 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20220
20221         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20222         - Horizontal scroolbar
20223         - Multicolumn
20224         - Fixes
20225
20226
20227 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20228
20229         * MonthCalendar.cs:
20230           - Fix Usage of MaxSelectionCount from SelectionRange
20231           - Fixed Shift + Cursor Selection
20232           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20233           - Fixed normal cursor selection to be compat with win32
20234           - Fixed Shift + Mouse Click selection
20235
20236 2004-11-24  Peter Bartok <pbartok@novell.com>
20237
20238         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20239         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20240         * XplatUIX11.cs:
20241           - CreatedKeyBoardMsg now updates keystate with Alt key
20242           - Added workaround for timer crash to CheckTimers, Jackson will
20243             develop a proper fix and check in later
20244           - Implemented DispatchMessage
20245           - Removed calling the native window proc from GetMessage (call
20246             now moved to DispatchMessage)
20247
20248         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20249           the keydata (Fixes bug #69831)
20250
20251         * XplatUIWin32.cs:
20252           - (DispatchMessage): Switched to return IntPtr
20253           - Added DllImport for SetFocus
20254
20255 2004-11-24  Ravindra <rkumar@novell.com>
20256
20257         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20258         background drawing.
20259         * ListViewItem.cs: Fixed various properties, calculations
20260         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20261         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20262         and some internal properties. Fixed MouseDown handler and Paint
20263         method.
20264
20265 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20266
20267         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20268
20269 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20270
20271         * ContainerControl.cs: correct accidental check in of local changes
20272
20273 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20274
20275         * ThemeWin32Classic.cs:
20276                 - Fixed Drawing Last month in grid (sometimes not showing)
20277         * MonthCalendar.cs:
20278                 - Fixed title width calculation bug (makeing title small)
20279
20280 2004-11-23  Peter Bartok <pbartok@novell.com>
20281
20282         * XplatUIX11.cs:
20283           - Added generation of WM_MOUSEHOVER event
20284           - Added missing assignment of async_method atom
20285           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20286
20287 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20288
20289         * ThemeWin32Classic.cs:
20290                 - Fixed Drawing of today circle when showtodaycircle not set
20291                 - fixed drawing of first and last month in the grid (gay dates)
20292         * MonthCalendar.cs:
20293                 - Fixed Drawing of today circle
20294                 - Fixed drawing of grady dates
20295                 - Fixed HitTest for today link when ShowToday set to false
20296                 - Fixed DefaultSize to obey ShowToday
20297
20298 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20299
20300         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20301         * System.Windows.Forms/Theme.cs
20302         * MonthCalendar.cs: added for MonthCalendar
20303         * SelectionRange.cs: added for MonthCalendar
20304         * Day.cs: added for MonthCalendar: added for MonthCalendar
20305         * DateRangeEventArgs.cs: added for MonthCalendar
20306         * DateRangeEventHandler.cs: added for MonthCalendar
20307
20308 2004-11-22  Ravindra <rkumar@novell.com>
20309
20310         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20311         property.
20312
20313 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20314
20315         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20316         event handler.
20317         
20318         * NumericUpDown.cs: Added new implementation.
20319         * UpDownBase.cs: Added new implementation.
20320
20321         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20322         implementations.
20323         
20324         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20325         implementations.
20326
20327         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20328         methods.
20329
20330 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20331
20332         * Timer.cs  (Dispose): Should call the base dispose when
20333         overriding.
20334
20335 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20336
20337         * ScrollBar.cs: updates thumb position when max, min or increment
20338         is changed
20339
20340 2004-11-21  Ravindra <rkumar@novell.com>
20341
20342         * ListView.cs: Implemented item selection, activation and
20343         column header style. Fixed properties to do a redraw, if
20344         required. Added support for MouseHover, DoubleClick, KeyDown
20345         and KeyUp event handling and some minor fixes.
20346         * ListViewItem.cs: Fixed constructor.
20347         * ThemeWin32Classic.cs: Improved drawing for ListView.
20348
20349 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20350
20351         * ThemeWin32Classic.cs: initial listbox drawing code
20352         * DrawMode.cs: new enumerator
20353         * ListControl.cs: stubbed class
20354         * ListBox.cs: initial implementation
20355         * Theme.cs: new methods definitions
20356         * SelectionMode.cs: new enumerator
20357
20358 2004-11-17  Peter Bartok  <pbartok@novell.com>
20359
20360         * XplatUIWin32.cs: Added double-click events to the class style
20361         * Control.cs (WndProc):
20362           - Added handling of click-count to MouseDown/ MouseUp events.
20363           - Added handling of middle and right mouse buttons
20364           - Removed old debug code
20365
20366 2004-11-17  Jackson Harper  <jackson@ximian.com>
20367
20368         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20369
20370 2004-11-17  Ravindra <rkumar@novell.com>
20371
20372         * ListView.cs: Added event handling for MouseMove/Up/Down.
20373         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20374         * ThemeWin32Classic.cs: We need to clear the graphics context and
20375         draw column header in a proper state.
20376
20377
20378 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20379
20380         *  Menu.cs: fixes signature
20381
20382 2004-11-16  Peter Bartok  <pbartok@novell.com>
20383
20384         * XplatUIX11.cs (GetMessage): Implemented generation of
20385           double click mouse messages
20386
20387 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20388
20389         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20390         not by menu
20391
20392 2004-11-11  Peter Bartok  <pbartok@novell.com>
20393
20394         * HandleData.cs: Added Visible property
20395         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20396           HandleData
20397         * XplatUIX11.cs: Removed old debug leftovers
20398         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20399         * Control.cs (WndProc): Removed old debug leftovers,
20400           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20401           needed WM_SIZE handling
20402
20403 2004-11-11  Jackson Harper  <jackson@ximian.com>
20404
20405         * OwnerDrawPropertyBag.cs:
20406         * TreeViewImageIndexConverter.cs: Initial implementation
20407
20408 2004-11-10  Jackson Harper  <jackson@ximian.com>
20409
20410         * ThemeWin32Classic.cs:
20411         * TabControl.cs: instead of moving tabs by the slider pos just
20412         start drawing at the tab that is offset by the slider. This way
20413         scrolling always moves by exactly one tab.
20414
20415 2004-11-10  Jackson Harper  <jackson@ximian.com>
20416
20417         * TabControl.cs: You can only scroll left when the slider has
20418         already ben moved right.
20419         
20420 2004-11-10  Jackson Harper  <jackson@ximian.com>
20421
20422         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20423         the clip area.
20424         
20425 2004-11-10  Jackson Harper  <jackson@ximian.com>
20426
20427         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20428         clip area.
20429         
20430 2004-11-09  Jackson Harper  <jackson@ximian.com>
20431
20432         * TabControl.cs (CalcXPos): New helper method so we can determine
20433         the proper place to start drawing vertical tabs.
20434         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20435         
20436 2004-11-09  Jackson Harper  <jackson@ximian.com>
20437
20438         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20439         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20440         and Bottom, left and right are illegal values for this and
20441         multiline is enabled when the alignment is set to left or right.
20442         (DrawTab): Each alignment block should draw the text itself now
20443         because Left requires special love. Also add rendering for Left
20444         aligned tabs.
20445         
20446 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20447
20448         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20449         does not destroy the windows, removes debugging messages
20450
20451 2004-11-09  jba  <jba-mono@optusnet.com.au>
20452
20453         * ThemeWin32Classic.cs
20454         (DrawButtonBase): Fix verticle text rect clipping in windows
20455         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20456         rendering and incorrect text rect clipping
20457         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20458         rendering and incorrect text rect clipping
20459         
20460 2004-11-08  Jackson Harper  <jackson@ximian.com>
20461
20462         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20463         bottom when they are bottom aligned so the bottoms of the tabs get
20464         displayed.
20465         * TabControl.cs (DropRow): Move rows up instead of down when the
20466         tab control is bottom aligned.
20467
20468 2004-11-08 13:59  pbartok
20469
20470         * XplatUIX11.cs:
20471           - Added handling for various window styles
20472           - Added handling for popup windows
20473           - Added SetTopmost handling
20474
20475 2004-11-08 13:55  pbartok
20476
20477         * XplatUIWin32.cs:
20478           - Added argument to SetTopmost method
20479           - Fixed broken ClientToScreen function
20480
20481 2004-11-08 13:53  pbartok
20482
20483         * XplatUIStructs.cs:
20484           - Added missing WS_EX styles
20485
20486 2004-11-08 13:53  pbartok
20487
20488         * XplatUI.cs, XplatUIDriver.cs:
20489           - Added argument to SetTopmost
20490
20491 2004-11-08 13:52  pbartok
20492
20493         * X11Structs.cs:
20494           - Added XSetWindowAttributes structure
20495           - Improved XWindowAttributes structure
20496           - Added SetWindowValuemask enum
20497           - Added window creation arguments enum
20498           - Added gravity enum
20499           - Added Motif hints structure
20500           - Added various Motif flags and enums
20501           - Added PropertyMode enum for property functions
20502
20503 2004-11-08 13:50  pbartok
20504
20505         * Form.cs:
20506           - Fixed arguments for updated SetTopmost method
20507
20508 2004-11-08 13:49  pbartok
20509
20510         * ToolTip.cs:
20511           - Fixed arguments for updated SetTopmost function
20512           - Fixed usage of PointToClient
20513
20514 2004-11-08 13:44  pbartok
20515
20516         * MenuAPI.cs:
20517           - Added Clipping of children and siblings
20518
20519 2004-11-08 13:41  pbartok
20520
20521         * MainMenu.cs:
20522           - Removed SetMenuBarWindow call. We do this in Form.cs
20523
20524 2004-11-08 13:40  jackson
20525
20526         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20527           scrolling jimmi in the correct location with bottom aligned tabs
20528
20529 2004-11-08 13:36  pbartok
20530
20531         * ContainerControl.cs:
20532           - Implemented BindingContext
20533           - Implemented ParentForm
20534
20535 2004-11-08 12:46  jackson
20536
20537         * TabControl.cs: Put bottom rendered tabs in the right location
20538
20539 2004-11-08 07:15  jordi
20540
20541         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20542           removes dead code
20543
20544 2004-11-05 17:30  jackson
20545
20546         * TabControl.cs: When selected tabs are expanded make sure they
20547           don't go beyond the edges of the tab control
20548
20549 2004-11-05 14:57  jackson
20550
20551         * TabControl.cs: Reset show_slider so if the control is resized to
20552           a size where it is no longer needed it's not displayed anymore
20553
20554 2004-11-05 13:16  jackson
20555
20556         * TabControl.cs: Make tab pages non visible when added to the
20557           control
20558
20559 2004-11-05 12:42  jackson
20560
20561         * TabControl.cs: Implement SizeMode.FillToRight
20562
20563 2004-11-05 12:16  jackson
20564
20565         * Control.cs: Do not call CreateHandle if the handle is already
20566           created
20567
20568 2004-11-05 11:46  jackson
20569
20570         * TabControl.cs: Remove superflous call to CalcTabRows
20571
20572 2004-11-05 09:07  jackson
20573
20574         * XplatUIX11.cs: Update for Mono.Posix changes
20575
20576 2004-11-05 07:00  ravindra
20577
20578         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20579           scrolling.
20580
20581 2004-11-04 22:47  jba
20582
20583         * ThemeWin32Classic.cs:
20584           - Fix Button rendering for FlatStyle = Flat or Popup
20585           - Fix RadioButton and CheckBox rendering when Appearance = Button
20586             (normal and flatstyle).
20587           - Correct outer rectangle color when drawing focus rectangle
20588           - Adjust button bounds to be 1 px smaller when focused
20589           - Make button not draw sunken 3d border when pushed (windows compat)
20590           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20591           - Offset the text in RadioButton and Checkbox when being rendered as
20592           a button.
20593           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20594           radiobuttons
20595           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20596           - Fixed disabled text rendering for normally rendered radiobuttons
20597
20598 2004-11-04 10:26  jackson
20599
20600         * TabControl.cs: Recalculate tab rows when resizing
20601
20602 2004-11-04 07:47  jordi
20603
20604         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20605           collection completion, drawing issues, missing features
20606
20607 2004-11-04 05:03  ravindra
20608
20609         * ScrollBar.cs:
20610                 - We need to recalculate the Thumb area when
20611                 LargeChange/maximum/minimum values are changed.
20612           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20613                 than minimum. This is required to handle the case if large_change is
20614                 more than max, and use LargeChange property instead of large_change
20615                 variable.
20616           - We return max+1 when large_change is more than max, like MS does.
20617
20618 2004-11-04 04:29  ravindra
20619
20620         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20621                 - Changed default value signatures (prefixed all with ListView).
20622                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20623                 ListView.
20624           - Fixed calculations for ListViewItem and implemented Clone()
20625           method.
20626
20627 2004-11-04 04:26  ravindra
20628
20629         * Theme.cs, ThemeWin32Classic.cs:
20630                 - Changed default ListView values signatures (prefixed all with
20631                 ListView).
20632           - Fixed default size values for VScrollBar and HScrollBar.
20633                 - Fixed DrawListViewItem method.
20634
20635 2004-11-04 04:05  ravindra
20636
20637         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20638
20639 2004-11-04 04:04  ravindra
20640
20641         * ImageList.cs: Implemented the missing overload for Draw method.
20642
20643 2004-11-03 19:29  jackson
20644
20645         * TabControl.cs: Handle dropping rows on selection properly
20646
20647 2004-11-03 11:59  jackson
20648
20649         * TabControl.cs: remove debug code
20650
20651 2004-11-03 11:52  jackson
20652
20653         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20654           the scrolly widgerywoo
20655
20656 2004-11-02 13:52  jackson
20657
20658         * TabControl.cs: Resize the tab pages and tabs when the tab control
20659           is resized
20660
20661 2004-11-02 13:40  jackson
20662
20663         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20664           selected tab to the bottom
20665
20666 2004-11-02 13:39  jackson
20667
20668         * TabPage.cs: Store the tab pages row
20669
20670 2004-11-02 12:33  jordi
20671
20672         * MenuItem.cs: fixes handle creation
20673
20674 2004-11-02 11:42  jackson
20675
20676         * TabControl.cs: signature fix
20677
20678 2004-11-02 08:56  jackson
20679
20680         * TabControl.cs: Calculate whether the tab is on an edge properly.
20681           Remove top secret debugging code
20682
20683 2004-11-01 19:57  jackson
20684
20685         * TabControl.cs: Add click handling, and proper sizing
20686
20687 2004-11-01 19:47  jackson
20688
20689         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20690           tab controls
20691
20692 2004-11-01 19:39  jackson
20693
20694         * TabPage.cs: add internal property to store the bounds of a tab
20695           page
20696
20697 2004-10-30 04:23  ravindra
20698
20699         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20700           values.
20701
20702 2004-10-30 04:21  ravindra
20703
20704         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20705           fixed calculations.
20706
20707 2004-10-30 03:06  pbartok
20708
20709         * XplatUIX11.cs:
20710           - Removed extension of DllImported libs
20711
20712 2004-10-29 09:55  jordi
20713
20714         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20715           navigation, itemcollection completion, menu fixes
20716
20717 2004-10-27 22:58  pbartok
20718
20719         * XplatUIX11.cs:
20720           - Now throws a nice error message when no X display could be opened
20721
20722 2004-10-26 13:51  jordi
20723
20724         * ListView.cs: removes warning
20725
20726 2004-10-26 03:55  ravindra
20727
20728         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20729           ThemeWin32Classic.cs: Some formatting for my last checkins.
20730
20731 2004-10-26 03:36  ravindra
20732
20733         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20734           control and default values.
20735
20736 2004-10-26 03:35  ravindra
20737
20738         * Theme.cs: Added some default values for ListView control.
20739
20740 2004-10-26 03:33  ravindra
20741
20742         * ToolBar.cs: ToolBar should use the user specified button size, if
20743           there is any. Added a size_specified flag for the same.
20744
20745 2004-10-26 03:33  ravindra
20746
20747         * ColumnHeader.cs: Added some internal members and calculations for
20748           ColumnHeader.
20749
20750 2004-10-26 03:32  ravindra
20751
20752         * ListViewItem.cs: Calculations for ListViewItem.
20753
20754 2004-10-26 03:31  ravindra
20755
20756         * ListView.cs: Added some internal members and calculations for
20757           ListView.
20758
20759 2004-10-22 13:31  jordi
20760
20761         * MenuAPI.cs: speedup menus drawing
20762
20763 2004-10-22 13:16  jackson
20764
20765         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20766           expose event
20767
20768 2004-10-22 11:49  jackson
20769
20770         * Control.cs: oops
20771
20772 2004-10-22 11:41  jackson
20773
20774         * Control.cs: Check to see if the window should have its background
20775           repainted by X when drawing.
20776
20777 2004-10-22 11:31  jackson
20778
20779         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20780           clear is true, this way we do not get flicker from X repainting the
20781           background
20782
20783 2004-10-22 11:28  jackson
20784
20785         * XEventQueue.cs: Queue properly
20786
20787 2004-10-21 09:38  jackson
20788
20789         * XEventQueue.cs: Fix access modifier
20790
20791 2004-10-21 09:36  jackson
20792
20793         * XEventQueue.cs: Don't loose messages
20794
20795 2004-10-21 09:22  jackson
20796
20797         * XEventQueue.cs: Don't loose messages
20798
20799 2004-10-20 04:15  jordi
20800
20801         * BootMode.cs: enum need it by SystemInfo
20802
20803 2004-10-19 21:58  pbartok
20804
20805         * XplatUIWin32.cs:
20806           - Small sanity check
20807
20808 2004-10-19 21:56  pbartok
20809
20810         * Form.cs:
20811           - Added private FormParentWindow class which acts as the container
20812             for our form and as the non-client area where menus are drawn
20813           - Added/Moved required tie-ins to Jordi's menus
20814           - Fixed/Implemented the FormStartPosition functionality
20815
20816 2004-10-19 21:52  pbartok
20817
20818         * Control.cs:
20819           - Removed unneeded locals
20820           - Added code to all size and location properties to understand and
20821             deal with the parent container of Form
20822
20823 2004-10-19 21:33  pbartok
20824
20825         * Application.cs:
20826           - Fixed to deal with new Form subclasses for menus
20827
20828 2004-10-19 17:48  jackson
20829
20830         * XEventQueue.cs: commit correct version of file
20831
20832 2004-10-19 16:50  jackson
20833
20834         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20835
20836 2004-10-19 16:15  jordi
20837
20838         * MenuAPI.cs: MenuBarCalcSize returns the height
20839
20840 2004-10-19 08:31  pbartok
20841
20842         * Control.cs:
20843           - Added missing call to PreProcessMessage before calling OnXXXKey
20844           methods
20845
20846 2004-10-19 00:04  ravindra
20847
20848         * ToolTip.cs: Fixed constructor.
20849
20850 2004-10-18 09:31  jordi
20851
20852         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20853
20854 2004-10-18 09:26  jordi
20855
20856         * MenuItem.cs: fixes MenuItem class signature
20857
20858 2004-10-18 08:56  jordi
20859
20860         * MenuAPI.cs: prevents windows from showing in the taskbar
20861
20862 2004-10-18 00:28  ravindra
20863
20864         * ToolTip.cs: Suppressed a warning message.
20865
20866 2004-10-18 00:27  ravindra
20867
20868         * Control.cs: Default value of visible property must be true.
20869
20870 2004-10-17 23:19  pbartok
20871
20872         * ToolTip.cs:
20873           - Complete implementation
20874
20875 2004-10-17 23:19  pbartok
20876
20877         * XplatUIX11.cs:
20878           - Added EnableWindow method
20879           - Added SetModal stub
20880           - Added generation of WM_ACTIVATE message (still needs testing)
20881           - Added SetTopMost stub
20882           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20883
20884 2004-10-17 23:17  pbartok
20885
20886         * XplatUIWin32.cs:
20887           - Removed VirtualKeys to XplatUIStructs
20888           - Implemented SetTopMost method
20889           - Implemented EnableWindow method
20890           - Bugfix in ScreenToClient()
20891           - Bugfixes in ClientToScreen()
20892
20893 2004-10-17 22:51  pbartok
20894
20895         * XplatUIStructs.cs:
20896           - Added WS_EX styles to WindowStyles enumeration
20897
20898 2004-10-17 22:50  pbartok
20899
20900         * XplatUI.cs, XplatUIDriver.cs:
20901           - Added method for enabling/disabling windows
20902           - Added method for setting window modality
20903           - Added method for setting topmost window
20904
20905 2004-10-17 22:49  pbartok
20906
20907         * ThemeWin32Classic.cs:
20908           - Added ToolTip drawing code
20909
20910 2004-10-17 22:49  pbartok
20911
20912         * Theme.cs:
20913           - Added ToolTip abstracts
20914
20915 2004-10-17 22:47  pbartok
20916
20917         * Form.cs:
20918           - Fixed Form.ControlCollection to handle owner relations
20919           - Added Owner/OwnedForms handling
20920           - Implemented Z-Ordering for owned forms
20921           - Removed unneeded private overload of ShowDialog
20922           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20923             so I hope)
20924           - Fixed Close(), had wrong default
20925           - Added firing of OnLoad event
20926           - Added some commented out debug code for Ownership handling
20927
20928 2004-10-17 22:16  pbartok
20929
20930         * Control.cs:
20931           - Fixed/implemented flat list of controls
20932
20933 2004-10-17 22:14  pbartok
20934
20935         * Application.cs:
20936           - Added code to simulate modal dialogs on Win32
20937
20938 2004-10-17 16:11  jordi
20939
20940         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20941           mouse event
20942
20943 2004-10-17 13:39  jordi
20944
20945         * MenuAPI.cs: menu drawing fixes
20946
20947 2004-10-15 09:10  ravindra
20948
20949         * StructFormat.cs: General Enum.
20950
20951 2004-10-15 09:09  ravindra
20952
20953         * SizeGripStyle.cs: Enum for Form.
20954
20955 2004-10-15 09:08  ravindra
20956
20957         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20958           in Theme for ListView.
20959
20960 2004-10-15 09:06  ravindra
20961
20962         * ColumnHeader.cs: Flushing some formatting changes.
20963
20964 2004-10-15 09:05  ravindra
20965
20966         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20967           style.
20968
20969 2004-10-15 09:03  ravindra
20970
20971         * ListView.cs: Implemented Paint method and fixed coding style.
20972
20973 2004-10-15 07:34  jordi
20974
20975         * MenuAPI.cs: fix for X11
20976
20977 2004-10-15 07:32  ravindra
20978
20979         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20980                 - Renamed Paint() method to Draw() for clarity. Also, moved
20981                 DrawImage() to OnPaint().
20982
20983 2004-10-15 07:25  ravindra
20984
20985         * CheckBox.cs, RadioButton.cs:
20986                 - Removed Redraw (), we get it from ButtonBase.
20987                 - Implemented Paint (), to do class specific painting.
20988
20989 2004-10-15 07:16  ravindra
20990
20991         * ButtonBase.cs:
20992                 - Redraw () is not virtual now.
20993                 - Added an internal virtual method Paint (), so that
20994                 derived classes can do their painting on their own.
20995                 - Modified OnPaint () to call Paint ().
20996
20997 2004-10-15 06:43  jordi
20998
20999         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
21000           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
21001
21002 2004-10-15 00:30  ravindra
21003
21004         * MessageBox.cs:
21005                 - MessageBox on windows does not have min/max buttons.
21006                 This change in CreateParams fixes this on Windows. We
21007                 still need to implement this windowstyle behavior in
21008                 our X11 driver.
21009
21010 2004-10-14 05:14  ravindra
21011
21012         * ToolBar.cs:
21013                 - Changed Redraw () to do a Refresh () always.
21014                 - Fixed the MouseMove event handling when mouse is pressed,
21015                 ie drag event handling.
21016                 - Replaced the usage of ToolBarButton.Pressed property to
21017                 ToolBarButton.pressed internal variable.
21018
21019 2004-10-14 05:10  ravindra
21020
21021         * ToolBarButton.cs:
21022                 - Added an internal member 'inside' to handle mouse move
21023                 with mouse pressed ie mouse drag event.
21024                 - Changed 'Pressed' property to return true only when
21025                 'inside' and 'pressed' are both true.
21026                 - Some coding style love.
21027
21028 2004-10-14 00:17  ravindra
21029
21030         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
21031           public method.
21032
21033 2004-10-14 00:15  ravindra
21034
21035         * ButtonBase.cs: Redraw () related improvements.
21036
21037 2004-10-14 00:14  ravindra
21038
21039         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21040           removed unnecessary calls to Button.Show () method.
21041
21042 2004-10-13 17:50  pbartok
21043
21044         * XplatUIX11.cs:
21045           - Formatting fix
21046           - Removed destroying of window until we solve the problem of X
21047             destroying the window before us on shutdown
21048
21049 2004-10-13 16:32  pbartok
21050
21051         * ButtonBase.cs:
21052           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21053
21054 2004-10-13 14:18  pbartok
21055
21056         * XplatUIX11.cs:
21057           - Added code to destroy the X window
21058
21059 2004-10-13 14:18  pbartok
21060
21061         * XplatUIWin32.cs:
21062           - Added code to destroy a window
21063
21064 2004-10-13 14:12  pbartok
21065
21066         * ButtonBase.cs:
21067           - Added the Redraw on Resize that got dropped in the last rev
21068
21069 2004-10-13 09:06  pbartok
21070
21071         * ThemeWin32Classic.cs:
21072           - Path from John BouAntoun:
21073             * Fix check rendering (centre correctly for normal style, offset
21074               correctly for FlatStyle).
21075             * Fix border color usage (use backcolor) for FlatStyle.Popup
21076             * Use checkbox.Capture instead of checkbox.is_pressed when
21077               rendering flatstyle states.
21078
21079 2004-10-12 21:48  pbartok
21080
21081         * ThemeWin32Classic.cs:
21082           - Removed all occurences of SystemColors and replaced them with the
21083             matching theme color
21084
21085 2004-10-12 21:41  pbartok
21086
21087         * ThemeWin32Classic.cs:
21088           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21089             him using the function for flatstyle drawing
21090           - Changed functions to use the new version of CPDrawBorder3D
21091
21092 2004-10-12 21:15  pbartok
21093
21094         * ControlPaint.cs:
21095           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21096             match MS documentation. They need to return defined colors if the
21097             passed color matches the configured control color. Thanks to John
21098             BouAntoun for pointing this out.
21099
21100 2004-10-12 20:57  pbartok
21101
21102         * Control.cs:
21103           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21104             color is changed
21105
21106 2004-10-12 20:46  pbartok
21107
21108         * CheckBox.cs:
21109           - Fix from John BouAntoun: Now properly sets the Appearance property
21110
21111 2004-10-12 20:45  pbartok
21112
21113         * ThemeWin32Classic.cs:
21114           - Fixes from John BouAntoun: now handles forecolors and backcolors
21115             for flatstyle rendered controls much better; It also fixes normal
21116             checkbox rendering when pushed or disabled.
21117
21118 2004-10-08 02:50  jordi
21119
21120         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21121           work
21122
21123 2004-10-07 08:56  jordi
21124
21125         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21126
21127 2004-10-06 03:59  jordi
21128
21129         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21130           XplatUIWin32.cs: removes warnings from compilation
21131
21132 2004-10-05 12:23  jackson
21133
21134         * RadioButton.cs: Fix ctor
21135
21136 2004-10-05 11:10  pbartok
21137
21138         * MessageBox.cs:
21139           - Partial implementation by Benjamin Dasnois
21140
21141 2004-10-05 10:15  jackson
21142
21143         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21144           by John BouAntoun
21145
21146 2004-10-05 03:07  ravindra
21147
21148         * ToolBar.cs:
21149                 - Removed a private method, Draw ().
21150                 - Fixed the ButtonDropDown event handling.
21151                 - Fixed MouseMove event handling.
21152
21153 2004-10-05 03:04  ravindra
21154
21155         * ThemeWin32Classic.cs:
21156                 - Added DrawListView method and ListViewDefaultSize property.
21157                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21158                 - Changed DOS style CRLF to Unix format (dos2unix).
21159
21160 2004-10-05 03:03  ravindra
21161
21162         * Theme.cs:
21163                 - Added DrawListView method and ListViewDefaultSize property.
21164
21165 2004-10-05 02:42  ravindra
21166
21167         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21168           clicks on DropDown arrow.
21169
21170 2004-10-04 22:56  jackson
21171
21172         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21173           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21174           Control handle the buffers, derived classes should not have to
21175           CreateBuffers themselves.
21176
21177 2004-10-04 21:20  jackson
21178
21179         * StatusBar.cs: The control handles resizing the buffers now.
21180
21181 2004-10-04 21:18  jackson
21182
21183         * Control.cs: When resizing the buffers should be invalidated. This
21184           should be handled in Control not in derived classes.
21185
21186 2004-10-04 14:45  jackson
21187
21188         * TabPage.cs: oops
21189
21190 2004-10-04 02:14  pbartok
21191
21192         * LeftRightAlignment.cs:
21193           - Initial check-in
21194
21195 2004-10-04 01:09  jordi
21196
21197         * ThemeWin32Classic.cs: fixes right button position causing right
21198           button not showing on horizontal scrollbars
21199
21200 2004-10-02 13:12  pbartok
21201
21202         * XplatUIX11.cs:
21203           - Simplified the Invalidate method by using an X call instead of
21204             generating the expose ourselves
21205           - Added an expose when the window background is changed
21206           - Implemented ClientToScreen method
21207
21208 2004-10-02 13:08  pbartok
21209
21210         * XplatUIWin32.cs:
21211           - Added Win32EnableWindow method (test for implementing modal
21212           dialogs)
21213           - Added ClientToScreen method and imports
21214
21215 2004-10-02 13:07  pbartok
21216
21217         * XplatUI.cs, XplatUIDriver.cs:
21218           - Added ClientToScreen coordinate translation method
21219
21220 2004-10-02 13:06  pbartok
21221
21222         * KeyPressEventArgs.cs:
21223           - Fixed access level for constructor
21224
21225 2004-10-02 13:06  pbartok
21226
21227         * NativeWindow.cs:
21228           - Changed access level for the window_collection hash table
21229
21230 2004-10-02 13:05  pbartok
21231
21232         * Form.cs:
21233           - Added KeyPreview property
21234           - Added Menu property (still incomplete, pending Jordi's menu work)
21235           - Implemented ProcessCmdKey
21236           - Implemented ProcessDialogKey
21237           - Implemented ProcessKeyPreview
21238
21239 2004-10-02 13:02  pbartok
21240
21241         * Control.cs:
21242           - Added private method to get the Control object from the window
21243           handle
21244           - Implemented ContextMenu property
21245           - Implemented PointToScreen
21246           - Implemented PreProcessMessage
21247           - Implemented IsInputChar
21248           - Implemented IsInputKey
21249           - Implemented ProcessCmdKey
21250           - Completed ProcessKeyEventArgs
21251           - Fixed message loop to call the proper chain of functions on key
21252           events
21253           - Implemented ProcessDialogChar
21254           - Implemented ProcessDialogKey
21255           - Implemented ProcessKeyMessage
21256           - Implemented ProcessKeyPreview
21257           - Added RaiseDragEvent stub (MS internal method)
21258           - Added RaiseKeyEvent stub (MS internal method)
21259           - Added RaiseMouseEvent stub (MS Internal method)
21260           - Added RaisePaintEvent stub (MS Internal method)
21261           - Added ResetMouseEventArgs stub (MS Internal method)
21262           - Implemented RtlTranslateAlignment
21263           - Implemented RtlTranslateContent
21264           - Implemented RtlTranslateHorizontal
21265           - Implemented RtlTranslateLeftRight
21266           - Added generation of KeyPress event
21267
21268 2004-10-02 05:57  ravindra
21269
21270         * ListViewItem.cs: Added attributes.
21271
21272 2004-10-02 05:32  ravindra
21273
21274         * ListView.cs: Added attributes.
21275
21276 2004-10-01 11:53  jackson
21277
21278         * Form.cs: Implement the Close method so work on MessageBox can
21279           continue.
21280
21281 2004-09-30 14:06  pbartok
21282
21283         * XplatUIX11.cs:
21284           - Bug fixes
21285
21286 2004-09-30 11:34  jackson
21287
21288         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21289
21290 2004-09-30 07:26  ravindra
21291
21292         * ListViewItemConverter.cs: Converter for ListViewItem.
21293
21294 2004-09-30 07:26  ravindra
21295
21296         * SortOrder.cs: Enum for ListView control.
21297
21298 2004-09-30 07:25  ravindra
21299
21300         * ColumnHeader.cs: Supporting class for ListView control.
21301
21302 2004-09-30 07:24  ravindra
21303
21304         * ListView.cs, ListViewItem.cs: Initial implementation.
21305
21306 2004-09-30 07:20  ravindra
21307
21308         * ItemActivation.cs: Enum for ListView Control.
21309
21310 2004-09-29 20:29  pbartok
21311
21312         * XplatUIX11.cs:
21313           - Added lookup of pixel value for background color; tries to get a
21314             color 'close' to the requested color, it avoids having to create a
21315             colormap.  Depending on the display this could mean the used color
21316             is slightly off the desired color. Might have to change it to a more
21317             resource intensive colormap approach, but it will work as a
21318           workaround to avoid red screens.
21319
21320 2004-09-29 14:27  jackson
21321
21322         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21323
21324 2004-09-28 12:44  pbartok
21325
21326         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21327           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21328           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21329           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21330           TrackBar.cs, VScrollBar.cs:
21331           - Streamlined Theme interfaces:
21332             * Each DrawXXX method for a control now is passed the object for
21333               the control to be drawn in order to allow accessing any state the
21334               theme might require
21335
21336             * ControlPaint methods for the theme now have a CP prefix to avoid
21337               name clashes with the Draw methods for controls
21338
21339             * Every control now retrieves it's DefaultSize from the current
21340             theme
21341
21342 2004-09-28 12:17  jackson
21343
21344         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21345           drawing
21346
21347 2004-09-24 14:57  jackson
21348
21349         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21350           Gives us a nice little performance boost.
21351
21352 2004-09-24 12:02  jackson
21353
21354         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21355           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21356           Control and supporting classes. Initial checkin
21357
21358 2004-09-23 13:08  jackson
21359
21360         * Form.cs: Temp build fixage
21361
21362 2004-09-23 01:39  ravindra
21363
21364         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21365           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21366           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21367           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21368           EventHandlers needed by ListView Control.
21369
21370 2004-09-22 14:12  pbartok
21371
21372         * ScrollableControl.cs:
21373           - Implemented DockPadding property
21374           - Implemented AutoScroll property
21375           - Implemented AutoScrollMargin property
21376           - Implemented AutoScrollMinSize property
21377           - Implemented AutoScrollPosition property
21378           - Implemented DisplayRectangle property (still incomplete)
21379           - Implemented CreateParams property
21380           - Implemented HScroll property
21381           - Implemented VScroll property
21382           - Implemented OnVisibleChanged property
21383
21384 2004-09-22 14:09  pbartok
21385
21386         * Form.cs:
21387           - Added Form.ControllCollection class
21388           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21389             RemoveOwnedForm (still incomplete, missing on-top and common
21390             minimize/maximize behaviour)
21391           - Added StartPosition property (still incomplete, does not use when
21392             creating the form)
21393           - Added ShowDialog() methods (still incomplete, missing forcing the
21394             dialog modal)
21395
21396 2004-09-22 14:05  pbartok
21397
21398         * Application.cs:
21399           - Added message loop for modal dialogs
21400
21401 2004-09-22 14:02  pbartok
21402
21403         * GroupBox.cs:
21404           - Fixed wrong types for events
21405
21406 2004-09-22 14:00  pbartok
21407
21408         * Shortcut.cs, FormWindowState.cs:
21409           - Fixed wrong values
21410
21411 2004-09-22 12:01  jackson
21412
21413         * Control.cs: Text is never null
21414
21415 2004-09-20 22:14  pbartok
21416
21417         * XplatUIWin32.cs:
21418           - Fixed accessibility level for Idle handler
21419
21420 2004-09-20 18:54  jackson
21421
21422         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21423           XplatUIX11.cs: New message loop that uses poll so we don't get a
21424           busy loop
21425
21426 2004-09-17 10:43  pbartok
21427
21428         * ScrollBar.cs:
21429           - Fixed behaviour of arrow buttons. Now properly behaves like
21430             Buttons (and like Microsoft's scrollbar arrow buttons)
21431
21432 2004-09-17 10:14  pbartok
21433
21434         * ScrollBar.cs:
21435           - Added missing release of keyboard/mouse capture
21436
21437 2004-09-17 06:18  jordi
21438
21439         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21440           Theme.cs: Very early menu support
21441
21442 2004-09-16 17:45  pbartok
21443
21444         * XplatUIWin32.cs:
21445           - Fixed sending a window to the front
21446           - Added overload for SetWindowPos to avoid casting
21447
21448 2004-09-16 17:44  pbartok
21449
21450         * Control.cs:
21451           - Added SendToBack and BringToFront methods
21452
21453 2004-09-16 07:00  ravindra
21454
21455         * Copyright: Added Novell URL.
21456
21457 2004-09-16 07:00  ravindra
21458
21459         * ToolBar.cs: Invalidate should be done before redrawing.
21460
21461 2004-09-15 21:19  ravindra
21462
21463         * ColumnHeaderStyle.cs: Enum for ListView Control.
21464
21465 2004-09-15 21:18  ravindra
21466
21467         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21468           ListView Control.
21469
21470 2004-09-13 18:26  jackson
21471
21472         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21473           properly
21474
21475 2004-09-13 18:13  jackson
21476
21477         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21478           a second thread and post messages into the main threads message
21479           queue. This makes timing much more consistent. Both win2K and XP
21480           have a minimum timer value of 15 milliseconds, so we now do this
21481           too.
21482
21483 2004-09-13 15:18  pbartok
21484
21485         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21486           XplatUIX11.cs:
21487           - Added Z-Ordering methods
21488
21489 2004-09-13 10:56  pbartok
21490
21491         * Form.cs:
21492           - Fixed #region names
21493           - Moved properties and methods into their proper #regions
21494
21495 2004-09-13 10:51  pbartok
21496
21497         * Form.cs:
21498           - Added Accept and CancelButton properties
21499           - Added ProcessDialogKey() method
21500
21501 2004-09-13 08:18  pbartok
21502
21503         * IWindowTarget.cs:
21504           - Initial check-in
21505
21506 2004-09-10 21:50  pbartok
21507
21508         * Control.cs:
21509           - Added DoDragDrop() [incomplete]
21510           - Properly implemented 'Visible' handling
21511           - Added SetVisibleCore()
21512           - Implemented FindChildAtPoint()
21513           - Implemented GetContainerControl()
21514           - Implemented Hide()
21515
21516 2004-09-10 19:28  pbartok
21517
21518         * Control.cs:
21519           - Moved methods into their appropriate #regions
21520           - Reordered methods within regions alphabetically
21521
21522 2004-09-10 18:57  pbartok
21523
21524         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21525           - Added method to retrieve text from window
21526
21527 2004-09-10 18:56  pbartok
21528
21529         * Control.cs:
21530           - Moved some internal functions into the internal region
21531           - Implemented FontHeight
21532           - Implemented RenderRightToLeft
21533           - Implemented ResizeRedraw
21534           - Implemented ShowFocusCues
21535           - Implemented ShowKeyboardCues
21536           - Implemented FromChildHandle
21537           - Implemented FromHandle
21538           - Implemented IsMnemonic
21539           - Implemented ReflectMessage
21540           - All public and protected Static Methods are now complete
21541
21542 2004-09-10 16:54  pbartok
21543
21544         * Control.cs:
21545           - Implemented remaining missing public instance properties
21546           - Alphabetized some out of order properties
21547
21548 2004-09-10 05:51  ravindra
21549
21550         * PictureBox.cs: Added a check for null image.
21551
21552 2004-09-10 00:59  jordi
21553
21554         * GroupBox.cs: remove cvs tag
21555
21556 2004-09-09 05:25  ravindra
21557
21558         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21559
21560 2004-09-09 05:23  ravindra
21561
21562         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21563           parent redraw.
21564
21565 2004-09-09 02:28  pbartok
21566
21567         * ThemeWin32Classic.cs:
21568           - Improve disabled string look
21569
21570 2004-09-09 01:15  jordi
21571
21572         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21573           args and handler
21574
21575 2004-09-08 23:56  ravindra
21576
21577         * ItemBoundsPortion.cs: It's enum, not a class!
21578
21579 2004-09-08 23:47  ravindra
21580
21581         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21582           Enums for Form.
21583
21584 2004-09-08 21:13  ravindra
21585
21586         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21587           ListView control.
21588
21589 2004-09-08 21:03  ravindra
21590
21591         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21592           avoid crash.
21593
21594 2004-09-08 21:01  ravindra
21595
21596         * ScrollableControl.cs: Removed unreachable code.
21597
21598 2004-09-08 06:45  jordi
21599
21600         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21601
21602 2004-09-08 01:00  jackson
21603
21604         * XplatUIX11.cs: Only run the timers when updating the message
21605           queue. This effectively gives X messages a higher priority then
21606           timer messages. Timers still need love though
21607
21608 2004-09-07 14:01  jackson
21609
21610         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21611           this for us and the handle is no longer valid.
21612
21613 2004-09-07 13:59  jackson
21614
21615         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21616           loop that manages to not crash. TODO: Add poll and cleanup timers
21617
21618 2004-09-07 11:12  jordi
21619
21620         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21621
21622 2004-09-07 03:40  jordi
21623
21624         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21625           fixes, methods, multiple links
21626
21627 2004-09-06 06:55  jordi
21628
21629         * Control.cs: Caches ClientRectangle rectangle value
21630
21631 2004-09-05 02:03  jordi
21632
21633         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21634           certain situations
21635
21636 2004-09-04 11:10  jordi
21637
21638         * Label.cs: Refresh when font changed
21639
21640 2004-09-02 16:24  pbartok
21641
21642         * Control.cs:
21643           - Added sanity check to creation of double buffer bitmap
21644
21645 2004-09-02 16:24  pbartok
21646
21647         * ButtonBase.cs:
21648           - Fixed selection of text color
21649           - Fixed handling of resize event; now properly recreates double
21650             buffering bitmap
21651           - Added missing assignment of TextAlignment
21652           - Added proper default for TextAlignment
21653
21654 2004-09-02 14:26  pbartok
21655
21656         * RadioButton.cs:
21657           - Added missing RadioButton.RadioButtonAccessibleObject class
21658
21659 2004-09-02 14:26  pbartok
21660
21661         * Control.cs:
21662           - Added missing Control.ControlAccessibleObject class
21663           - Started to implement Select()ion mechanisms, still very incomplete
21664
21665 2004-09-02 14:25  pbartok
21666
21667         * AccessibleObject.cs:
21668           - Added missing methods
21669
21670 2004-09-02 14:23  pbartok
21671
21672         * AccessibleNavigation.cs, AccessibleSelection.cs:
21673           - Initial check-in
21674
21675 2004-09-02 10:32  jordi
21676
21677         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21678           pool for pens, brushes, and hatchbruses
21679
21680 2004-09-01 15:30  jackson
21681
21682         * StatusBar.cs: Fix typo
21683
21684 2004-09-01 14:44  pbartok
21685
21686         * RadioButton.cs:
21687           - Fixed state
21688
21689 2004-09-01 14:39  pbartok
21690
21691         * Button.cs, RadioButton.cs:
21692           - Functional initial check-in
21693
21694 2004-09-01 14:01  pbartok
21695
21696         * CheckBox.cs:
21697           - Added missing default
21698           - Added missing region mark
21699
21700 2004-09-01 09:10  jordi
21701
21702         * Label.cs: fixes method signatures, new methods, events, fixes
21703           autosize
21704
21705 2004-09-01 07:19  jordi
21706
21707         * Control.cs: Init string variables with an empty object
21708
21709 2004-09-01 04:20  jordi
21710
21711         * Control.cs: fires OnFontChanged event
21712
21713 2004-08-31 20:07  pbartok
21714
21715         * ButtonBase.cs:
21716           - Enabled display of strings
21717
21718 2004-08-31 20:05  pbartok
21719
21720         * Form.cs:
21721           - Added (partial) implementation of DialogResult; rest needs to be
21722             implemented when the modal loop code is done
21723
21724 2004-08-31 19:55  pbartok
21725
21726         * CheckBox.cs:
21727           - Fixed to match the removal of the needs_redraw concept
21728
21729 2004-08-31 19:55  pbartok
21730
21731         * ButtonBase.cs:
21732           - Removed the rather odd split between 'needs redraw' and redrawing
21733           - Now handles the events that require regeneration (ambient
21734             properties and size)
21735
21736 2004-08-31 19:41  pbartok
21737
21738         * Control.cs:
21739           - Added firing of BackColorChanged event
21740           - Added TopLevelControl property
21741           - Fixed handling of WM_ERASEBKGRND message
21742
21743 2004-08-31 12:49  pbartok
21744
21745         * ButtonBase.cs:
21746           - Removed debug
21747           - Minor fixes
21748
21749 2004-08-31 12:48  pbartok
21750
21751         * CheckBox.cs:
21752           - Finished (famous last words)
21753
21754 2004-08-31 04:35  jordi
21755
21756         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21757           scrolling bugs, adds new methods
21758
21759 2004-08-30 14:42  pbartok
21760
21761         * CheckBox.cs:
21762           - Implemented CheckBox drawing code
21763
21764 2004-08-30 14:42  pbartok
21765
21766         * ButtonBase.cs:
21767           - Made Redraw() and CheckRedraw() virtual
21768           - Improved mouse up/down/move logic to properly track buttons
21769
21770 2004-08-30 09:44  pbartok
21771
21772         * CheckBox.cs:
21773           - Updated to fix broken build. Not complete yet.
21774
21775 2004-08-30 09:28  pbartok
21776
21777         * CheckState.cs:
21778           - Initial checkin
21779
21780 2004-08-30 09:17  pbartok
21781
21782         * Appearance.cs:
21783           - Initial check-in
21784
21785 2004-08-27 16:12  ravindra
21786
21787         * ToolBarButton.cs: Added TypeConverter attribute.
21788
21789 2004-08-27 16:07  ravindra
21790
21791         * ImageIndexConverter.cs: Implemented.
21792
21793 2004-08-27 14:17  pbartok
21794
21795         * Control.cs:
21796           - Removed unneeded stack vars
21797           - First attempt to fix sizing issues when layout is suspended
21798
21799 2004-08-25 15:35  jordi
21800
21801         * ScrollBar.cs: more fixes to scrollbar
21802
21803 2004-08-25 14:04  ravindra
21804
21805         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21806           Added the missing divider code and grip for ToolBar Control.
21807
21808 2004-08-25 13:20  pbartok
21809
21810         * Control.cs:
21811           - Control now properly passes the ambient background color to child
21812             controls
21813
21814 2004-08-25 13:20  jordi
21815
21816         * ScrollBar.cs: small bug fix regarding bar position
21817
21818 2004-08-25 12:33  pbartok
21819
21820         * Timer.cs:
21821           - Now only calls SetTimer or KillTimer if the enabled state has
21822           changed
21823
21824 2004-08-25 12:33  pbartok
21825
21826         * XplatUIWin32.cs:
21827           - Fixed timer handling, now seems to work
21828           - Improved error message for window creation
21829
21830 2004-08-25 12:32  pbartok
21831
21832         * Control.cs:
21833           - Fixed generation of MouseUp message
21834
21835 2004-08-25 12:29  jordi
21836
21837         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21838           and fixes for progressbar
21839
21840 2004-08-24 18:43  ravindra
21841
21842         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21843           in ToolBar control.
21844
21845 2004-08-24 17:15  pbartok
21846
21847         * Panel.cs:
21848           - Added #region
21849           - Added missing events
21850           - Alphabetized
21851
21852 2004-08-24 17:14  pbartok
21853
21854         * StatusBar.cs, PictureBox.cs:
21855           - Now uses Control's CreateParams
21856
21857 2004-08-24 16:36  pbartok
21858
21859         * XplatUIX11.cs:
21860           - Fixed background color handling
21861           - Fixed sending of enter/leave events on a grab
21862
21863 2004-08-24 16:35  pbartok
21864
21865         * X11Structs.cs:
21866           - Refined definitions for CrossingEvent
21867
21868 2004-08-24 12:37  jordi
21869
21870         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21871           formmating, methods signature, and adds missing events
21872
21873 2004-08-24 12:24  jordi
21874
21875         * Control.cs: fire OnEnabledChanged event
21876
21877 2004-08-24 11:17  pbartok
21878
21879         * XplatUIWin32.cs:
21880           - Implemented SetTimer() and KillTimer()
21881
21882 2004-08-24 11:16  pbartok
21883
21884         * XplatUIX11.cs:
21885           - Now uses Remove instead of Add to kill the timer
21886
21887 2004-08-24 10:16  jackson
21888
21889         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21890           picture boxes in the theme now. Draw picture box borders and obey
21891           sizing modes
21892
21893 2004-08-24 05:49  jackson
21894
21895         * Timer.cs: Remove top secret debugging code
21896
21897 2004-08-24 05:34  jackson
21898
21899         * PictureBox.cs: Temp hack to make picture boxes draw their full
21900           image
21901
21902 2004-08-24 05:29  jackson
21903
21904         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21905           XplatUIX11.cs: Move timers to the driver level. On X they are
21906           queued by the driver and checked on idle.
21907
21908 2004-08-24 01:07  jackson
21909
21910         * XplatUIX11.cs: Use a queue for async messages instead of passing
21911           them as ClientMessages since that was totally broken. Also simply
21912           check for events and return an idle message if none are found. This
21913           gives us an idle handler, and prevents deadlocking when no messages
21914           are in the queue.
21915
21916 2004-08-23 18:19  ravindra
21917
21918         * XplatUIWin32.cs: Removed the unwanted destructor.
21919
21920 2004-08-23 17:27  pbartok
21921
21922         * ButtonBase.cs:
21923           - Finishing touches. Works now, just needs some optimizations.
21924
21925 2004-08-23 16:53  jordi
21926
21927         * ScrollBar.cs: small fix
21928
21929 2004-08-23 16:45  pbartok
21930
21931         * Application.cs:
21932           - Removed debug output
21933           - Simplifications
21934
21935 2004-08-23 16:43  jordi
21936
21937         * ScrollBar.cs: [no log message]
21938
21939 2004-08-23 16:10  pbartok
21940
21941         * Form.cs:
21942           - Fixed handling of WM_CLOSE message
21943           - Removed debug output
21944
21945 2004-08-23 16:09  pbartok
21946
21947         * Application.cs:
21948           - Added handling of Idle event
21949           - Added handling of form closing
21950           - Fixed reporting of MessageLoop property
21951           - Removed some unneeded code, should provide a bit of a speedup
21952
21953 2004-08-23 15:22  pbartok
21954
21955         * Control.cs:
21956           - Added InitLayout() method
21957           - Added code to properly perform layout when Anchor or Dock property
21958             is changed
21959           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21960             LAMESPEC, tried to do it in a way that makes sense
21961
21962 2004-08-23 14:10  jordi
21963
21964         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21965           properties and methods
21966
21967 2004-08-23 13:55  pbartok
21968
21969         * Control.cs:
21970           - Properly fixed Jordi's last fix
21971           - Now uses Cursor's Position property instead of calling XplatUI
21972           directly
21973
21974 2004-08-23 13:44  jordi
21975
21976         * PaintEventHandler.cs: Adding missing attribute
21977
21978 2004-08-23 13:39  pbartok
21979
21980         * Cursor.cs:
21981           - Implemented Position property
21982
21983 2004-08-23 13:39  pbartok
21984
21985         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21986           - Added method to move mouse cursor
21987
21988 2004-08-23 13:39  pbartok
21989
21990         * XplatUIX11.cs:
21991           - Fixed setting of background color
21992           - Added method to move mouse cursor
21993
21994 2004-08-23 13:16  jordi
21995
21996         * Control.cs: avoids null exception
21997
21998 2004-08-22 17:46  jackson
21999
22000         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
22001           PictureBox
22002
22003 2004-08-22 17:40  jackson
22004
22005         * XplatUIX11.cs: Add some missing locks
22006
22007 2004-08-22 15:10  pbartok
22008
22009         * Control.cs, Form.cs:
22010           - Removed OverlappedWindow style from Control, instead it's default
22011             now is child
22012           - Made form windows OverlappedWindow by default
22013
22014 2004-08-22 13:34  jackson
22015
22016         * ScrollBar.cs: Update the position through the Value property so
22017           the OnValueChanged event is raised.
22018
22019 2004-08-22 12:04  pbartok
22020
22021         * SWF.csproj:
22022           - Added Cursor.cs and UserControl.cs
22023
22024 2004-08-22 12:03  pbartok
22025
22026         * Cursor.cs:
22027           - Started implementation, not usable yet
22028
22029 2004-08-22 12:00  pbartok
22030
22031         * UserControl.cs:
22032           - Implemented UserControl (complete)
22033
22034 2004-08-21 19:20  ravindra
22035
22036         * ToolBar.cs: Correcting the formatting mess of VS.NET.
22037
22038 2004-08-21 18:49  ravindra
22039
22040         * ToolBar.cs: Probably this completes the missing attributes in
22041           toolbar control.
22042
22043 2004-08-21 18:03  ravindra
22044
22045         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22046           Fixed toolbar control signatures.
22047
22048 2004-08-21 16:32  pbartok
22049
22050         * LinkLabel.cs:
22051           - Signature Fixes
22052
22053 2004-08-21 16:30  pbartok
22054
22055         * Label.cs:
22056           - Signature fixes
22057
22058 2004-08-21 16:19  pbartok
22059
22060         * Control.cs, Label.cs:
22061           - Signature fixes
22062
22063 2004-08-21 15:57  pbartok
22064
22065         * ButtonBase.cs:
22066           - Added loads of debug output for development
22067           - Fixed typo in method name
22068
22069 2004-08-21 15:52  pbartok
22070
22071         * ToolBarButtonClickEventArgs.cs:
22072           - Added missing base class
22073
22074 2004-08-21 14:53  pbartok
22075
22076         * Control.cs:
22077           - Updated to match new GrabWindow signature
22078
22079 2004-08-21 14:51  pbartok
22080
22081         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22082           - Added method to get default display size
22083
22084 2004-08-21 14:23  pbartok
22085
22086         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22087           - Added method to query current grab state
22088           - Added argument to allow confining a grab to a window
22089
22090 2004-08-21 14:22  pbartok
22091
22092         * Keys.cs:
22093           - Added [Flags] attribute so that modifiers can be used in bitwise
22094           ops
22095
22096 2004-08-21 14:21  pbartok
22097
22098         * TrackBar.cs, ScrollBar.cs:
22099           - Replaced direct XplatUI calls with their Control counterpart
22100
22101 2004-08-21 13:32  pbartok
22102
22103         * Control.cs:
22104           - Implemented Created property
22105
22106 2004-08-21 13:28  pbartok
22107
22108         * Control.cs:
22109           - Implemented ContainsFocus
22110
22111 2004-08-21 13:26  pbartok
22112
22113         * Control.cs:
22114           - Implemented CausesValidation
22115
22116 2004-08-21 13:21  pbartok
22117
22118         * Control.cs:
22119           - Implemented CanFocus
22120           - Implemented CanSelect
22121           - Implemented Capture
22122
22123 2004-08-21 12:35  pbartok
22124
22125         * XplatUIWin32.cs:
22126           - Fixed bug with Async message handling
22127           - Implemented getting the ModifierKeys
22128
22129 2004-08-21 12:32  jackson
22130
22131         * AsyncMethodResult.cs: Make sure we have the mutex before we
22132           release it. Fixes BeginInvoke on windows
22133
22134 2004-08-21 11:31  pbartok
22135
22136         * XplatUIWin32.cs, XplatUIX11.cs:
22137           - Drivers now return proper mouse state
22138
22139 2004-08-21 10:54  jackson
22140
22141         * Control.cs: Implement EndInvoke
22142
22143 2004-08-21 10:48  jackson
22144
22145         * Timer.cs: Remove unneeded finalizer
22146
22147 2004-08-20 19:52  ravindra
22148
22149         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22150           in mouse event handling in the ToolBar control.
22151
22152 2004-08-20 19:50  ravindra
22153
22154         * ImageList.cs: Changed draw method to use the arguments passed in
22155           to draw the image.
22156
22157 2004-08-20 18:58  pbartok
22158
22159         * XplatUIStructs.cs:
22160           - Added private message for async communication
22161
22162 2004-08-20 17:38  ravindra
22163
22164         * Control.cs: Made RightToLeft property virtual and removed a
22165           Console.WriteLine.
22166
22167 2004-08-20 14:39  jordi
22168
22169         * ThemeGtk.cs: use style_attach
22170
22171 2004-08-20 14:39  pbartok
22172
22173         * XplatUIWin32.cs:
22174           - Added jackson's Async code from X11 to Win32
22175
22176 2004-08-20 14:09  pbartok
22177
22178         * SWF.csproj:
22179           - Added all new files
22180
22181 2004-08-20 14:09  pbartok
22182
22183         * Control.cs:
22184           - Added call to set window background color
22185
22186 2004-08-20 14:03  pbartok
22187
22188         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22189           - Added method for setting the window background
22190
22191 2004-08-20 14:02  pbartok
22192
22193         * XplatUIWin32.cs:
22194           - Added method for setting the background color
22195           - Added handling for erasing the window background
22196
22197 2004-08-20 13:45  jordi
22198
22199         * TrackBar.cs: fixes timer, new properties and methods
22200
22201 2004-08-20 13:34  jackson
22202
22203         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22204           correct thread
22205
22206 2004-08-20 13:22  jackson
22207
22208         * Timer.cs: Timer Tick events are now handed through Controls Async
22209           mechanism so the callbacks are executed in the same thread as X
22210
22211 2004-08-20 13:19  jackson
22212
22213         * XplatUIDriver.cs: Expose functionality to send async messages
22214           through the driver
22215
22216 2004-08-20 13:18  jackson
22217
22218         * Control.cs: Implement Begininvoke
22219
22220 2004-08-20 13:14  jackson
22221
22222         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22223           messages through the driver
22224
22225 2004-08-20 13:12  jackson
22226
22227         * XplatUIX11.cs: Lock before all X operations. Also added Async
22228           method functionality through XSendEvent
22229
22230 2004-08-20 13:11  jackson
22231
22232         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22233           This will screw up on 64 bit systems)
22234
22235 2004-08-20 13:10  jackson
22236
22237         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22238           Async messages through X/Win32
22239
22240 2004-08-19 19:39  pbartok
22241
22242         * XplatUIX11.cs:
22243           - Updated code to match new HandleData.DeviceContext type
22244
22245 2004-08-19 19:38  pbartok
22246
22247         * HandleData.cs:
22248           - Made DeviceContext a generic object to allow usage from various
22249           drivers
22250           - Added support for queueing Windows messages
22251
22252 2004-08-19 19:37  pbartok
22253
22254         * XplatUIWin32.cs:
22255           - Added generation of MouseEnter, MouseLeave and MouseHover events
22256           - Added cleanup on EndPaint
22257
22258 2004-08-19 19:17  pbartok
22259
22260         * Control.cs:
22261           - Added handling of WM_MOUSEHOVER
22262           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22263           code
22264
22265 2004-08-19 18:55  jordi
22266
22267         * ThemeGtk.cs: fixes button order
22268
22269 2004-08-19 18:12  jordi
22270
22271         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22272
22273 2004-08-19 17:09  pbartok
22274
22275         * Control.cs:
22276           - Added Right property
22277           - Added RightToLeft property
22278
22279 2004-08-19 16:27  jordi
22280
22281         * ThemeGtk.cs: experimental GTK theme support
22282
22283 2004-08-19 16:26  jordi
22284
22285         * ITheme.cs, Theme.cs: move themes from an interface to a class
22286
22287 2004-08-19 16:25  jordi
22288
22289         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22290           theme enhancaments
22291
22292 2004-08-19 16:04  pbartok
22293
22294         * XplatUIX11.cs:
22295           - Added colormap basics
22296           - Added a way to re-initialize with a different display handle
22297           - Fixed setting of the window background color
22298           - Added various X11 imports related to colors and colormaps
22299
22300 2004-08-19 15:51  pbartok
22301
22302         * X11Structs.cs:
22303           - Removed packing hints (Paolo suggested this a while back)
22304           - fixed colormap type
22305           - Added default Atom types
22306           - Added Screen and color structs and enums
22307
22308 2004-08-19 15:39  pbartok
22309
22310         * ImageList.cs:
22311           - Added missing Draw() method
22312           - Added missing RecreateHandle event
22313
22314 2004-08-19 15:30  pbartok
22315
22316         * Form.cs:
22317           - Added handling of WM_CLOSE
22318
22319 2004-08-18 13:16  jordi
22320
22321         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22322           a table
22323
22324 2004-08-18 09:56  jordi
22325
22326         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22327
22328 2004-08-17 15:31  ravindra
22329
22330         * SWF.csproj: Updated project.
22331
22332 2004-08-17 15:25  pbartok
22333
22334         * Control.cs:
22335           - Drawing improvement; don't call UpdateBounds if we are not visible
22336             (or have been minimized)
22337
22338 2004-08-17 15:24  pbartok
22339
22340         * XplatUIWin32.cs:
22341           - Finished IsVisible
22342           - Added Win32GetWindowPlacement
22343
22344 2004-08-17 15:08  jackson
22345
22346         * Panel.cs: Initial checkin of the Panel
22347
22348 2004-08-17 14:25  pbartok
22349
22350         * Control.cs:
22351           - Fixed broken handling of default window sizes
22352
22353 2004-08-17 13:29  jackson
22354
22355         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22356           has a large startup time.
22357
22358 2004-08-17 10:25  jackson
22359
22360         * HandleData.cs: union areas properly
22361
22362 2004-08-17 10:12  jackson
22363
22364         * HandleData.cs: union areas properly
22365
22366 2004-08-16 20:00  ravindra
22367
22368         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22369
22370 2004-08-16 18:48  ravindra
22371
22372         * ToolBar.cs: Added attributes.
22373
22374 2004-08-16 17:17  ravindra
22375
22376         * SWF.csproj: Updated project.
22377
22378 2004-08-16 17:16  jackson
22379
22380         * XplatUIX11.cs: Check for more expose events before sending a
22381           WM_PAINT so they can all be grouped together. This makes dragging a
22382           window across another window redraw in a sane way.
22383
22384 2004-08-16 15:47  pbartok
22385
22386         * Control.cs:
22387           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22388             support OnMouseEnter/Leave()
22389           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22390             exposure handling
22391
22392 2004-08-16 15:46  pbartok
22393
22394         * XplatUIStructs.cs, XplatUIX11.cs:
22395           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22396           OnMouseEnter/Leave()
22397
22398 2004-08-16 15:34  jackson
22399
22400         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22401           sure messages get the message field set to WM_NULL if they are not
22402           handled.
22403
22404 2004-08-16 15:24  jackson
22405
22406         * HandleData.cs: HandleData is used for storing message information
22407           for window handles
22408
22409 2004-08-15 17:23  ravindra
22410
22411         * ColorDepth.cs: Added attribute.
22412
22413 2004-08-15 17:23  ravindra
22414
22415         * SWF.csproj: Updated project for ToolBar Control.
22416
22417 2004-08-15 17:20  ravindra
22418
22419         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22420           control and also dos2unix format.
22421
22422 2004-08-15 17:13  ravindra
22423
22424         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22425           ToolBarButtonClickEventArgs.cs,
22426           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22427           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22428
22429 2004-08-15 15:31  pbartok
22430
22431         * ButtonBase.cs:
22432           - First (mostly) working version
22433
22434 2004-08-13 16:15  pbartok
22435
22436         * Control.cs:
22437           - Fixed Anchor default
22438
22439 2004-08-13 15:43  pbartok
22440
22441         * Control.cs:
22442           - Changed GetCursorPos signature
22443
22444 2004-08-13 15:42  pbartok
22445
22446         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22447           - Changed signature for GetCursorPos
22448
22449 2004-08-13 15:25  pbartok
22450
22451         * XplatUIX11.cs:
22452           - Cleanup
22453           - Fixed resizing/exposure handling
22454
22455 2004-08-13 15:22  jordi
22456
22457         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22458           with tickposition
22459
22460 2004-08-13 14:55  jordi
22461
22462         * TrackBar.cs: change from wndproc to events
22463
22464 2004-08-13 13:00  jordi
22465
22466         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22467           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22468
22469 2004-08-13 12:53  pbartok
22470
22471         * XplatUIWin32.cs:
22472           - Changed GetWindowPos to also provide client area size
22473           - Fixed broken prototypes for several win32 functions
22474
22475 2004-08-13 12:53  pbartok
22476
22477         * XplatUI.cs, XplatUIDriver.cs:
22478           - Changed GetWindowPos to also provide client area size
22479
22480 2004-08-13 12:52  pbartok
22481
22482         * XplatUIX11.cs:
22483           - Added generation of WM_POSCHANGED
22484           - Changed GetWindowPos to also provide client area size
22485
22486 2004-08-13 12:52  pbartok
22487
22488         * Control.cs:
22489           - Added Dispose() and destructor
22490           - Fixed resizing and bounds calculation
22491           - Fixed Layout
22492           - Added memory savings for invisible windows
22493
22494 2004-08-13 12:46  jordi
22495
22496         * TrackBar.cs: adds timer and grap window
22497
22498 2004-08-13 10:25  jackson
22499
22500         * Timer.cs: SWF Timer
22501
22502 2004-08-12 16:59  pbartok
22503
22504         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22505           - Implemented method to get current mouse position
22506
22507 2004-08-12 14:29  jordi
22508
22509         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22510           enhancement, fix mouse problems, highli thumb, etc
22511
22512 2004-08-12 13:31  pbartok
22513
22514         * Control.cs:
22515           - Fixed Anchoring bugs
22516
22517 2004-08-12 13:01  jackson
22518
22519         * StatusBar.cs: Don't forget things
22520
22521 2004-08-12 12:54  jackson
22522
22523         * ThemeWin32Classic.cs: Handle owner draw status bars
22524
22525 2004-08-12 12:54  jackson
22526
22527         * StatusBar.cs: Implement missing properties, events, and methods.
22528           Handle mouse clicking
22529
22530 2004-08-12 10:19  jackson
22531
22532         * StatusBarPanelClickEventArgs.cs,
22533           StatusBarPanelClickEventHandler.cs: Classes for handling status
22534           bar panel click events
22535
22536 2004-08-12 10:10  jackson
22537
22538         * Control.cs: Add missing properties
22539
22540 2004-08-12 09:46  pbartok
22541
22542         * BindingsManagerBase.cs:
22543           - Name changed to BindingManagerBase.cs
22544
22545 2004-08-12 09:25  jordi
22546
22547         * ScrollableControl.cs: calls ctrlbase instead of exeception
22548
22549 2004-08-11 16:28  pbartok
22550
22551         * InputLanguageChangingEventArgs.cs:
22552           - Never check in before compiling. Fixes the last check-in
22553
22554 2004-08-11 16:26  pbartok
22555
22556         * InputLanguageChangingEventArgs.cs:
22557           - More signature fixes
22558
22559 2004-08-11 16:20  pbartok
22560
22561         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22562           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22563           ImageListStreamer.cs, InputLanguage.cs,
22564           InputLanguageChangedEventArgs.cs,
22565           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22566           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22567           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22568           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22569           - Signature fixes
22570
22571 2004-08-11 16:16  pbartok
22572
22573         * Application.cs:
22574           - Fixed Signature
22575           - Added .Net 1.1 method
22576
22577 2004-08-11 15:25  pbartok
22578
22579         * SWF.csproj:
22580           - Fixed BindingManagerBase.cs filename
22581
22582 2004-08-11 15:22  pbartok
22583
22584         * BindingManagerBase.cs:
22585           - Was checked in with wrong filename
22586
22587 2004-08-11 14:50  pbartok
22588
22589         * SWF.csproj:
22590           - Updated
22591
22592 2004-08-11 13:41  jordi
22593
22594         * XplatUIWin32.cs: Fixes ClientRect
22595
22596 2004-08-11 13:19  pbartok
22597
22598         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22599           XplatUIX11.cs:
22600           - We had SetWindowPos and MoveWindow to set window positions and
22601             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22602             keep SetWindowPos as matching counterpart
22603           - Added some X11 sanity checking
22604
22605 2004-08-11 12:59  pbartok
22606
22607         * Control.cs:
22608           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22609             (It seems that SetBounds is just a front for SetBoundsCore and
22610              SetBoundsCore updates the underlying window system and
22611              UpdateBounds is responsible for updating the variables associated
22612              with the Control and sending the events)
22613           - Major cleanup of Size handling; we now have two sizes, client_size
22614             and bounds. Bounds defines the window with decorations, client_size
22615             without them.
22616
22617 2004-08-11 12:55  pbartok
22618
22619         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22620           - Added method to calculate difference between decorated window and
22621             raw client area
22622
22623 2004-08-11 12:54  pbartok
22624
22625         * Label.cs:
22626           - Forcing redraw on resize
22627
22628 2004-08-11 11:43  pbartok
22629
22630         * ImageList.cs:
22631           - Removed disposing of the actual images when the list is disposed
22632
22633 2004-08-11 09:13  pbartok
22634
22635         * Control.cs:
22636           - Now properly reparents windows
22637
22638 2004-08-11 08:37  pbartok
22639
22640         * Control.cs:
22641           - Duh!
22642
22643 2004-08-11 07:47  pbartok
22644
22645         * Control.cs:
22646           - Rewrote the collection stuff. Might not be as fast now, not
22647             keeping the number of children around and accessible directly, but
22648             it's more straightforward
22649
22650 2004-08-11 07:44  pbartok
22651
22652         * AccessibleObject.cs:
22653           - Fixed to match ControlCollection rewrite
22654
22655 2004-08-11 07:43  pbartok
22656
22657         * ImageList.cs:
22658           - Added missing creation of the collection list
22659
22660 2004-08-10 20:08  jackson
22661
22662         * StatusBar.cs: Get the paint message from WndProc
22663
22664 2004-08-10 19:31  jackson
22665
22666         * ThemeWin32Classic.cs: Create Brushes as little as possible
22667
22668 2004-08-10 19:20  jackson
22669
22670         * UICues.cs: Add Flags attribute
22671
22672 2004-08-10 19:19  jackson
22673
22674         * StatusBarPanel.cs: Signature cleanup
22675
22676 2004-08-10 19:10  jackson
22677
22678         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22679           Initial implementation of status bar item drawing
22680
22681 2004-08-10 17:27  jordi
22682
22683         * TrackBar.cs: add missing methods, properties, and restructure to
22684           hide extra ones
22685
22686 2004-08-10 16:24  jackson
22687
22688         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22689           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22690           attribute
22691
22692 2004-08-10 13:21  jordi
22693
22694         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22695           enhancements and standarize on win colors defaults
22696
22697 2004-08-10 12:52  jackson
22698
22699         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22700           ThemeWin32Classic.cs: Implement DrawItem functionality
22701
22702 2004-08-10 12:47  jordi
22703
22704         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22705
22706 2004-08-10 12:32  jordi
22707
22708         * Control.cs: throw ontextchange event
22709
22710 2004-08-10 11:43  pbartok
22711
22712         * Control.cs:
22713           - Added more to the still unfinished Dock/Anchor layout code
22714
22715 2004-08-10 11:39  pbartok
22716
22717         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22718           - Added GetWindowPos method
22719
22720 2004-08-10 11:36  pbartok
22721
22722         * XplatUIWin32.cs:
22723           - Implemented several methods
22724
22725 2004-08-10 09:47  jackson
22726
22727         * TrackBar.cs: Allow control to handle buffering
22728
22729 2004-08-10 09:41  jackson
22730
22731         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22732
22733 2004-08-10 09:24  jackson
22734
22735         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22736
22737 2004-08-10 09:09  jackson
22738
22739         * StatusBar.cs: Let Control handle all the buffering.
22740
22741 2004-08-10 09:08  jackson
22742
22743         * Control.cs: Control will now handle the buffering code, so each
22744           control does not have to implement this.
22745
22746 2004-08-10 08:34  jackson
22747
22748         * XplatUIDriver.cs: Use default colors from the theme
22749
22750 2004-08-09 17:12  pbartok
22751
22752         * ImageList.cs:
22753           - Fixed several bugs Ravindra pointed out
22754
22755 2004-08-09 16:11  pbartok
22756
22757         * Control.cs:
22758           - Added incomplete dock layout code
22759           - Added support for mouse wheel
22760
22761 2004-08-09 16:09  pbartok
22762
22763         * XplatUIX11.cs:
22764           - Added handling for middle and right mousebutton
22765           - Added handling for mouse wheel
22766           - Added handling for key state and mouse state and position
22767           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22768           messages
22769
22770 2004-08-09 15:40  jackson
22771
22772         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22773           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22774           checkin
22775
22776 2004-08-09 15:37  jackson
22777
22778         * StatusBar.cs: Initial implementation of StatusBar
22779
22780 2004-08-09 15:36  jackson
22781
22782         * ITheme.cs: Add support for drawing status bar and getting status
22783           bar item sizes
22784
22785 2004-08-09 15:35  pbartok
22786
22787         * MouseButtons.cs:
22788           - Fixed values
22789
22790 2004-08-09 15:34  jackson
22791
22792         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22793           status bar item sizes
22794
22795 2004-08-09 15:21  jackson
22796
22797         * ThemeWin32Classic.cs: Use known colors for default control
22798           colours
22799
22800 2004-08-09 15:12  jackson
22801
22802         * ThemeWin32Classic.cs: Make the default font static, it is static
22803           in control so this doesn't change functionality and creating fonts
22804           is sloooooow.
22805
22806 2004-08-09 14:56  pbartok
22807
22808         * X11Structs.cs:
22809           - Added GrabMode enum
22810
22811 2004-08-09 14:55  pbartok
22812
22813         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22814           - Removed Run method, was only required for initial development
22815
22816 2004-08-09 14:51  pbartok
22817
22818         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22819           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22820           capture
22821
22822 2004-08-09 13:48  pbartok
22823
22824         * XplatUIX11.cs:
22825           - Fixed default sizing for child windows
22826
22827 2004-08-09 12:56  pbartok
22828
22829         * XplatUIX11.cs:
22830           - Added generation of WM_DESTROY message
22831           - Added handling of window manager induced shutdown
22832
22833 2004-08-09 11:31  jackson
22834
22835         * ThemeWin32Classic.cs: New names for control properties
22836
22837 2004-08-09 11:25  jackson
22838
22839         * Control.cs: Use new color names
22840
22841 2004-08-09 11:02  jackson
22842
22843         * XplatUI.cs: Get default window properties from the theme
22844
22845 2004-08-09 11:01  jackson
22846
22847         * ITheme.cs: The theme engine now controls default window
22848           properties
22849
22850 2004-08-09 11:00  jackson
22851
22852         * ThemeWin32Classic.cs: Add default window color properties
22853
22854 2004-08-09 10:17  jackson
22855
22856         * ThemeWin32Classic.cs: Use correct default back color
22857
22858 2004-08-09 10:05  jackson
22859
22860         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22861           the theme now.
22862
22863 2004-08-09 09:56  jackson
22864
22865         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22866
22867 2004-08-09 09:54  jackson
22868
22869         * Control.cs: Get default properties from the theme.
22870
22871 2004-08-09 09:53  jackson
22872
22873         * ITheme.cs: Themes now handle default control properties
22874
22875 2004-08-09 09:53  jackson
22876
22877         * ThemeWin32Classic.cs: Themes now handle default control
22878           properties so coloring will be consistent
22879
22880 2004-08-08 16:54  jordi
22881
22882         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22883
22884 2004-08-08 15:08  jordi
22885
22886         * XplatUIX11.cs: fixes keyboard crash
22887
22888 2004-08-08 13:47  jordi
22889
22890         * Label.cs: add cvs header info
22891
22892 2004-08-08 12:09  jackson
22893
22894         * ThemeWin32Classic.cs: Add pen_buttonface
22895
22896 2004-08-08 11:52  jordi
22897
22898         * Label.cs, LinkLabel.cs: [no log message]
22899
22900 2004-08-08 11:34  jordi
22901
22902         * ThemeWin32Classic.cs: Use Windows Standard Colours
22903
22904 2004-08-07 17:32  jordi
22905
22906         * TrackBar.cs: throw exceptions of invalid enums values
22907
22908 2004-08-07 17:31  jordi
22909
22910         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22911           draw method name
22912
22913 2004-08-07 16:56  jackson
22914
22915         * HorizontalAlignment.cs: Initial checkin
22916
22917 2004-08-07 13:16  jordi
22918
22919         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22920           methods
22921
22922 2004-08-07 13:05  jordi
22923
22924         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22925           GetSysColor defines
22926
22927 2004-08-06 18:01  pbartok
22928
22929         * ThemeWin32Classic.cs:
22930           - Fixed some rounding issues with float/int
22931
22932 2004-08-06 18:00  jackson
22933
22934         * DockStyle.cs, AnchorStyles.cs:
22935
22936                   Add flags and serializable attributes.
22937
22938 2004-08-06 17:46  pbartok
22939
22940         * XplatUIX11.cs:
22941           - Implemented GetParent
22942
22943 2004-08-06 17:18  pbartok
22944
22945         * TrackBar.cs:
22946           - Fixed some rounding issues with float/int
22947
22948 2004-08-06 17:17  pbartok
22949
22950         * X11Structs.cs, XplatUIX11.cs:
22951           - Fixed Refresh and Invalidate
22952
22953 2004-08-06 15:30  pbartok
22954
22955         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22956           - Fixed recursive loop when resizing
22957           - Improved/fixed redrawing on expose messages
22958
22959 2004-08-06 09:53  jordi
22960
22961         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22962           keyboard navigation
22963
22964 2004-08-06 08:02  pbartok
22965
22966         * X11Structs.cs, XplatUIX11.cs:
22967           - Fixed reparenting
22968           - Fixed window border creation
22969
22970 2004-08-05 15:38  pbartok
22971
22972         * XplatUIX11.cs:
22973           - Attempted fix for reparenting problems
22974
22975 2004-08-04 15:14  pbartok
22976
22977         * Control.cs:
22978           - Fixed Invalidation bug (calculated wrong client area)
22979           - Added ClientSize setter
22980
22981 2004-08-04 15:13  pbartok
22982
22983         * Form.cs:
22984           - Added AutoScale properties
22985
22986 2004-08-04 15:13  pbartok
22987
22988         * SWF.csproj:
22989           - Added latest files
22990
22991 2004-08-04 14:11  pbartok
22992
22993         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22994           XplatUIX11.cs:
22995           - Added Invalidate handling
22996
22997 2004-08-03 17:09  jordi
22998
22999         * XplatUIDriver.cs: fixes spelling mistake
23000
23001 2004-07-27 09:53  jordi
23002
23003         * TrackBar.cs: fixes trackbar events, def classname, methods
23004           signature
23005
23006 2004-07-27 09:29  jordi
23007
23008         * ScrollBar.cs: fixes scrollbar events
23009
23010 2004-07-27 04:38  jordi
23011
23012         * Control.cs: changes to be able to run winforms samples
23013
23014 2004-07-26 11:42  jordi
23015
23016         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
23017           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
23018
23019 2004-07-26 05:41  jordi
23020
23021         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
23022           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
23023           implementation
23024
23025 2004-07-22 09:22  jordi
23026
23027         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
23028           check link overlapping, implement events, and fixes
23029
23030 2004-07-21 10:28  jordi
23031
23032         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
23033
23034 2004-07-21 10:19  jordi
23035
23036         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
23037           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23038           LinkLabelLinkClickedEventArgs.cs,
23039           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23040           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23041           implementation
23042
23043 2004-07-19 13:09  jordi
23044
23045         * Control.cs, Label.cs: label control re-written: added missing
23046           functionlity, events, and properties
23047
23048 2004-07-19 10:49  jordi
23049
23050         * Control.cs: fixes SetBounds logic
23051
23052 2004-07-19 01:29  jordi
23053
23054         * Control.cs: Call RefreshWindow only if the window has created
23055
23056 2004-07-15 14:05  pbartok
23057
23058         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23059           - Implemented ImageList and ImageList.ImageCollection classes
23060           - Added ColorDepth enumeration
23061           - Updated SWF VS.Net project
23062
23063 2004-07-15 11:06  jordi
23064
23065         * XplatUIStructs.cs: added MsgButons enum
23066
23067 2004-07-15 11:03  jordi
23068
23069         * Control.cs: added basic mouse handeling events
23070
23071 2004-07-15 03:38  jordi
23072
23073         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23074           Vertical TrackBar control implementation
23075
23076 2004-07-13 09:33  jordi
23077
23078         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23079
23080 2004-07-13 09:31  jordi
23081
23082         * Control.cs, Form.cs: commit: new properties and fixes form size
23083           problems
23084
23085 2004-07-09 14:13  miguel
23086
23087         * ProgressBar.cs: Spelling
23088
23089 2004-07-09 11:25  pbartok
23090
23091         * ProgressBar.cs:
23092           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23093           faster
23094
23095 2004-07-09 11:17  miguel
23096
23097         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23098
23099                 * ProgressBar.cs: Fixed spelling for `block'
23100
23101                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23102                 style guidelines.
23103
23104                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23105
23106 2004-07-08 23:21  pbartok
23107
23108         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23109           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23110           BaseCollection.cs, Binding.cs, BindingContext.cs,
23111           BindingMemberInfo.cs, BindingsCollection.cs,
23112           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23113           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23114           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23115           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23116           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23117           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23118           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23119           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23120           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23121           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23122           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23123           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23124           InputLanguageChangedEventArgs.cs,
23125           InputLanguageChangedEventHandler.cs,
23126           InputLanguageChangingEventArgs.cs,
23127           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23128           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23129           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23130           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23131           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23132           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23133           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23134           QueryAccessibilityHelpEventArgs.cs,
23135           QueryAccessibilityHelpEventHandler.cs,
23136           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23137           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23138           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23139           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23140           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23141           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23142           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23143           XplatUIX11.cs, lang.cs:
23144           - Initial check-in
23145