3971379d4255ce8886cae4d8e313b762a067130c
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-16  Jackson Harper  <jackson@ximian.com>
2
3         * ListView.cs: Make AfterLabelEdit work correctly.
4         * FileDialog.cs: After changing the name of the folder, we have to
5         make sure that it is created, or that we pop up an error because
6         it already exists.
7
8 2007-02-16  Jackson Harper  <jackson@ximian.com>
9
10         * X11Dnd.cs: Implement aliases on mime handlers, so things like
11         System.String are mapped to text.
12         - Handle dataobjects, getting all the possible formats out of them
13         - We dont need the drag event args before we give feedback. This
14         allows feedback cursors to be immediate before selections have
15         been converted.
16
17 2007-02-16  Jackson Harper  <jackson@ximian.com>
18
19         * TextBoxBase.cs: Modified the method for inserting images to
20         taking a line and position instead of tag and position.
21         * RichTextBox.cs: Handle PngBlip data by inserting the png image
22         into the RTF file.
23         * TextControl.cs: Allow images to be inserted as the first tag of
24         a line.
25         - Fix some off by one issues when we assume the first tag is a
26         text tag, not an image tag.
27
28 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
29
30         * ListView.cs: Set focus to ListView when ItemControl gets a
31         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
32         Fixes part of #80467.
33
34 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
35
36         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
37           validate Text input (if null or empty string reset Value to default
38           value). Fixes #80830.
39
40 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
41
42         * ListView.cs: Set owner as null for columns and items when
43         Dispose is invoked. Fixes #80607.
44
45 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
46
47         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
48         showing DropDowns, don't show a Grip when doing Flow layout.
49         [This fixes the toolbox in PDN 2.72.]
50         * ToolStripItem.cs: Add Anchor property and some internal properties to
51         reduces needed changes to FlowLayout.
52         * ToolStripOverflow.cs: Remove unused variable.
53         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
54         use it in the layout calculations.
55
56 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
57
58         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
59         reported in #79640.
60         
61         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
62         size calculation.
63
64 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
65
66         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
67         MeasureString format, it can make button very large in some cases, it is
68         strange but is what win32 do.
69
70 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
71
72         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
73         size calculation.
74
75         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
76         rendering, the value is based on MenuAccessKeysUnderlined.
77
78 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
79
80         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
81         for most themes.
82         
83         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
84         
85         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
86         and use MenuAccessKeysUnderlined instead.
87
88 2007-02-13  Andreia Gaita  <avidigal@novell.com>
89
90         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
91         A selected control would not get a Focus call if:
92                 - the default active control of the container is the same as
93                   the one that was selected
94                 - we are switching from one container to another
95         Under these conditions, the container being selected already has
96         an active_control, which is the same as the one being activated, 
97         so set_ActiveControl would always return and not send the Focus
98         call. Fix to check if the currently active control of the container
99         is actually focused.
100
101 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
102
103         * StatusStrip.cs: Implement the spring layout.
104         * ToolStripControlHost.cs: Make sure the hosted control's visibility
105         always matches the host.
106         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
107         and TextAfterImage.
108
109 2007-02-13  Andreia Gaita  <avidigal@novell.com>
110
111         * Control.cs: Code reorganization only.
112           - Reorganize the WndProc cases so that each case has it's own handling method, 
113           to help with the no-line-numbering stack traces.
114           - Formatting changes (it's vstudio's fault, really :p)
115
116 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
117
118         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
119           Thread.CurrentUICulture to match DateTimePicker's (and MS)
120           behaviour.
121
122 2007-02-12  Jackson Harper  <jackson@ximian.com>
123
124         * RichTextBox.cs:
125         * TextBox.cs: By default we have a non multiline document
126         - use the multiline property instead of the internal variable
127         * TextBoxBase.cs: Treat multiline and non multiline the same in
128         most places.
129         - Use the documents multiline flag instead of tracking it ourself
130         * TextControl.cs: Attempt at getting multiline to match MS
131         behavior.  Lines now track an offset, which is either their X or Y
132         offset depending on whether or not we are in multiline mode.
133         - Update all the methods to understand that lines have an X value.
134         - Fix crash in Undo::Duplicate when empty lines are deleted.
135
136 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
137
138         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
139         code moved to properties PreferredHeight and PreferredWidth. It solve the
140         all problems when preferred sizes must be recalculated. Fixes #80801.
141
142 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
143
144         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
145         font height when compatible_text_rendering is false. Partially fix #80801.
146
147 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
148
149         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
150
151 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
152
153         * Form.cs: Improved exception messages in ShowDialog.
154
155 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
156
157         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
158         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
159         if not set. Fixes bug #80764. Avoid accessing current_settings field
160         directly.
161
162 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
163
164         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
165         false.
166
167         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
168         public in 2.0 and for easy maintenance and dont break compatibility it is 
169         internal in 1.1.
170         
171 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
172
173         * ToolStripItem.cs: Implement using images from ImageList.
174
175 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
176
177         * DateTimePicker.cs: Change default date-formatting culture from
178           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
179           seems to be the way MS does it.
180
181 2007-02-08  Andreia Gaita  <avidigal@novell.com>
182
183         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
184         (the 6 was cut off on the right side)
185
186 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
187
188         * Form.cs: Tell MenuStrips to close when the form is clicked.
189         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
190         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
191         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
192         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
193         support for Overflow, where items that do not fit are automatically
194         reparented to a drop down menu.
195         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
196         Also: fixes bug #80747.
197
198 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
199
200         * ComboBox.cs: Remove warning (unused code).
201         * ScrollableControl.cs: Remove warning for 1.1 profile.
202
203 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
204
205         * Form.cs: Remove a warning.
206
207 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
208
209         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
210           'g' specifier, not documented anywhere, but seems to always show up
211           as a single space (might have something to do with the DateTime 'g'
212           specifier, which is the era format, but since DateTimePicker can't
213           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
214           won't crash if the format has an unmatched quote. Now shows
215           single-character formats correctly. Fixes #80744.
216
217 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
218
219         * StatusStrip.cs: Stretch property needs to call base.Stretch,
220         not this.Stretch to fix stack overflow. [Fixes bug #80760]
221
222 2007-02-07  Chris Toshok  <toshok@ximian.com>
223
224         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
225         background color.  it overwrites the background image we've
226         already painted.  Fixes #80599.
227
228 2007-02-07  Chris Toshok  <toshok@ximian.com>
229
230         * DataGrid.cs: return immediately from Edit() when there are no
231         columns.  Fixes #80662.
232
233 2007-02-07  Chris Toshok  <toshok@ximian.com>
234
235         * MessageBox.cs: fix #80625.  don't always show the Help button in
236         2.0.  use the displayHelpButton parameter to determine if we
237         should show it. Also, make the internal show_help field private.
238
239 2007-02-07  Chris Toshok  <toshok@ximian.com>
240
241         * Control.cs (SetVisibleCore): check in the proposed patch for
242         80604, and set is_visible before calling CreateControl.
243
244 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
245
246         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
247         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
248         on it.
249
250 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
251
252         * MenuAPI.cs: hotkey_active internal field added, it is required because
253         we need to know when hotkeys must be draw, before this change a keystate
254         Navigating was used but we can have menu in navigating state without
255         hotkeys. Fixes #80694.
256         
257         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
258
259 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
260
261         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
262           corresponding events and methods to be internal for 1.1 profile and
263           public for 2.0 profile (required by SizeGrip).
264         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
265           implicit control list). Don't set the size nor the location of the
266           SizeGrip anymore as it's not needed.
267         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
268           draw directly on the captured control (fixes #80656). Removed
269           ShowGrip (it wasn't used anywhere), redraw (always true), added
270           GetDefaultSize and GetDefaultRectangle to calculate defaults.
271         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
272           be called from SizeGrip.
273
274 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
275
276         * Timer.cs: Throw ArgumentException if Interval <= 0.
277
278 2007-02-05  Jackson Harper  <jackson@ximian.com>
279
280         * TreeView.cs: We need to check scrollbar visibility when window
281         visibility is updated, because non visible trees don't ever add
282         scrollbars.
283         * Cursor.cs: We want the override cursor to be reset to NULL when
284         we set current cursor to the default cursor.
285
286 2007-02-05  Jackson Harper  <jackson@ximian.com>
287
288         * TextControl.cs: Don't have crlfs when we are non multiline.
289         - Consolidate the line position.
290
291 2007-02-05  Jackson Harper  <jackson@ximian.com>
292
293         * X11Keyboard.cs: BACK+CTRL gets a special char code.
294
295 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
296
297         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
298           handling LeaveNotify->NotifyUngrab in order to send
299           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
300           after calling XUngrabPointer, so we call WindowUngrabbed directly
301           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
302         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
303           MouseCaptureChanged correctly. Also create handles if changing
304           Capture (matches MS behaviour).
305
306 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
307
308         * SizeGrip.cs: Make the last change 2.0 only.
309
310 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
311
312         * SizeGrip.cs: If resizing and the capture is lost, revert any size
313           changes to initial size (fixes #80597).
314
315 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
316
317         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
318
319 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
320
321         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
322           background) and only allow dragging if enabled. This way the
323           sizegrip can be used to fill the open square that otherwise would
324           have been shown in the bottom right corner of ScrollableControl
325           when ScrollableControl is not suppose to support sizing.
326         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
327           sizegrip is shown and enabled, and hook up with necessary events.
328
329 2007-02-01  Chris Toshok  <toshok@ximian.com>
330
331         * DataGridTextBoxColumn.cs: clean up the
332         GetFormattedString/GetColumnValueAtRow combination of functions.
333         Also fix UpdateUI, and the initial state of
334         IsInEditOrNavigateMode.
335
336         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
337         aren't supposed to scroll the textbox here, we're supposed to
338         scroll the datagrid.
339
340 2007-02-01  Chris Toshok  <toshok@ximian.com>
341
342         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
343         setting the position.
344
345 2007-02-01  Chris Toshok  <toshok@ximian.com>
346
347         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
348         here, since the most recent focus fixes keep us from generating
349         the Leave event when our textbox gets focus.
350         (Edit): we should be passing null for the column style's
351         instantText parameter.
352         
353 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
354
355         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
356         raised.  Fixes menu text/icons not showing up in PDN.
357
358 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
359
360         * Control.cs: Remove code in constructor that makes every
361         control with WS_CHILD set have initial location -1, -1.
362
363 2007-01-31  Jackson Harper  <jackson@ximian.com>
364
365         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
366         XplatUIX11.
367         * XplatUIX11.cs: Give teh keyboard to teh dnd.
368
369 2007-01-31  Jackson Harper  <jackson@ximian.com>
370
371         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
372         - Remove some debug code.
373
374 2007-01-31  Jackson Harper  <jackson@ximian.com>
375
376         * XplatUIX11.cs: If you set the override cursor during a grab, it
377         should actually override the grab cursor.  This comes into play
378         when you are setting custom cursors in a DND feedback method.
379
380 2007-01-31  Jackson Harper  <jackson@ximian.com>
381
382         * X11Dnd.cs: Add support for handling the QueryContinue and
383         GiveFeedback events.
384         - Cancel drag and drop actions when the escape key is clicked.
385         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
386         can handle the ESCAPE key.
387         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
388         done when dnd events are continued after the button is released.
389         - Add a new helper method so that dnd can translate key events.
390
391 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
392
393         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
394         make it more obvious what is happening.
395
396 2007-01-30  Jackson Harper  <jackson@ximian.com>
397
398         * XplatUIX11.cs: Don't break when handling button release in drag
399         and drop operations. We need that BUTTONUP message to get through
400         so capture is released.
401         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
402         this is handled automatically when the mouse is down.
403
404 2007-01-30  Jackson Harper  <jackson@ximian.com>
405
406         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
407         is closed, so we need to make sure that we aren't changing the
408         dialog result when the OK (Open or Save) button has been clicked
409         and we are closing the window ourselves.  Note we don't need to
410         worry about the cache being written in this case, because it was
411         already done in the previous FilOk call.
412
413 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
414         
415         * DateTimePicker.cs: Remove a warning.
416         * ComboBox.cs: Remove a couple of warnings.
417
418 2007-01-29  Chris Toshok  <toshok@ximian.com>
419
420         * XplatUIX11.cs: don't crash, and remove the icon if the user has
421         set one, if SetIcon is passed a null icon.
422
423 2007-01-29  Andreia Gaita  <avidigal@novell.com>
424
425         * TextBox.cs: Redraw when the password characters changes
426         * TextControl.cs: Check if textbox has a password char and draw 
427         a line of password chars instead of the text in the line. LineTag gets 
428         an extra Draw() method which allows document.Draw to override the text 
429         that will be drawn. Removes 1024 char limitation on length of passworded 
430         lines.
431
432 2007-01-29  Jackson Harper  <jackson@ximian.com>
433
434         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
435         single chars is not.
436
437 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
438
439         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
440         one pixel.  Fix a StackOverflowException caused by an overload wrongly
441         calling itself.
442
443 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
444
445         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
446         also remove ProcessArrowKey and put the code inside ProcessKeys.
447
448 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
449
450         * PaddingConverter.cs: Added.
451
452 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
453         
454         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
455         ShowPanels is false (fixes #80600). Only draw up to 127 characters
456         of text (fixes #80601). For panels clip the text to draw to the
457         panel (fixes #80603).
458
459 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
460
461         * ComboBox.cs: Fixed implementation of ResetText.
462
463 2007-01-25  Jackson Harper  <jackson@ximian.com>
464
465         * TextControl.cs: For the last char of a line we need to use the
466         line size, not that chars width, since it won't actually be
467         computed since the right side of a char is based on the start of
468         the left side of the next char, and the next char does not exist.
469
470 2007-01-25  Chris Toshok  <toshok@ximian.com>
471
472         * Splitter.cs: fix the new unit tests, and reindent some switch
473         statements.
474
475 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
476
477         * ComboBox.cs: Implemented 2.0 methods and events.
478         * TextBoxBase.cs: Added OnTextUpdate, so that
479         ComboBox.ComboTextBox can inform ComboBox of it.
480
481 2007-01-25  Jackson Harper  <jackson@ximian.com>
482
483         * TextControl.cs: Respect ShowSelection when deciding whether or
484         not to display the caret, this allows comboboxes to have carets
485         when the combotextbox does not have focus.
486
487 2007-01-25  Jackson Harper  <jackson@ximian.com>
488
489         * TextControl.cs: Add a Suspend/Resume for updating, basically the
490         same as the Suspend/Resume for recalc, except this will do actual
491         Invalidates.
492         - New Undo manager, works much like the MS version.
493         - Implemented Redo
494         * TextBoxBase.cs: The Cut operation is undoable.
495
496 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
497         
498         * TextBoxBase.cs: Don't antialias text. Makes it look way better
499         on Windows (no difference on Linux).    
500
501 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
502
503         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
504         we don't want to activate any windows. Fixes #79433.
505
506 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
507
508         - ButtonBase.cs: Fix capitalization of parameter: disposing.
509         [Fixes bug #80609]
510
511 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
512
513         * FileDialog.cs:
514         - Move to using System.ComponentModel.EventHandlerList
515         - Replace Refresh with Invalidate
516         - Clear the mime filecache on closing
517         - Some other memory reducing work. After beeing closed FD now uses
518           only about 300 KB for the fdo mime stuff plus the memory of the
519           cached icons.
520         * Mime.cs: Changed coding style and removed unnecessary commented
521         code. Some more memory memory reducing work.
522
523 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
524
525         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
526         a few other missing 2.0 properties.
527         * Theme.cs: Added DrawFlatStyleComboBox.
528         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
529
530 2007-01-24  Chris Toshok  <toshok@ximian.com>
531
532         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
533         wake_waiting flag, not just when there's data to be read.  if we
534         don't, then future wakeup's won't reach us and we'll be doomed to
535         wait for the entire 1 second timeout forever (unless there are X
536         events to be had).
537
538 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
539
540         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
541         until you pass Items.Count, not Items.Count - 1 like 1.1.
542
543 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
544
545         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
546
547 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
548
549         * ToolStripContainer.cs: The recent Dock fix exposed that I was
550         adding the panels in the wrong order.
551
552 2007-01-24  Jackson Harper  <jackson@ximian.com>
553
554         * TextBoxBase.cs: When we move the caret we also need to move the
555         selection, this fixes some random crashing after doing select
556         text, unselect, delete a char, paste.
557
558 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
559
560         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
561
562 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
563
564         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
565         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
566         * ToolBar.cs: Force redraw in BackgroundImageChanged.
567
568 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
569
570         * ToolBar.cs:
571         - Implement support for vertical toolbars. Fixes #80539;
572         - Call LayoutToolBar when resize, it fix some other problems in layout.
573         - Rename requested_height to requested_size, as we can have width on it
574         when toolbar is vertical.
575         - Create a private property "Vertical" that uses Dock to verify when 
576         toolbar is vertical or not.
577         - Set ControlStyles when change Dock property.
578         - Refactory in LayoutToolBar to have better variables names and to support
579         vertical toolbars.
580         - Fixes default value for ButtonSize when button count is equal zero, size
581         must be (39, 36) test case writed.
582
583 2007-01-23  Chris Toshok  <toshok@ximian.com>
584
585         * Control.cs: fix the checks so that they work correctly for mdi
586         parents/children.
587
588 2007-01-23  Chris Toshok  <toshok@ximian.com>
589
590         * Control.cs: ControlCollection seems to have super-secret
591         abstraction breaking knowledge of Mdi containers.  allow MdiClient
592         to add toplevel controls.
593
594 2007-01-23  Chris Toshok  <toshok@ximian.com>
595
596         * Control.cs: throw an ArgumentException if a toplevel control is
597         added to our control collection from ControlCollection.Add, as
598         well as from ControlCollection.IList.Add.  This fixes the
599         ControlSetTopLevelTest.TestTopLevelAdd unit test.
600
601         Also, in ControlCollection.IList.Add, don't through an
602         ArgumentNullException, throw an ArgumentException, when value ==
603         null.  This matches MS.
604
605 2007-01-23  Chris Toshok  <toshok@ximian.com>
606
607         * BindingSource.cs: initial, incomplete, implementation of
608         BindingSource.
609
610 2007-01-23  Jackson Harper  <jackson@ximian.com>
611
612         * TextControl.cs:
613         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
614         that I can fix a broken unit test (TextBoxTest::ClearUndo)
615         
616 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
617
618         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
619
620 2007-01-23  Andreia Gaita  <avidigal@novell.com>
621
622         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
623         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
624         IndexOfKey() for 2.0
625
626 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
627
628         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
629         to prevent it from changing z-order.
630         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
631         leave UI updates in MdiWindowManager.
632         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
633         1 sized (NC handling goes weird on Linux otherwise).
634         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
635         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
636         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
637         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
638         and SetWindowState(s) to allow for changing the size of an activated child
639         before activating it (reduces a lot of flicker).
640
641 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
642
643         * Form.cs: Changing FormBorderStyle has different semantics based
644         on whether the Form is visible or not.  If not visible, don't change
645         the Size.  But InvalidateNC needs to be called to force the window
646         to pick up the changes and redraw itself.  [Fixes bug #80574]
647
648 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
649
650         [Moma work]
651         * ContainerControl.cs: ProcessCmdKey.
652         * ErrorProvider.cs: new constructor.
653         * Form.cs: fix AutoValidateEvent compiler warning.
654         * Label.cs: fix OnAutoSizeChanged compiler warning.
655         * MenuStrip.cs: fix CanOverflow compiler warning.
656         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
657         * TextBox.cs: Dispose.
658         * ToolStrip.cs: CanOverflow, re-enable double buffering.
659         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
660         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
661         * ToolStripItem.cs: Overflow, RightToLeft properties.
662
663 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
664
665         * Form.cs: Move the layout of the main form to MdiWindowManager.
666         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
667         do a layout of the main window to update MdiClient's client area to
668         the right area. Fixes #80533. Remove the calculation of nc size, 
669         it was just wrong and the correct one is the same as for 
670         InternalWindowManager. 
671
672 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
673
674         * Control.cs: Setting Anchor or Dock needs to reset the other
675         to its default.  [Fixes bug #80556]
676
677 2007-01-20  Chris Toshok  <toshok@ximian.com>
678
679         * CheckedListBox.cs: class status changes.
680
681         * ScrollableControl.cs: same.
682
683         * RichTextBox.cs: same.
684
685         * ContainerControl.cs: same.
686
687         * ListView.cs: same.
688
689         * NotifyIcon.cs: same.
690
691         * MenuStrip.cs: same.
692
693         * RadioButton.cs: same.
694
695         * CheckBox.cs: same.
696
697         * PrintPreviewDialog.cs: same.
698
699         * Form.cs: same.
700
701 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
702
703         * TreeNode.cs: Apply Alan's patch for Name property.
704
705 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
706         
707         * Form.cs: Implemented SizeGripStyle.
708         * SizeGrip.cs: Check for minimum and maximum size for the
709         control being resized and only resize if size has actually
710         changed.
711
712 2007-01-19  Chris Toshok  <toshok@ximian.com>
713
714         * DataGridColumnStyle.cs: stop setting _readonly in the
715         PropertyDescriptor setter.  fixes a unit test failure.
716
717         also, rename ParentReadOnly to TableStyleReadOnly, and have it
718         just consult our table style (if we have one).  We don't need to
719         consult the datagrid readonly attribute because that's passed in
720         as the _ro arg to Edit.  this simplifies things a little.
721         
722         * DataGrid.cs: use CurrentColumn instead of
723         current_cell.ColumnNumber just to simplify some of the code.
724
725         switch the order of some things in the CurrentCell setter to keep
726         the previous cell from getting a textbox again -
727         EnsureCellVisibility causes scrolling to happen, which calls Edit.
728         So we need to set the new cell before calling it.
729         
730         call Edit in OnEnter, as does Microsoft.
731         
732         also, make sure the current table style isn't the one we create
733         initially when checking to see if it's different than the one
734         we're setting it to in BindColumns (this fixes #80421).
735
736         * GridTableStylesCollection.cs: table styles can have "" for a
737         mapping name.  part of the fix for #80421.
738
739         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
740         Edit significantly.
741
742 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
743
744         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
745         and less GDI object leaky-er.
746
747 2007-01-18  Andreia Gaita  <avidigal@novell.com>
748
749         * LinkLabel.cs: Add opaque control style
750
751 2007-01-18  Jackson Harper  <jackson@ximian.com>
752
753         * TextControl.cs: Calculate width properly.
754         - Don't store the tag's X offset, this can be figured out very
755         easily.
756         - When getting the caret tag make sure to get the last empty tag.
757
758 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
759
760         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
761         [Fixes bug #79959]
762
763         * Control.cs: Color.Empty shouldn't count for previous transparent
764         redraw changes.
765
766 2007-01-18  Jackson Harper  <jackson@ximian.com>
767
768         * TextBox.cs:
769         * RichTextBox.cs:
770         * TextControl.cs: Starting to merge in some pieces of my older
771         undo work.  Basically just some slight cleanup of the undo API.
772
773 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
774
775         * TrackBar.cs: Fix signature of RightToLeftLayout.
776         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
777         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
778         * Application.cs: Implemented UseWaitCursor.
779
780 2007-01-18  Jackson Harper  <jackson@ximian.com>
781
782         * TextControl.cs: We can't skip tags if any part of the tag is
783         visible.
784
785 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
786
787         * ContainerControl.cs: Override OnLayout.
788
789 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
790
791         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
792
793         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
794         everything else.
795
796 2007-01-18  Chris Toshok  <toshok@ximian.com>
797
798         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
799         (leftover from the container_selected days, I'd wager).  fixes bug
800         #80546.
801
802 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
803
804         * Control.cs: Apply patch from George to fix the new testcase on
805         bug #80451.  We can't just check for Color.Transparent, we need 
806         to check if the back color's alpha channel is < 255.
807
808 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
809
810         * Form.cs: Move setting show_icon = true to before the constructor
811         so that the base constructor has that information when it calculates
812         the form's size.  Was causing forms to be (6, 6) bigger than they
813         were supposed to be.  Thanks for catching this Rolf!
814
815 2007-01-18  Jackson Harper  <jackson@ximian.com>
816
817         * TextControl.cs: When replacing a selection we need to invalidate
818         from the initial selection start, because selection start is moved
819         to the end of the replacement.
820
821 2007-01-18  Andreia Gaita  <avidigal@novell.com>
822
823         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
824
825 2007-01-18  Chris Toshok  <toshok@ximian.com>
826
827         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
828         I just added.
829
830 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
831
832         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
833         layout methods and properties from ToolBarButton must be available
834         into ToolBarButtonInfo.
835
836 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
837
838         * Control.cs: If the control has a transparent background, we
839         need to refresh it when it moves and when it's parent's background
840         image changes.  [Fixes bug #80451]
841
842 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
843
844         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
845
846 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
847
848         * XplatUIWin32.cs: Implement proper double buffering for Windows.
849         [Fixes bug #80447, and probably speeds up things as well]
850
851 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
852
853         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
854         * XplatUIWin32.cs: We need to recalculate NC size after changing 
855         window style to toolwindow (otherwise the client rectangle will be
856         3 pixels to small for some reason).
857         * MdiWindowManager.cs: Revert NC size calculations to match how
858         they are calculated only based on window styles (to match
859         Win32AdjustWindowRectEx, since otherwise when setting size or 
860         location, Control will call Win32AdjustWindowRectEx to update client 
861         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
862         calculate a different value of client size causing another paint 
863         (and flickering))
864         * InternalWindowManager.cs: When moving or resizing a window only
865         update size or location if they actually changed.
866         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
867         (seems to match Windows behaviour better). Cleaned up 
868         ManagedWindowDecorations to draw what's needed and nothing else
869         (was drawing borders and lines where they shouldn't be)
870         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
871         (style = 0xFFFF) and takes into account caption height when 
872         calculating window rectangle.   
873
874 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
875
876         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
877         can be added to toolbar multiple times, we need to maintain a list of 
878         button information for each positions.
879
880 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
881
882         * ToolBar.cs: Some small stetic changes.
883
884 2007-01-16  Jackson Harper  <jackson@ximian.com>
885
886         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
887         that allow us to have nested recalc = false blocks.
888         - Add paste support for images in the RichTextBox
889         * RichTextBox.cs: flush the text after the color is changed, so
890         the change takes effect.
891         - Use SuspendRecalc
892         - Some extra debugging info
893         * TextControl.cs: Tags no longer track their length, it is just
894         computed from the next tags length, this makes things a little
895         simpler and reduces places that we have to track length changes.
896         - Refactored the linetag class a little so we could make it
897         a base class for different kinds of tags
898         - Created a image tag, a tag that can have a single image inserted
899         into it
900         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
901         that we can call suspend multiple times.
902         - Add some debugging methods
903
904 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
905
906         * MdiClient.cs: Add ActivatePreviousChild for 
907         mdi child window navigation.
908         * Form.cs: Use MdiClient.ActivateNextChild/
909         ActivatePreviousChild instead of Form.SelectNextControl
910         to select the next/previous child since 
911         SelectNextControl doesn't do it in the same order
912         as mdi children should do it.
913
914 2007-01-16  Chris Toshok  <toshok@ximian.com>
915
916         * Control.cs: remove container_selected field.
917
918 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
919
920         * MdiClient.cs: Update main form's ActiveChild when
921         updating keyboard focus for the mdi child.
922
923 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
924
925         * Control.cs: PreferredSize fix.
926
927         * Form.cs: Add several 2.0 events, properties, and methods.
928
929 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
930
931         * Form.cs: Provide meaningful message when MdiParent is assigned a
932         Form that is not an MdiContainer.
933
934 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
935
936         * MdiClient.cs: Update main form's ActiveChild when
937         activating a mdi child.
938
939 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
940
941         * MdiWindowManager.cs: Fix NRE when merging menus and main form
942         doesn't have a menu.
943
944         * Form.cs: Request NCRecalc after creating a mdi child window.
945         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
946         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
947         
948         * MdiClient.cs: Add new method SendFocusToActiveChild that either
949         sends keyboard focus to the active child, or to the MdiClient
950         if there are no child forms.
951         
952 2007-01-15  Chris Toshok  <toshok@ximian.com>
953
954         * ListView.cs: drop the *Internal overrides, just do our work in
955         ItemControl's WndProc instead.
956
957         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
958         of the various controls, and forward the events properly (in the
959         same manner as MS) from the textbox to the UpDown.  Also the
960         ActiveControl of the UpDownBase gets set properly now.  Finally,
961         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
962
963         * NumericUpDown.cs: set Text in the ctor.
964
965         * DomainUpDown.cs: call UpdateEditText in the ctor.
966         
967         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
968         so even a Selectable = false textbox can be focused if you click
969         in it.  Go figure.
970
971         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
972         just add their handling in their respective WndProc's.  Also add
973         an explicit FocusInternal method that doesn't consult CanFocus
974         before calling Select(this).
975
976         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
977         do our work in WndProc instead.
978
979         * TabControl.cs: same.
980
981         * ComboBox.cs: same.
982
983 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
984
985         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
986         Fixes #80006.
987
988 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
989
990         * ListViewItem.cs:
991         * ThemeWin32Classic.cs: Don't draw the item text outside
992         item bounds in Details view, as well as use trimming.
993         Fixes bug #80376.
994
995 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
996
997         * Form.cs: Implement Form.ShowIcon.
998         
999         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
1000         null, which when combined with the DlgModalFrame window style removes
1001         the icon from the title bar.
1002
1003 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1004
1005         * Control.cs: Call OnMouseClick after OnClick. (2.0)
1006
1007 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1008
1009         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
1010         menu when mdi child windows theres a menu, uses insert to get icon
1011         at first position. Partially fix #80006.
1012
1013 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1014
1015         * Clipboard.cs: Implement 2.0 methods.
1016
1017 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1018
1019         * Menu.cs: Implement Insert method of MenuItemCollection class
1020         to fix MenuMerge.
1021
1022 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1023
1024         * ListView.cs: Implement 2.0 FindItemWithText method.
1025
1026 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1027
1028         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
1029         to calculate menu bar size. Fixes #80290.
1030
1031 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1032
1033         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1034
1035 2007-01-11  Chris Toshok  <toshok@ximian.com>
1036
1037         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1038         initial form.
1039
1040 2007-01-11  Chris Toshok  <toshok@ximian.com>
1041
1042         * LinkLabel.cs: make sure to call base.Select in our Select method
1043         if it turns out we're going to be selected (i.e. if we have a link
1044         that is going to receive focus).  That way our container's
1045         ActiveControl is updated properly.
1046
1047 2007-01-11  Chris Toshok  <toshok@ximian.com>
1048
1049         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1050         they have 1 or more links.  this fixes the crash gert reported.
1051
1052 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1053
1054         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1055         anymore.
1056
1057         * Control.cs (Controls.Add): Check if control to be added to the collection
1058         is a top level control, and throw an ArgumentException if it is.
1059         Remove ContainerSelectedFlag, not needed anymore.
1060
1061         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1062         top most control doesn't activate the form. This fixes a problem in the
1063         MessageBox, where the default button wouldn't get focus because the form
1064         was activated before being Loaded - when the Owner is set, SetTopMost is
1065         called, and it would activate it.
1066
1067 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1068
1069         * Button.cs: When clicked and setting the parent form's DialogResult,
1070         use FindForm instead of Parent, since parent could be a container
1071         control and not the Form.  Fixes bug #80495.
1072
1073 2007-01-10  Chris Toshok  <toshok@ximian.com>
1074
1075         * Form.cs: move the call to SendControlFocus into the same
1076         is_loaded check.
1077
1078 2007-01-10  Chris Toshok  <toshok@ximian.com>
1079
1080         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1081         It breaks in the face of the new ActiveControl stuff, and should
1082         be unnecessary.
1083
1084         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1085         activecontrol's focus if it's not already set, after we set
1086         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1087         after the previous focus/active control fixes regressed it.
1088
1089         * Control.cs: reindent some code.
1090         
1091 2007-01-10  Chris Toshok  <toshok@ximian.com>
1092
1093         * Splitter.cs: clearing some outstanding changes from my tree.
1094         Replace all accesses (not writes) to the internal dock_style field
1095         with the Dock property.
1096
1097 2007-01-10  Chris Toshok  <toshok@ximian.com>
1098
1099         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1100         FireValidated virtual.
1101
1102         * Form.cs: override and don't chain up calls to FireEnter and
1103         FireLeave.
1104
1105 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1106
1107         * ListView.cs: Add more text padding space when using
1108         auto resize for columns (the previous value didn't work fine).
1109
1110         * ThemeWin32Classic.cs: Update text position inside columns,
1111         to match the appeareance of .Net.
1112
1113         * ColumnHeader.cs: When using auto resize, only the Width should
1114         depend on the sub items, not the Height. Also, set width after
1115         auto resizing (the value of Width should never remain as -1 or -2).
1116
1117 2007-01-10  Chris Toshok  <toshok@ximian.com>
1118
1119         * Application.cs: fix compilation errors when debug is enabled.
1120
1121 2007-01-10  Chris Toshok  <toshok@ximian.com>
1122
1123         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1124         add some nice ascii art pictures and explanation of the process).
1125         (GetMostDeeplyNestedActiveControl): new utility function we need
1126         because our ActiveControl can refer to a child container with its
1127         own ActiveControl.
1128
1129         * Form.cs (OnActivated): remove the call to SelectActiveControl
1130         from here, since you can override this method and not chain up,
1131         and winforms still sets the active control.
1132         (OnCreateControl): also remove the unnecessary SelectActiveControl
1133         call from here.
1134         (WndProc): it's actually called from the WM_ACTIVATE block, just
1135         before calling OnActivated.
1136
1137         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1138         inside the else.  the ActiveControl setter will end up setting
1139         focus on @control.  This keeps us from setting it again (and
1140         generating an extra LostFocus/GotFocus pair).
1141         (Select (bool, bool)): reindent.
1142
1143 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1144
1145         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1146         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1147         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1148         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1149         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1150         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1151         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1152         ToolStripTextBox.cs: Another wave of corcompare work.
1153
1154 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1155
1156         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1157         the Width property.
1158
1159         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1160         methods by callling Column.AutoResize method on columns.
1161
1162 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1163
1164         * Control.cs: Provide proper implementations of PreferredSize
1165         and GetPreferredSize (2.0).
1166
1167 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1168
1169         * Form.cs: Remove one character (!) to make my previous OnClosing
1170         stuff work for modal windows like MessageBox.
1171
1172 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1173
1174         * ListView.cs:
1175         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1176         ListView.Columns to get the last displayed column. Fixes #80452.
1177
1178 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1179
1180         * Label.cs, LinkLabel.cs: Source code identation fixes.
1181
1182 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1183
1184         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1185         we dont need to invalidate only borders because when we invalidate four
1186         border lines the invalidate's generates a complete redraw of button, 
1187         because it now invalidate a complete rect some other redraws operations
1188         are fixed. Fixes #80196.
1189         
1190         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1191         Remove ToolBarInvalidateEntireButton as it is not used.
1192
1193 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1194         
1195         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1196         called for 2.0 profile.
1197         * CloseReason.cs: Make class internal for 1.1.
1198
1199 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1200
1201         * ToolStripManager.cs: Implement FindToolStrip functionality.
1202         * ToolStrip.cs: Register and unregister with ToolStripManager.
1203
1204 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1205
1206         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1207         to ArrangedElementCollection.  Implemented this with as few #if's as 
1208         possible (which is still too many).
1209
1210 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1211
1212         * Control.cs: Implement SizeFromClientSize() [2.0].
1213
1214 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1215
1216         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1217         use Theme.BorderSize to calculate area instead of static value 1, 
1218         by the way use new BorderStaticSize instead     Border3DSize when 
1219         border_static is true. Fixes #79537.
1220         
1221         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1222         
1223         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1224         it is not needed.
1225
1226 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1227
1228         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1229
1230 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1231
1232         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1233         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1234         
1235         * Hwnd.cs: 
1236         - border_static field added, it will used to define when a control 
1237         theres 3D border but it must be static (thin).
1238         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1239         instead of static value 1, by the way use new BorderStaticSize instead
1240         Border3DSize when border_static is true.
1241
1242         * XplatUIX11.cs, XplatUIOSX.cs: 
1243         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1244         
1245         * Theme.cs: BorderStaticSize field added.
1246
1247 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1248
1249         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1250
1251 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1252
1253         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1254         mimic same behavior than win32 that set border only in CreateParams,
1255         it fix problems under CreateParams overrides. Fix #79442 and partial
1256         fix #79537.
1257         
1258         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1259         of thi control you must call recreate handle. 
1260         
1261         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1262         need to do anything as RecreateHangle will take care about borders.
1263
1264 2007-01-05  Mike Kestner  <mkestner@novell.com>
1265
1266         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1267         cycles between the ItemControl and parent.  Fixes #80388.
1268
1269 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1270
1271         * Control.cs: Lazy init layout engine. Do not directly use 
1272         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1273
1274 2007-01-05  Chris Toshok  <toshok@ximian.com>
1275
1276         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1277         unless our list manager has changed (i.e. unless we have reason to
1278         believe our columns have changed).  Fixes #80422.
1279         
1280         also, disable the call do BindColumns in
1281         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1282         1.1 the event isn't raised in response to a column addition on a
1283         table.)
1284
1285 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1286
1287         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1288         that inheritors can not call it if they choose.  Fixes bug #80456.
1289
1290 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1291
1292         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1293         doesn't blow up with a null exception on marshalling.
1294         
1295 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1296
1297         * Control.cs: Implement several 2.0 protected properties and methods.
1298         Ensure that all necessary events are being called when properties
1299         are set.
1300
1301 2007-01-05  Mike Kestner  <mkestner@novell.com>
1302
1303         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1304         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1305         instead of the parent control.  Fixes #80378.
1306
1307 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1308
1309         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1310           determine whether to use yard-pound or not (bug #78399).
1311
1312 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1313
1314         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1315         problems. So it is time to bring back the old popupbutton colors.
1316
1317 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1318
1319         * ColumnHeader.cs:
1320         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1321         property by using the internal information of the
1322         columns order in ListView.
1323
1324 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1325
1326         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1327         Add 2.0 Tag properties.
1328
1329         * LinkArea.cs: Add 2.0 ToString method.
1330
1331 2007-01-03  Chris Toshok  <toshok@ximian.com>
1332
1333         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1334         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1335         when we're editing, which fixes #80047.
1336
1337 2007-01-03  Chris Toshok  <toshok@ximian.com>
1338
1339         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1340         #80404.
1341
1342 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1343
1344         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1345         property and implementation.
1346
1347         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1348         for MdiWindowListItem property.
1349
1350         * ToolStripDropDown.cs: Don't consider hidden menu items while
1351         laying out the menu.
1352
1353 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1354
1355         * SendKeys.cs: window handle is not needed in win32, so just
1356         get the active window for X after parsing keys and don't use
1357         it when building the message; it is passed by parameter to the 
1358         Xplat method and used there to build the message instead. Also,
1359         wait for events to be processed on SendWait, as opposed to Send,
1360         which doesn't wait :) Playing with threads and Send() completely 
1361         hangs on ms.net, only SendWait() works.
1362         
1363         XplatUIX11.cs
1364         X11Display.cs: Check for valid window handle.
1365
1366 2007-01-03  Jackson Harper  <jackson@ximian.com>
1367
1368         * TextControl.cs: Need to prevent wrap calculations when replacing
1369         text (this was there before i removed it accidently).
1370         - Don't update the cursor during the positioning, just set it to
1371         selection_start at the end of the operaion.
1372
1373 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1374
1375         * Control.cs:
1376         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1377         
1378 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1379
1380         * MonthCalendar.cs: Added Click and DoubleClick events again,
1381         but this time they only hide Control's Click and DoubleClick.
1382         
1383 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1384
1385         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1386         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1387
1388 2007-01-02  Jackson Harper  <jackson@ximian.com>
1389
1390         * TextBoxBase.cs: We move the caret with the split now, so we
1391         don't need to explicitly move the caret after splitting.  This
1392         fixes the caret bumping down an extra line on Enter.
1393
1394 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1395
1396         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1397         2.72). 
1398
1399         * ScrollableControl.cs: Add Scroll event.
1400
1401 2007-01-02  Mike Kestner  <mkestner@novell.com>
1402
1403         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1404         to fix all hdr height padding codepaths.  Fixes #80207.
1405
1406 2007-01-02  Chris Toshok  <toshok@ximian.com>
1407
1408         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1409         setting it to the Control defaults anyway, and it being after the
1410         Dock set was screwing up layout.
1411         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1412         no need to call UpdateStatusBar here, as it'll be re-layed out if
1413         it needs to be.
1414
1415 2007-01-02  Mike Kestner  <mkestner@novell.com>
1416
1417         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1418         to header height for width == -1. Fixes the rest of #80207.
1419
1420 2007-01-02  Mike Kestner  <mkestner@novell.com>
1421
1422         * ListView.cs: rework the mouse event forwarding everaldo added
1423         to translate the coordinates to the parent control not
1424         raise the parent events until after we've done our work. Hover
1425         needs more work, in the case where HoverSelection is on, because
1426         the item control receives more than one MouseHover per Enter
1427         event, so we need to ensure only the "first" hover gets forwarded.
1428         Opening a minor bug for that.
1429
1430 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1431
1432         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1433         * ListControl.cs: Implemented AllowSelection property. Removed extra
1434         tabs.
1435         * ListBox.cs: Implemented AllowSelection property.
1436
1437 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1438
1439         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1440         SelectedItem, it prevent for errors when you must disable item
1441         before perform click. Fixes #80409.
1442
1443 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1444
1445         * MenuAPI.cs: Prevent second level and beyond submenus to close
1446         until first level when move out side of popup.
1447         
1448 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1449
1450         * MenuAPI.cs:
1451         - Down submenu positin in three pixels.
1452         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1453
1454 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1455
1456         * ThemeWin32Classic.cs:
1457         - Fix popup menu size adding one pixel on the top.
1458         - Down menu item border from two to one to mimic Win32.
1459         - Some source identation fixes. 
1460
1461 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1462
1463         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1464         position of menu arrows, it fix wrong arrow size.
1465
1466 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1467
1468         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1469         instead of line, it simplify draw operation and fix it using 3D
1470         borders to mimic Win32.
1471
1472 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1473
1474         * StatusStrip.cs: Add implementation of the sizing grip.
1475
1476         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1477         StatusStrip rendering.
1478
1479 2006-12-31  Chris Toshok  <toshok@ximian.com>
1480
1481         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1482         override the layout style (anchor/dock) of the control.  assign to
1483         Dock instead.  Fixes bug #80416.
1484
1485         * ToolStrip.cs: same.
1486
1487 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1488
1489         * ContainerControl.cs: Use ContainerSelected flag to check if 
1490         a Container is directly selected, or if Select is called on a 
1491         non-container. If a container is directly selected, focus events 
1492         should not be raised.
1493         Apply #80411 patch to throw exception on set_ActiveControl if 
1494         control is the same as the current one.
1495         
1496         * Control.cs: Use ContainerSelected flag (see above).
1497         Add invalidation check to raise event but not invalidate if 
1498         dimensions are 0.       
1499         Apply #80411 patch.
1500         
1501
1502 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1503
1504         * MenuAPI.cs: After click, dont close popup menu when menu is
1505         ContextMenu. Fixes #80399.
1506
1507 2006-12-30  Chris Toshok  <toshok@ximian.com>
1508
1509         * ContainerControl.cs: make sure we throw the exception if the
1510         container control doesn't contain the control we're setting
1511         ActiveControl to.
1512
1513 2006-12-30  Chris Toshok  <toshok@ximian.com>
1514
1515         * Control.cs (SetTopLevel): fix the exception raised by
1516         SetTopLevel for child controls.
1517         (set_Anchor): call UpdateDistances when setting the anchor type.
1518         This fixes bug #80336.
1519
1520 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1521
1522         * Theme.cs: For now, revert back to 8pt font.
1523
1524 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1525
1526         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1527         Fixes #80395.
1528
1529 2006-12-29  Chris Toshok  <toshok@ximian.com>
1530
1531         * Control.cs: reorder the code in OnResize to give the same event
1532         ordering as MS.
1533
1534 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1535
1536         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1537         TileHorizontally and TileVertically.
1538         
1539 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1540
1541         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1542         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1543         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1544         Corrected copyright and email adress.
1545
1546 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1547
1548         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1549         of Exception in FullPath property if no TreeView is associated with
1550         the TreeNode.
1551
1552 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1553
1554         * Theme.cs: Marked default_font as private, and initialize it in ctor
1555         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1556         on 2.0 profile.
1557         * ThemeGtk.cs: Removed default_font intialization.
1558         * ThemeWin32Classic.cs: Removed default_font initialization.
1559
1560 2006-12-28  Chris Toshok  <toshok@ximian.com>
1561
1562         * Control.cs: fix a couple of place where we were creating handles
1563         more aggressively than we should be.  Fixes ControlRefresh unit
1564         tests.
1565
1566 2006-12-28  Chris Toshok  <toshok@ximian.com>
1567
1568         * Control.cs: contrary to what the comment said, Control.Dock does
1569         not supercede Control.Anchor - the last one you assign to decides
1570         the layout behavior.  so we need to keep track of which was the
1571         last set.  Also, fix some of the affected property arguments in
1572         PerformLayout calls, and remove an redundant parent.PerformLayout
1573         call in OnResized.
1574
1575         Add a VisibleInternal property, which returns is_visible.  We
1576         can/should get rid of all the usage of this field elsewhere.
1577
1578 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1579         
1580         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1581         control style, not DoubleBuffer. Added UseDoubleBuffering property
1582         that indicates whether doublebuffering is enabled and supported.
1583         (comment from and code based on Gert Driesen's patch in #80324).
1584         Fixes #80324.
1585
1586 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1587         
1588         * Control.cs: Fixed a NRE.
1589
1590 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1591
1592         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1593         for 2.0.
1594
1595 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1596
1597         * Control.cs: Rewrote double buffering, now a seperate
1598         class handles all the buffering, no Graphics is disposed of
1599         until the painting is finished (earlier implementation 
1600         would crash if the control was resized in the OnPaint, 
1601         since it would cause the double buffer to be recreated
1602         and the old one disposed), a separate Graphics is 
1603         created for every paint (MS behaviour and anyways the state
1604         of the Graphics would have to be saved and restored otherwise)
1605         
1606         * XplatUIDriver.cs: 
1607         * XplatUIX11.cs:
1608         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1609         so that we can get the graphics for the back buffer without
1610         having to create a new one and remove the offscreen_dc parameter
1611         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1612         
1613 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1614
1615         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1616         Also make virtual all the key-related methods.
1617
1618         * ListViewItem.cs: Make virtual the key related methods for
1619         ListViewSubItemCollection.
1620
1621 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1622
1623         * ListView.cs:
1624         * ListViewItem.cs:
1625         * ThemeWin32Classic.cs:
1626         * Theme.cs: Initial support for Tile view in ListView,
1627         as well as the implementation of the required bits for it (Item
1628         and Subitem).
1629
1630 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1631
1632         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1633         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1634         Provide useful exception messages.
1635
1636 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1637
1638         * TrackBar.cs: Remove a warning.
1639         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1640         when used by DateTimePicker, fixes #80287. This also requires that 
1641         MonthCalendar implements it's own drawing for the yearly updown control,
1642         otherwise the Capture tracking would be too complicated. Removed the Click 
1643         and DoubleClick events (according to comments they were hiding the base class
1644         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1645         raise these events, not that they cannot be raised. It is possible to raise 
1646         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1647         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1648         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1649         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1650         event, no longer needed.
1651         
1652 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1653
1654         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1655         true if new value differs from current value.
1656
1657 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1658
1659         * Control.cs: ControlCollection.Count must be public. Fixed build of
1660         unit tests.
1661
1662 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1663
1664         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1665
1666 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1667
1668         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1669
1670 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1671
1672         * Control.cs: Invalidates control including when Width and Height is 
1673         equal zero or is not visible, only Paint event must be care about 
1674         this. Fixes #79913.
1675
1676 2006-12-26  Chris Toshok  <toshok@ximian.com>
1677
1678         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1679         more corcompare work.
1680
1681         * DataGridView.cs: fix compiler warning.
1682
1683         * ColumnHeader.cs: some corcompare work, and also take the
1684         opportunity to make the internal fields private.
1685
1686         * ListView.cs: fix the fallout from the above field change.
1687
1688 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1689
1690         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1691         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1692         ToolStripTextBox.cs: Fixes to events and corcompare.
1693
1694 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1695
1696         * ListView.cs: Call owner.OnMousexx event to propagate events from
1697         item to ListView. Fixes #80367.
1698
1699 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1700
1701         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1702         if value is less than one. ItemHeight should not be set to a value
1703         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1704         Removed extra tabs.
1705
1706 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1707
1708         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1709         * ToolStripStatusLabel.cs: Add Spring for Moma.
1710
1711 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1712
1713         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1714         Fixed code formatting. Removed debug code.
1715         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1716
1717 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1718
1719         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1720         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1721         ArgumentOutOfRangeException if ColumnCount is negative. In 
1722         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1723         less than 4 or higher than 32768.
1724         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1725         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1726         Fixed IsFormatProviderDefault to return true if FormatProvider has
1727         not been explicitly set.
1728
1729 2006-12-25  Chris Toshok  <toshok@ximian.com>
1730
1731         * Application.cs: add a couple of 2.0 events.
1732
1733 2006-12-25  Chris Toshok  <toshok@ximian.com>
1734
1735         * Control.cs: fix compiler warning.
1736
1737         * AxHost.cs: corcompare fixes.
1738
1739         * ApplicationContext.cs: corcompare fixes.
1740
1741 2006-12-25  Chris Toshok  <toshok@ximian.com>
1742
1743         * Control.cs: only update dist_right/dist_bottom if the
1744         width/height is > 0.  this fixes anchored controls being resized
1745         smaller until they disappear and then resized larger again.
1746
1747 2006-12-25  Chris Toshok  <toshok@ximian.com>
1748
1749         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1750         since they're nothing more than X/Left and Y/Top, respectively.
1751
1752         Also, move back to a per-control Bitmap/Graphics for
1753         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1754         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1755         Height.
1756
1757 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1758
1759         * MessageBox.cs: Implemented overload that takes a new "bool
1760         displayHelpButton" by adding a new internal field "show_help".
1761         When clicked this will raise the HelpRequested on the owner or the
1762         main form. 
1763
1764         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1765         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1766
1767         * ListView.cs: Add support ColumnWidthChanged and
1768         ColumnWidthChanging. 
1769
1770         Add support for ColumnReordered event.
1771         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1772         reorder.
1773
1774         Very nice codebase!
1775
1776         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1777
1778         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1779
1780 2006-12-24  Chris Toshok  <toshok@ximian.com>
1781
1782         * GridTablesFactory.cs: 2.0 corcompare work.
1783
1784         * ToolStripContainer.cs: add "override" to
1785         ContextMenuStripChanged, and remove the local event object.
1786
1787         * ToolStripDropDown.cs: same with a couple properties.
1788
1789         * ToolStripPanel.cs: same with AutoSizeChanged event.
1790
1791         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1792
1793         * Form.cs: add the remaining 2.0 events, and do some corcompare
1794         attribute work.
1795
1796         * DateTimePicker.cs: add "new" to padding.
1797
1798         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1799
1800         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1801
1802         * DataGridView.cs: PaddingChanged is overridden.
1803
1804 2006-12-24  Chris Toshok  <toshok@ximian.com>
1805
1806         * Control.cs: corecompare work here too.
1807
1808         * DataGridViewElement.cs, DataGridView.cs,
1809         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1810         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1811         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1812         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1813         work.
1814
1815 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1816
1817         * Control.cs: Switched the error message on the console for a
1818         todo.  A review of the code will have to cope with this anyways
1819         (since its a large feature, it is in our radar) and it was
1820         producing too much output when running PDN.
1821
1822         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1823         changes.  Applications depend on this (PDN 2.72)
1824
1825 2006-12-23  Chris Toshok  <toshok@ximian.com>
1826
1827         * TableLayoutSettings.cs: finish up the corcompare work for this
1828         class.
1829
1830 2006-12-23  Chris Toshok  <toshok@ximian.com>
1831
1832         * Control.cs: make SetImplicitBounds internal, do some futzing
1833         with LayoutEngine so that it's available in 1.1, and remove the
1834         entire duplicated code mess from PerformLayout.  Use
1835         System.Windows.Forms.Layout.DefaultLayout instead.
1836
1837         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1838
1839 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1840
1841         * Form.cs: Add MainMenuStrip property.
1842
1843 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1844
1845         * Control.cs: Add ContextMenuStrip property and implementation.
1846         Fix ContextMenu implementation to show menu centered on control when
1847         activated using the keyboard instead of showing at screen (0,0).
1848
1849         * ToolStripDropDown.cs: Fix needed overload of Show ().
1850
1851 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1852
1853         * Menu.cs: Name property added for 2.0 profile.
1854         
1855 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1856
1857         * Menu.cs: Update information about FindMenuItem, method to be
1858         implemented soon.
1859
1860 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1861
1862         * MenuAPI.cs: When deselect items deselect also selected subitems.
1863         
1864 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1865
1866         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1867         FindSubItemByCoord to found itens that is not active, also an
1868         cheking added to FindSubItemByCoord to search for items only 
1869         in visible popup windows. Fixes #80274.
1870
1871 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1872
1873         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1874         internal property, it be care about change ExStyle. 
1875
1876 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1877
1878         * ContainerControl.cs: set activeControl for parent forms up the 
1879         tree when the new activecontrol is a container.
1880         When validating the active control, if it is a container, also
1881         raise up the validation for it's active control. Fixes #80280
1882         
1883         * Control.cs: Add internal property flag and check to prevent
1884         Focus events from getting raised when Select() is called for
1885         a ContainerControl. There are still too many focus events being
1886         raised at the moment though.
1887         Cleaned up the code a bit.
1888
1889 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1890
1891         * Control.cs: Added all missing 2.0 events.and
1892         fixed a couple of corcompare issues.
1893         * TrackBar.cs: Implemented missing 2.0 bits.
1894         * MonthCalendar.cs, 
1895         * DateTimePicker.cs, 
1896         * MdiClient.cs: Fixed some corcompare issues.
1897
1898 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1899
1900         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1901         SplitterPanel.cs: corecompare work.
1902
1903 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1904
1905         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1906         Clean up warnings for BackgroundImageChanged and PaddingChanged
1907         events now that they are implemented in Control.cs.
1908
1909 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1910
1911         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1912         
1913         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1914         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1915         of TableLayoutPanel and supporting cast.
1916
1917 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1918
1919         * XplatUIWin32.cs: 
1920         - GrabWindow now confines the mouse pointer to the confine window.
1921         - Added Win32ClipCursor and Win32GetClipCursor.
1922
1923         * Control.cs: 
1924         - Added CaptureWithConfine to be able to capture and confine 
1925         mouse pointer.
1926         
1927         * InternalWindowManager.cs: 
1928         - Call CaptureWithConfine instead of Capture if we're an
1929         MdiChild (fixes #79982).
1930
1931 2006-12-21  Chris Toshok  <toshok@ximian.com>
1932
1933         * DataGrid.cs: guard against the initial state of selection, where
1934         selection_start == -1.  make sure we only select from index >= 0.
1935         Fixes bug #80291.
1936
1937 2006-12-21  Chris Toshok  <toshok@ximian.com>
1938
1939         * Control.cs: we don't need to be so draconian with
1940         UpdateDistances, and we thusly don't need to call it before
1941         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1942
1943 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1944
1945         * ComboBox.cs,
1946         TextBox.cs: Implemented AutoComplete properties.
1947
1948 2006-12-20  Chris Toshok  <toshok@ximian.com>
1949
1950         * DataGridView*.cs: some corecompare work.
1951
1952 2006-12-20  Jackson Harper  <jackson@ximian.com>
1953
1954         * XplatUIX11.cs: We need to hide the caret when deleting it,
1955         otherwise you get carets left lying around everywhere.
1956         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1957         prevents getting some weird half drawn caret tracers when
1958         scrolling.
1959         * TextControl.cs: Attempt to reduce the number of times we need to
1960         recreate the caret.
1961
1962 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
1963
1964         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
1965
1966 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1967
1968         * DateTimePicker.cs:
1969         - Implemented missing 2.0 bits.
1970         - Changed some default values to match MS.
1971         
1972 2006-12-20  Jackson Harper  <jackson@ximian.com>
1973
1974         * TextBoxBase.cs: When changing the font across the document we
1975         can't recalculate after changing each line, since that will cahnge
1976         the line count.
1977         - PreferredHeight is a little different than i thought.
1978         - When backspacing, move the caret before we do the actual char
1979         delete, because when that delete crosses a wrap boundary the
1980         positional information will change.
1981
1982 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1983
1984         * Control.cs: Added some missing 2.0 bits: 
1985         BackgroundImageLayout, BackgroundImageLayoutChanged, 
1986         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
1987         add IBindableComponent and IDropTarget implementation.
1988         
1989         * MonthCalendar.cs: 
1990         - Added all missing 2.0 features:
1991         BackgroundImageLayout, RightToLeftLayout, 
1992         OnHandleDestroyed, RightToLeftLayoutChanged, 
1993         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
1994         PaddingChanged.
1995         - Rewrote all the BoldDate code, it was completely broken.
1996         - Fixed all the tests (the tests can now be re-enabled, the
1997         problems were not with the tests, but with the control, it was
1998         mostly broken).
1999         
2000         * DateTimePicker.cs: Changed the location where the 
2001         MonthCalendar is shown.
2002         
2003 2006-12-19  Chris Toshok  <toshok@ximian.com>
2004
2005         * DataGridView.cs: add IDropTarget implementation.
2006
2007         * ToolStripPanel.cs: add IDropTarget implementation.
2008
2009 2006-12-19  Jackson Harper  <jackson@ximian.com>
2010
2011         * TextControl.cs: soft now means something different than what it
2012         used to mean, we want to move the caret regardless of whether or
2013         not this break was soft (would we really have wanted the caret
2014         to not move with the break in the old context?)
2015         * TreeView.cs: Make sure we factor in the vert scrollbar when
2016         calculating the horizontal scrollbar's maximum.
2017
2018 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2019
2020         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
2021         check for keywords in alternate casing, close bug #80049.
2022
2023 2006-12-19  Chris Toshok  <toshok@ximian.com>
2024
2025         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
2026         methods (which all do nothing).
2027
2028         * IDropTarget.cs: add the 4 missing methods.
2029
2030 2006-12-19  Chris Toshok  <toshok@ximian.com>
2031
2032         * TableLayoutRowStyleCollection.cs: corcompare work.
2033         
2034         * TableLayoutSettings.cs: same.
2035
2036         * TableLayoutStyle.cs: same.
2037
2038         * TableLayoutColumnStyleCollection.cs: same.
2039
2040 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2041
2042         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2043         TableLayoutPanel I've had in my local tree for way too long.
2044
2045 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2046
2047         * TableLayoutSettings.cs: Finish the public API (still needs all
2048         the logic to update on changes). 
2049
2050         * TableLayoutPanelCellPosition.cs: new file.
2051         
2052         * TableLayoutRowStyleCollection.cs,
2053         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2054         TableLayoutSettings.cs: Track the final 2.0 table api.
2055
2056 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2057
2058         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2059         and Image List 2.0 members for ColummnHeader.
2060         * ListView.cs: Add key-related 2.0 methods for
2061         ColumnHeaderCollection.
2062
2063 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2064
2065         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2066         ArgumentNullException if items argument is null. Ignore null item in
2067         arrays. Removed extra tabs.
2068
2069 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2070
2071         * MonthCalendar.cs: Fixed InvalidCastException.
2072
2073 2006-12-19  Jackson Harper  <jackson@ximian.com>
2074
2075         * TextControl.cs: Don't increment the position here.
2076         - When calculating char positions only add in the line break size
2077         for hard line breaks.
2078
2079 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2080
2081         * SendKeys.cs: Changed some things to match ms.net behaviour
2082         when parsing shifted capital letters.
2083         
2084         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2085         Add window handle as parameter to SendInput. X11 needs the 
2086         window handle, and the handle being passed      to it in the keys 
2087         queue is the active control handle (which windows needs), not 
2088         the window handle.
2089         
2090         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2091         to support SendKeys on X.       
2092         
2093         * X11Keyboard: Implement helper method to lookup a linux keycode
2094         given the virtual keycode. Added table of keycode-2-virtualkey
2095         values to support this.
2096
2097 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2098
2099         * ListView.cs: Add support for SelectedIndexCollection
2100         and SelectedItemCollection 2.0 methods. Implement support
2101         for ImageKey too.
2102         * ListViewItem.cs: Add support for ListViewSubItemCollection
2103         2.0 methods. Also, fix an incorrect behavior of AddRange method
2104         (it shouldn't call Clear).
2105         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2106
2107 2006-12-19  Jackson Harper  <jackson@ximian.com>
2108
2109         * RichTextBox.cs: 
2110         * TextBoxBase.cs: New args for FormatText
2111         * TextControl.cs: Rewrote the main drawing method, this version
2112         feels a little easier to understand and debug to me.  Hopefully it
2113         does to others also
2114         - Fix FormatText to OR in the new formating values.  Added
2115         FormatSpecified param, basically this works in the same way as
2116         BoundsSpecified in Control.
2117         - Set the caret properties when the caret is positioned.
2118         - When wrapping text make sure that we calculate the width of the
2119         last character
2120         - when calculating alignments we might have wrapped down to the
2121         next line, so don't search for an individual tag, search for the
2122         end of the line
2123         - We need to invalidate the selection area when we replace the
2124         selection.
2125         
2126 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2127
2128         * Application.cs: add Restart () 2.0 support
2129
2130 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2131
2132         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2133         property. Fixes #80268.
2134         
2135 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2136
2137         * MenuAPI.cs: Dont trigger select event when closes top menu
2138         item. Fixes #80270.
2139
2140 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2141
2142         * MenuAPI.cs: When you click on menuitem only trigger onselect
2143         event for top menu itens. Fixes #80271.
2144         
2145 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2146
2147         * MdiWindowManager.cs: Make IconicBounds depend on
2148         the bottom of MdiClient, not the top (fixes #80267)
2149         
2150 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2151
2152         * MdiClient.cs: Added missing 2.0 attribute
2153
2154 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2155
2156         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2157         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2158
2159 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2160
2161         * MenuAPI.cs: Fix click when menuitem is not popup,
2162         this regression was caused by last commit (#80272).
2163
2164 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2165
2166         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2167         fire click event or close menu. Fixes #80272.
2168
2169 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2170
2171         * ListViewHitTestInfo.cs: add
2172
2173 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2174
2175         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2176         * FlatButtonAppearance.cs: add
2177         * DockingAttribute.cs: add
2178
2179 2006-12-17  Chris Toshok  <toshok@ximian.com>
2180
2181         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2182         and rebind our columns when it does - this way, if you make
2183         changes to the DataTable (or set the Table attribute on a DataView
2184         after setting it as the DataGrid's DataSource, the changes are
2185         made visible.)  Fixes bug #80107.
2186
2187 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2188
2189         * ListViewGroup.cs: add internal Location property for layouting.
2190         * Theme.cs: add abstract ListViewGroupHeight function.
2191         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2192
2193 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2194
2195         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2196         Added reset of selected index to 0 when adding first tab page.
2197         Fixes #80264
2198         
2199         * NumericUpDown.cs: Fix NET_2_0 check
2200
2201 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2202
2203         * ListViewGroup.cs: fixed DefaultValueAttribute value
2204
2205 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2206
2207         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2208
2209 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2210
2211         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2212         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2213         ScrollableControl.cs: Add a handful of methods that are
2214         overwritten in 2.0 
2215
2216 2006-12-15  Chris Toshok  <toshok@ximian.com>
2217
2218         * XplatUIWin32.cs: initial implementation of the Reversible
2219         drawing functions.  there are some problems.  DrawReversibleFrame
2220         doesn't seem to work at all for Dashed FrameStyle, and in the
2221         Thick case there are drawing errors at the corners (we probably
2222         need to bind Rectangle instead of doing moveto/lineto's.)
2223
2224 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2225         
2226         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2227         to send blocks of key messages. Send accumulates keys to send with Flush, 
2228         while SendWait sends all keys immediately.
2229                 
2230         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2231         XplatUIX11.cs,  XplatUIX11-new.cs:
2232         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2233         to Win32 SendInput.
2234         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2235         
2236         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2237         testing for ms.net on this class is very tricky, as the tests run too fast 
2238         to allow the hook to release, essentially freezing the keyboard and the 
2239         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2240         category :p
2241
2242 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2243
2244         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2245                         added missing attributes.
2246  
2247 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2248
2249         * ListViewGroup.cs: Added missing attributes.
2250         * ListViewGroupCollection.cs: Added missing attributes.
2251
2252 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2253
2254         * ListViewItem.cs: fixed ListViewSubItem text property.
2255
2256 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2257         
2258         * Control.cs: Added missing 2.0 attributes
2259         
2260 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2261         
2262         * MdiClient.cs: Added missing 2.0 attribute.
2263         * MonthCalendar.cs: Added some missing 2.0 attributes 
2264         and properties.
2265         
2266 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2267
2268         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2269
2270 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2271
2272         * MainMenu.cs: Add the new 2.0 constructor to help out people
2273         using the MainMenu in VS2005.
2274
2275 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2276         
2277         * MdiChildContext.cs: Removed it, no longer used.
2278         * MdiClient.cs: Added missing 2.0 attributes.
2279         
2280 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2281         
2282         * InternalWindowManager.cs: Fix a NullRef with previous 
2283         changes for toolwindows.
2284         
2285 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2286
2287         * Control.cs: 
2288         - Added AfterTopMostControl to allow for certain controls 
2289         to always stay on top when normal controls are brought to 
2290         front.
2291         
2292         * XplatUIWin32.cs: 
2293         - (DrawInversibleRectangle): Get window rectangle from Win32 
2294         in stead of from control, since Win32 doesn't calculate
2295         screen coords correctly from control's Location if it 
2296         have docked siblings.
2297         
2298         * MdiWindowManager.cs:
2299         - Correct the control menu popup location when clicked on
2300         the maximized form icon. (fixes #80223.1)
2301         - Don't show moving rectangle if mouse hasn't moved from
2302         the original clicked point.
2303         - Removed FormGotFocus handler (not used).
2304         - Calculate the control buttons location from the main
2305         window's size and not client size (fixes #79770).
2306         - Form is now closed when the form icon is double-clicked
2307         (fixes #79775). 
2308         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2309         
2310         * InternalWindowManager.cs:
2311         - Moved some MDI-only methods to MdiWindowManager.
2312         - Removed unused properties and methods.
2313         - Unified method naming for methods handling wm messages.
2314         - Moved all message handling to seperate methods for
2315         each message.
2316         
2317         * ThemeWin32Classic.cs:
2318         - DrawManagedWindowDecorations now draws the title bar 
2319         with a gradient brush.
2320         - Add a CPDrawButtonInternal that allows us to specify
2321         light, normal and dark colors for the buttons (control 
2322         buttons for MDI children were drawn with the same light
2323         color as the background, therefore loosing the 3D effect).
2324         
2325         * SizeGrip.cs:
2326         - Add a CapturedControl property that is used to 
2327         determine the control to resize (defaults to parent). 
2328         Needed for MdiClient, since its SizeGrip's parent is
2329         MdiClient, but the control to resize is the main form.
2330         
2331         * MdiClient.cs:
2332         - Set SizeGrip's CapturedControl to the main form in order
2333         to resize the main form and not the MdiClient.
2334         - Override AfterTopMostControl to leave the scrollbars 
2335         always on top.
2336
2337 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2338
2339         * ListView.cs: fixed ListViewItemCollection AddRange and
2340                         implemented ListViewItemCollection AddRange 2.0 support.
2341
2342 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2343
2344         * ListViewGroup.cs: Add.
2345         * ListViewGroupCollection.cs: Add
2346         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2347         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2348                                 stub for ImageKey 2.0 support.
2349
2350 2006-12-14  Mike Kestner  <mkestner@novell.com>
2351
2352         * ListView.cs: add text padding to the autocalculation for columns
2353         of width -2.  Fixes #80207.
2354  
2355 2006-12-14  Mike Kestner  <mkestner@novell.com>
2356
2357         * ListView.cs: add some index guarding for partial row navigation 
2358         logic.  Fixes #80250.
2359
2360 2006-12-14  Mike Kestner  <mkestner@novell.com>
2361
2362         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2363         are added or inserted to the collection.  Fixes #81099.
2364
2365 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2366
2367         * MenuAPI.cs: Closes menu when right click out side of popup
2368         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2369
2370 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2371
2372         * ListViewItem.cs: Fix dumb error.
2373
2374         * ListView.cs: Add Find and ContainsKey methods in 
2375         ListViewItemCollection, and also return true for IsReadOnly
2376         and IsFixedSize (changes for 2.0). 
2377
2378 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2379
2380         * Control.cs: Allow Region to be set to null.
2381
2382 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2383
2384         * MdiWindowManager.cs: Remove unused (commented out) code.
2385         * Form.cs: When the MdiChild is maximized, the form needs 
2386         WM_NCMOUSELEAVE, so request it.
2387         * InternalWindowManager.cs: 
2388         - Added tooltips to control buttons.
2389         - Removed duplicated control button handling code.
2390         - Removed unused (commented out) code.
2391         
2392 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2393
2394         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2395         was used because we must set cursor without trigger ChangeCursor event
2396         and without change Cursor control property. Fixes #79963.
2397
2398 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2399         
2400         * Control.cs: Check if Region setter value is null, and ignore
2401
2402 2006-12-12  Jackson Harper  <jackson@ximian.com>
2403
2404         * TextControl.cs: We were almost always drawing one more line then
2405         needed, since the GetLineByPixel will return the last line found
2406         at that pixel. In most cases though, we were invalidating up to
2407         the junction between two lines.
2408         - Improve debug code.
2409
2410 2006-12-12  Chris Toshok  <toshok@ximian.com>
2411
2412         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2413         and FillReversibleRectangle.
2414
2415         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2416         and FillReversibleRectangle.
2417
2418         * XplatUIWin32.cs: add stubs which do nothing for
2419         DrawReversibleFrame, DrawReversibleLine, and
2420         FillReversibleRectangle.
2421
2422         * XplatUIOSX.cs: add stubs which raise NIE for
2423         DrawReversibleFrame, DrawReversibleLine, and
2424         FillReversibleRectangle.
2425
2426         * XplatUIX11.cs: add working implementation for
2427         DrawReversibleFrame, DrawReversibleLine, and
2428         FillReversibleRectangle.
2429         
2430         * ControlPaint.cs: implement DrawReversibleFrame,
2431         DrawReversibleLine, and FillReversibleRectangle, by calling into
2432         the appropriate XplatUI method.
2433
2434 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2435
2436         * Form.cs: Make MdiClient have the focus even if it's
2437         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2438         messages. Fixes #79907.
2439         
2440 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2441
2442         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2443         queried after the window is created.
2444         
2445         * XplatUIX11.cs: Added SendParentNotify to implement 
2446         WM_PARENTNOTIFY logic. Fixes #79965.
2447         
2448         * Control.cs: Added MakeParam.
2449         
2450 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2451
2452         * MdiClient.cs: Resume Layout before setting window
2453         states (fixes #80201).
2454
2455 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2456
2457         * MenuAPI.cs: Deselect a menu item after performing
2458         the click (fixes #80197).
2459
2460 2006-12-11  Jackson Harper  <jackson@ximian.com>
2461
2462         * TextBoxBase.cs: We need to cap this value, since Maximum -
2463         ViewPortHeight can be less than zero.
2464         - Only do selection with the left mouse button.
2465         * TextBox.cs: Don't tell the world that we have a context menu.
2466         * Control.cs: New method so that we can control whether or not the
2467         context menu is visible outside MWF.
2468
2469 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2470
2471         * ToolBarButton.cs: Fix text positon. 
2472
2473 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2474
2475         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2476
2477         * Control.cs (DoubleBuffered): Add implementation.
2478
2479         * Application.cs (OpenForms): Add.
2480
2481 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2482
2483         * Form.cs: Use opacity instead of Opactiy to determine if we need
2484         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2485
2486 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2487
2488         * Control.cs: Fix NRE if Control.Site was set to null.
2489
2490 2006-12-11  Chris Toshok  <toshok@ximian.com>
2491
2492         * Control.cs: ControlCollection.Remove should return if the arg is
2493         null, and ControlCollection.SetChildIndex should raise a ANE.
2494
2495 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2496
2497         * Control.cs: Verify value set for Dock property. Code formatting
2498         updates.
2499
2500 2006-12-11  Jackson Harper  <jackson@ximian.com>
2501
2502         * TextControl.cs: Draw the caret and the selection when a flag is
2503         set on the owner.
2504         * TextBoxBase.cs: We want to draw the caret and the selection for
2505         TextBox but not for TextBoxBase.
2506         - If the window is resized and scrolling is no longer needed (the
2507         whole doc is visible) set the scroll position to zero.
2508         - The default SelectWord (the one TextBox uses) should move the
2509         caret to the end of the word.
2510         - SelectAll moves the caret to the end of the selection.
2511         * TextBox.cs: We don't selectall on focus, we just do it when the
2512         control is created.
2513         
2514 2006-12-11  Mike Kestner  <mkestner@novell.com>
2515
2516         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2517
2518 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2519
2520         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2521         2.0 support.
2522         * ListViewItem.cs: Add Name 2.0 property.
2523
2524 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2525
2526         * TabControl.cs: Set visibility on selected or default tab 
2527         when tabcontrol handle is created, so that it's contents
2528         actually show up (duh). Fixes #80193
2529         Don't redraw the control if there is no handle created, as
2530         the selected index might be completely invalid. Added some tests
2531         to check for this.
2532
2533 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2534
2535         * ToolBar.cs: Uses maximun width and height of all buttons as 
2536         button rectangle when ButtonSize specified, it looks strange but
2537         is what happens in Win32. Fixes #80189.
2538
2539 2006-12-11  Jackson Harper  <jackson@ximian.com>
2540
2541         * TextControl.cs: Need to track undo levels ourself, since
2542         compound actions will mess them up.
2543
2544 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2545
2546         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2547         SelectedIndex value is changed (even if it's not valid).
2548         Reset SelectedIndex to 0 when the handle is created and if
2549         the current index is invalid.
2550         Fixes SelectdeIndex unit tests and #80128
2551
2552 2006-12-08  Chris Toshok  <toshok@ximian.com>
2553
2554         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2555         calls EndEdit, it needs to be called before we set current_cell to
2556         its new value.  Otherwise, we end up committing the value in the
2557         textbox to the new cell as well.  Fixes bug #80160.
2558
2559 2006-12-08  Chris Toshok  <toshok@ximian.com>
2560
2561         * Form.cs (set_CancelButton): if the button's DialogResult is
2562         None, set it to Cancel.  Fixes bug 80180.
2563
2564 2006-12-08  Jackson Harper  <jackson@ximian.com>
2565
2566         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2567         to watch ourselves when setting the canvas size and setting the
2568         scrollbar values.
2569
2570 2006-12-08  Chris Toshok  <toshok@ximian.com>
2571
2572         * DataGrid.cs: comment out the two MakeTransparent calls for the
2573         time being so people using trunk (and not 1.2.2) on windows can
2574         actually use the datagrid.  This deals with bug #80151.
2575
2576 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2577
2578         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2579         Graphics.DrawImage (image, int, int, int, int) overload instead
2580         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2581         the dpi difference and was blurring images it drew.
2582         [Fixes bug #79960]
2583
2584 2006-12-08  Chris Toshok  <toshok@ximian.com>
2585
2586         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2587         rowcnt is 0 (such as with an empty datasource), and make sure we
2588         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2589         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2590
2591 2006-12-08  Chris Toshok  <toshok@ximian.com>
2592
2593         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2594         grid.
2595
2596 2006-12-08  Chris Toshok  <toshok@ximian.com>
2597
2598         [ Fixes bug #80167 ]
2599         
2600         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2601         style is FlatStyle.System.
2602
2603         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2604         ButtonBase.flat_style private, and switch uses of it to the public
2605         property.
2606         
2607 2006-12-08  Chris Toshok  <toshok@ximian.com>
2608
2609         [ Fixes bug #80121 ]
2610         
2611         * ThemeWin32Classic.cs: center the caption text in the datagrid
2612         when we draw it.
2613
2614         * DataGrid.cs: lessen the amount we add to the caption height from
2615         6 to 2.  6 was making it huge.
2616
2617 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2618
2619         * UpDownBase: Handle MouseWheel call directly instead of capturing
2620         the inner textbox's OnMouseWheel. Fixes #80166
2621
2622 2006-12-08  Jackson Harper  <jackson@ximian.com>
2623
2624         * TextControl.cs: We need to invalidate the textbox when we empty
2625         it (how had this not been discovered before?)
2626
2627 2006-12-08  Jackson Harper  <jackson@ximian.com>
2628
2629         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2630         to behave like MS, we now ignore the eventargs.Click and just
2631         track state ourself, which we were already doing anyways.
2632         - Constrain the double click handler to the double click size.
2633         
2634 2006-12-08  Chris Toshok  <toshok@ximian.com>
2635
2636         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2637         direction if that scrollbar isn't shown.  fixes bug #80158.
2638
2639 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2640
2641         * NumericUpDown.cs: Update value on getter. Fixes #79950
2642
2643 2006-12-08  Chris Toshok  <toshok@ximian.com>
2644
2645         * MenuItem.cs: add back in the event cloning code.  I didn't know
2646         how to do it in the face of the EventHandlerList work i'd done
2647         last week.  Fixes bug #80183.
2648
2649 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2650
2651         * Control.cs: Add an invalidate to the BackgroundImage setter.
2652         [Fixes 80184]
2653
2654 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2655
2656         * ToolStrip*: Add some small properties reported by MoMA, fix event
2657         firing and default properties based off of unit tests, and add some
2658         attributes based off of the class status page.
2659
2660 2006-12-07  Jackson Harper  <jackson@ximian.com>
2661
2662         * TextBoxBase.cs: Take HideSelection into account when determining
2663         whether or not to show the selection.
2664         * RichTextBox.cs: After inserting the RTF into the document move
2665         the cursor to the beginning of the document.
2666
2667 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2668
2669         * Control.cs: Remove static ArrayList "controls" which maintained
2670         a reference to every control created.
2671         * Application.cs: Create a static FormCollection to maintain a reference
2672         to every form created.  Use it in places that formerly enumerated through
2673         the controls one looking for forms.
2674         * Form.cs: Add and remove self from above FormCollection.
2675
2676 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2677
2678         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2679           not libgdk (though it makes me wonder why I didn't have any
2680           problems)
2681
2682 2006-12-07  Chris Toshok  <toshok@ximian.com>
2683
2684         [ you had to know this was coming after that last commit...]
2685         
2686         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2687         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2688         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2689         XCopyArea).
2690
2691 2006-12-07  Chris Toshok  <toshok@ximian.com>
2692
2693         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2694         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2695         all the behavior we need for double buffering.
2696
2697         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2698         client side Bitmap, just like the old Control-based double buffer
2699         code did.  The methods are virtual, so each XplatUI driver
2700         subclass can replace the implementation to use a faster, platform
2701         specific approach.
2702
2703         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2704         double buffer code, and clean things up a bit in the process.
2705
2706 2006-12-06  Chris Toshok  <toshok@ximian.com>
2707
2708         * Control.cs: reindent WndProc.
2709
2710 2006-12-06  Chris Toshok  <toshok@ximian.com>
2711
2712         [ I wanna be like BenM when I grow up ]
2713         
2714         * Hwnd.cs: create a single static Graphics object on the static
2715         Bitmap we create.  use this for our text measurements.
2716
2717         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2718         This was causing us to allocate a backbuffer for every control,
2719         even when it wasn't flagged as double buffered.  Instead use the
2720         single graphics instance.  This might have implications for
2721         multithreaded applications.  If we run into problems we can switch
2722         to creating 1 Graphics per control, on the static Hwnd bitmap.
2723
2724         this change nets us a 7M savings in private dirty mappings when
2725         running FormsTest.exe.
2726
2727 2006-12-06  Chris Toshok  <toshok@ximian.com>
2728
2729         * ListView.cs: the BackgroundImage override is just to set
2730         attributes.  chain up to base.BackgroundImage.
2731
2732         * RichTextBox.cs: same.
2733
2734         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2735         changes, so instead a handler for BackgroundImageChanged.
2736         
2737         * Control.cs: make background_image private.
2738
2739 2006-12-06  Chris Toshok  <toshok@ximian.com>
2740
2741         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2742         sure we even need this assignment, but roll with it for now.
2743
2744         * Control.cs: make the cursor field private.
2745
2746 2006-12-06  Chris Toshok  <toshok@ximian.com>
2747
2748         * Form.cs: we don't need to explicitly set ImeMode to
2749         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2750         behavior in the face of ImeMode.Inherit.
2751
2752         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2753         change the ctor's assignment to use ImeMode instead of ime_mode.
2754
2755         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2756         ImeModeInherit.  Only check for the parent's imemode (and return
2757         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2758         This fixes the button unit test, which sets both ImeMode and
2759         DefaultImeMode to ImeMode.Disable.
2760
2761         also make the ime_mode field private.
2762
2763 2006-12-06  Chris Toshok  <toshok@ximian.com>
2764
2765         * Control.cs: make control_style private.
2766
2767         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2768         setting the styles to true, then setting them to false instead of
2769         reverting to their previous values.
2770
2771         also, call SetStyle on the scrollbars instead of using
2772         control_style directly.
2773
2774 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2775
2776         * FormCollection.cs: Implement. [2.0]
2777
2778 2006-12-06  Chris Toshok  <toshok@ximian.com>
2779
2780         * Control.cs: make tab_stop private.
2781
2782         * Label.cs: set TabStop, not tab_stop.  reformat some event
2783         add/remove methods to make them more compact.
2784
2785 2006-12-06  Chris Toshok  <toshok@ximian.com>
2786
2787         * RadioButton.cs: fix TabStop handling.
2788
2789 2006-12-06  Chris Toshok  <toshok@ximian.com>
2790
2791         * TextBox.cs: remove the explicit assignments to has_focus.
2792         Control does that.
2793
2794         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2795         manage that.
2796         
2797 2006-12-06  Chris Toshok  <toshok@ximian.com>
2798
2799         * ButtonBase.cs: remove all uses of is_enabled from this code.
2800         it's always true when any of the code containing the checks is
2801         executed.
2802
2803 2006-12-06  Chris Toshok  <toshok@ximian.com>
2804
2805         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2806         with different semantics (some are present in both 1.1 and 2.0
2807         profiles) so that we match MS's behavior in our unit tests.
2808
2809 2006-12-06  Jackson Harper  <jackson@ximian.com>
2810
2811         * TextControl.cs: Make this operation undoable.
2812         * TextBoxBase.cs: Factor the border width into the preferred
2813         height.
2814         - implement Modified as per the spec.
2815
2816 2006-12-06  Chris Toshok  <toshok@ximian.com>
2817
2818         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2819
2820 2006-12-06  Chris Toshok  <toshok@ximian.com>
2821
2822         * Control.cs: make right_to_left and context_menu fields private.
2823
2824 2006-12-06  Chris Toshok  <toshok@ximian.com>
2825
2826         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2827         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2828         Control.child_controls private.  switch all uses over to
2829         Control.Controls.
2830
2831 2006-12-06  Chris Toshok  <toshok@ximian.com>
2832
2833         * System.Windows.Forms/GroupBox.cs,
2834         System.Windows.Forms/AccessibleObject.cs,
2835         System.Windows.Forms/ErrorProvider.cs,
2836         System.Windows.Forms/Control.cs,
2837         System.Windows.Forms/UpDownBase.cs,
2838         System.Windows.Forms/ScrollBar.cs,
2839         System.Windows.Forms/DateTimePicker.cs,
2840         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2841         System.Windows.Forms/ToolTip.cs,
2842         System.Windows.Forms/RadioButton.cs,
2843         System.Windows.Forms/LinkLabel.cs,
2844         System.Windows.Forms/Splitter.cs,
2845         System.Windows.Forms/TextBoxBase.cs,
2846         System.Windows.Forms/ToolStripTextBox.cs,
2847         System.Windows.Forms/ContainerControl.cs,
2848         System.Windows.Forms/ThemeWin32Classic.cs,
2849         System.Windows.Forms/SizeGrip.cs,
2850         System.Windows.Forms/ToolStripDropDown.cs,
2851         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2852         private.  switch all uses over to Control.Parent.
2853
2854 2006-12-06  Chris Toshok  <toshok@ximian.com>
2855
2856         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2857         Control does this before calling emitting these events.
2858
2859         * TabControl.cs: same.
2860
2861         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2862         Control.client_rect.
2863
2864         * ButtonBase.cs: use the ClientSize property instead of the
2865         client_size field.
2866
2867         * ScrollableControl.cs: same.
2868
2869         * Control.cs: another pass at making properties private.  also,
2870         move the initialization of tab_stop to the ctor.
2871
2872 2006-12-05  Andreia Gaita <avidigal@novell.com>
2873
2874         * TabControl.cs: Let the selected index be set freely if the 
2875         control handle is not yet created.
2876
2877 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2878
2879         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2880         internal until I can rewrite DefaultLayout.
2881         * ToolStrip.cs: Fix build error and some general cleaning.
2882         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2883         Fix build errors caused by making some of Control's fields private.
2884
2885 2006-12-05  Jackson Harper  <jackson@ximian.com>
2886
2887         * TextControl.cs: Redo Insert a little so that it use IndexOf
2888         instead of Split, this prevents it from messing up on things like
2889         \n\n\n. Also more effecient since the split array doesn't need to
2890         be created.
2891         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2892         multiline text differently, this is the first of many fixes that
2893         will make multiline/non-multiline the same thing as far as the
2894         TextBoxBase is concerned.
2895         - Don't split the text and insert lines, this can lose some line
2896         endings (like is the last line a soft or hard break). Instead use
2897         the new Insert.
2898         - Fix an off by one when combining all the lines in the Text
2899         getter.
2900         - Remove separate multiline handling from the Text getter/setter.
2901
2902 2006-12-05  Chris Toshok  <toshok@ximian.com>
2903
2904         * ButtonBase.cs: a few changes:
2905
2906         - don't reinitialize internal Control fields in the ctor when they
2907         have the same values as Control sets them.
2908
2909         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2910         this before calling those methods.
2911
2912         - we don't need to call Refresh for anything.  use Invalidate
2913         instead.
2914
2915         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2916         calls Refresh in its OnEnabledChanged.
2917         
2918         - several of the events we were registered for in the ctor to
2919         redraw ourselves already include calls to Invalidate in the
2920         property setters that raise the events.  remove the extra
2921         invalidation.
2922
2923         - reformat a switch statement that was 83274658 columns wide.
2924         
2925 2006-12-05  Mike Kestner  <mkestner@novell.com>
2926
2927         * ComboBox.cs: fix a unit test regression from a TextBox
2928         SelectionLength return of -1 when there's no selection.  
2929
2930 2006-12-05  Chris Toshok  <toshok@ximian.com>
2931
2932         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2933         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2934         cleaning up some of the internal Control fields being used by
2935         subclasses.
2936
2937 2006-12-05  Mike Kestner  <mkestner@novell.com>
2938
2939         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2940         listbox after AddImplicit calls since it defaults to hidden. Add a 
2941         hack to preserve requested heights across DropDownStyle changes.
2942
2943 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2944
2945         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2946
2947 2006-12-05  Chris Toshok  <toshok@ximian.com>
2948
2949         * DataGridView.cs: fix compiler warnings.
2950
2951         * PrintControllerWithStatusDialog.cs: same.
2952
2953         * ToolBar.cs: same.
2954
2955         * FolderBrowserDialog.cs: same.
2956
2957         * Splitter.cs: same.
2958
2959         * DataGridViewComboBoxCell.cs: same.
2960
2961         * XplatUIWin32.cs: same.
2962
2963         * PictureBox.cs: same.
2964
2965         * Win32DnD.cs: same.
2966
2967         * PageSetupDialog.cs: same.
2968
2969         * FileDialog.cs: same.
2970
2971         * PrintDialog.cs: same.
2972
2973         * DataGridTextBoxColumn.cs: same.
2974
2975         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
2976
2977 2006-12-05  Chris Toshok  <toshok@ximian.com>
2978
2979         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
2980         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
2981         System.ComponentModel.EventHandlerList work.
2982
2983 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
2984
2985         * DrawTreeNodeEventArgs.cs: Added.
2986
2987 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2988         
2989         * InternalWindowManager.cs: Remove an unused field.
2990         
2991 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2992
2993         * InternalWindowManager.cs:
2994         - Save the point where the title bar is clicked.
2995         
2996         * MdiWindowManager.cs:
2997         - Only allow moving of the window as long as the 
2998         clicked point on the title bar does not get out of
2999         MdiClient's rectangle. Fixes #79982.
3000         
3001         * MdiClient.cs:
3002         - Added Horizontal/VerticalScrollbarVisible.
3003         - Simplified the scrollbar sizing algorithm.
3004         - Cache the difference in scrolled value in
3005         H/VBarValueChanged and move the calculation out
3006         of the for loop.
3007
3008 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3009
3010         * Control.cs: Make the Console.WriteLine in WndProc 
3011         write more info.
3012
3013 2006-12-05  Chris Toshok  <toshok@ximian.com>
3014
3015         * ToolStripManager.cs, ToolStripButton.cs,
3016         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
3017         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
3018         ToolStripSplitButton.cs, ToolStripSeparator.cs,
3019         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
3020         ToolStripProgressBar.cs, ToolStripContainer.cs,
3021         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
3022         to using System.ComponentModel.EventHandlerList.
3023
3024 2006-12-04  Chris Toshok  <toshok@ximian.com>
3025
3026         * LinkLabel.cs: fix up compiler warnings.
3027
3028         * TableLayoutSettings.cs: same.
3029
3030         * TreeView.cs: same.
3031
3032         * ToolBar.cs: same.
3033
3034         * TabControl.cs: same.
3035
3036         * RichTextBox.cs: same.
3037
3038         * ListViewItem.cs: same.
3039
3040         * PropertyGrid.cs: same.
3041
3042         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3043
3044         * ToolTip.cs same.
3045
3046         * TextRenderer.cs: fix up compiler warnings.
3047
3048         * Label.cs: same.
3049
3050         * Form.cs: corcompare fixes.
3051
3052         * PictureBox.cs: fix up compiler warnings.
3053
3054         * ImageListStreamer.cs: same.
3055
3056         * TrackBar.cs: corcompare fix.
3057
3058         * Control.cs: fix up compiler warnings.
3059
3060         * SplitterPanel.cs: same.
3061
3062         * NumericTextBox.cs: same.
3063
3064         * ImageList.cs: same.
3065
3066         * StatusStrip.cs: same.
3067
3068         * ProgressBar.cs: corcompare fix.
3069
3070         * ToolStripButton.cs: fix up compiler warnings.
3071
3072         * ToolStripStatusLabel.cs: same.
3073
3074         * ToolStripSplitButton.cs: same.
3075
3076         * ToolStripSeparator.cs: same.
3077
3078         * ToolStripProgressBar.cs: same.
3079
3080         * ToolStripDropDownMenu.cs: same
3081
3082         * ToolStripDropDown.cs: same.
3083
3084         * ToolStripDropDownButton.cs: same.
3085
3086         * ToolStrip.cs: same.
3087
3088         * ToolStripControlHost.cs: same.
3089
3090         * ToolStripContentPanel.cs: same.
3091
3092         * ToolStripDropDown.cs: same.
3093
3094         * ToolStripContainer.cs: same.
3095
3096         * ToolStripPanel.cs: same, and add "new" where we need it to work
3097         with the new ArrangedElementCollection.
3098
3099         * ToolStripItemCollection.cs: add "new" where we need it to work
3100         with the new ArrangedElementCollection.
3101
3102 2006-12-04  Andreia Gaita <avidigal@novell.com>
3103
3104         * TabControl.cs: Fix default tab selection to after TabControl
3105         gets focus and not before. Fixes #80128
3106
3107 2006-12-04  Chris Toshok  <toshok@ximian.com>
3108
3109         * DataGridTableStyle.cs: remove the gross calling of
3110         datagrid.Refresh from here.  It's a broken idea and it doesn't
3111         work anyway.
3112
3113         * DataGrid.cs: instead, just register/unregister from the
3114         DataGridTableStyle events in CurrentTableStyle.  we play it
3115         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3116         even though some would most likely not require it.  Fixes bug
3117         #80115 (and one portion of #80117 as a side effect).
3118
3119 2006-12-04  Chris Toshok  <toshok@ximian.com>
3120
3121         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3122         so the textbox (if any) goes away.  Fixes bug #80117.
3123
3124 2006-12-04  Chris Toshok  <toshok@ximian.com>
3125
3126         * DataGridColumnStyle.cs: set the column's readonly property
3127         initially based on the property descriptor's IsReadOnly.  Fixes
3128         bug #80044.
3129
3130 2006-12-04  Chris Toshok  <toshok@ximian.com>
3131
3132         * ComboBox.cs: wrap the dropdown style changing work in
3133         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3134
3135 2006-12-04  Jackson Harper  <jackson@ximian.com>
3136
3137         * TextBoxBase.cs: Fix off by one, since these are one-based.
3138         * TextBox.cs: Select all the text when we get focus.  The TextBox
3139         does this but the RTB does not.
3140
3141 2006-12-04  Chris Toshok  <toshok@ximian.com>
3142
3143         * DataGridTextBoxColumn.cs: remove some spew.
3144
3145         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3146         but some part of me is saying "it shouldn't be here.."  At any
3147         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3148         setting the value.
3149
3150 2006-12-04  Chris Toshok  <toshok@ximian.com>
3151
3152         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3153         to reassign the propertydescriptor.
3154
3155 2006-12-04  Jackson Harper  <jackson@ximian.com>
3156
3157         * TextBoxBase.cs:
3158         * TextControl.cs: Remove some unused variables.  Maybe this will
3159         patch things up between mike and I.
3160         - don't split lines less then one char wide, if the viewport is
3161         that small text won't be visible anyways.
3162         
3163 2006-12-04  Jackson Harper  <jackson@ximian.com>
3164
3165         * TextBoxBase.cs: Default selection length is -1, need to do some
3166         more testing on windows to see when this is used for the property.
3167         - Redid the Lines [] property to that we properly remove soft line
3168         breaks
3169         - added support for preserving carriage returns
3170         -  CanUndo is not a variable like 'is undo enabled' it just returns
3171         true if there is undo operations available.
3172         - AppendText doesn't need to grab the last tag itself anymore,
3173         this happens automatically when we move the cursor.
3174         * TextControl.cs: Add CompoundActions to the undo class. This
3175         allows combining the other operations into one big option.  ie a
3176         paste will combine { delete old, insert new, move cursor }
3177         - Add InsertString undo operation
3178         - New method for deleting multiline text
3179         - Add carriage returns to lines. So we can preserve carriage
3180         returns when text is 'roundtripped'
3181
3182 2006-12-04  Chris Toshok  <toshok@ximian.com>
3183
3184         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3185         minimum 0.  Fixes the scrollbar exception in bug #80136.
3186
3187 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3188
3189         * MdiClient.cs: 
3190         * MdiWindowManager: Removed unused fields and methods.
3191         
3192 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3193         
3194         * StatusBar.cs: Update all panels when a AutoSize=Contents
3195         panel needs updating.
3196         
3197         * StatusBarPanel.cs: Remove twidth and only use initialize.
3198         Fixes #80031.
3199                 
3200 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3201
3202         * Form.cs: When a form's MdiParent is set add it directly
3203         on top of the z-order in stead of relying on MdiClient's
3204         ActivateChild to do it. Fixes #80135.
3205         
3206         * MdiClient.cs: 
3207         - Remove original_order, mdi_child_list is already doing
3208         the same thing.
3209         - Create mdi_child_list on construction in
3210         stead of first use (avoids a few null checks).
3211
3212         * MenuItem.cs: Use an already existing list of mdi children
3213         to get the correct order of children and remove the other
3214         redundant list.
3215
3216 2006-12-04  Chris Toshok  <toshok@ximian.com>
3217
3218         * PropertyGridView.cs: cached_splitter_location is only used in
3219         !DOUBLEBUFFER code.
3220
3221         * PropertyGrid.cs: implement the ComComponentNameChanged event
3222         using Events, hoping that would fix the warning.  Looks like a
3223         compiler bug instead (#80144).
3224
3225         * PropertyManager.cs: remove unused method.
3226
3227 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3228
3229         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3230         include parentesis to fix expression evaluation. Fixes #79634.
3231
3232 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3233         
3234         * MenuAPI.cs:
3235         - Changes to fix behavior in Menu control, some reported in #80097
3236         and other detected during behavior refactory like a select event
3237         problems.
3238         - Remove unneded "if's" conditions.
3239         - Created an internal to flag when popup is active in control, we need 
3240         it because in .NET you can have menu active but without popup active
3241         when you active menu using popup without visible items.
3242         - Mimic win32 behavior for Select and Popup events.  
3243         - Dont open popup menu when you dont have visible subitems.
3244         - Do nothing when click on disabled menu item.
3245         - Some small changes to follow the coding style guidelines.
3246         - Unselect menu only when another control gives focus. Fixes #80097.
3247         - Remove unused code.
3248         
3249         * MenuItem.cs: internal VisibleItems method to check if menu
3250         theres visible subitems, it will be usefull to fix some 
3251         behavior in Menu control.
3252         
3253 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3254         
3255         * Timer.cs: Tag property for 2.0 profile.
3256         
3257 2006-12-01  Chris Toshok  <toshok@ximian.com>
3258
3259         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3260         
3261         * Win32DnD.cs: comment out some unused fields.
3262
3263         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3264         some unused properties/methods.
3265
3266         * XplatUIX11.cs: fix MousePosition so we override the base class's
3267         property instead of conflicting with it.
3268
3269         * PictureBox.cs: comment out some unused fields
3270
3271         * OSXStructs.cs: make some struct fields public.
3272
3273         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3274         MousePosition so we override the base class's property instead of
3275         conflicting with it.
3276
3277         * X11Dnd.cs: comment out some unused fields
3278
3279         * X11DesktopColors.cs: fix some struct field visibility to quiet
3280         the compiler.
3281
3282         * X11Dnd.cs: remove some debug code.
3283
3284         * ThemeClearlooks.cs: comment out unused field.
3285
3286         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3287
3288         * ThemeGtk.cs: comment out some unused pinvokes.
3289
3290         * Timer.cs: remove some unused fields.
3291
3292         * ThemeClearlooks.cs: comment out unused field.
3293
3294         * UpDownBase.cs: comment out unused field.
3295
3296         * DataObject.cs: comment out unused field.
3297
3298         * DataGridBoolColumn.cs: reomve unused field.
3299
3300         * DataGrid.cs: remove unused field.
3301
3302         * Cursor.cs: remove old ToBitmap code.
3303
3304         * ControlPaint.cs: remove unused method.
3305
3306         * ScrollBar.cs: remove unused fields.
3307
3308         * ComboBox.cs: remove unused field, and chain up to
3309         AccessibleObject ctor.
3310
3311         * ListBox.cs: remove unused field.
3312
3313         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3314
3315         * GridEntry.cs: remove unused fields.
3316
3317         * Binding.cs: remove unused fields.
3318
3319         * AxHost.cs: remove unused method.
3320
3321         * ContainerControl.cs: remove unused field.
3322
3323         * ScrollableControl.cs: remove unused fields.
3324
3325 2006-12-01  Chris Toshok  <toshok@ximian.com>
3326
3327         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3328         the Where/WhereString stuff.  it's easy enough to CWL
3329         Environment.StackTrace.
3330
3331         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3332         unused private fields.
3333
3334 2006-12-01  Jackson Harper  <jackson@ximian.com>
3335
3336         * TextControl.cs: Do not update the view while inserting multiline
3337         text. If we update the view we might wrap lines, before entering
3338         the new lines, which causes the new line insertion calculations to
3339         be totally fubared.
3340         - Remove an old TODO
3341         - Make debug output a little nicer
3342         
3343 2006-12-01  Chris Toshok  <toshok@ximian.com>
3344
3345         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3346
3347 2006-12-01  Chris Toshok  <toshok@ximian.com>
3348
3349         [ fix the majority of the CS0108 warnings we've been suppressing ]
3350         
3351         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3352
3353         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3354         to "LayoutToolBar" to quiet mcs.
3355         
3356         * TabControl.cs: mark our ControlCollection class as 'new'.
3357
3358         * TextBoxBase.cs: mark some events as 'new'.
3359
3360         * Splitter.cs: TabStop is 'new'.
3361
3362         * ControlBindingsCollection.cs: mark a few methods as new since
3363         they change the visibility from protected to public.
3364
3365         * RadioButton.cs: DoubleClick -> base class, and remove unused
3366         HaveDoubleClick.
3367
3368         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3369         events as new.
3370
3371         * NumericUpDown.cs: TextChanged -> base class.
3372
3373         * CheckedListBox.cs: mark our ObjectCollection class as new to
3374         quiet mcs.
3375
3376         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3377         muck with the base class.
3378
3379         * StatusBar.cs: fix some mcs warnings about Update being the same
3380         name as a base class method.
3381
3382         * RichTextBox.cs: mark some events as new, and make them do things
3383         to the base class impl.
3384
3385         * UserControl.cs: mark TextChanged as new, and have it manipulate
3386         base.TextChanged.
3387
3388         * UpDownBase.cs: mark some things new.
3389
3390         * CheckBox.cs: mark DoubleClick "new", and add some text about
3391         what we need to look at.
3392
3393         * Panel.cs: make the events "new", and manipulate the base
3394         version.  these are just here for attributes.
3395
3396         * AccessibleObject.cs: make owner private.
3397
3398         * Control.cs: deal with AccessibleObject.owner being private.
3399         cache our own copy if we need it.
3400
3401         * Button.cs: add "new" to the DoubleClickEvent.
3402
3403         * ListBox.cs: no need to track our own has_focus here.  let
3404         Control.has_focus do it for us.  Also some other work to clear up
3405         warnings about not overriding base class methods of the same name.
3406         
3407         * ComboBox.cs: clear up some warnings about not override base
3408         class methods of the same name.
3409
3410 2006-12-01  Chris Toshok  <toshok@ximian.com>
3411
3412         * Form.cs: flag a few things as "new" to quiet some of the mcs
3413         warnings.
3414
3415         * AxHost.cs: same.
3416
3417         * PrintPreviewDialog.cs: same.
3418
3419         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3420         now DGV isn't so horrible on the class status page.  also, move
3421         all events to using System.ComponentModel.EventHandlerList.  my
3422         wrists hurt.
3423
3424 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3425
3426         * MdiWindowManager.cs:
3427         - Set form to active mdi child if shown,
3428         and update the active mdi child to the next 
3429         remaining child in the z-order if the form is hidden.
3430
3431         * Form.cs: 
3432         - Track if the form has been visible and if its 
3433         visibility is beeing changed, so that the MdiClient
3434         can properly decide the ActiveMdiChild. The MdiClient 
3435         cannot track this since the form can change visibility 
3436         before MdiClient is created.
3437
3438         * MdiClient.cs:
3439         - Don't activate anything of the parent form is changing
3440         its visibility.
3441         - Rework ActiveMdiChild to only return visible mdi 
3442         children and take into account several other corner 
3443         cases.
3444
3445 2006-12-01  Chris Toshok  <toshok@ximian.com>
3446
3447         * IBindableComponent.cs: new 2.0 interface.
3448
3449 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3450
3451         * DataGrid.cs: Font for caption area is bold by default.
3452
3453 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3454
3455         * Menu.cs: Tag property for 2.0.
3456         
3457 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3458
3459         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3460         
3461 2006-12-01  Chris Toshok  <toshok@ximian.com>
3462
3463         * TreeView.cs: doh, the Begin* events should be
3464         TreeViewCancelEventHandler.
3465
3466 2006-12-01  Chris Toshok  <toshok@ximian.com>
3467
3468         * Form.cs: Form.ControlCollection already stores off the
3469         form_owner field.  don't access the base class's internal "owner"
3470         field.
3471
3472         * Control.cs: make all the fields in Control.ControlCollection
3473         private.  there's no need for any internal fields here.
3474
3475 2006-12-01  Chris Toshok  <toshok@ximian.com>
3476
3477         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3478         OnHandleCreated.  Fixes bug #80109.
3479
3480 2006-12-01  Chris Toshok  <toshok@ximian.com>
3481
3482         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3483         SplitContainer.cs, Control.cs, StatusStrip.cs,
3484         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3485         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3486         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3487         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3488         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3489         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3490         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3491         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3492         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3493         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3494
3495         do most of the work to convert our code over to use
3496         System.ComponentModel.Component.Events for
3497         adding/removing/dispatching events.
3498
3499
3500 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3501
3502         * DataGridView.cs: Fix an ArgumentNullException reported 
3503         twice today in IRC.
3504
3505 2006-11-30  Mike Kestner  <mkestner@novell.com>
3506
3507         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3508         grabbed listbox.  Fixes #80036 and #80101.
3509
3510 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3511
3512         * Message.cs: Changed ToString() to match MS.
3513         
3514 2006-11-30  Jackson Harper  <jackson@ximian.com>
3515
3516         * TextBoxBase.cs: You can still change the selected text on a read
3517         only textbox.
3518         * TextControl.cs: Lower magic number for wrap calculations. This
3519         lets text get closer to the right (far) edge.
3520
3521 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3522
3523         * Control.cs: Tweak 2.0 layout properties.
3524         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3525         * TextRenderer.cs: Add a new overload.
3526         * ToolStrip*: Huge amount of changes and new features.
3527
3528 2006-11-30  Mike Kestner  <mkestner@novell.com>
3529
3530         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3531         scroll range correct.  Fixes #79994.
3532
3533 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3534
3535         * MdiWindowManager.cs: Update main form's text when
3536         a form is closed. (fixes #80038)
3537         
3538 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3539
3540         * ToolBar.cs:
3541         - Fix an regression in ButtonSize.
3542         - Get ImeMode default value change to "Disable".
3543         - Get ShowTooltips default value change to true, default value is 
3544         "false" but after make a test in .NET we get "true" result as default.
3545         
3546 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3547
3548         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3549
3550 2006-11-29  Chris Toshok  <toshok@ximian.com>
3551
3552         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3553         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3554         SetWindowTransparency hasn't been called.
3555
3556 2006-11-29  Chris Toshok  <toshok@ximian.com>
3557
3558         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3559         if it's supported.
3560         (set_AllowTransparency): reorder things a little so that the
3561         WS_EX_LAYERED style is removed properly.
3562
3563 2006-11-29  Chris Toshok  <toshok@ximian.com>
3564
3565         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3566         
3567         * Form.cs: only call the XplatUI transparency method (get/set) if
3568         SupportsTransparency says it's supported. Otherwise fallback to
3569         doing nothing (in the set case) or returning the instance field we
3570         cache (in the get case).
3571
3572         * XplatUIStructs.cs: add TransparencySupport flag enum.
3573         
3574         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3575         change to SupportsTransparency.
3576
3577         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3578         TransparencySupport.None from SupportsTransparency.
3579
3580         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3581         TransparencySupport.Set from SupportsTransparency.
3582
3583         * XplatUIWin32.cs: implement GetWindowTransparency calling
3584         GetLayeredWindowAttributes, and implement SupportsTransparency by
3585         checking whether or not both
3586         GetWindowTransparency/SetWindowTransparency are available
3587         entrypoints.  We need to do this since SetWindowTransparency is
3588         available as of win2k, but GetWindowTransparency requires winxp.
3589         yay win32 api.
3590
3591         * XplatUI.cs: Add GetWindowTransparency, and change
3592         SupportsTransparency to allow for either/both Get/Set.
3593
3594 2006-11-29  Chris Toshok  <toshok@ximian.com>
3595
3596         * DataGrid.cs: keep from going into an infinite loop redrawing a
3597         datagrid that has no datasource.  Fixes bug #80033.
3598
3599 2006-11-29  Chris Toshok  <toshok@ximian.com>
3600
3601         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3602         Invalidate) before the mainmenu has been assigned to a control.
3603
3604 2006-11-29  Chris Toshok  <toshok@ximian.com>
3605
3606         * DataGrid.cs: detect when we should be double the double click
3607         row/column autosize stuff, although that codepath has yet to be
3608         written.  part of the work for bug #79891.
3609
3610 2006-11-29  Chris Toshok  <toshok@ximian.com>
3611
3612         * Binding.cs (SetControl): fix unit test.
3613
3614 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3615
3616         * PageSetupDialog.cs: Validate the margins and set them in
3617         PageSettings. 
3618         * NumericTextBox.cs: New class to mimic the behavior of the
3619         textboxes used in the printing dialogs.
3620
3621 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3622         
3623         * Form.cs: Revert previous change (remove call UpdateBounds
3624         from form constructor), because it messes with the handle creation
3625         order, and that one needs lots and lots of love.
3626         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3627         for valid printer and throw InvalidPrinterException if document
3628         is set but printer not valid), adding a MonoTODO. Once 
3629         handle creation is done properly, we can put this back in.
3630
3631 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3632
3633         * MenuItem.cs: Create a invalidate method for menu item, to be
3634         calling from set text, it make text changes to imadiate update
3635         on screen. Fixes #80013. 
3636         
3637 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3638
3639         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3640         fixes bug #80070 and some other problem on toolbar buttons
3641         layout.
3642
3643 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3644
3645         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3646         with dotted brush.      Fixes #79564
3647         
3648 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3649
3650         * Form.cs: Removed call to UpdateBounds on Form
3651         constructor, it was causing a call to CreateHandle
3652         before it was supposed to.
3653         * PrintControllerWithStatusDialog: Applied patch
3654         by Chris Toshok to hide controller when there are
3655         no printers available.
3656         PrintDialog.cs: initialize printer settings to 
3657         null - correct DefaultValues test #5
3658         * PrintPreviewControl.cs: Move PrintController
3659         initialization to GeneratePreview
3660         * PrintPreviewDialog.cs: 
3661         - Remove Preview generation     from Document_set(). It is 
3662         called on OnPaint
3663         - Throw InvalidPrinterException on CreateHandle if
3664         a Document is set but there are no printers or 
3665         printer is not valid.
3666         * ThemeWin32Classic: don't paint PrintPreviewControl
3667         if there is nothing to paint    
3668
3669 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3670
3671         * Form.cs: Add another popular method.
3672
3673         * TabPage.cs: ditto.
3674
3675 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3676
3677         * MenuItem.cs: Fixed a warning.
3678         * InternalWindowManager: Fixed a warning.
3679
3680 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3681
3682         * MenuItem.cs:
3683         - When cloning a menu also clone MdiList and clone the 
3684           window menu items properly (as the forms and menuitems
3685           are kept in an internal hashtable, these need updating 
3686           as well)
3687         - Rewrote the window menu code, menu items are added in the
3688           order the forms were added to their parent, and they are
3689           updated every time the window menu is shown (before the
3690           list was only generated once, in the current order of the
3691           forms, and would never be updated). A checkmark is shown
3692           next to the item corresponding to the active mdi child.
3693
3694 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3695
3696         * XplatUIStructs.cs: 
3697         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3698         
3699         * XplatUIWin32.cs: 
3700         - Added TME_NONCLIENT to TMEFlags.
3701         - Handles WM_NCMOUSEMOVE in GetMessage to 
3702           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3703
3704         * MdiWindowManager:
3705         - Now merges mdi child menu to parent menu when maximized.
3706         - Recalculate NC areas of both mdi child and mdi parent. 
3707           Fixes #79757 (4).
3708           on window state and size changes.Fixes #79844 (3).
3709         - Handle WM_NCCALCSIZE to properly calculate borders.
3710
3711         * Form.cs:
3712         - Add/remove to the mdi containers list of mdi children 
3713           in the order they are added.
3714         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3715           to the maximized mdi child.
3716         
3717         * InternalWindowManager.cs:
3718         - Only execute a click on the control buttons on the mouse up,
3719           not on the mouse down. Show the state of the button 
3720           (was only showing Normal state, never Pressed state). The
3721           pressed button now follows the mouse (if you click the Close 
3722           button and move the mouse over the Maximize button, the 
3723           Maximize button will be shown as pressed). Since Win32 does
3724           not generate WM_NCLBUTTONUP if you release the button outside
3725           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3726           it as a mouse up.
3727         
3728         * ThemeWin32Classic.cs:
3729         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3730
3731         * MdiClient.cs:
3732         - Added a list of forms which contains the order the forms are
3733           added to the mdi parent.
3734         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3735         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3736         - If the active form changes set the scrollbars to the top
3737           of the Z order, otherwise the form could hide them.
3738         - Scrollbars are now sized according to ClientSize, not 
3739           to Size, and they take into account the other scrollbar
3740           to determine maximum.
3741         
3742 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3743         
3744         * XplatUI.cs:
3745         * XplatUIDriver.cs:
3746         * XplatUIX11.cs:
3747         * XplatUIWin32.cs:
3748         * XplatUIOSX.cs:
3749         - Added RequestAdditionalWM_NCMessages for windows to 
3750           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3751           Currently only implemented in XplatUIWin32.
3752
3753 2006-11-27  Chris Toshok  <toshok@ximian.com>
3754
3755         * Hwnd.cs: only add the hwnd to the windows hash in
3756         set_WholeWindow and set_ClientWindow if whole_window/client_window
3757         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3758
3759 2006-11-27  Mike Kestner  <mkestner@novell.com>
3760
3761         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3762         from the ComboListBox.ShowWindow code. Fixes #79969.
3763
3764 2006-11-27  Chris Toshok  <toshok@ximian.com>
3765
3766         * Hwnd.cs: remove the setters for ExposePending and
3767         NCExposePending - noone uses them.
3768
3769 2006-11-27  Jackson Harper  <jackson@ximian.com>
3770
3771         * TextControl.cs: new param for ReplaceSelection which determines
3772         whether we select the new selection, or set the cursor to the end
3773         of the new selection.
3774         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3775         pasting, select the new text.
3776         * RichTextBox.cs: Use new param for ReplaceSelection.
3777
3778 2006-11-27  Jackson Harper  <jackson@ximian.com>
3779
3780         * TextBoxBase.cs: Set the selection to the caret after the caret
3781         is moved, otherwise they get out of sync.
3782
3783 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3784
3785         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3786         it fixes #80015
3787
3788 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3789
3790         * ThemeWin32Classic.cs: 
3791         - Fix toolbar drop down arrow position.
3792         - Fix drop down appearance when ToolBar.Appearance is normal,
3793         it fixes #80018.
3794         
3795 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3796
3797         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3798         * Control.cs: Same.
3799         * UpDownBase.cs: Same.
3800         * ButtonBase.cs: Same.
3801         * ScrollBar.cs: Same.
3802         * TrackBar.cs: Same.
3803         * PictureBox.cs: Same.
3804         * UserControl.cs: Same.
3805         * Label.cs: Same.
3806         * ListControl.cs: Same.
3807         * TextBoxBase.cs: Same.
3808         * ListView.cs: Same.
3809         * RichTextBox.cs: Same.
3810         * TreeView.cs: Same.
3811
3812 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3813
3814         * PrintDialog.cs:
3815         - Text label for where 
3816         - Text label comment was not shown
3817
3818 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3819
3820         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3821
3822 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3823
3824         * InternalWindowManager.cs: 
3825         - Handle WM_PARENTNOTIFY to activate the form
3826         if any child control is clicked.
3827         - The form is only sizable if not minimized.
3828
3829         * MdiWindowManager.cs:
3830         - Save the IconicBounds if the form is moved.
3831         - Rework SetWindowState, now the window bounds 
3832         are stored only if the old window state is Normal.
3833         
3834         * MdiClient.cs:
3835         - In SetWindowStates store the old window state if 
3836         the window is maximized and restore window state if
3837         the window looses focus.
3838         - Don't handle any scrollbar value changes if 
3839         initializing the scroll bars. Fixes #79771.
3840         - Reworked ArrangeIconicWindows. Current algorithm
3841         tests bounds agains all other minimized windows, if
3842         any intersections create new bounds (going left to 
3843         right, bottom to top) and then test again. When 
3844         successful the bounds are saved and never computed
3845         again. Fixes #79774.
3846
3847 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3848
3849         * InternalWindowManager.cs: Added HandleTitleBarUp.
3850
3851 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3852
3853         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3854         hexadecimal in ParseUserEdit.
3855
3856         
3857 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3858
3859         * MdiWindowManager.cs: 
3860         - Handle a click on the form's icon to show the 
3861         system menu (when maximized). Fixes #79775.
3862         - Change the existing click handler for the form's
3863         icon when not maximized to show on MouseUp.
3864         Fixes #79776.
3865
3866         * Form.cs: In OnResize only layout the mdi child's
3867         parent if it actually has a parent. Might not if
3868         the window is closing.
3869
3870
3871 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3872
3873         * MdiClient.cs: Ignore active MDI client for text of parent, if
3874         child has no text set.
3875
3876 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3877
3878         * ToolBar.cs: Fixed ToString to match MS.
3879
3880 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3881
3882         * NumericUpDown: 
3883         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3884         update inner values on set. Fixes #79966.
3885         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3886         - Fix hexadecimal parsing.
3887         
3888         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3889         parent. Fixes #79957
3890
3891 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3892
3893         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3894         the actual size has to be queried, since if height /
3895         width is negative Win32 changes it to 0. 
3896         Fixes #79999 on Windows.
3897         
3898         * XplatUIX11.cs: Set height / width to 0 if negative
3899         in SetWindowPos. Fixes #79999 on Linux.
3900         
3901 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3902
3903         * ThemeWin32Classic.cs: Fix text redenring when button is
3904         pressed.
3905
3906 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3907
3908         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3909         and later navigate by mouse. Fixes #79528.
3910
3911 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3912
3913         * ToolBar.cs: Set default value for TabStop to false in
3914         constructor, it fixes remaining behavior of bug #79863.
3915
3916 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3917
3918         * MdiWindowManager.cs:
3919         * InternalWindowManager.cs:
3920         - Moved a few methods specific to Mdi from 
3921         InternalWindowManager to MdiWindowManager.
3922         Fixes #79996.
3923         
3924 2006-11-21  Chris Toshok  <toshok@ximian.com>
3925
3926         * XplatUIOSX.cs: stub out InvalidateNC.
3927
3928         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3929         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3930
3931         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3932
3933         * XplatUIDriver.cs: add InvalidateNC abstract method.
3934
3935         * XplatUI.cs: add InvalidateNC.
3936
3937 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3938
3939         * ToolBar.cs: Invalidate complete button area when pressed status 
3940         was changed.
3941         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3942         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3943         by 1 when button is pressed.
3944
3945 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3946
3947         * ToolButton.cs: Invalidate middle of DropDown button when
3948         ToolBar theres DropDownArrows.
3949         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3950         fix DropDown drawing operations.
3951
3952 2006-11-20  Chris Toshok  <toshok@ximian.com>
3953
3954         * NativeWindow.cs: fix the formatting of functions ('{' on the
3955         following line), and enable the thread exception dialog.
3956
3957         * Application.cs: remove the duplicate exception catching from
3958         here.
3959
3960 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3961
3962         * Toolbar.cs: Triggers button click event when click on icon
3963         of dropdown ToolBarButton. Fixes #79912.
3964         
3965 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3966
3967         * Theme.cs:
3968         * ThemeWin32Classic.cs:
3969         - Added a property WindowBorderFont to enable themeing
3970           of mdi child windows' Text.
3971           
3972 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3973
3974         * InternalWindowManager.cs:
3975         * Form.cs:
3976         * MdiClient.cs:
3977         * MdiWindowManager.cs: 
3978         - If mdi child is maximized, set mdi parent's
3979           text to "Parent - [Child]". Fixes #79770.
3980         - If there is any maximized mdi child windows, only the active 
3981           window (and any new windows) is maximized, the rest are normal.
3982         - On a WindowState change only save mdi child's window bounds 
3983           if the old window state was normal. Fixes #79774.
3984         - The scroll bars are now calculated on hopefully all
3985           necessary events. Fixed #79771 / #79844->6 / #79906.
3986         - MdiClient.SizeScrollBars() now takes into account docked 
3987           controls in the parent when calculating available space.
3988         - InternalWindowManager now always repaints the entire title
3989           area. Fixes #79844->1/4/5.
3990         - Added RequestNCRecalc on mdi child windowstate changes.
3991           Fixes #79772.
3992
3993 2006-11-20  Mike Kestner  <mkestner@novell.com>
3994
3995         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
3996         in the MouseUp handler of the listbox and move the return handling
3997         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
3998
3999 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4000
4001         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
4002
4003 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4004
4005         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
4006           working in 1.2.x anymore. So, updated.
4007
4008 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
4009
4010         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
4011         NumberGroupSeparator of current culture instead of assuming en-US.
4012         Fixed bug #79967.
4013
4014 2006-11-17  Mike Kestner  <mkestner@novell.com>
4015
4016         * Control.cs: Add the concept of implicit bounds setting so that
4017         dock/undock round trips preserve explicitly set size/locations.
4018         Fixes #79313.
4019
4020 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4021
4022         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
4023           can't handle those filters. (Fixes bug #79961)
4024
4025 2006-11-17  Chris Toshok  <toshok@ximian.com>
4026
4027         [ fixes the exit/crashes associated with #79835.  it's clearly
4028         suboptimal though, we need to figure out a better way to solve
4029         this. ]
4030         
4031         * PrintPreviewControl.cs: deal with the new invalid printer
4032         exceptions.
4033
4034         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4035         and return false (so CommonDialog.ShowDialog doesn't actually show
4036         the form.)
4037
4038         * PrintDialog.cs: enable/disable the Ok button depending on
4039         whether or not the printer is valid.
4040
4041         * CommonDialog.cs (ShowDialog): only actually show the form if
4042         RunDialog returns true.
4043
4044 2006-11-17  Jackson Harper  <jackson@ximian.com>
4045
4046         * TextControl.cs: When soft splitting a line, mark it as a soft
4047         split line. Also carry over the current line break to the next
4048         line.
4049
4050 2006-11-17  Chris Toshok  <toshok@ximian.com>
4051
4052         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4053         only want to shift the part of the invalid area that overlaps the
4054         area we're scrolling.  we also don't want to clear the invalid
4055         area unless the invalid area was entirely contained within the
4056         scrolling area.
4057
4058 2006-11-16  Chris Toshok  <toshok@ximian.com>
4059
4060         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4061         also make sure to free the memory returned by XGetWindowProperty
4062         in GetText().
4063
4064         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4065
4066 2006-11-16  Chris Toshok  <toshok@ximian.com>
4067
4068         * XplatUI.cs: add a new super secret way to get at the totally
4069         unsupported X11 backend.
4070
4071 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4072
4073         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4074
4075 2006-11-16  Jackson Harper  <jackson@ximian.com>
4076
4077         * TreeView.cs: Allow more explicit setting of top node position
4078         for scrollbars. Slower algo, but more accurate.
4079         - CollapseAll should maintain the current top node.
4080         * TextBoxBase.cs: When positioning the caret, use the line, pos
4081         method, since the x, y method does not grab the correct tag, and
4082         the caret height never gets set correctly. (Maybe I should just do
4083         away with the caret having its own height, and always use the
4084         carets current tag for height).
4085
4086 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4087
4088         [Fixes 79778, 79923]
4089
4090         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4091         Parent to the FosterParent instead.
4092
4093 2006-11-16  Jackson Harper  <jackson@ximian.com>
4094
4095         * TreeView.cs: Need to recalc the topnode when we expand or
4096         collapse. The scrolling methods can't handle this on their own,
4097         since they use differences between the last scroll position, and
4098         those difference get completely messed up since we are expanding
4099         nodes.  This problem should probably be fixed in the scrolling
4100         methods, so they can figure out exactly where they are, but this
4101         will slow things down a little.
4102         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4103         strings, makes nunit-gui look a lot nicer.
4104
4105 2006-11-16  Chris Toshok  <toshok@ximian.com>
4106
4107         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4108         the broken multithreaded event handling we have in here.  File
4109         this entry under "Why we should move to the new X11 backend".
4110
4111         Any thread can make it into UpdateMessageQueue, which gets events
4112         from the X socket - some of which could belong to hwnds being
4113         managed by a different thread.  We can also have multiple threads
4114         in UpdateMessageQueue at the same time, with each one reading from
4115         the X socket.  This leads to many problems, with the following
4116         solutions:
4117
4118         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4119         EnqueueLocked.
4120
4121         The MotionNotify compression we do can't work across threads
4122         (without locking the entire queue, perhaps) since we call
4123         hwnd.Queue.Peek, so we just punt and don't compress motion events
4124         unless the owning thread is the one which got the X event.
4125
4126         ConfigureNotify is another fun one, since it modifies the hwnd's
4127         bounds and then enqueues the event.  We add a lock to Hwnd which
4128         is held when setting configure_pending to true (and enqueuing the
4129         event).
4130
4131         There is a race wrt the wake socket.  we need to make sure that
4132         only 1 thread is waiting on that socket, or else a thread could
4133         sleep waiting for data that never comes.  It's difficult (but not
4134         impossible) to make happen, because it seems to require something
4135         like the following:
4136
4137             1. Thread 1 polls on wake_receive
4138         
4139             2. poll returns saying there's data to be read on
4140                wake_receive.
4141         
4142             3. Thread 2 polls on wake_receive and immediately returns
4143                saying there's data to be read.
4144
4145             4. Thread 2 reads the wakeup byte from wake_receive
4146
4147             5. Thread 1 attempts to read the wakeup byte from
4148                wake_receive.
4149
4150             6. Thread 2 exits (due to a form closing, perhaps).
4151
4152             7. Thread 1 blocks forever.
4153         
4154         Fun, eh?
4155
4156         Fixing the Expose handling isn't done yet, and the races inherent
4157         in that piece of code are responsible for the drawing mistakes you
4158         see when generating expose events in a MT app (like NPlot).  This
4159         one is the likely to be the hardest to bandaid, and it doesn't
4160         appear to cause anything but drawing problems.  The other issues
4161         caused apps to exit or hang.
4162
4163         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4164         called from a different thread than the one that should be calling
4165         these functions.
4166
4167         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4168
4169 2006-11-15  Chris Toshok  <toshok@ximian.com>
4170
4171         * Application.cs: null out the context's MainForm when we exit
4172         RunLoop.  Fixes a newly checked in unit test as well as the last
4173         ODE from bug #79933.
4174
4175 2006-11-15  Chris Toshok  <toshok@ximian.com>
4176
4177         * Form.cs (set_Owner): allow a null value so we can clear the
4178         form's owner.
4179         (Dispose): set all our owned_form's Owner properties to null, and
4180         clear the owned_forms collection.
4181         (WM_CLOSE): clean up this a little bit.. still not right though.
4182
4183         * ApplicationContext.cs: OnMainFormClosed should only call
4184         ExitThreadCore if the main form isn't recreating.  Fixes unit
4185         test.
4186
4187 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4188
4189         [Fixes 78346]
4190
4191         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4192
4193 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4194
4195         [Fixes 79433]
4196
4197         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4198         keep popup window types from stealing focus from the main form
4199         on Windows.
4200
4201         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4202
4203         * MenuAPI.cs: Set above flag to true.
4204
4205 2006-11-15  Chris Toshok  <toshok@ximian.com>
4206
4207         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4208         the button being released is not in wParam.
4209
4210 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4211
4212         * Form.cs: Add the released button to MouseEventArgs.Button
4213         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4214         on Win32.
4215
4216 2006-11-15  Chris Toshok  <toshok@ximian.com>
4217
4218         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4219         GetText().  untested because it's unused in our implementation.
4220         Control.Text always caches the text, even if
4221         ControlStyles.CacheText is not set.
4222
4223         fixes bug #79939.
4224
4225 2006-11-15  Chris Toshok  <toshok@ximian.com>
4226
4227         [ fixes #79933 ]
4228         
4229         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4230         message.  no hiding, no disposing.
4231
4232         in the WM_CLOSE handler, hide the form if it's modal.
4233
4234 2006-11-15  Chris Toshok  <toshok@ximian.com>
4235
4236         * XplatUIX11.cs: use AddExpose instead of sending a message.
4237         fixes textbox border drawing.
4238
4239 2006-11-15  Chris Toshok  <toshok@ximian.com>
4240
4241         * PropertyGridView.cs: keep from crashing on mouse move/down when
4242         the property grid is empty.
4243
4244 2006-11-14  Jackson Harper  <jackson@ximian.com>
4245
4246         * TextControl.cs: Make PageUp and PageDown more like the MS
4247         versions.
4248         * TextBoxBase.cs: When we set the text property position the
4249         cursor at the beginning of the document.
4250
4251 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4252
4253         * Form.cs: if a mdi child's WindowState has changed
4254         before it's creation, it would display wrong control
4255         buttons.
4256         
4257 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4258
4259         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4260           (Fixes bug #79927)
4261
4262 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4263
4264         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4265         the window gets to paint its borders even if the window is
4266         getting smaller.
4267         
4268         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4269         otherwise the old control buttons would still be painted 
4270         if the window gets bigger.
4271         
4272         * PaintEventArgs.cs: add an internal method so that the clip 
4273         rectangle can be changed.
4274         
4275 2006-11-13  Chris Toshok  <toshok@ximian.com>
4276
4277         [ fixes bug #79745 ]
4278         
4279         * NotifyIcon.cs: lots of cleanup.
4280
4281         * X11Structs.cs: add an enum for XEMBED messages.
4282
4283         * XplatUIX11.cs: reindent one of the giant switch statements, it
4284         was taking up an additional tab stop, and this file is already way
4285         too wide for my laptop's screen.
4286
4287         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4288         we get it, resize the hwnd to the WMNormalHints max_width/height.
4289
4290 2006-11-13  Jackson Harper  <jackson@ximian.com>
4291
4292         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4293         teh simple way.
4294
4295 2006-11-13  Chris Toshok  <toshok@ximian.com>
4296
4297         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4298         #79898.  force a reference to the Region to stick around so the
4299         unmanaged object isn't collected (rendering our handle in the MSG
4300         stale).
4301
4302 2006-11-13  Chris Toshok  <toshok@ximian.com>
4303
4304         * XplatUIX11.cs: fix #79917 for window managers which support
4305
4306         using XStoreName on the raw utf8, and we need to convert to
4307         COMPOUND_TEXT if it's non-latin1.
4308
4309 2006-11-13  Chris Toshok  <toshok@ximian.com>
4310
4311         * Form.cs (set_DialogResult): we need to set closing to false if
4312         we're setting our result to None.  fixes bug #79908.
4313
4314 2006-11-13  Jackson Harper  <jackson@ximian.com>
4315
4316         * TextControl.cs: When formatting text, compute the adjusted tag
4317         lengths correctly, using FindTag for the end tag instead of trying
4318         to figure it out outselves.
4319         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4320         the item, ItemHeight doesn't work, because trees with large
4321         imagelists use those for their height
4322         * TreeView.cs: ActualItemHeight factors in the image height
4323         - compute left edge of checkboxes correctly
4324         - when expanding/collapsing move the bottom down one pixel, so we
4325         aren't moving part of the node
4326
4327 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4328
4329         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4330         stack in PaintEventStart so that it won't get disposed by the gc
4331         before reaching PaintEventEnd.
4332
4333 2006-11-13  Jackson Harper  <jackson@ximian.com>
4334
4335         * TextBoxBase.cs: Don't select the word if we are on a line with
4336         no text.
4337         - We don't need to position the caret on mouse up, since the mouse
4338         move handler should be doing this
4339         - When double clicking a blank line, the caret is advanced to the
4340         next line.
4341
4342 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4343
4344         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4345
4346 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4347
4348         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4349         Fixes part of bug #79910.
4350
4351 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4352
4353         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4354           (bug #79903). Some minor string updates to match ms.
4355
4356 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4357
4358         * FileDialog.cs: Don't add an extension if the filename
4359           already ends with that extension.
4360
4361 2006-11-10  Jackson Harper  <jackson@ximian.com>
4362
4363         * TreeView.cs: Use the currently highlighted node for the
4364         BeforeSelect event.
4365         * TextBoxBase.cs: There is no need to expand selection on
4366         MouseMove.
4367         - CanUndo means 'is there any undo operations', not 'is undo
4368         allowed on this textcontrol. Fixed ClearUndo unit test.
4369
4370 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4371
4372         * Button.cs: only perform click when button is Selectable (so as 
4373         not to activate default buttons when they're disabled)
4374         
4375         * Control.cs: Rewrite of the SelectNextControl and related 
4376         methods. HandleClick now selects next control if the current one
4377         is being disabled.
4378         
4379         * Form.cs: OnActivated selects next active control only if Load 
4380         has already occurred. If Load hasn't run, there's no point in 
4381         selecting here, Load might change the state of controls.
4382         
4383         * FocusTest.cs: Tests marked as working again for these fixes
4384
4385 2006-11-10  Chris Toshok  <toshok@ximian.com>
4386
4387         * XplatUIX11.cs: a couple of fixes.
4388
4389         - use XInternAtoms with almost all the atoms we need to register,
4390         instead of many, many calls to XInternAtom.  should help a bit on
4391         startup time, at the expense of making the code look a little
4392         worse.
4393
4394         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4395         isn't reparented (which seems to be a clue that we're running fon
4396         compiz) and they have an Owner form.  This fixes the tool windows
4397         in paint.net when running under compiz.
4398
4399         - when setting the opacity of a window, support both the case
4400         where the window has been reparented and also when it hasn't been.
4401         Since compiz/beryl doesn't seem to reparent windows, and these are
4402         the only window managers which support translucency, I'm not sure
4403         why we need the hwnd.reparented case at all.. but leave it in.
4404         now we get translucent windows in paint.net under compiz/beryl.
4405
4406 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4407
4408         * FileDialog.cs: Always return the value for FilterIndex that
4409           was set. Internally convert it to values that make sense.
4410
4411 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4412         
4413         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4414
4415 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4416
4417         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4418         signature still using false to make it compatible with MS but the 
4419         initial value is true. Fixes #79855.
4420
4421 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4422
4423         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4424           only available on Linux.
4425
4426 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4427
4428         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4429         reduce number of calls to redraw method during toolbar creation.
4430
4431 2006-11-09  Mike Kestner  <mkestner@novell.com>
4432
4433         * ListView.cs : raise SelectedIndexChanged when an item is selected
4434         programmatically via the Item.Selected property.  Gert's nice 
4435         ListViewSelectedIndexChanged test fixture now runs clean.
4436
4437 2006-11-09  Mike Kestner  <mkestner@novell.com>
4438
4439         * ListView.cs : raise SelectedIndexChanged when a selected item is
4440         removed from the item collection using Remove or RemoveAt.
4441
4442 2006-11-09  Mike Kestner  <mkestner@novell.com>
4443
4444         * ListView.cs : raise SelectedIndexChanged once per selected item
4445         for compat with MS.  Fixes #79849+.
4446
4447 2006-11-09  Chris Toshok  <toshok@ximian.com>
4448
4449         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4450         we need to (if we have any tab pages).  Fixes unit test.
4451
4452 2006-11-09  Chris Toshok  <toshok@ximian.com>
4453
4454         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4455         width is 0, not 3.  Fixes a unit test.
4456
4457 2006-11-09  Mike Kestner  <mkestner@novell.com>
4458
4459         * ListView.cs : use Implicit scrollbars so that focus isn't 
4460         stolen from the listview when they are clicked. Fixes #79850.
4461
4462 2006-11-09  Chris Toshok  <toshok@ximian.com>
4463
4464         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4465         have a root item.  Fixes #79879.
4466
4467 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4468
4469         * FileDialog.cs:
4470           - Fix ToString ()
4471           - An ArgumentException is now thrown if a wrong filter
4472             is applied (matches ms). The previous filter doesn't change
4473             anymore if an exception is thrown.
4474           - Changing the FileName property also affects FileNames
4475         * ColorDialog.cs: The length of the CustomColors array is always
4476           16. It doesn't matter if we use a smaller array or null to update
4477           or change the custom colors property.
4478         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4479           for RootFolder if we get a undefined value.
4480
4481 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4482
4483         * StatusBarPanel.cs: 
4484         - Width is set to MinWidth if Width is smaller than
4485         MinWidth. Fixes #79842.
4486         - MinWidth now always overrides Width (MSDN says MinWidth
4487         is set to Width when AutoSize = None, but they do not 
4488         behave like that).
4489         - Style has now the the correct default value.
4490         
4491 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4492  
4493         * TrackBar.cs: 
4494         - The control is completely invalidated on 
4495         Got/LostFocus to draw the focus rectangle correctly.
4496         - When AutoSize then height is always 45 (width for 
4497         vertical controls).
4498         
4499         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4500         on the mouse when moved and it doesn't move when grabbed
4501         until the mouse moves as well. Also fixed some wrong 
4502         calculations when clicking on the thumb (control thought
4503         click was outside of thumb and didn't grab it).
4504         Fixes some of the issues in #79718.
4505
4506 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4507
4508         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4509
4510 2006-11-08  Chris Toshok  <toshok@ximian.com>
4511
4512         * PropertyGridView.cs: only call ToggleValue if the item is not
4513         readonly.
4514
4515 2006-11-08  Jackson Harper  <jackson@ximian.com>
4516
4517         * TextBoxBase.cs: The RichTextBox and textbox have very different
4518         word selection methods.  Implement the textbox's simple word
4519         selection here, and let the RichTextBox override and provide it's
4520         own.
4521         - Don't do extra selection on mouseup
4522         * RichTextBox.cs: Use the documents word selection algorithm, I
4523         think ideally, this function will be pulled into the
4524         RichTextBox.cs code someday.
4525
4526 2006-11-08  Chris Toshok  <toshok@ximian.com>
4527
4528         * RootGridEntry.cs: new class to represent GridItemType.Root.
4529
4530         * CategoryGridEntry.cs: reformat, and add boilerplate.
4531         
4532         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4533         returns the UI parent anyway, and we need special handling to
4534         implement the GetTarget method in the face of it.  Also, implement
4535         Select().
4536
4537         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4538         a root grid item, and use that instead of PropertyGrid.grid_items.
4539         Also, make use of TypeConverters (and add limitted support for
4540         ICustomTypeDescriptors) when initially populating the grid.
4541         Arrays now show up more or less properly.
4542
4543 2006-11-08  Chris Toshok  <toshok@ximian.com>
4544
4545         * Application.cs: set the modal dialog to non modal after we close
4546         it.  Fixes bug #79866.
4547
4548 2006-11-08  Jackson Harper  <jackson@ximian.com>
4549
4550         * TextControl.cs: When combining lines carry over the line end
4551         style from the end line.
4552         - Invalidate the selected area when setting it, if it is visible.
4553         * TextBoxBase.cs: Only rich text box can do full line selects.
4554         - Make sure to set the cursor position when there is a click,
4555         otherwise two clicks in separate areas could cause a large chunk
4556         to be selected.
4557
4558 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4559
4560         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4561         Fixes #79863.
4562
4563 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4564
4565         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4566         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4567
4568 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4569
4570         * MenuAPI.cs: Ignore right click for menu actions and fixes
4571         menu border when clicked.  Fixes #79846.
4572
4573 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4574
4575         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4576         MouseState after create wParam for message, this fixes mouse button 
4577         equal none in mouse up events.
4578         
4579 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4580
4581         * Control.cs : Focus() now calls Select to set the Container's
4582         Active Control and to give it focus. To avoid infinite recursion
4583         (because ActiveControl also calls Focus at one point), a check 
4584         is made in Focus with the help of a new internal variable
4585         is_focusing.
4586
4587 2006-11-07  Mike Kestner  <mkestner@novell.com>
4588
4589         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4590         if there's a selection.  Fixes #79849.
4591
4592 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4593
4594         * PropertyGrid.cs: Avoid fixed height of help description label.
4595         Fixes part of bug #79829.
4596
4597 2006-11-07  Chris Toshok  <toshok@ximian.com>
4598
4599         * XplatUIX11.cs: fix #79790 again, by using the
4600         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4601
4602 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4603
4604         * ToolBar.cs: Fix left click checking.
4605
4606 2006-11-07  Chris Toshok  <toshok@ximian.com>
4607
4608         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4609
4610 2006-11-07  Chris Toshok  <toshok@ximian.com>
4611
4612         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4613         PropertyManager unit tests.
4614
4615         * PropertyManager.cs: make property_name internal.
4616
4617 2006-11-07  Chris Toshok  <toshok@ximian.com>
4618
4619         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4620         pass a unit test.  Also, don't set image_index to anything in
4621         response to setting the ImageList property.
4622
4623 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4624
4625         * ToolBar.cs: Ignore click events when mouse button is not a
4626         left button, only accepts other button for dropdown menus.  
4627         Fixes #79854.
4628
4629 2006-11-07  Chris Toshok  <toshok@ximian.com>
4630
4631         * DataGrid.cs: make the back and parent row buttons a little less
4632         ugly.
4633
4634 2006-11-07  Jackson Harper  <jackson@ximian.com>
4635
4636         * TextBoxBase.cs: When converting to Text don't put line breaks in
4637         for soft line breaks.
4638         * TextControl.cs: There is an initial "fake" line in the document,
4639         this is now a soft break line, so that an extra line feed doesn't
4640         get added to the end of documents.
4641
4642 2006-11-07  Chris Toshok  <toshok@ximian.com>
4643
4644         [ fix bug #79778 ]
4645         
4646         * CurrencyManager.cs: if the list is readonly, don't bother
4647         checking if IBindingList.AllowNew is true.
4648
4649         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4650         for non-DataRowView datasources..  or rather, make it not crash.
4651         (DataGridPaintRelationRow): make sure we limit the row painting to
4652         the area not covered by the row header, and make our cell width at
4653         least large enough to cover the relation area.  This allows grids
4654         that have relations but no rows to render correctly.
4655         (DataGridPaintRowContents): same type of changes here.
4656         (SetDataSource): move back to always calling
4657         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4658         navigating back through relations.
4659         (HitTest): handle the case where we have no cells but have
4660         relations.  Right now we generate a hit in cell 0 of whatever the
4661         row is, not sure if this is strictly correct, but it works for our
4662         purposes.
4663         
4664         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4665         bother doing anything.
4666
4667 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4668
4669         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4670         early version of StatusStrip.  Not responsible for eaten
4671         application or firstborn children.
4672
4673 2006-11-06  Chris Toshok  <toshok@ximian.com>
4674
4675         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4676         call GetTabRect with a -1 index.  Fixes #79847.
4677
4678 2006-11-06  Jackson Harper  <jackson@ximian.com>
4679
4680         * TreeNodeCollection.cs: Update scrollbars after clearing.
4681
4682 2006-11-06  Chris Toshok  <toshok@ximian.com>
4683
4684         * NumericUpDown.cs: fix the ToString method for some unit test
4685         love.
4686
4687 2006-11-06  Chris Toshok  <toshok@ximian.com>
4688
4689         * PropertyGrid.cs:
4690         - set the initial SelectedGridItem if we can.
4691
4692         - Exclude non-mergable properties only if we're merging > 1
4693         object.  Merging 1 object isn't really merging, obviously.
4694
4695         - Handle PropertySort.NoSort just like Alphabetical, which is
4696         wrong of course, but at least gets things on the screen.
4697         
4698         * PropertyGridView.cs:
4699         - Add method "FindFirstItem" which finds the first property grid
4700         item, so we can select it by default.
4701
4702         - make use of GridEntry.CanResetValue.
4703
4704         - Don't call RedrawBelowItemOnExpansion here anymore, the
4705         individual GridEntry's will do that.
4706
4707         - Remove the ITypeDescriptorContextImpl internal class.
4708         
4709         * GridEntry.cs:
4710         - this class needs to implement ITypeDescriptorContext, as it's
4711         what MS's PropertyDescriptorGridEntry does, which means we can
4712         remove the ITypeDescriptorContextImpl internal class from
4713         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4714
4715         - keep a reference to our PropertyGridView, and move the call to
4716         RedrawBelowItemOnExpansion here from PGV.  This means
4717         programmaticly setting Expanded actually does something visible.
4718
4719         - add a CanResetValue() function which takes into account our
4720         possibly multiple "selected_objects" in the merged case.  Shifting
4721         PropertyGridView to use this method fixes another unreported
4722         crasher found running the test for #79829.
4723
4724         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4725         is updated to reflect this.
4726
4727         * CategoryGridEntry.cs: the ctor takes the PGV now.
4728         
4729 2006-11-06  Jackson Harper  <jackson@ximian.com>
4730
4731         * TextControl.cs: These are 1 based.
4732         * TextBoxBase.cs: When setting the selected text, don't change the
4733         selected text tags, this is done by ReplaceText, just position the
4734         cursor at the end of the new text.
4735
4736 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4737
4738         * ListView.cs: Allow label edit only when, when LabelEdit is
4739           set to true.
4740
4741 2006-11-06  Jackson Harper  <jackson@ximian.com>
4742
4743         * TextControl.cs: If a suitable wrapping position isn't found,
4744         just wrap right in the middle of a word.
4745
4746 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4747
4748         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4749           bug #79820.
4750
4751 2006-11-06  Jackson Harper  <jackson@ximian.com>
4752
4753         * TreeView.cs: Can't use the VisibleCount property when setting
4754         scrollbar heights, because this doesn't take into account whether
4755         or not the horz scrollbar just came visible.
4756
4757 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4758
4759         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4760         activated.  Fixes #79369, #79832.
4761
4762 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4763
4764         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4765           had to remove support for links that point to a directory. FileInfo
4766           returns no usefull information (means, the directory they point to)
4767           for such links. Replaced some empty string ("") with String.Empty.
4768
4769 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4770
4771         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4772         NullReferenceException when attempting to remove node that is not in
4773         collection. Throw NullReferenceException when null is passed to 
4774         Remove. Allow first element of the collection to be removed. Fixes
4775         bug #79831.  In GetEnumerator ().Current return null if positioned 
4776         before the first element of the collection. In GetEnumerator ().Reset,
4777         position before first element of the collection.
4778
4779 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4780
4781         * PropertyGrid.cs: To match MS, remove default title and description
4782         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4783         buttons.
4784
4785 2006-11-04  Chris Toshok  <toshok@ximian.com>
4786
4787         * Theme.cs: add a Clamp method, just for kicks.
4788
4789         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4790
4791 2006-11-04  Chris Toshok  <toshok@ximian.com>
4792
4793         * Form.cs: if the form isn't visible, Close() does nothing.
4794
4795 2006-11-03  Chris Toshok  <toshok@ximian.com>
4796
4797         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4798         Hide it.
4799         (WndProc): don't Dispose after handling the WM_CLOSE message.
4800
4801         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4802         them as such, instead of using casts from Control to Form.  Also,
4803         don't Dispose of the modal dialog when we fall out of the loop -
4804         Close() it instead.
4805
4806         fixes bug #79813.
4807
4808 2006-11-03  Chris Toshok  <toshok@ximian.com>
4809
4810         * Control.cs (Dispose): only go through the dispose thing if we're
4811         @disposing, and we haven't already been disposed.  Fixes bug
4812         #79814.
4813
4814         * Form.cs: no reason to call "base.Dispose()" here instead of
4815         "Dispose()".
4816
4817 2006-11-03  Mike Kestner  <mkestner@novell.com>
4818
4819         * ComboBox.cs : use ToString instead of casts in AddItem for
4820         sorting functionality.  Fixes #79812.
4821
4822 2006-11-03  Chris Toshok  <toshok@ximian.com>
4823
4824         * Application.cs: pave the way for actually using the thread
4825         exception dialog.  it's ifdefed out at the moment.
4826
4827 2006-11-03  Chris Toshok  <toshok@ximian.com>
4828
4829         * ThreadExceptionDialog.cs: until we get a better layout, actually
4830         hide the details textbox and label when we shouldn't see them.
4831
4832 2006-11-03  Jackson Harper  <jackson@ximian.com>
4833
4834         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4835         multiline textboxes anymore.  This method also determines the
4836         width/height of a textboxes canvas area.
4837         - Sorta a revert of the last patch.  For multiline just position
4838         the controls, then bail.  This way the scrollbar width won't be
4839         altered.
4840
4841 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4842
4843         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4844         it dont need.  Fixes #79537.
4845
4846 2006-11-02  Jackson Harper  <jackson@ximian.com>
4847
4848         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4849         send the status after firing the DndOver event.
4850
4851 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4852
4853         * TrackBar.cs: Now orientation only switches height / width if
4854         the control's handle is created (Win32 does it like this). Also 
4855         fixed a typo in ToString() for a test to pass, changed the 
4856         exception thrown in set_LargeChange and set_SmallChange to 
4857         match Win32 behaviour, and added TrackBar tests to the unit 
4858         tests.
4859
4860 2006-11-02  Chris Toshok  <toshok@ximian.com>
4861
4862         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4863         not _NET_WM_STATE_NO_TASKBAR.
4864
4865 2006-11-02  Jackson Harper  <jackson@ximian.com>
4866
4867         * TextControl.cs: Increment count by one, since in the update view
4868         count - 1 is used.
4869
4870 2006-11-02  Jackson Harper  <jackson@ximian.com>
4871
4872         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4873         the mouse is in the client rectangle (duh).
4874
4875 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4876         
4877         * TrackBar.cs: Fixed trackbar jumping around when clicking
4878         on it - the trackbar was not detecting correctly at which
4879         side of the thumb the click was done. (fixes #79718)
4880
4881 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4882
4883         * ListBox.cs: scroll visible area when change SelectedIndex to
4884         a non visible area.  Fixes #79481.
4885
4886 2006-11-01  Jackson Harper  <jackson@ximian.com>
4887
4888         * TextControl.cs: When replacing the selection move the selection
4889         start/end/anchor to the end of the new text.
4890
4891 2006-11-01  Jackson Harper  <jackson@ximian.com>
4892
4893         * XplatUIWin32.cs: When setting the parent change the controls
4894         visibility to it's visibility flag, not to it's old parents
4895         visibility (.Visible walks the parent chain).
4896
4897 2006-11-01  Chris Toshok  <toshok@ximian.com>
4898
4899         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4900         XSetTransientForHint fix breaks paint .net's tool windows.  more
4901         work needed for that one.
4902
4903 2006-11-01  Chris Toshok  <toshok@ximian.com>
4904
4905         * ScrollBar.cs: throw ArgumentException instead of Exception in
4906         LargeChange/SmallChange setters.  fixes unit tests.
4907
4908 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4909
4910         * ContainerControl.cs: reverted rev.67183 (which was itself
4911         a reversion of rev.66853... eh).
4912         
4913         * Control.cs: Fixes Reflector hang by changing Focus() call
4914         to what it was before rev.66643 (calling Select() here sets 
4915         ActiveControl, which in some situations calls back Focus and 
4916         eventually does a stack overflow). Temp fix.    
4917         Changes to GetNextControl() to not look for children to select when
4918         parent cannot be selectable (so it looks for siblings instead)  
4919         
4920 2006-10-31  Mike Kestner  <mkestner@novell.com>
4921
4922         * CheckedListBox.cs : off by one error in returned index from
4923         ObjectCollection.Add.  Fixes #79758.
4924
4925 2006-10-31  Chris Toshok  <toshok@ximian.com>
4926
4927         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4928         calls for the textbox/spinner, to keep from recursing to the point
4929         where we crash.  Fixes #79760.
4930
4931 2006-10-31  Chris Toshok  <toshok@ximian.com>
4932
4933         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4934         null/"" value, just return.  matches ms's behavior and fixes some
4935         failing tests.
4936
4937 2006-10-31  Chris Toshok  <toshok@ximian.com>
4938
4939         * Control.cs (set_Capture): make a logic a little easier to
4940         follow.
4941
4942         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4943         if it's being destroyed.  A necessary fix surely, but a bandaid
4944         also, to fix the stuck capture problem in bug #78413.
4945
4946 2006-10-31  Chris Toshok  <toshok@ximian.com>
4947
4948         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4949         convention of clearing hwnd.ClientRect when we set the
4950         width/height (so it'll be recalculated by Hwnd).
4951
4952 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4953
4954         * ContainerControl.cs: reversed Contains check from
4955         ActiveControl due to hanging problems. This fix
4956         partly regresses #79667 (button does not have
4957         initial focus), so this might be a symptom for 
4958         a larger parenting problem (set_ActiveControl
4959         is being called but the child control does
4960         not have the parent set yet?)   
4961         
4962 2006-10-31  Mike Kestner  <mkestner@novell.com>
4963
4964         * MenuAPI.cs : fix keynav when menu is click activated.
4965
4966 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
4967
4968         * ToolStrip*: Version 0.2.
4969
4970         * MenuStrip.cs: Version 0.1.
4971
4972         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
4973
4974 2006-10-30  Chris Toshok  <toshok@ximian.com>
4975
4976         [ fixes the oversized notify icon issue in bug #79745 ]
4977         
4978         * NotifyIcon.cs: scale the icon down to the size we're given by
4979         the XplatUI layer (this would be faster if we did it once instead
4980         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
4981         since it's never invoked.
4982
4983         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
4984         pixels high by default, so let's hardcode our systray icon to that
4985         size.  The SYSTEM_TRAY protocol should really have a way for
4986         client apps to query for the correct icon size.. but oh well.  A
4987         couple of patches to deal with the screwy client_window ==
4988         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
4989         instance, and also make sure we don't XSelectInput twice).
4990
4991 2006-10-30  Chris Toshok  <toshok@ximian.com>
4992
4993         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
4994         recreating forms.  Control recreation is the bane of my existence.
4995         Fix it in a way that keeps everyone happy.
4996
4997 2006-10-30  Chris Toshok  <toshok@ximian.com>
4998
4999         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
5000         just non-CHILD ones.  otherwise sometimes scrollbars end up with
5001         client_windows not being resized to the proper size (ReportBuilder
5002         shows this extremely well).
5003
5004 2006-10-30  Chris Toshok  <toshok@ximian.com>
5005
5006         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
5007         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
5008         showing up in the gnome taskbar.  Fixes bug #79790.
5009
5010 2006-10-30  Chris Toshok  <toshok@ximian.com>
5011
5012         * ApplicationContext.cs: guard against a NRE.
5013
5014         * Application.cs: null out the old MainForm for the context, so we
5015         don't try to use it again once it's disposed.  Fixes bug #79783.
5016
5017 2006-10-30  Chris Toshok  <toshok@ximian.com>
5018
5019         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
5020         BindingContext, set the data source directly, otherwise do the
5021         lazy approach - the actual ListManager will be created when we get
5022         a BindingContext. Fixes bug #79700.
5023
5024 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5025
5026         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
5027           XplatUIX11.cs: Remove old 2 parameter SetVisible.
5028
5029         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
5030
5031 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5032
5033         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5034         of SetVisible that allows a window to be shown, but not activated.
5035         This is needed on Windows for MenuStrip, and can probably be used
5036         with MainMenu and ComboBox to fix the focus stealing issues on
5037         Windows.
5038
5039         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5040
5041 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5042
5043         * PictureBox.cs: Fix the output of the ToString method.
5044
5045 2006-10-29  Chris Toshok  <toshok@ximian.com>
5046
5047         * Control.cs (get_TopLevelControl): fix bug #79781.
5048
5049 2006-10-29  Chris Toshok  <toshok@ximian.com>
5050
5051         * ListControl.cs (set_DataSource): throw Exception here, not
5052         ArgumentException, to match MS behavior.
5053
5054 2006-10-29  Chris Toshok  <toshok@ximian.com>
5055
5056         * Form.cs: remove the try-catch's around calls to GetWindowState.
5057         We can just check the return value.
5058
5059         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5060         Instead return -1.
5061
5062         * XplatUI.cs: Add note about additional return value for
5063         GetWindowState.
5064
5065 2006-10-29  Chris Toshok  <toshok@ximian.com>
5066
5067         * Control.cs (CreateHandle): when we create our handle, we also
5068         create the handles of our child controls.  Fixes one of the
5069         Control unit tests (CH11).
5070
5071 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5072
5073         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5074
5075 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5076
5077         * ThemeClearlooks.cs: A little speedup.
5078
5079 2006-10-27  Chris Toshok  <toshok@ximian.com>
5080
5081         * Control.cs: implement Control.FromChildHandle in a way that
5082         matches the docs (and fixes the failed test.)
5083
5084 2006-10-27  Chris Toshok  <toshok@ximian.com>
5085
5086         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5087         comments).
5088
5089         * DataGrid.cs: implement ResetForeColor such that the tests
5090         succeed.
5091         
5092 2006-10-27  Chris Toshok  <toshok@ximian.com>
5093
5094         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5095         being set to "".  Fixes bug #79759.
5096
5097 2006-10-27  Jackson Harper  <jackson@ximian.com>
5098
5099         * TextControl.cs: We need to clear the entire selection area when
5100         setting the start, otherwise multiline selections are still
5101         visible.
5102
5103 2006-10-26  Chris Toshok  <toshok@ximian.com>
5104
5105         * PropertyGridView.cs: 
5106
5107         - ifdef all the code specific to the double
5108         buffer case, and provide some alternatives in the non-doublebuffer
5109         code, which makes heavy use of XplatUI.ScrollWindow to move things
5110         around without having to invalidate (and cause flicker).  There
5111         are still some drawing problems in the non-doublebuffered case, so
5112         DOUBLEBUFFER is defined by default.
5113
5114         - Fix the way dropdowns are handled.  now we explicitly watch for
5115         the events which might cause the dropdown to close, and break out
5116         of the nested event loop there.  This gets rid of all Capture
5117         code, at the expense of the Msg special casing.  Seems to work,
5118         though, and fixes bug #79743.
5119
5120 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5121         * Control.cs: SetIsRecreating now recreates implicitly added
5122         child controls as well. Finally fixes #79629. The flag passed to 
5123         SetIsRecreating has also been removed since it wasn't used.
5124         
5125 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5126
5127         * PageSetupDialog.cs: Clean some code, fix some bits, 
5128         add some checks, and add a printer sub-dialog.
5129
5130 2006-10-26  Chris Toshok  <toshok@ximian.com>
5131
5132         * PropertyGrid.cs: make set_SelectedObject call
5133         set_SelectedObjects, and move the duplicate logic to the
5134         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5135
5136         * PropertyGridView.cs: hide the textbox when we get a
5137         SelectedObjectsChanged event.
5138
5139         Fixes bug #79748.
5140
5141 2006-10-26  Chris Toshok  <toshok@ximian.com>
5142
5143         * PropertyGridView.cs: deal with the type converter not supporting
5144         GetStandardValues() or GetStandardValues() returning null, which
5145         is does in the default case.  Fixes #79742.
5146
5147 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5148
5149         * CheckedListBox.cs: nunit no longer crashes when selecting 
5150         Project/Edit menu option
5151         
5152 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5153
5154         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5155         is no menu selected. fixes #79739
5156
5157 2006-10-25  Chris Toshok  <toshok@ximian.com>
5158
5159         * PropertyGridView.cs: factor out the splitter invalidation code
5160         into the SplitterPercent setter, and for kicks implement the
5161         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5162         amount in either direction.
5163
5164 2006-10-25  Chris Toshok  <toshok@ximian.com>
5165
5166         * PropertyGridView.cs: do some cleanup of the brush used to draw
5167         text - read only fields should be grayed out.  not sure how to do
5168         this with the textbox, though.  but the textbox's should also be
5169         readonly now at least.  Also, hide/show the textbox when resizing
5170         the control.
5171         
5172         * CursorConverter.cs: use System.Reflection when getting the
5173         properties of Cursors, as TypeDescriptor.GetProperties isn't
5174         returning static properties.
5175
5176 2006-10-25  Chris Toshok  <toshok@ximian.com>
5177
5178         * PropertyGridView.cs: factor out the up/down handling, and reuse
5179         it for page up/down.  also add End/Home support.
5180
5181 2006-10-25  Chris Toshok  <toshok@ximian.com>
5182
5183         * PropertyGridView.cs:
5184
5185         - ensure the selected grid item is visible in the scrolled area,
5186         fixes bug #79572.
5187
5188         - fix Keys.Down handling when you're on the last item in the
5189         propertygrid.
5190
5191 2006-10-25  Mike Kestner  <mkestner@novell.com>
5192
5193         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5194         clicks too.  Fixes #79725.
5195
5196 2006-10-24  Chris Toshok  <toshok@ximian.com>
5197
5198         * PropertyGrid.cs: use property.Converter instead of
5199         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5200         TypeConverters declared on the property as well as on the
5201         PropertyType.  Fixes bug #79678.
5202
5203 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5204
5205         * MimeIcon.cs, Mime.cs:
5206           Fallback to the default platform handler if no shared mime info
5207           stuff exists (fixes #79693).
5208
5209 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5210         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5211         from previous fix (duh).
5212
5213 2006-10-20  Chris Toshok  <toshok@ximian.com>
5214
5215         * PropertyGridView.cs: the dropdown should be MIN(number of items
5216         in list, 15).  Fixes #79551.
5217
5218 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5219         Fixes #79384, #79394, #79652, #79667
5220         * Application.cs: 
5221         
5222         - Modal windows are now destroyed in the proper order for windows
5223         
5224         * ContainerControl.cs:
5225         
5226         - ActiveControl setter has more conditions on when to return:
5227                 - if we're reselecting the active control, but it actually
5228                 didn't have focus (window hidden or some such), it runs
5229                 - if the active control being selected doesn't actually 
5230                 exist in the container, it returns
5231         
5232         * Form.cs
5233         
5234         - The ShowDialog now gets the current form as the owner when
5235         invoking without parameters, and correctly activates the owner 
5236         when returning
5237         
5238         * MessageBox.cs
5239         
5240         - MessageBox now catches the Escape key to exit
5241
5242 2006-10-20  Chris Toshok  <toshok@ximian.com>
5243
5244         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5245         most of bug #79676):
5246
5247         - you can navigate around the property grid with the arrow keys.
5248
5249         - the dropdown is sized properly when the pg has a vertical
5250         scrollbar.
5251
5252         - fix the indentation for subentries, and properly select the
5253         entire label rect.
5254
5255         - fix the gray bar's drawing (only draw it to the last element,
5256         not for the height of the control.  Also make sure we draw that
5257         last horizontal grid line.
5258
5259         - use the same mechanism the datagrid uses wrt the editing textbox
5260         when scrolling/resizing/etc.  Namely, we hide it first, do the
5261         operation, then show it again (if it's still visible).
5262         
5263         - aggressively remove a lot of unnecessary refreshes (and also
5264         calls to Invalidate(). call more limited variants, and only redraw
5265         what we need.)
5266         
5267         * PropertyGrid.cs:
5268
5269         - when we're populating the merged collection, fill in the UI
5270         parent with either the passed in item, or the category item we
5271         create.
5272
5273         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5274
5275         * GridItem.cs: drop some fully qualified names.
5276         
5277         * GridEntry.cs: add a "UIParent", which is basically the parent
5278         treenode.
5279
5280         * GridItemCollection.cs: add an IndexOf method.
5281
5282 2006-10-20  Mike Kestner  <mkestner@novell.com>
5283
5284         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5285         a working win32 NC invalidation mechanism, we can't invalidate
5286         menus.  [Fixes #79705]
5287
5288 2006-10-20  Mike Kestner  <mkestner@novell.com>
5289
5290         * ListBox.cs : don't update the VScrollbar if the list is empty,
5291         just hide it.  [Fixes #79692]
5292
5293 2006-10-20  Jackson Harper  <jackson@ximian.com>
5294
5295         * RichTextBox.cs: Handle some special chars better, and don't skip
5296         the entire group when we encounter a special char that we don't
5297         handle correctly.
5298
5299 2006-10-18  Chris Toshok  <toshok@ximian.com>
5300
5301         * PropertyGridView.cs: address a number of issues from bug #79676,
5302         mostly of the cosmetic variety.
5303
5304         - The highlight rectangle for indented items not extends all the
5305         way to the left.
5306
5307         - Indented items aren't indented so much.
5308
5309         - the dropdown is properly sized width-wise if the pg has a
5310         vertical scrollbar.
5311
5312 2006-10-18  Chris Toshok  <toshok@ximian.com>
5313
5314         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5315         systray stuff is rather convoluted to begin with.
5316
5317         systray icons are a single window for some reason (that I haven't
5318         figured out yet), and for them, client_window == whole_window.
5319         Given the way the tests are structured elsewhere to determine
5320         which paints are pending (client vs. nc), that situation will
5321         always yield PAINT, not NCPAINT.  So, if we have a pending
5322         nc_expose and no pending expose, remove the hwnd from the paint
5323         queue, and also set nc_expose_pending to false, to keep us from
5324         blocking further expose's adding the hwnd to the paint queue.
5325
5326         phew.  like i said, a rather convoluted change.  Fixes the
5327         notifyicon repaint issues in bug #79645.
5328
5329 2006-10-18  Chris Toshok  <toshok@ximian.com>
5330
5331         * Form.cs: when getting the backcolor of the form, don't get
5332         base.BackColor, as this allows parents to influence the background
5333         color.  This breaks mdi forms.  Instead, if the background_color
5334         is empty, return the default.
5335
5336 2006-10-18  Chris Toshok  <toshok@ximian.com>
5337
5338         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5339         to being private instead of internal static.
5340
5341         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5342         crap, it wasn't working for more deeply nested controls anyway,
5343         and we already have the is_recreating flag - use that instead.
5344         Before calling DestroyHandle in RecreateHandle, recurse through
5345         the control tree setting it to true.  this returns the recreate
5346         code to much of its original simplicity, while now guaranteeing we
5347         actually recreate everything we're supposed to.  This change gets
5348         fyireporting actually showing mdi children.
5349
5350 2006-10-17  Chris Toshok  <toshok@ximian.com>
5351
5352         * Form.cs: remove some debug spew, and collapse some duplicate
5353         code at the end of SetClientSizeCore.
5354
5355         * XplatUIX11.cs: 
5356         - add some more debug spew here too wrt Destroy handling.
5357         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5358         in Control's handling of WM_DESTROY.
5359         - Remove the handling of zombie window DestroyNotifies from the
5360         event loop - we don't need it.  Now the only DestroyNotifies we
5361         actually handle are ones generated by X.
5362         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5363         match gtk's (functioning) handling of this. This keep metacity
5364         from leaving droppings in the form of wm borders with no window
5365         contents all over the place.
5366
5367         * Control.cs:
5368         - add a bunch of debug spew wrt control recreation.
5369         - fix a bug where we weren't tracking Visible properly on
5370         recreated hwnds.
5371         - fixed the WM_PAINT double buffer handling to support re-entrant
5372         calls (yes, i know it's gross, but it's happening to us).
5373
5374 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5375         * ThemeWin32Classic.cs: changed drawing of selected days
5376         to make them look better.
5377
5378 2006-10-16  Chris Toshok  <toshok@ximian.com>
5379
5380         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5381         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5382
5383         * XplatUIX11.cs: move away from using hwnd.client_dc and
5384         hwnd.non_client_dc and on to a stack of dc's (and in window's
5385         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5386         without puking or not disposing of Graphics objects.
5387
5388         * XplatUIOSX.cs: same.
5389
5390         * XplatUIWin32.cs: same.
5391
5392 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5393
5394         * FileDialog.cs: Don't call on_directory_changed inside
5395           OnSelectedIndexChanged (it changes the SelectedIndex too).
5396           Instead move it to OnSelectionChangeCommitted.
5397
5398 2006-10-13  Chris Toshok  <toshok@ximian.com>
5399
5400         * XplatUIX11.cs: more Destroy work.  the current code does the
5401         following things, in order:
5402
5403         1. Enumerates all handles of all controls at or below the one
5404         being destroyed, in pre-order.  As it is doing this, it marks the
5405         handles as zombie and clears all references to them.
5406         
5407         2. calls XDestroyWindow on the window passed in.
5408
5409         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5410         list.
5411
5412 2006-10-13  Chris Toshok  <toshok@ximian.com>
5413
5414         * XplatUIX11.cs: set hwnd.zombie to true before calling
5415         SendMessage (WM_DESTROY).  this keeps us from marking the new
5416         window a zombie, and also keeps us from calling sendmessage at
5417         all.
5418
5419 2006-10-13  Jackson Harper  <jackson@ximian.com>
5420
5421         * TextControl.cs: Do not show the caret and selection at the same
5422         time.  Reduces ugliness by 35%.
5423
5424 2006-10-13  Chris Toshok  <toshok@ximian.com>
5425
5426         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5427         zombie after we do the recursive call, so we actually do call
5428         SendMessage on the children controls.
5429         (GetMessage): if we find a pending paint event for a zombie hwnd,
5430         remove the hwnd from the paint queue, or else it will always be
5431         there (and we'll effectively loop infinitely)
5432
5433 2006-10-13  Mike Kestner  <mkestner@novell.com>
5434
5435         * MenuItem.cs : add Selected format under keynav too.
5436         Fixes #79528.
5437
5438 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5439
5440         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5441         implementation and that of MS.
5442
5443 2006-10-13  Chris Toshok  <toshok@ximian.com>
5444
5445         * Control.cs (OnInvalidated) only futz with the invalid_region if
5446         the control is double buffered.  this fixes the apparent hang in
5447         the ListView unit tests.  Someone needs to make the
5448         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5449
5450 2006-10-13  Chris Toshok  <toshok@ximian.com>
5451
5452         * PropertyGridView.cs:
5453
5454         - do a little refactoring so that only one place calls
5455         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5456         else call that.  Also make it Refresh, since there are redraw bugs
5457         otherwise (we should take a look at that...)
5458
5459         - do a little more refactoring work to share the body of code
5460         involved with the drop down.  it was duplicated in the code
5461         dealing with the listbox handling and in the code dealing with the
5462         UITypeEditors.
5463
5464         - add a Capture to the dropdown form's control once it's
5465         displayed, and add a MouseDown handler that checks to make sure
5466         the position is inside the control.  If it's not, close the
5467         dropdown.  This fixes #78190.
5468
5469         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5470         if the value is different than the initial value.
5471         
5472 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5473
5474         * Control.cs: see #78650
5475         - Fixed GetNextControl for several cases:
5476                 - Changed FindFlatForward to return 
5477                 correct sibling control when more than one
5478                 control has same TabIndex as the currently 
5479                 focused one.
5480                 - Changed FindFlatBackward to loop children
5481                 from last to first and apply same logic as in
5482                 FindFlatForward
5483                 - Changed FindControlForward to search for
5484                 children when control is not a container
5485                 but has children, or search for siblings if
5486                 control is a container...
5487                 - Changed FindControlBackward   to continue
5488                 searching for child controls when hitting 
5489                 Panel-like parents
5490                 
5491         - Fixed Focus method to update ActiveControl
5492         (FocusTest.FocusSetsActive failure)
5493         
5494         * TabControl.cs:
5495         - Focus rectangle now refreshes when gaining
5496         or losing focus
5497         - Removed grab for Tab key on IsInputKey that 
5498         was keeping tab navigation from working (#78650)
5499
5500 2006-10-13  Chris Toshok  <toshok@ximian.com>
5501
5502         * PropertyGridView.cs:
5503         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5504         SelectedObjects.
5505
5506         - Deal with GridItem.Value == null a few places.
5507
5508         * PropertyGrid.cs: 
5509         - replace the PopulateGridItemCollection with a pair of methods
5510         which compute the intersection of all the properties in the
5511         SelectedObjects array.  Fixes #79615.
5512
5513         - Throw ArgumentException from set_SelectedObjects if there's a
5514         null in the array.
5515
5516         - Add GetTarget method which can be used to traverse up the
5517         GridItem.Parent chain.  It depends on the assumption that
5518         selected_objects for different GridEntries are always in the same
5519         order (a safe assumption).  Use this method and loop over all the
5520         selected objects in the entry when calling RemoveValueChanged and
5521         AddValueChanged.
5522         
5523         * GridEntry.cs: Make this handle multiple selected objects.
5524         .Value returns null if not all the selected objects share the same
5525         value.
5526
5527 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5528         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5529           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5530           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5531           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5532           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5533         add additional functionality.
5534
5535 2006-10-12  Mike Kestner  <mkestner@novell.com>
5536
5537         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5538         * HelpProvider.cs : new ToolTipWindow ctor sig.
5539         * ToolTip.cs : remove ToolTip param from Window sig since it is
5540         not used.
5541         * ToolBar.cs : add tooltip support.  Fixes #79565.
5542
5543 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5544
5545         * ComboBox.cs: move the events in set_SelectedIndex to 
5546         after the call to HighlightIndex in order to avoid 
5547         possible recursion and subsequent problems with the call
5548         to HighlightIndex and include a range check in 
5549         set_HighlightIndex. Fixes #79588
5550         
5551 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5552
5553         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5554         to ui thread's settings instead of sunday. 
5555         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5556
5557 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5558
5559         * DateTimePicker.cs
5560         * MonthCalendar.cs
5561         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5562         and implement missing functionality (selecting different parts 
5563         of the date and edit them individually with the keyboard).
5564         
5565 2006-10-11  Chris Toshok  <toshok@ximian.com>
5566
5567         * Control.cs (OnInvalidated): fix NRE relating to last change.
5568
5569 2006-10-11  Chris Toshok  <toshok@ximian.com>
5570
5571         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5572         atoms in _NET_WM_STATE here if the window is maximized.  We need
5573         to do this because we're *replacing* the existing _NET_WM_STATE
5574         property, so those atoms will be lost otherwise, and any further
5575         call to GetWindowState will return Normal for a window which is
5576         actually maximized.  Fixes #79338.
5577
5578 2006-10-11  Jackson Harper  <jackson@ximian.com>
5579
5580         * TextControl.cs: Special case for setting selection end to
5581         selection start, we basically kill the anchor.
5582         - some todo comments.
5583
5584 2006-10-11  Chris Toshok  <toshok@ximian.com>
5585
5586         * Control.cs: switch to using an "invalid_region" to track which
5587         parts of the image buffer need updating.  This is more code than
5588         the simple fix from r66532.  That version just attempted to always
5589         fill the entire buffer on redraw, which turns out to be
5590         inefficient when invalidating small rectangles.  This version
5591         simply adds the invalid rectangle to the invalid region.  When we
5592         get any WM_PAINT message we see if it can be filled using the
5593         image buffer, and if it can't (if the paint event's clip rectangle
5594         is visible in the invalid region) we first fill the image buffer.
5595         So, the image buffer is still a cache, we just fill it lazily.
5596
5597         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5598         need it any longer.
5599
5600 2006-10-11  Chris Toshok  <toshok@ximian.com>
5601
5602         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5603         well as size after calling XMoveResizeWindow.  This keeps us from
5604         ignoring future SetWindowPos calls.  Fixes the disappearing
5605         DateTimePicker in the ToolBarDockExample from bug #72499.
5606
5607 2006-10-11  Chris Toshok  <toshok@ximian.com>
5608
5609         * TextBoxBase.cs: reorder things a bit when it comes to
5610         resizing-causing-recalculation.  we were recalculating the
5611         document when our position was changed, which shouldn't happen.
5612         We only care about size changes.  Clear up some more redundant
5613         recalculation calls while I'm at it.  This makes the toolbar dock
5614         example snappy when you're just dragging toolbars around (since it
5615         causes a relayout whenever you move one.)
5616
5617 2006-10-11  Chris Toshok  <toshok@ximian.com>
5618
5619         * ToolBarButton.cs (get_Rectangle): this only returns
5620         Rectangle.Empty if Visible == false, or Parent == null.
5621         Parent.Visible doesn't matter.
5622
5623 2006-10-10  Chris Toshok  <toshok@ximian.com>
5624
5625         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5626         by .net 1.1, so switch to an internal method instead.
5627
5628 2006-10-10  Chris Toshok  <toshok@ximian.com>
5629
5630         * Control.cs (WM_PAINT): when a control is double buffered we draw
5631         initially to the ImageBuffer and then copy from there.  But when a
5632         parent control which has child controls is double buffered, the
5633         initial drawing doesn't encompass the entire ClientRectangle of
5634         the parent control, so we end up with uninitialized bits (this is
5635         easily seen by dragging the top toolbar in
5636         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5637         manually set the ClipRectangle of the paint_event (only the one we
5638         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5639         of the nastiness in bug #72499.
5640
5641         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5642         which we use in Control.cs's WM_PAINT handling.
5643
5644 2006-10-10  Jackson Harper  <jackson@ximian.com>
5645
5646         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5647
5648 2006-10-10  Chris Toshok  <toshok@ximian.com>
5649
5650         * Cursor.cs: Apply a slightly different patch to the one suggested
5651         in #79609.
5652
5653 2006-10-10  Jackson Harper  <jackson@ximian.com>
5654
5655         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5656         not the parent form.
5657         * TextControl.cs: use difference in old line count vs new count to
5658         calculate how many lines were added, this takes into account soft
5659         line breaks properly.
5660
5661 2006-10-10  Chris Toshok  <toshok@ximian.com>
5662
5663         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5664         rectangle located at 0,0 and the size of the text.  Use
5665         ClientRectangle instead.  This fixes rendering of non-left aligned
5666         link labels.
5667
5668 2006-10-10  Jackson Harper  <jackson@ximian.com>
5669
5670         * TextBoxBase.cs: When we set the selection start position the
5671         caret.
5672         * TextControl.cs: Need to update the caret when we decrement it to
5673         zero.
5674         - Make sure that the selection_visible flag gets reset to false if
5675         the selection isn't visible.  Before this you could get it set to
5676         visible by changing the selection start, then changing the end to
5677         equal the start.
5678
5679 2006-10-09  Jackson Harper  <jackson@ximian.com>
5680
5681         * TreeView.cs: Don't update scrollbars when we aren't visible.
5682         * TreeNodeCollection.cs: Only need to update scrollbars if being
5683         added to an expanded visible node or the root node.
5684
5685 2006-10-09  Chris Toshok  <toshok@ximian.com>
5686
5687         * XplatUIX11.cs (SendMessage): fix NRE.
5688
5689 2006-10-09  Jackson Harper  <jackson@ximian.com>
5690
5691         * TextBoxBase.cs: Implement horizontal autoscrolling.
5692         * TextControl.cs: Add a movement types that allows moving forward
5693         and backwards without wrapping.
5694
5695 2006-10-09  Mike Kestner  <mkestner@novell.com>
5696
5697         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5698         with focus "expansion" of labels.  Fixes #79532 and then some.
5699         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5700         when wrapping.
5701
5702 2006-10-09  Jackson Harper  <jackson@ximian.com>
5703
5704         * TextBoxBase.cs: Set the default max values to MaxValue since
5705         we use the scrollbar for autoscrolling and the default value is
5706         100.  If we don't do this the caret won't keep up with typing
5707         after about 18 characters.
5708         * TextControl.cs: Make sure the selection is offset by the
5709         viewport x.  This fixes selection when using auto scrolling.
5710
5711 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5712         
5713         * Form.cs: The active control should be selected after the 
5714         OnLoad so that any child control initialization that affects
5715         the selection is done. Fixes #79406
5716
5717 2006-10-06  Chris Toshok  <toshok@ximian.com>
5718
5719         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5720         to have no evil effects.
5721
5722         - Stop selecting StructureNotifyMask on non-toplevel windows.
5723
5724           The only way children should be resized is by using the SWF api,
5725           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5726           Toplevel windows can be interacted with via the window manager,
5727           and so we keep the input mask there.
5728
5729           The other event StructureNotifyMask gives us (that we care
5730           about) is DestroyNotify.  The code is already structured such
5731           that it assumes we won't be getting a DestroyNotify event for
5732           the window we pass to XDestroyWindow (which is what
5733           StructureNotifyMask is supposed to guarantee.)  So, that code
5734           shouldn't be affected by this either.
5735
5736         - Stop selecting VisibilityChangeMask altogether.
5737
5738           We weren't doing anything with the resulting events anyway.
5739         
5740         This vastly reduces the number of X requests and events we see
5741         when resizing/laying out a large ui.
5742
5743 2006-10-06  Chris Toshok  <toshok@ximian.com>
5744
5745         * ScrollableControl.cs (DisplayRectangle): we need to take into
5746         account the DockPadding regardless of whether or not auto_scroll
5747         == true.  rework this slightly to this effect, and fix bug #79606,
5748         and part of #72499 (you can now see the drag handles and drag
5749         toolbars around).
5750
5751 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5752
5753         * ListViewItem.cs: Collections of selected and checked items are now
5754         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5755         we mark the collection "dirty".
5756         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5757         to only clear SelectedItems when a new item is selected and MultiSelect
5758         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5759         event of ListViewItemCollection, and mark its list dirty whenever
5760         that event is fire. This allows us to return selected/checked items 
5761         in the same order as they are in the Items collection. This matches
5762         the MS behavior.
5763
5764 2006-10-06  Chris Toshok  <toshok@ximian.com>
5765
5766         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5767         right mouse clicks.  Fixes bug #79593.
5768
5769 2006-10-06  Chris Toshok  <toshok@ximian.com>
5770
5771         * Splitter.cs: doh, fix splitters that don't want to cancel the
5772         movement when you drag them.  Also, impose the limits on the
5773         values we send to the SplitterMovingEvent.  Fixes #79598.
5774
5775 2006-10-06  Jackson Harper  <jackson@ximian.com>
5776
5777         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5778         since we use this for auto scrolling also.
5779
5780 2006-10-05  Chris Toshok  <toshok@ximian.com>
5781
5782         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5783         beginning to think that most datagrid column types don't need this
5784         method.  Fixes bug #79392.
5785
5786 2006-10-05  Chris Toshok  <toshok@ximian.com>
5787
5788         * DataGrid.cs: move back to a more lazy scheme for creating the
5789         CurrencyManager, so we aren't updating it every time you set
5790         either DataSource or DataMember.  Also, don't call
5791         RecreateDataGridRows if the currency manager hasn't changed.
5792
5793 2006-10-05  Chris Toshok  <toshok@ximian.com>
5794
5795         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5796         emitted, SelectedIndex should already be updated.  Fixes bug
5797         #78929.
5798
5799 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5800
5801         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5802           ToolStripTextBox.cs: Initial commit.
5803         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5804
5805 2006-10-05  Jackson Harper  <jackson@ximian.com>
5806
5807         * TabControl.cs: We need to invalidate the tab control area when
5808         new ones are added (duh).
5809
5810 2006-10-03  Chris Toshok  <toshok@ximian.com>
5811
5812         * Form.cs (ProcessDialogKey): if the focused control is in this
5813         form and is a button, call its PerformClick method here.  Fixes
5814         #79534.
5815
5816 2006-10-04  Jackson Harper  <jackson@ximian.com>
5817
5818         * TabPage.cs: Ignore setting of Visible, and add an internal
5819         method for setting the controls visibility.  TabPage's Visible
5820         property is a little strange on MS, this seems to make us
5821         compatible, and fixes cases where people set all the tab pages to
5822         visible.
5823         * TabControl.cs: Use the new internal setting on tab pages
5824         visibility.
5825
5826 2006-10-03  Mike Kestner  <mkestner@novell.com>
5827
5828         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5829
5830 2006-10-03  Mike Kestner  <mkestner@novell.com>
5831
5832         * ListView.cs : use is_visible instead of Visible to check if 
5833         scrollbars should be placed/sized.  Also some max_wrap_width
5834         love for LargeIcon view.  [Fixes #79533]
5835
5836 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5837
5838         * TextControl.cs :
5839           Make set_TextAlign() do actually update the align. Fixed #78403.
5840
5841 2006-10-03  Chris Toshok  <toshok@ximian.com>
5842
5843         * DataGrid.cs: fix a crash when switching datasources if the
5844         vertical scrollbar is at someplace other than Value = 0.  Also,
5845         reduce the number of recalculation passes we do in SetDataSource
5846         from 2 to 1.
5847
5848 2006-10-03  Jackson Harper  <jackson@ximian.com>
5849
5850         * TextBoxBase.cs: Move the if value the same bail check up, we
5851         don't want to empty the document if it is already empty, this
5852         seems to severly mess up the caret.  TODO: I should probably fix
5853         the empty statement to update teh caret somehow.
5854
5855 2006-10-03  Chris Toshok  <toshok@ximian.com>
5856
5857         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5858         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5859         reflection, an internal row type, properties on said type, etc.)
5860         will work with our datagrid.  Fixes #79531.
5861
5862 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5863
5864         * FileDialog.cs: Don't crash if a path is not accessible
5865           (System.UnauthorizedAccessException). Fixes #79569.
5866         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5867           a ':' too. Return unknown icon for those paths/files.
5868
5869 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5870
5871         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5872         GetContainerControl returns null.
5873
5874 2006-10-02  Chris Toshok  <toshok@ximian.com>
5875
5876         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5877         call to XGetWindowAttributes instead of "handle".  fixes an X
5878         error using notifyicon after the NotifyIconWindow to Form base
5879         class switch.
5880
5881 2006-10-02  Chris Toshok  <toshok@ximian.com>
5882
5883         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5884         server grab and looping we need to do to get down to the most
5885         deeply nested child window.
5886         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5887         QueryPointer again after the WarpPointer so we can generate a
5888         proper (fake) MotionNotify event to be enqueued in the destination
5889         window's queue.
5890         (GetCursorPos): call QueryPointer.
5891
5892         Fixes #79556.
5893
5894 2006-10-02  Jackson Harper  <jackson@ximian.com>
5895
5896         * NotifyIcon.cs: Derive the notify icon from a form, so things
5897         like FindForm work on it.
5898         - Swallow the WM_CONTEXTMENU message, since that is generated on
5899         mouse down, and context menu is a mouse up kinda guy.  I believe
5900         the correct fix here is probably to make the notify icon entirely
5901         NC area, but this seems to work fine for anyone not manipulating
5902         WndProc.
5903
5904 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5905
5906         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5907           ToolStripItemCollection.cs, ToolStripLabel.cs,
5908           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5909           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5910           Initial implementation.
5911         * TextRenderer.cs: Provide padding to MeasureText.
5912
5913 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5914
5915         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5916         of ButtonBaseAccessibleObject. Fix bug #79552.
5917
5918 2006-10-02  Jackson Harper  <jackson@ximian.com>
5919
5920         * MdiWindowManager.cs: When maximizing use the containers client
5921         rect, not it's bounds, so nc area is accounted correctly.
5922         - Use the parent form's size for the menu position, since the
5923         client isn't always the full form size.
5924
5925 2006-10-01  Chris Toshok  <toshok@ximian.com>
5926
5927         * ScrollableControl.cs: make sure neither right_edge or
5928         bottom_edge are < 0, since they're used as LargeChange for the
5929         horiz/vert scrollbars respectively.  Fixes #79539.
5930
5931 2006-10-01  Chris Toshok  <toshok@ximian.com>
5932
5933         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5934         the xplatuix11 code can cause us to destroy/recreate our handle.
5935
5936         * XplatUIX11.cs
5937         (SystrayAdd):
5938         - this code can be invoked many times for the same Hwnd.  Make
5939           sure we only destroy the client window once (the first time this
5940           method is called).  This fixes bug #79544.
5941         - Remove the call to the improperly bound XSync.  why we had two
5942           bindings to this, I will never know, but this call resulted in
5943           events being discarded from the queue(!).
5944         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5945           not our current state but the state we wish to be in.  So, 0 if
5946           we don't want to be mapped.  Change it to 1.
5947         (SystrayRemove): The XEMBED spec makes mention of the fact that
5948         gtk doesn't support the reparent of client windows away from the
5949         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5950         The only avenue we have for removing systray icons is to destroy
5951         them.  We don't want the handle to go away for good, though, so
5952         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5953         #79545.
5954         
5955 2006-10-01  Chris Toshok  <toshok@ximian.com>
5956
5957         * Form.cs (WndProc): inline the native_enabled variable usage into
5958         the cases in which it's used.  Fixes #79536.
5959
5960 2006-09-29  Mike Kestner  <mkestner@novell.com>
5961
5962         * ListView.cs : toggle the selection state for ctrl clicks in 
5963         multiselect mode. [Fixes #79417]
5964
5965 2006-09-29  Mike Kestner  <mkestner@novell.com>
5966
5967         * ListView.cs : kill CanMultiSelect and refactor the selection
5968         code to support multiselection in the absence of mod keys. Steal
5969         arrow/home/end keys by overriding InternalPreProcessMessage to
5970         restore regressed keynav behavior.
5971         [Fixes #79416]
5972
5973 2006-09-29  Jackson Harper  <jackson@ximian.com>
5974
5975         * MdiClient.cs: Repaint the titlebars when the active window is
5976         changed.
5977
5978 2006-09-29  Chris Toshok  <toshok@ximian.com>
5979
5980         * Application.cs: when entering a runloop with a modal, make sure
5981         the hwnd is enabled.  Fixes #79480.
5982
5983 2006-09-29  Chris Toshok  <toshok@ximian.com>
5984
5985         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
5986         when ListManager.CanAddRows == false, bump us back one.
5987
5988         * DataGridColumnStyle.cs (ParentReadOnly): remove the
5989         listmanager.CanAddRows check.  This makes ArrayLists uneditable
5990         using a datagrid, which is not right.
5991         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
5992         is an IEditable, but call property_descriptor.SetValue regardless.
5993         fixes #79435.
5994
5995 2006-09-29  Chris Toshok  <toshok@ximian.com>
5996
5997         * DataGridBoolColumn.cs: we need to test equality in the face of
5998         possible null values (as is the case with the default NullValue).
5999         This patch keeps us from crashing in that case.
6000
6001 2006-09-29  Jackson Harper  <jackson@ximian.com>
6002
6003         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
6004         here, since it will get called for every node collection in the
6005         tree. This is now done in the treeview once the sorting is
6006         finished.
6007         * TreeView.cs: Recalculate the visible order, and update the
6008         scrollbars after sorting, set the top nope to the root so that the
6009         recalc actually works.
6010
6011 2006-09-29  Chris Toshok  <toshok@ximian.com>
6012
6013         * LinkLabel.cs: more handling of the default link collection in
6014         the face of LinkArea manipulation.  The default link collection
6015         contains 1 element (start=0,length=-1).  If the user sets LinkArea
6016         to anything and the links collection is the default, clear it.
6017         Then only add the link if its nonempty.  Fixes #79518.
6018
6019 2006-09-29  Chris Toshok  <toshok@ximian.com>
6020
6021         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
6022         piece correctly when we hit a '\n'.  Fixes #79517.
6023
6024 2006-09-29  Chris Toshok  <toshok@ximian.com>
6025
6026         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
6027         change the binding of gdk_init_check to take two IntPtr's, and
6028         pass IntPtr.Zero for both of them.  Fixes #79520.
6029
6030 2006-09-29  Mike Kestner  <mkestner@novell.com>
6031
6032         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6033         [Fixes #78779]
6034
6035 2006-09-28  Jackson Harper  <jackson@ximian.com>
6036
6037         * XplatUIX11.cs: When translating NC messages make sure we go from
6038         whole window to screen, not client window to screen.
6039         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6040         method doesn't exist
6041         - Skip over controls that aren't forms when arranging.
6042
6043 2006-09-28  Jackson Harper  <jackson@ximian.com>
6044
6045         * XplatUIWin32.cs: Clip the rect to the parent window.
6046         * XplatUIStructs.cs: Add clipping modes struct.
6047         * InternalWindowManager.cs: New private method that factors title
6048         bar heights in when calculating the pos of an NC mouse message.
6049         - Use SendMessage to force a paint when the form's size is changed
6050         instead of painting the decorations immediately.
6051         - Don't let the NC button click messages get to DefWndProc,
6052         because they will attempt to handle windowing themself, and this
6053         messes up z-order (it will put them in front of the scrollbars).
6054         * XplatUIX11.cs: Make sure that we don't reset window managers if
6055         we already have one (ie the window is an MDI window).
6056
6057 2006-09-28  Chris Toshok  <toshok@ximian.com>
6058
6059         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6060         menu code really needs going over.
6061
6062 2006-09-27  Chris Toshok  <toshok@ximian.com>
6063
6064         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6065         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6066         window is maximizable.  So, we need to make sure that even if we
6067         clear the border/wm frame of those functions, they're still
6068         available (basically, we remove the decoration without removing
6069         the function).  Half the fix for #79338.
6070
6071 2006-09-27  Chris Toshok  <toshok@ximian.com>
6072
6073         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6074         Fixes bug #79515.
6075
6076 2006-09-27  Chris Toshok  <toshok@ximian.com>
6077
6078         * Splitter.cs: reorder things a bit so that we don't actually
6079         draw/move the splitter until after calling OnSplitterMoving.  This
6080         lets users cancel/disallow the movement by explicitly setting
6081         event.SplitX/SplitY.  Fixes #79372.
6082
6083 2006-09-27  Jackson Harper  <jackson@ximian.com>
6084
6085         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6086         because it is most likely on a window being destroyed, and that
6087         will give us an X11 error.
6088
6089 2006-09-27  Chris Toshok  <toshok@ximian.com>
6090
6091         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6092         the dropdown button now toggles between showing and hiding the
6093         dropdown.  Also, get rid of dropdown_form_showing and just use
6094         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6095         that part to someone who has handled Capture-fu before.
6096
6097 2006-09-27  Chris Toshok  <toshok@ximian.com>
6098
6099         * DataGrid.cs: return false if alt isn't pressed when '0' is
6100         pressed.  this keeps the '0' key from being swallowed, and fixes
6101         bug #79350.
6102
6103 2006-09-27  Chris Toshok  <toshok@ximian.com>
6104
6105         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6106         Calling Refresh (in response to a scrollbar event) screws up the
6107         scrollbar painting.  Fixes bug #78923.
6108
6109 2006-09-27  Chris Toshok  <toshok@ximian.com>
6110
6111         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6112         then insert into hashtable" blocks threadsafe.
6113
6114 2006-09-27  Chris Toshok  <toshok@ximian.com>
6115
6116         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6117         baseclass's, since otherwise the
6118         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6119         effect.  This gets the close button back in messageboxes.
6120
6121 2006-09-27  Chris Toshok  <toshok@ximian.com>
6122
6123         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6124         flag, not just != 0.  this makes flags that are actually multiple
6125         bits (like WS_CAPTION) work.  fixes bug #79508.
6126
6127 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6128
6129         * PageSetupDialog.cs: add support for getting and settings the 
6130         paper size, source and orientation.
6131
6132 2006-09-26  Chris Toshok  <toshok@ximian.com>
6133
6134         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6135         and caption == "", we need to remove the resize handles as well as
6136         the title bar.
6137
6138         * Control.cs (set_Text): turns out that setting Text on a form
6139         should change the WM styles on the window, since if ControlBox ==
6140         false, the only way to get a window border is to have a non-""
6141         Text property.  check winforms/forms/text.cs for an example.  so,
6142         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6143         update both window styles and title.  This fixes a lot of dialogs
6144         (including the preferences dialog in MonoCalendar.)
6145
6146 2006-09-26  Chris Toshok  <toshok@ximian.com>
6147
6148         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6149         control isn't a Form), call Win32ShowWindow to hide the window,
6150         but don't update the control Visible property.  When we reparent
6151         back to a parent control, call SetVisible in order for the
6152         window's visibility to be reinstated.
6153
6154         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6155         the FosterParent.
6156
6157         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6158         call for good, since it breaks MonoCalendar (and other things I'm
6159         sure.) Also, set all_controls to null *after* the owner calls,
6160         which end up regenerating it.
6161         (ChangeParent): allow new_parent to be == null, passing
6162         IntPtr.Zero down to XplatUI.
6163
6164         this fixes #79294 the right way.
6165
6166 2006-09-26  Mike Kestner  <mkestner@novell.com>
6167
6168         * GridEntry.cs : internal SetParent method.
6169         * PropertyGrid.cs : attach to property changed on the proper
6170         target if we have a hierarchical grid with subobjects. Setup
6171         GridItem.Parent for hierarchical items.
6172         * PropertyGridView.cs : Set value on the correct target for
6173         hierarchical grids. [Fixes #78903]
6174
6175 2006-09-26  Chris Toshok  <toshok@ximian.com>
6176
6177         * Control.cs (ChildNeedsRecreating): this should return true if
6178         either we're being recreated and the child is in our list, or our
6179         parent is waiting for our recreation.
6180
6181 2006-09-26  Chris Toshok  <toshok@ximian.com>
6182
6183         * Control.cs (ControlCollection.Remove): reinstate the
6184         value.Hide() call as suggested in bug #79294.
6185
6186 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6187
6188         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6189         coordinates (versus a relative move).
6190
6191 2006-09-26  Chris Toshok  <toshok@ximian.com>
6192
6193         * Control.cs: rework child recreation a little bit.  It turns out
6194         that we race between the DestroyNotify the WM_DESTROY message.  If
6195         the parent gets its DestroyNotify before the child gets the
6196         WM_DESTROY message, the child ends up not recreating (since the
6197         parent finishes its recreation on DestroyNotify, and the child
6198         checks ParentIsRecreating.)
6199
6200         So, instead we store off a list of all the child controls which
6201         need to be recreated when the parent control starts to recreate
6202         itself.  Then, when child controls get their WM_DESTROY message we
6203         check to see if they're in the parent's pending recreation list,
6204         and if so, we recreate.  This removes all dependency on ordering
6205         from the code and fixes the initial MonoCalendar upgrade dialog.
6206         
6207 2006-09-26  Jackson Harper  <jackson@ximian.com>
6208
6209         * TextControl.cs: Use the Line to get the length of the line,
6210         since soft line breaks can change the end line.
6211
6212 2006-09-26  Chris Toshok  <toshok@ximian.com>
6213
6214         * Control.cs (ControlCollection.AddImplicit): don't add the
6215         control again if it's already in one of our lists.  This keeps us
6216         from adding controls over and over again for comboboxes when their
6217         handle gets recreated (as the combobox adds implicit controls in
6218         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6219
6220 2006-09-26  Jackson Harper  <jackson@ximian.com>
6221
6222         * TextControl.cs: When deleting characters make sure that any
6223         orphaned zero lengthed tags get deleted.
6224         - Fix ToString for zero lengthed tags.
6225
6226 2006-09-25  Jackson Harper  <jackson@ximian.com>
6227
6228         * TextControl.cs: When getting a tag at the location there can be
6229         multiple tags at the same spot, these are 0-lengthed tags that
6230         appear when extra formatting has been stuck in a location.  We
6231         need to pull out the last of these 0 lengthed tags.
6232
6233 2006-09-25  Jackson Harper  <jackson@ximian.com>
6234
6235         * TextControl.cs: Fix print out in debug method.
6236         * TextBoxBase.cs: When text is set bail if we are setting to the
6237         previous value.
6238         
6239 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6240
6241         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6242           It is now possible to change the selected index in a FontXXXListBox
6243           with the up and down arrow keys from the FontXXXTextBoxes.
6244           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6245           FontXXXListBoxes to match ms.
6246
6247 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6248
6249         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6250         anyone can dispose it, anytime. All other properties returns enums, 
6251         structs or basic types so they don't need such tricks.
6252
6253 2006-09-22  Jackson Harper  <jackson@ximian.com>
6254
6255         * XplatUI.cs:
6256         * XplatUIWin32.cs:
6257         * Clipboard.cs:
6258         * DataFormats.cs:
6259         * XplatUIOSX.cs:
6260         * XplatUIDriver.cs: Update interface to add a primary selection
6261         flag, so the driver can use the primary selection buffer if
6262         needed.
6263         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6264
6265         * RichTextBox.cs: We need to supply the data object to paste now
6266         (so we can choose to supply CLIPBOARD or PRIMARY).
6267         * TextBoxBase.cs: Supply data object to paste (see above).
6268         - Middle click uses the primary selection data object.
6269         
6270 2006-09-21  Chris Toshok  <toshok@ximian.com>
6271
6272         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6273         of SetWMStyles.  It's still a rat's nest and is largely
6274         order-dependent which I dislike immensely.  This also fixes the X
6275         button disappearing from toplevel forms.
6276
6277 2006-09-21  Mike Kestner <mkestner@novell.com>
6278
6279         * ListBox.cs: move Jordi's click/dblclick raising code to the
6280         mouse up handler.
6281
6282 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6283
6284         * ListBox.cs: Fixes 79450
6285
6286 2006-09-21  Mike Kestner <mkestner@novell.com>
6287
6288         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6289         to deal with people updating the TreeNodeCollection after the tree
6290         is disposed.  "Fixes" 79330.
6291
6292 2006-09-20  Jackson Harper <jackson@ximian.com>
6293
6294         * TextControl.cs: Push the cursor record onto the undo stack
6295         before the delete action. This fixes 78651.
6296
6297 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6298
6299         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6300         CreateParams. Fixes 79329.
6301
6302 2006-09-19  Chris Toshok  <toshok@ximian.com>
6303
6304         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6305         things up a bit.  First, get rid of the NetAtoms array (and the NA
6306         enum), and just embed the atoms as static fields.  Also, add a
6307         couple of functions (StyleSet and ExStyleSet) to clean up all the
6308         bitmask testing of styles.
6309
6310         * X11Structs.cs: remove the NA enum, not needed anymore.
6311         
6312 2006-09-19  Chris Toshok  <toshok@ximian.com>
6313
6314         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6315         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6316         added cleanup to get MessageBox titles appearing again, which were
6317         broken by my earlier fix for caption-less/ControlBox-less windows.
6318
6319 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6320
6321         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6322           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6323           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6324           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6325           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6326           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6327           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6328           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6329           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6330           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6331           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6332             Inital import.
6333         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6334           ToolStripButton.cs: Stubs needed for above.
6335         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6336
6337 2006-09-15  Chris Toshok  <toshok@ximian.com>
6338
6339         * XplatUIX11.cs:
6340         - make the MessageQueues hashtable Synchronized.
6341         
6342         - SendMessage: if the Hwnd is owned by a different thread, use the
6343         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6344         thread.  Fixes bug #79201.
6345
6346 2006-09-15  Chris Toshok  <toshok@ximian.com>
6347
6348         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6349         ControlBox == false, we disallow maximize/minimize/close.  If the
6350         form Caption is "" we also disallow move (and get rid of the Title
6351         decoration).  Unfortunately, regardless of how things are set,
6352         we're stuck with the Title and WM menu.
6353
6354 2006-09-15  Chris Toshok  <toshok@ximian.com>
6355
6356         * Application.cs: add locking around the static message_filters
6357         ArrayList, part of #79196.
6358
6359 2006-09-15  Chris Toshok  <toshok@ximian.com>
6360
6361         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6362         Form.ControlBox == false, the window has no titlebar nor resize
6363         handles.  fixes bug #79368.
6364
6365 2006-09-15  Chris Toshok  <toshok@ximian.com>
6366
6367         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6368         >= 0.  Fixes bug #79370.
6369
6370 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6371         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6372         * Control.cs:
6373             Add properties: LayoutEngine, Margin, DefaultMargin.
6374             Add method: GetPreferredSize.
6375             Move layout logic from PerformLayout to layout engines. 
6376
6377 2006-09-13  Chris Toshok  <toshok@ximian.com>
6378
6379         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6380         fix for #79326 broke #78718, so this change addresses that.
6381
6382         - in SendWMDestroyMessages remove the call to
6383         CleanupCachedWindows, since we might be recreating the control and
6384         need to maintain the references to right Hwnd handles.  Also, set
6385         the zombie flag to true for each of the children in the hierarchy
6386         instead of calling hwnd.Dispose.  This will cause GetMessage to
6387         ignore all events for the window except for DestroyNotify.
6388
6389         - In GetMessage, ignore messages except for DestroyNotify for
6390         zombie hwnds.
6391         
6392         * Control.cs: revert the is_recreating fix from the last
6393         ChangeLog.  It's definitely "right", but it breaks switching from
6394         an MDI form to a non-MDI form.  Will need to revisit that.
6395
6396         * Hwnd.cs: add a zombie flag, which means "the
6397         client_window/whole_window handles are invalid, but we're waiting
6398         for the DestroyNotify event to come in for them".  Set the flag to
6399         false explicitly if setting WholeWindow/ClientWindow, and also
6400         when Disposing.
6401         
6402 2006-09-13  Chris Toshok  <toshok@ximian.com>
6403
6404         * XplatUIX11.cs: rework window destruction slightly.
6405
6406         - when destroying the windows associated with a control, we don't
6407         need 2 separate XDestroyWindow calls.  Just the one for the
6408         whole_window (or for client_window if whole_window is somehow
6409         IntPtr.Zero -- can this happen?) is enough.
6410
6411         - reworked SendWMDestroyMessages slightly, so we always dispose
6412         the child control hwnd's after sending the messages.
6413         
6414         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6415         the two places it was used (one was even using hwnd.Handle and the
6416         other hwnd.client_window.  ugh), adding another call in
6417         SendWMDestroyMessages.  We need this new call because now the
6418         DestroyNotify events in the queue will be ignored for the child
6419         controls (as their hwnd's were disposed, and the window id's
6420         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6421
6422         - this fixes bug #79326.
6423
6424 2006-09-13  Chris Toshok  <toshok@ximian.com>
6425
6426         * Control.cs: don't always set is_recreating to false at the end
6427         of RecreateHandle, since sometimes we're not done (and won't be
6428         until WndProc handles the WM_DESTROY message).  Also, set
6429         is_recreating to false in the WM_DESTROY handling code.  Part of
6430         the fix for bug #79326.
6431
6432 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6433
6434         * X11DesktopColors.cs: Start the droppage of debugging messages.
6435
6436         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6437
6438 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6439
6440         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6441
6442 2006-09-12  Chris Toshok  <toshok@ximian.com>
6443
6444         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6445         to create it using SetDataSource.  Fixes bug #79151.
6446
6447 2006-09-11  Chris Toshok  <toshok@ximian.com>
6448
6449         * XEventQueue.cs: add a DispatchIdle property.
6450
6451         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6452         either the queue is null, or the queue has DispatchIdle set to
6453         true.
6454         (DoEvents): set queue.DispatchIdle to false around the
6455         peek/translate/dispatch message loop in this method.  This keeps
6456         Application.Doevents from emitting idle events.  Part of the fix
6457         for #78823.
6458
6459 2006-09-11  Chris Toshok  <toshok@ximian.com>
6460
6461         * DataGrid.cs (set_DataSource): make this work for both the
6462         winforms/datagrid test and ReportBuilder.  It seems as though when
6463         we've created a ListManager (or maybe it's if we have a
6464         BindingContext?), when we set the DataSource it clears the
6465         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6466         #79333.
6467
6468 2006-09-11  Chris Toshok  <toshok@ximian.com>
6469
6470         * XplatUIX11.cs: deal with queue being null, which happens in all
6471         the Clipboard functions.  Fixes one of the two problems mentioned
6472         in #78612.
6473
6474 2006-09-11  Chris Toshok  <toshok@ximian.com>
6475
6476         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6477         button on various spots (including outside the menu) works closer
6478         to MS, and doesn't crash.  Fixes #79343.
6479
6480 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6481
6482         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6483         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6484         and the internal comparer is set. When a new ListViewItemSorter is set,
6485         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6486         was specified. No further processing is necessary if SortOrder is set
6487         to it's current value. If Sorting is modified to None, and View is
6488         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6489         (either custom or our internal ItemComparer) to null, on 1.0 profile
6490         only set item_sorter to null if its our internal IComparer. If Sorting
6491         is modified to Ascending or Descending, then use our internal IComparer
6492         if none is set, and if the current IComparer is our internal one then:
6493         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6494         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6495         Enum.IsDefined to verify whether a valid View value is specified in
6496         its setter. Automatically sort listview items when listview is
6497         created. In Sort, do nothing if ListView is not yet created, or if
6498         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6499         to None or ListViewItemSorter was set to null). Added Sort overload
6500         taking a bool to indicate whether the ListView should be redrawn when
6501         items are sorted (we use this in ListViewItemCollection to avoid double
6502         redraws). Modified our internal IComparer to take the sort order into
6503         account. In Add and AddRange methods of ListViewItemCollection, also
6504         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6505         view), but use overload with noredraw option to avoid double redraw.
6506         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6507         true when View is Tile, and do the same when attempting to set View to
6508         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6509         for selected/checked indices, as it involves overhead when sorting is
6510         done while these collections are not used all that often. Instead
6511         we'll build the indices on demand. Modified IList implementation of
6512         CheckedIndexCollection to use public methods if object is int.
6513         Modified CheckedListViewItemCollection to hide checked items if
6514         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6515         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6516         IList implementation in SelectedIndexCollection to use public methods
6517         if object is int. Modified SelectedListViewItemCollection to hide
6518         selected items if listview is not yet created.
6519         * ListViewItem.cs: CheckedIndices list no longer needs to be
6520         maintained separately (see ListView changes). Also clone font, fixes
6521         test failure.
6522
6523 2006-09-11  Mike Kestner  <mkestner@novell.com>
6524
6525         * ComboBox.cs: if we are updating the contents of the currently
6526         selected index, refresh the control or the textbox selection.
6527         [Fixes #79066]
6528
6529 2006-09-11  Mike Kestner  <mkestner@novell.com>
6530
6531         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6532         the 'specified' logic has been moved there.  This seems like a bug 
6533         in Control.cs, since our current SetBoundsCore completely ignores 
6534         the specified parameter.  Peter's commit seems to indicate that is 
6535         the way the MS control implementation works.  [Fixes #79325]
6536
6537 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6538
6539         * XplatUI.cs: Set default_class_name to be composed
6540         of current domain id. This allows MWF to be loaded in multiple
6541         domains on Win32.
6542
6543 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6544
6545         * X11Keyboard.cs: If we are unable to obtain the input method, do
6546         not call CreateXic to create the input context.   Should fix
6547         #78944/79276.
6548
6549 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6550
6551         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6552           Simplified gnome support by adding more pinvokes to get the
6553           icon for a file or mime type.
6554
6555 2006-09-08  Jackson Harper  <jackson@ximian.com>
6556
6557         * MenuAPI.cs: Deslect popup context menu items before closing the
6558         window, so that you don't see the previously selected item
6559         selected when you reopen the menu.
6560         * TextControl.cs: Update the cursor position even if we don't have
6561         focus.  This fixes typing in things like the ComboBox.  I'm not
6562         totally sure we should always set the visibility if we don't have
6563         focus, but couldn't find any corner cases where the cursor showed
6564         up when it shouldn't.
6565
6566 2006-09-08  Chris Toshok  <toshok@ximian.com>
6567
6568         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6569         our arrays are length 256.  & 0xff before indexing.  Fixes the
6570         crash in bug #78077.
6571         
6572 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6573
6574         * ThemeWin32Classic.cs: 
6575         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6576         is true. Handle that check box too.
6577
6578 2006-09-07  Chris Toshok  <toshok@ximian.com>
6579
6580         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6581         79244.
6582
6583 2006-09-07  Chris Toshok  <toshok@ximian.com>
6584
6585         * Control.cs: in set_BackColor only do the work if
6586         background_color != value.
6587
6588         * XplatUIX11.cs: move the clearing of invalid areas (both client
6589         and nc) to the same block of code where we set (nc_)expose_pending
6590         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6591         so things that cause invalidates from within OnPaint will trigger
6592         another call to OnPaint.  Fixes bug #79262.
6593
6594 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6595
6596         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6597         * FileDialog.cs: Fix typo
6598
6599 2006-09-07  Jackson Harper  <jackson@ximian.com>
6600
6601         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6602         for tab pages if they have any.
6603
6604 2006-09-06  Mike Kestner  <mkestner@novell.com>
6605
6606         * Splitter.cs: use the "current" rect when finishing drag handle
6607         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6608
6609 2006-09-06  Mike Kestner  <mkestner@novell.com>
6610
6611         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6612         support offset splitters. [Fixes #79298]
6613
6614 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6615
6616         * Mime.cs: Fixed a bug that could override the global mime type
6617           result.
6618
6619 2006-09-05  Jackson Harper  <jackson@ximian.com>
6620
6621         * TabControl.cs: Better calculation method for setting the slider
6622         pos. Prevents crashes on really wide tabs.
6623         - Draw Image on tab pages if an image list is used.
6624
6625 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6626
6627         * MonthCalendar.cs: When Font changes, the Size should be
6628         updated to fit the new font's space requirements.
6629
6630 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6631
6632         * ListBox.cs: If the items are cleared with Items.Clear set
6633           top_index to 0.
6634
6635 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6636
6637         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6638         fire DateChanged event instead of DateSelected event when
6639         the date was changed by keyboard interaction.
6640
6641 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6642
6643         * DateTimePicker.cs: Handle DateChanged for the associated
6644         month_calendar control, and set month_calendar.Font from 
6645         OnFontChanged method, as well as resize the height of the
6646         control when needed. Make PreferredHeight proportional.
6647
6648 2006-09-01  Chris Toshok  <toshok@ximian.com>
6649
6650         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6651         properties.
6652
6653         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6654
6655 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6656
6657         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6658           for decorations (Fixes #79219)
6659
6660 2006-09-01  Mike Kestner  <mkestner@novell.com>
6661
6662         * ComboBox.cs: first stab at sorting plus some selection handling
6663         fixes to bring us more in line with MS behavior.  Also switches back
6664         to index based selection.  Alternative patches for index-based 
6665         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6666         and latency@gmx.de on bug 78848.  I assume they were similar to this
6667         code I've had simmering in my tree forever.
6668         [Fixes #78848]
6669
6670 2006-09-01  Chris Toshok  <toshok@ximian.com>
6671
6672         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6673         when setting list position guard against ending up with a -1 index
6674         (the other part of the fix for #78812).  Should probably make sure
6675         we don't need the analogous fix in the ItemDeleted case.
6676
6677         * DataGrid.cs:
6678         - in SetDataSource, work around the fact that the way
6679         OnBindingContextChanged is invoked will cause us to re-enter this
6680         method.  I'll remove the hack once I investigate
6681         OnBindingContextChanged.
6682
6683         - fix the logic in set_DataSource and set_DataMember (basically
6684         what to do if the other of the two is null.)
6685         
6686         - in OnListManagerItemChanged, we need to take into account the
6687         edit row when deciding whether or not to call RecreateDataGridRows
6688         (part of the fix for #78812).
6689
6690 2006-09-01  Jackson Harper  <jackson@ximian.com>
6691
6692         * Splitter.cs: Don't do anything if there is no control to affect
6693         (prevents us from crashing in weird tet cases).
6694         * TreeView.cs: Bounding box for the mouse movement reverting
6695         focus/selection back to previously selected node.  This matches
6696         MS, and makes the tree a lot more useable.
6697         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6698         use clipping so they are not drawn.  This fixes when the control
6699         is set to have a transparent background, or if it was over an
6700         image.
6701
6702 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6703
6704         * MimeIcon.cs: Improved handling for reading default icons when
6705           using gnome (2.16 made it necessary). Check and read svg icons
6706           first, then 48x48 and then 32x32 icons.
6707
6708 2006-08-31  Chris Toshok  <toshok@ximian.com>
6709
6710         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6711         visible.
6712
6713         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6714         ProcessKeyPreview.  Fixes part of #77806.
6715
6716         * DataGrid.cs: big patch.
6717
6718         - revert the queueing up of DataSource/DataMember if inside
6719         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6720         its delayed databinding.  Instead, call SetDataSource in
6721         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6722         #78811.
6723
6724         - Also, it wasn't mentioned in #78811, but the test case exhibits
6725         behavior that was lacking in our datagrid implementation - Columns
6726         that have mapping names that don't exist in the datasource's
6727         properties aren't shown.  Yuck.  To fix this I added the bound
6728         field to the column style, and basically any calculation to figure
6729         out anything about columns uses a loop to find the bound columns.
6730         still need to investigate if I can cache an array of the bound
6731         columns or if the indices must be the same.
6732
6733         - When setting CurrentCell, we no longer abort if the cell being
6734         edited was in the add row.  This fixes the other part of #77806.
6735
6736         - The new code also fixes #78807.
6737         
6738         * ThemeWin32Classic.cs: perpetrate the same disgusting
6739         column.bound field hack, and only render bound fields.
6740
6741 2006-08-31  Chris Toshok  <toshok@ximian.com>
6742
6743         * DataGridColumnStyle.cs: add bound field.  this field is true if
6744         the datasource has a property corresponding to the mapping name.
6745
6746         * DataGridTableStyle.cs: set the bound field on the column styles
6747         depending on whether or not we have a column for that property.
6748
6749 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6750
6751         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6752           splitter control (fixes #79228)
6753
6754 2006-08-31  Chris Toshok  <toshok@ximian.com>
6755
6756         * DataGridColumnStyle.cs: we need to delay the assignment of
6757         property descriptor until the last possible moment due to the lazy
6758         databinding stuff in the datagrid.  Also, fix the exceptions
6759         thrown by CheckValidDataSource to match MS.
6760
6761 2006-08-31  Jackson Harper  <jackson@ximian.com>
6762
6763         * Form.cs: When activated select the active control, if there is
6764         no active control, we select the first control.
6765         * XplatUIX11.cs: If there is no focus control when we get a
6766         FocusIn event, find the toplevel form and activate it.  This
6767         occurs when you popup a window, it becomes the focus window, then
6768         you close that window, giving focus back to the main window.
6769
6770 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6771
6772         * MonthCalendar.cs: 
6773         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6774         as StringFormat with Center alignments in MonthCalendar,
6775         instead of creating new ones when drawing the control. 
6776         Also, draw the month name in bold style.
6777
6778 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6779
6780         * Control.cs:
6781           - PerformLayout(): It would seem MS performs the fill even if the 
6782             control is not visible (part of #79218 fix)
6783           - ResetBackColor(): Use the setter to reset the color, to allow
6784             overriders to catch the change.
6785         * Form.cs:
6786           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6787           - CreateHandle(): dito (part of $79218 fix)
6788           - Don't set an icon if we have a dialog
6789         * ScrollableControl.cs:
6790           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6791           - ScrollIntoView(): No need to scroll if control is already visible
6792             (resolves fixme and fixes #79218)
6793
6794 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6795
6796         * MonthCalendar.cs: Change proportions in SingleMonthSize
6797         to match the aspect of the original control.
6798
6799 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6800
6801         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6802           get updated when they get maximized.
6803
6804 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6805
6806         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6807
6808 2006-08-29  Chris Toshok  <toshok@ximian.com>
6809
6810         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6811
6812 2006-08-29  Jackson Harper  <jackson@ximian.com>
6813
6814         * TreeView.cs: Need to track selected node and highlighted node,
6815         they aren't always the same thing, when the mouse is down on a
6816         node it is hilighted, but not selected yet.
6817         - Do the HideSelection stuff right
6818         - Need to focus on rbutton mouse down. And redraw selection when
6819         right click is mouse upped.
6820
6821 2006-08-29  Mike Kestner  <mkestner@novell.com>
6822
6823         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6824         when SubItems.Count < Columns.Count.  [Fixes #79167]
6825
6826 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6827
6828         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6829
6830 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6831
6832         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6833           from X. Only send based on ConfigureNotify if we don't have the
6834           correct location in hwnd (if the window manager moved us)
6835
6836 2006-08-28  Mike Kestner  <mkestner@novell.com>
6837
6838         * ListView.cs: remove a TODO. 
6839         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6840         [Fixes ListView part of #79166]
6841
6842 2006-08-28  Mike Kestner  <mkestner@novell.com>
6843
6844         * ListView.cs: move wheel handler to parent since it is focused
6845         instead of the item_control now.  [Fixes #79177]
6846
6847 2006-08-28  Mike Kestner  <mkestner@novell.com>
6848
6849         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6850         when the control is focused. [Fixes #79171]
6851
6852 2006-08-28  Mike Kestner  <mkestner@novell.com>
6853
6854         * ListView.cs: size the item and header controls for empty and
6855         unscrollable views.
6856         * ThemeWin32Classic.cs: draw disabled backgrounds.
6857         [Fixes #79187]
6858
6859 2006-08-28  Chris Toshok  <toshok@ximian.com>
6860
6861         * Form.cs: remove unused "active_form" static field.
6862
6863         * Hwnd.cs: lock around accesses to static windows collection.
6864
6865         * Application.cs: lock threads in Exit ().
6866
6867 2006-08-28  Chris Toshok  <toshok@ximian.com>
6868
6869         * NativeWindow.cs: lock around accesses to window_collection.
6870         
6871 2006-08-28  Chris Toshok  <toshok@ximian.com>
6872
6873         * Control.cs: err, fix this the right way, by locking on controls
6874         when using it.  not by making it synchronized.
6875
6876 2006-08-28  Chris Toshok  <toshok@ximian.com>
6877
6878         * Control.cs: make the static "controls" field synchronized, as it
6879         gets updated from multiple threads.
6880
6881 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6882
6883         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6884           Prevent other threads from exiting when calling thread sets quit state.
6885         * XEventQueue.cs: Added PostQuitState property
6886
6887 2006-08-27  Chris Toshok  <toshok@ximian.com>
6888
6889         * AsyncMethodData.cs: add a slot for the window handle.
6890
6891         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6892         window (the destination control's window, not the foster window).
6893
6894         * Control.cs (BeginInvokeInternal): store the window's handle in
6895         the AsyncMethodData.
6896         
6897
6898 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6899
6900         * XplatUIX11.cs:
6901           - PostQuitMessage: Removed resetting S.D display handle, we might have
6902             another loop started after calling PostQuitMessage (Fixes #79119)
6903           - Created destructor to reset S.D handle
6904
6905 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6906
6907         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6908
6909 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6910
6911         * TextControl.cs (Insert): Update the caret position even if we don't
6912           have a handle yet, just don't call the driver in that case.
6913         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6914           to the end of the new selection text (Fixes #79184)
6915
6916 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6917
6918         * Form.cs (Activate): Only activate if the handle is created)
6919         * Control.c:
6920           - Mark window as invisible when it's disposed
6921           - Check if window handle is created when setting window visible, 
6922             instead of relying just on the is_created variable
6923           - Check if object is disposed when creating the control (Fixes #79155)
6924
6925 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6926
6927         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6928           when allowing layout again. Otherwise we re-generate the anchoring 
6929           distance to the border again and actually alter what the user wanted
6930           This is ugly, it'd be better if we used DisplayRectangle instead of
6931           ClientRectangle for Control.UpdateDistances, but that causes us to
6932           have other problems (initial anchoring positons would be wrong)
6933           (Fixes #78835)
6934
6935 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6936
6937         * Control.cs:
6938           - The size and location setters shouldn't go directly to 
6939             SetBoundsCore, but to SetBounds, which triggers layout on the
6940             parent, then calls SetBoundsCore. (Related to fix for #78835)
6941           - SetBounds: Moved actual location update code into this function
6942             from SetBoundsCore, to match MS. Added call to PerformLayout if
6943             we have a parent (to trigger resizing of anchored parents if the 
6944             child size has changed (see testcase for #78835) 
6945         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6946           new control code
6947         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6948
6949 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6950
6951         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6952           System.Drawing when a toplevel window gets closed; there might
6953           be other toplevel windows belonging to the same app (Fixes #78052)
6954
6955 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6956
6957         * FileDialog.cs: After reading FileDialog settings from mwf_config
6958           use Desktop prefix only if a real folder doesn't exist anymore.
6959         * FontDialog.cs: Added char sets.
6960           It is now possible to select the font, size or style with the
6961           textboxes.
6962
6963 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
6964
6965         * PrintPreviewDialog.cs: Use assembly name constants.
6966
6967 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6968
6969         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
6970           scrollbar from whacking it's buttons)
6971
6972 2006-08-24  Chris Toshok  <toshok@ximian.com>
6973
6974         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
6975         in this patch (aggregating setting Left/Top/Width/Height to
6976         setting Bounds on the scrollbars), but the crux of the fix is in
6977         Recalculate, where we scroll by the remaining scroll_position if
6978         we're hiding a scrollbar.  The 2*$5 reward in the comment is
6979         serious.
6980
6981 2006-08-24  Jackson Harper  <jackson@ximian.com>
6982
6983         * MdiClient.cs:
6984         * MdiWindowManager.cs: If the form is made a non-mdi window we
6985         need to remove the form closed event so that closing forms works
6986         correctly.
6987
6988 2006-08-24  Jackson Harper  <jackson@ximian.com>
6989
6990         * Control.cs: Make IsRecreating internal so that the driver can
6991         check it
6992         - Temporarily remove the Hide when controls are removed, its
6993         making a whole bunch of things not work because visibility isn't
6994         getting reset elsewhere correctly
6995         * Form.cs: Need to do a full handle recreation when the mdi parent
6996         is set.
6997         * XplatUIX11.cs: If we are recreating handles don't dispose the
6998         HWNDs.  What was happening is the handles were being recreated in
6999         SendWMDestroyMessages, but then flow continued on in that method
7000         and destroyed the new handles.
7001
7002 2006-08-23  Jackson Harper  <jackson@ximian.com>
7003
7004         * Form.cs: MdiClient is always at the back of the bus
7005         * Control.cs: When the order of items in the collection is changed
7006         we need to reset the all_controls array
7007         - do the same sorta setup thats done when adding a control when a
7008         control is set on the collection.
7009
7010 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7011
7012         * TextBoxBase.cs (get_Text): Return an empty array if our document
7013           is empty (fixes #79052)
7014
7015 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7016
7017         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
7018           on WM_SYSCHAR messages (fixes #79053)
7019
7020 2006-08-23  Chris Toshok  <toshok@ximian.com>
7021
7022         * DataGrid.cs: fix flickering when scrolling vertically.
7023
7024 2006-08-23  Chris Toshok  <toshok@ximian.com>
7025
7026         * DataGrid.cs (EndEdit): only invalidate the row header when we
7027         need to.
7028
7029 2006-08-23  Chris Toshok  <toshok@ximian.com>
7030
7031         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
7032         methods.  fixes the flicker when scrolling around.
7033
7034 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7035
7036         * FileDialog.cs: Making sure the control is created before we get a 
7037           chance to use it with BeginInvoke (Fixes #79096)
7038
7039 2006-08-23  Chris Toshok  <toshok@ximian.com>
7040
7041         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7042         width to use when painting the rows.
7043
7044 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7045
7046         * TextBoxBase.cs:
7047           - Throw ArgumentException if a negative value is passed to SelectionLength
7048           - Update the selection end if start is moved. end needs to be always
7049             after start. (Fixes #79095)
7050           - Track selection length; MS keeps the selection length even if start
7051             is changed; reset on all other operations affection selection
7052
7053 2006-08-22  Jackson Harper  <jackson@ximian.com>
7054
7055         * TreeView.cs: Make sure both scrollbars get displayed and sized
7056         correctly when the other bar is visible.
7057         - Use the original clip rectangle for checking if the area between
7058         the two scrollbars is visible, not the viewport adjusted clipping
7059         rectangle.
7060
7061 2006-08-22  Jackson Harper  <jackson@ximian.com>
7062
7063         * Binding.cs: We don't use IsBinding because it requires the
7064         control to be created, which really shouldn't be necessary just to
7065         set a property on the control.
7066
7067 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7068
7069         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7070         ArgumentNullReferenceException when the argument is null.
7071
7072 2006-08-21  Jackson Harper  <jackson@ximian.com>
7073
7074         * Timer.cs: Track the thread that the timer is started in (NOT
7075         CREATED), this way messages for it will only be triggered on its
7076         queue.
7077         * XEventQueue.cs: Track the timers here, this makes timers per
7078         thread, like MS.
7079         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7080
7081 2006-08-19  Chris Toshok  <toshok@ximian.com>
7082
7083         * XplatUIX11.cs: after further communication with pdb, we get the
7084         best of both worlds.  SetZOrder working for un-Mapped windows, and
7085         no X errors for un-mapped windows.
7086
7087 2006-08-19  Chris Toshok  <toshok@ximian.com>
7088
7089         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7090         as it was causing pdn toolbars to not have the correct stacking.
7091
7092 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7093
7094         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7095         calculation.  Not sure why control should ever be setting a negative
7096         width though.  Fixes #78931.
7097
7098 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7099
7100         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7101         null items in ObjectCollection class.
7102         * ListBox.cs.: Likewise.
7103
7104 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7105
7106         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7107           as the base method in ThemeWin32Classic should work fine.
7108           Fixed bug #78607.
7109
7110 2006-08-18  Jackson Harper  <jackson@ximian.com>
7111
7112         * Binding.cs: When validating if the value entered doesn't convert
7113         properly reset to the old value.
7114         * RadioButton.cs: Don't fire click when we get focus.
7115
7116 2006-08-18  Jackson Harper  <jackson@ximian.com>
7117
7118         * FileDialog.cs: Paint the selection on the directory combobox the
7119         same way as on MS. 
7120
7121 2006-08-17  Jackson Harper  <jackson@ximian.com>
7122
7123         * ErrorProvider.cs: Don't allow the error control to be selected.
7124         * Control.cs: Don't send the SetFocus messages, the control
7125         activation will do this, and if we do it blindly here validation
7126         does not work.
7127
7128 2006-08-17  Jackson Harper  <jackson@ximian.com>
7129
7130         * Control.cs:
7131         * ContainerControl.cs: Make validation events fire in the correct
7132         order.  TODO: For some reason the first validation event is not
7133         getting fired.
7134
7135 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7136
7137         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7138
7139 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7140
7141         * ComboBox.cs : implement scroll wheel support for popped-down
7142         state. Fixes #78945. 
7143
7144 2006-08-17  Jackson Harper  <jackson@ximian.com>
7145
7146         * TreeView.cs: Specify treeview actions (old patch that didn't get
7147         committed for some reason).
7148         - Don't let the mouse wheel scroll us too far.  Just want to make
7149         the bottom node visible, not scroll it all the ways to the top.
7150
7151 2006-08-17  Jackson Harper  <jackson@ximian.com>
7152
7153         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7154
7155 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7156
7157         * ComboBox.cs : don't do mouseover selection in simple mode.
7158
7159 2006-08-16  Jackson Harper  <jackson@ximian.com>
7160
7161         * Form.cs: Fire the closing events for all the mdi child windows
7162         when a window is closed.  If the cancel args are set to true, the
7163         main window still gets the event fired, but it doesn't not close.
7164         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7165         handler, instead of when the button is clicked, so cancelling the
7166         close works correctly.
7167         * ComboBox.cs: Send the mouse down to the scrollbar.
7168
7169 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7170
7171         * ListBox.cs: When passing 'null' to SelectedItem,
7172         set SelectedIndex to -1, to unselect items. This is the
7173         observed behaviour in .Net.
7174
7175 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7176
7177         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7178           MS flags saying there won't be any. (fixes #78800)
7179         * Control.cs (HandleClick): Made virtual
7180
7181 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7182
7183         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7184           cultures. Fixed bug #78399.
7185
7186 2006-08-16  Jackson Harper  <jackson@ximian.com>
7187
7188         * Form.cs: Use the MdiClients MdiChildren property to access
7189         MdiChildren instead of creating the array from the child controls.
7190         * MdiClient.cs: Maintain a separate array of the mdi children, so
7191         that insertion order is maintained when the Z-order is changed.
7192
7193 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7194
7195         * ListView.cs : add an ItemComparer and default to it for sorting.
7196         Fixes #79076, but sorting needs a complete overhaul to be compat with
7197         MS.
7198
7199 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7200
7201         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7202
7203 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7204
7205         * Hwnd.cs (Mapped): Properly traverse the tree
7206
7207 2006-08-15  Chris Toshok  <toshok@ximian.com>
7208
7209         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7210         pass manager.Current.GetType() to ParseData.  It has to be the
7211         property type.  So, hold off doing the ParseData until we're in
7212         SetPropertyValue where we know the type.  This fixes the crash in
7213         #78821 but the textbox is still empty.
7214
7215 2006-08-15  Chris Toshok  <toshok@ximian.com>
7216
7217         * DataGrid.cs:
7218         - when we're scrolling, only call Edit() again if the
7219         current cell is still unobscured. Fixes bug #78927.
7220         - when handling mousedown on a cell, ensure the cell is visible
7221         before calling Edit.
7222         - remove the properties from DataGridRow, and remove the
7223         DataGridParentRow class altogether.
7224         
7225
7226 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7227
7228         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7229           fire OnTextChanged by ourselves. There's no point calling base,
7230           we don't set the base value anywhere else. Fixes #78773.
7231
7232 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7233
7234         * ListBox.cs: Call CollectionChanged when modifying
7235         an item from Items indexer, to update the actual items
7236         in the list box.
7237
7238 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7239
7240         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7241         to match .Net behaviour.
7242
7243 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7244
7245         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7246
7247 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7248
7249         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7250
7251 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7252
7253         * MessageBox.cs: Prevent potential NRE exception.
7254         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7255
7256 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7257
7258         * MessageBox.cs: Calculate the owner of a messagebox, also make
7259           it topmost. Fixes #78753
7260
7261 2006-08-14  Chris Toshok  <toshok@ximian.com>
7262
7263         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7264         programmatically move windows.  first, set the PPosition hint as
7265         well as the USPosition hint.  Second include some code from pdb
7266         that sets the window type to NORMAL when we set the transient for
7267         hint.  This is because, in the absence of a window type, metacity
7268         thinks any window with TransientFor set is a dialog, and refuses
7269         to let us move it programmatically.  fascists.
7270
7271 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7272
7273         * XplatUIX11.cs: When setting normal hints, take into consideration
7274           an different hints previously set so we don't delete them (fixes #78866)
7275
7276 2006-08-12  Chris Toshok  <toshok@ximian.com>
7277
7278         * ToolBarButton.cs: make Layout return a boolean, if something to
7279         do with the button's layout changed.
7280
7281         * ToolBar.cs:
7282         - add another parameter to Redraw, @force, which all existing
7283           calls set to true.
7284         - make the Layout function return a boolean which is true if the
7285           layout has actually changed.  Redraw now uses this (and @force)
7286           to determine when to invalidate.  At present the only place
7287           where @force can be false is the call from OnResize, when
7288           background_image == null.  So, resizing a toolbar when the
7289           layout doesn't change results in no drawing.
7290
7291 2006-08-12  Chris Toshok  <toshok@ximian.com>
7292
7293         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7294         the VScrollBar and HScrollbar reversed.  oops.
7295
7296         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7297         scrollbars.  we were assigning them twice (once in
7298         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7299         therefore causing two scrollbar resizes (and redraws?) to happen
7300         per grid resize.
7301
7302 2006-08-12  Chris Toshok  <toshok@ximian.com>
7303
7304         * ToolBarButton.cs: redraw the entire button if the theme tells us
7305         to.
7306
7307         * Theme.cs: add ToolBarInvalidateEntireButton.
7308
7309         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7310         buttons, just the border.
7311
7312         * ThemeNice.cs: redraw the entire toolbar button since we need to
7313         draw the highlight image.
7314
7315         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7316         we need to redraw the entire button (not just the border).
7317
7318 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7319
7320         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7321           for vertical bars. Fixes the mismatches shown by #78513
7322
7323 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7324
7325         * FileDialog.cs: If a saved/remembered path doesn't exist
7326           anymore, fall back to "Desktop".
7327
7328 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7329
7330         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7331           parent. It's apparently legal to not have one
7332         * XplatUIX11.cs:
7333           - SetZOrder: Don't try to set Z-Order on an unmapped window
7334           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7335             it unless the coordinates are negative
7336
7337 2006-08-10  Mike Kestner  <mkestner@novell.com>
7338
7339         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7340         when setting to null per msdn docs.  Fixes #78854.
7341
7342 2006-08-10  Chris Toshok  <toshok@ximian.com>
7343
7344         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7345         flickering by setting a clip rectangle on the Graphics when we
7346         need to redraw just a particular menuitem.  Also, rename "OnClick"
7347         to "OnMouseDown" to reflect what it actually is.
7348         
7349         * Form.cs: track the OnMouseDown change.
7350
7351 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7352
7353         * CommonDialog.cs: Properly inherit the CreateParams from the form
7354           and only change what we need. Fixes #78865
7355
7356 2006-08-10  Chris Toshok  <toshok@ximian.com>
7357
7358         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7359         flickering in flat mode (and most of the flickering in general) by
7360         only invalidating the button border (and not the entire rectangle)
7361         when the state changes.  A couple of cases still flicker:
7362         ToggleButtons, and the dropdown arrow case when the user mouse
7363         ups.
7364
7365 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7366
7367         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7368           for german keyboards. Numlock state shouldn't affect the behaviour
7369           of the Del key. Fixes bug #78291.
7370
7371 2006-08-10  Chris Toshok  <toshok@ximian.com>
7372
7373         * ListControl.cs: remove the items.Clear line from BindDataItems,
7374         as this is the first thing done by both subclasses in their
7375         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7376         passed -1, refresh the list.  This gets databinding working when
7377         the datasource is set on the list before the datasource is
7378         populated (as in wf-apps/ReportBuilder.)
7379
7380         * ComboBox.cs: remove the argument to BindDataItems.  This call
7381         should really go away, and be initiated by the ListControl code.
7382
7383         * ListBox.cs: same.
7384
7385 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7386
7387         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7388           if no data is in the document when the control is displayed
7389
7390 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7391
7392         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7393           yes (fixes #78806)
7394         * TextControl.cs: 
7395           - PositionCaret: Allow positioning of caret but don't call methods 
7396             requiring a handle if the window isn't created yet
7397           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7398           - owner_HandleCreated: Don't position the caret, just update it's 
7399             location. User might have already set a different position
7400
7401 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7402
7403         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7404           windows. Screws up the returned coordinates for child windows. 
7405           Fixes #78825. I'm hoping this doesn't break something, since the
7406           code was explicitly put in 8 months ago, but no bug was attached.
7407           Menus still seem to work properly.
7408
7409 2006-08-08  Chris Toshok  <toshok@ximian.com>
7410
7411         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7412         supposed to do - delay data binding until the EndInit call.  Also,
7413         make the table style collection's CollectionChangeAction.Refresh
7414         work properly.
7415
7416         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7417         (with action = Refresh) when a consituent table's MappingName is
7418         changed.
7419
7420 2006-08-08  Chris Toshok  <toshok@ximian.com>
7421
7422         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7423         Invalidate, since changing the text can change the size of the all
7424         toolbar buttons.
7425
7426 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7427
7428         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7429           we don't have it yet
7430
7431 2006-08-08  Chris Toshok  <toshok@ximian.com>
7432
7433         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7434         dialog, as this causes X errors later on, since we actually
7435         destroy the window.  Instead, .Hide() it.
7436
7437 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7438
7439         * ComboBox.cs: Added focus reflection for popup window
7440         * XplatUIX11.cs: 
7441           - Removed transient setting for non-app windows for now, not sure it
7442             was needed
7443           - Fixed logic checking if we have captions when deciding 
7444             override_redirect, WS_CAPTION is two bits and a 0 check was not
7445             sufficient
7446           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7447             complicated
7448         * Form.cs: 
7449           - AddOwnedForm: Don't just add the form to the list, call the property
7450             to ensure the driver is informed about the ownership as well
7451           - CreateHandle: Set the TopMost status in the driver if we have an owner
7452         * XplatUI.cs: Fixed debug statement
7453
7454 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7455         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7456           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7457           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7458           TrackBarRenderer.cs: Make constructor private.
7459         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7460         * ProfessionalColorTable.cs: Make properties virtual.
7461
7462 2006-08-06  Duncan Mak  <duncan@novell.com>
7463
7464         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7465         is not changing.
7466
7467 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7468         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7469           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7470           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7471           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7472           Initial import of new 2.0 classes.
7473
7474 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7475         * Application.cs: Add 2.0 VisualStyles properties.
7476
7477 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7478         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7479           XplatUIX11.cs: Create property to allow access to existing private
7480           variable "themes_enabled"
7481
7482 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7483
7484         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7485         file size, as otherwise our class libraries fail using windows. Fixes
7486         bug #78759.
7487
7488 2006-08-04  Jackson Harper  <jackson@ximian.com>
7489
7490         * Form.cs:
7491         * XplatUIX11.cs: Move the toolwindow window manager creation into
7492         the X11 driver, this way on win32 we can let windows create/handle
7493         the toolwindows.
7494
7495 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7496
7497         * PrintDialog.cs: Remove some redundant checks, add some others,
7498         clean some code, and move the focus to the text boxes when the
7499         values are incorrect.
7500
7501 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7502
7503         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7504
7505 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7506
7507         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7508           handled correctly. Fixes bug #79001.
7509
7510 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7511
7512         * PrintDialog.cs: The "Copies" numeric up down must have
7513         set the Minimum property to 1; only if the value is bigger
7514         than 1, activate "Collate" check box. This is the behaviour of .Net.
7515         Also modify the Document elements only if it is not null.
7516
7517 2006-08-03  Jackson Harper  <jackson@ximian.com>
7518
7519         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7520         length. (We have a larger array then actual node count).
7521                 
7522 2006-08-03  Jackson Harper  <jackson@ximian.com>
7523
7524         * ComboBox.cs: Don't show selection by default.
7525         - The SelectAll isn't needed here, since the focus code should do
7526         that
7527         - DDL style lists to manual selection drawing, so when they
7528         get/lose focus they have to invalidate.
7529
7530 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7531
7532         * TextBoxBase.cs: Don't always show all selections by default.
7533
7534 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7535         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7536           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7537           Fixed various typos.
7538
7539 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7540
7541         * Control.cs: Removing the controls in a ControlCollection with
7542           Clear now hides the controls as expected. Fixes bug #78804. 
7543
7544 2006-08-03  Jackson Harper  <jackson@ximian.com>
7545
7546         * Control.cs: Revert previous focus patch, it breaks reflector.
7547
7548 2006-08-03  Jackson Harper  <jackson@ximian.com>
7549
7550         * ComboBox.cs: Cleanup selection and focus with the combobox.
7551         This also eliminates some duplicated keyboard code, since now
7552         everything is handled by the main class.
7553         - Make list selection work on mouse up instead of down, to match
7554         MS.
7555
7556 2006-08-02  Jackson Harper  <jackson@ximian.com>
7557
7558         * Control.cs: Setting focus needs to go through the whole
7559         selection mechanism.
7560
7561 2006-08-02  Chris Toshok  <toshok@ximian.com>
7562
7563         * PrintPreviewDialog.cs: change MinimumSize to use
7564         base.MinimumSize so it works.
7565
7566 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7567
7568         * TextControl.cs:
7569           - UpdateCaret: Added sanity check in case caret isn't defined yet
7570           - Line.Delete: Now updating selection and caret markers if we're
7571             transfering a node (Properly fixes #78323)
7572           - SetSelectionEnd: Added sanity check
7573         * TextBoxBase.cs: Removed broken attempt to fix #78323
7574
7575 2006-08-01  Chris Toshok  <toshok@ximian.com>
7576
7577         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7578         Close() call is handled in Form, not here.
7579
7580 2006-08-01  Chris Toshok  <toshok@ximian.com>
7581
7582         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7583         layout/rendering.
7584
7585         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7586         for sizes < 100% zoom.  The code now aggressively attempts to keep
7587         from calling document.Print (), and tries not to use the scaling
7588         g.DrawImage whenever possible (it still does if you scale to >
7589         100%, since usually that involves huge images).
7590
7591         * PrintPreviewControl.cs: hook up the close button.
7592
7593 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7594         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7595           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7596           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7597           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7598           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7599           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7600           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7601           Removed [Serializable] for 2.0 Event Handlers.
7602
7603 2006-07-31  Jackson Harper  <jackson@ximian.com>
7604
7605         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7606         * TextControl.cs: Uncomment out the body of this method.
7607
7608 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7609
7610         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7611           standard cursors.
7612
7613 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7614
7615         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7616           that embed TextBox and need selections visible even if textbox is not
7617           focused to enforce that behaviour.
7618         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7619           selection drawing
7620
7621 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7622
7623         * TextControl.cs:
7624           - Added new SetSelectionStart/SetSelectionEnd overloads
7625           - Fixed viewport width assignment to be accurate
7626           - Adjusted alignment line shift calculations to allow cursor on right
7627             aligned lines to be always visible at the right border (like MS)
7628         * TextBoxBase.cs:
7629           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7630           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7631           - CalculateScrollBars: Use ViewPort size instead of window size, to
7632             properly consider space occupied by the border and scrollbars 
7633             (Fixes #78661)
7634           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7635             calculations; no longer leaves artifacts
7636           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7637             calculation bugs (Still missing right/center align calculations)
7638
7639 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7640
7641         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7642           use of both scroll rect and clip rect, as they do the same.
7643
7644 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7645
7646         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7647           in the event handler (fixes #78912)
7648
7649 2006-07-31  Chris Toshok  <toshok@ximian.com>
7650
7651         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7652         grid.ListManager.Count, since grid.ListManager might be null.
7653         This of course begs the question "why are we drawing rows for a
7654         grid with no list manager (and therefor no rows)?"  Fixes the
7655         crash in bug #78929.
7656
7657 2006-07-31  Chris Toshok  <toshok@ximian.com>
7658
7659         * RelatedPropertyManager.cs: Don't always chain up to the parent
7660         ctor.  instead, call SetDataSource if the parent's position is !=
7661         -1.  Fixes the crash in #78822.
7662
7663 2006-07-31  Chris Toshok  <toshok@ximian.com>
7664
7665         * DataGrid.cs (get_ListManager): use field instead of property
7666         accessors for datasource and datamember.
7667         (RowsCount): make internal again.
7668         (OnMouseDown): end edits before resizing columns/rows.
7669         (OnMouseUp): restart edits after resizing columns/rows.
7670
7671 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7672
7673         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7674           This fixes the situation where the last set cursor is displayed
7675           whenever the mouse is over scrollbars.
7676
7677 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7678
7679         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7680         Document properties, as well as initial values.
7681
7682 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7683
7684         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7685           and ClientEdge results in a 3-pixel border, which is
7686           wrong.
7687
7688 2006-07-28  Jackson Harper  <jackson@ximian.com>
7689
7690         * TreeNodeCollection.cs: Fix the clear method.
7691         - Fix the Shrink also
7692
7693 2006-07-27  Jackson Harper  <jackson@ximian.com>
7694
7695         * TreeView.cs: Make sure the visible order is computed when we
7696         attempt to size the scrollbars (for trees that mess with the
7697         scrolling when they shouldn't.
7698         - Make sure to give the scrollbars valid values.
7699
7700 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7701
7702         * XplatUIX11.cs: Move motion compression code to where it
7703           has less performance impact
7704
7705 2006-07-26  Jackson Harper  <jackson@ximian.com>
7706
7707         * UpDownBase.cs: When the control is selected make the child
7708         controls non selectable, so that a click on them won't do a
7709         focus/unfocus cycle.
7710         - Don't give focus to the text box when the spinner is selected.
7711         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7712
7713 2006-07-26  Chris Toshok  <toshok@ximian.com>
7714
7715         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7716         satisfied with this solution.  If the bitmaps are small, we should
7717         just cache them in the PrintPreviewDialog and draw them here.
7718         Also, the layout is broken for the 2-up and 3-up cases.
7719
7720         * Theme.cs: add PrintPReviewControlPaint.
7721
7722         * PrintPreviewDialog.cs: first pass implementation.
7723
7724         * PrintPreviewControl.cs: first pass implementation.  No
7725         scrollbars yet.
7726
7727         * PrintDialog.cs: only validate fields if that particular portion
7728         of the UI is enabled.  Also, set the document's controller to a
7729         PrintControllerWithStatusDialog wrapping the document's print
7730         controller.
7731
7732         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7733         bring up a SaveFileDialog (i hope we don't want to match the
7734         behavior of the crappy windows file entry) and set the
7735         PrinterSettings.PrintFileName accordingly.
7736
7737 2006-07-26  Jackson Harper  <jackson@ximian.com>
7738
7739         * ContainerControl.cs: Add a field that disables auto selecting
7740         the next control in a container when the container is activated.
7741         * UpDownBase.cs: Don't select the text box when the up down is
7742         selected.
7743
7744 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7745
7746         * XEventQueue.cs: Added methods for peeking (used for compression
7747           of successive events)
7748         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7749           mouse move events (fixes #78732)
7750
7751 2006-07-25  Jackson Harper  <jackson@ximian.com>
7752
7753         * UpDownBase.cs: Use an internal class for the textbox so that we
7754         can control focus.  the updown control should always have focus,
7755         if either the text area or the buttons are clicked.
7756         - Send the key messages to the textbox, since it never actually
7757         has focus
7758         - Activate and decativate the textbox caret.
7759
7760 2006-07-24  Jackson Harper  <jackson@ximian.com>
7761
7762         * Control.cs: Use the directed select when selecting a control,
7763         this way the container controls override will get called and the
7764         whole ActiveControl chain will get triggered.  TODO: probably need
7765         to make sure this gets done everywhere instead of the old
7766         Select(Control).
7767         * ContainerControl.cs: Implement the directed Select method to
7768         find and activate the correct child control.    
7769         
7770 2006-07-22  Mike Kestner  <mkestner@novell.com>
7771
7772         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7773         menu handling code so that clicks without a grab work too.
7774         [Fixes #78914]
7775
7776 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7777
7778         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7779           Added some small optimizations.
7780
7781 2006-07-21  Matt Hargett  <matt@use.net>
7782
7783         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7784
7785 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7786
7787         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7788           tests pass and match MS in some strange border cases.
7789
7790 2006-07-21  Chris Toshok  <toshok@ximian.com>
7791
7792         * ThemeWin32Classic.cs: handle drawing of the relation links and
7793         parent row buttons.
7794
7795         * Theme.cs: change args to DataGridPaintParentRow.
7796
7797         * DataGrid.cs: Don't use controls for the relation links and
7798         parent buttons, so we have to handle all their interactions in
7799         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7800         when we're navigating through child tables, so we can reinstate
7801         selection, expanded state, current cell, etc.
7802
7803 2006-07-20  Chris Toshok  <toshok@ximian.com>
7804
7805         * ToolBar.cs: When we redraw a button, for whatever reason,
7806         there's no reason to redraw the entire toolbar.  Also, don't call
7807         Control.Refresh from within Redraw, as it's much heavier than
7808         Invalidate (which is really what we want).
7809
7810 2006-07-20  Chris Toshok  <toshok@ximian.com>
7811
7812         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7813         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7814         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7815         traces from within a debug IBindingList datasource
7816         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7817         to work in a similar fashion.
7818
7819 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7820
7821         * ListBox.cs: Don't call Sort () when setting 
7822         the Sorted property to false (avoid an unnecessary sort).
7823
7824 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7825
7826         * ListControl.cs: DataSource should throw an ArgumentException
7827         instead of a normal exception when the argument is not of the 
7828         correct type.
7829
7830 2006-07-20  Mike Kestner  <mkestner@novell.com>
7831
7832         * Control.cs: add InternalPreProcessMessage to allow us to steal
7833         key events before MWF gets its paws on them.  Adapted from a
7834         suggestion by eno.
7835         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7836         up/down/left/right navigation. Override the new internal control
7837         method to steal the events since they never make it to WndProc.
7838         * ToolBarButton.cs: don't worry about pushed when setting hilight
7839         since the drawing code prefers pushed to hilight. Invalidate on 
7840         Hilight changes. Fixes #78547 and #78525.
7841
7842 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7843
7844         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7845           the canvas size. Fixes #78868
7846
7847 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7848
7849         * Splitter.cs: Track requested split position until first layout
7850           is performed. Fixes #78871
7851
7852 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7853
7854         * Application.cs: Removed code that forces 1.x for the version
7855           number if the version started with 0. Not sure why that code was
7856           there and I couldn't find any bugs that indicated we needed it.
7857           Fixes #78869
7858
7859 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7860
7861         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7862           ResetDefaults(), just write some output to the console until it's
7863           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7864
7865 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7866
7867         * PropertyGridView.cs: set StartPosition of drop down forms
7868         so they appear in correct initial spot.  Fixes #78190.
7869
7870 2006-07-19  Mike Kestner  <mkestner@novell.com>
7871
7872         * ThemeWin32Classic.cs: use parent background color when drawing
7873         flat toolbars.  Restructure the conditionals to make sure non-flat
7874         non-Divider toolbars are filled too.  Fixes #78837.
7875
7876 2006-07-19  Mike Kestner  <mkestner@novell.com>
7877
7878         * ListBox.cs: Sort on collection changes even if the handle
7879         isn't created yet.  Fixes #78813.
7880
7881 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7882
7883         * ListControl.cs: DisplayMember should never be null,
7884         and now we assign String.Empty when null is passed to it (this
7885         is the .Net way).
7886
7887 2006-07-17  Mike Kestner  <mkestner@novell.com>
7888
7889         * ListViewItem.cs: restructure Font and subitem Font handling 
7890         to hold a specific font and refer back to owner on null.
7891         Fixes #78761.
7892
7893 2006-07-17  Mike Kestner  <mkestner@novell.com>
7894
7895         * ToolBar.cs: bandaid for side-effect of previous patch which was
7896         discarding explicit heights for non-AutoSize toolbars.  Need to
7897         extend my format tester to deal with AutoSize=false. Fixes #78864.
7898
7899 2006-07-15  Jackson Harper  <jackson@ximian.com>
7900
7901         * LabelEditTextBox.cs:
7902         * TreeView.cs: Use a new LabelEdit class for node editing, this
7903         class automatically 'closes' itself when it gets the enter key or
7904         loses focus.
7905         - Use the client rectangle when setting the trees scrollbars, so
7906         border style is taken into account.
7907         
7908 2006-07-14  Jackson Harper  <jackson@ximian.com>
7909
7910         * TreeNode.cs:
7911         * TreeView.cs: Make the editing work similar to MSs, firing the
7912         events correctly and ending edits correctly.
7913
7914 2006-07-14  Mike Kestner  <mkestner@novell.com>
7915
7916         * ToolBarButton.cs:
7917         * ToolBar.cs: layout restructuring and redraw enhancements to support
7918         formatting changes gracefully, like setting TextAlign, ImageList, 
7919         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7920         of the MS controls.  Things like flat toolbars ignoring button size
7921         but becoming constant sized at the largest button's size.  Normal
7922         toolbars with an image set cannot be shrunk smaller than the image,
7923         but text can be clipped/ignored.
7924         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7925         is zero.  Seems like DrawString should be smart enough to not put
7926         anything on screen though. Also trim labels and ellipsize at the char
7927         boundary, not word.
7928         Fixes #78711 and #78483.
7929
7930 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7931
7932         * FolderBrowserDialog.cs: Disable "New Folder" button and
7933           "New Folder" contextmenu menuitem if a folder like "My Computer"
7934           is selected.
7935
7936 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7937
7938         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7939         * FolderBrowserDialog.cs:
7940           - Use MWFConfig to store and read size and position settings
7941           - Added code to create a new folder (button or context menu).
7942             Use TreeView labeledit to change the name of the new folder.
7943
7944 2006-07-14  Jackson Harper  <jackson@ximian.com>
7945
7946         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7947         when the tree is scrolled we end editing.
7948
7949 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7950
7951         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7952           Down arrows
7953
7954 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7955
7956         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7957         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7958         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7959         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7960         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
7961         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
7962         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
7963         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
7964         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
7965         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
7966         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
7967         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
7968         ListViewItemSelectionChangedEventHandler.cs,
7969         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
7970         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
7971         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
7972         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
7973         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
7974         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
7975         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
7976         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
7977         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
7978         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
7979         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
7980         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
7981         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
7982         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
7983         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
7984         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
7985         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
7986         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
7987         WebBrowserNavigatingEventHandler.cs, 
7988         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
7989
7990 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
7991
7992         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
7993         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
7994         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
7995         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
7996         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
7997         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
7998         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
7999         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
8000         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
8001         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
8002         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
8003         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
8004         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
8005         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
8006         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
8007         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
8008         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
8009         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
8010         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
8011         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
8012         ListViewItemStates.cs, MaskFormat.cs: Added
8013
8014 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
8015
8016         * PropertyGridView.cs: Fix keyboard navigation of drop down.
8017         Patch from eno for bug 78558.
8018         
8019 2006-07-13  Jackson Harper  <jackson@ximian.com>
8020
8021         * TreeView.cs: When an edit is finished make sure that the
8022         selected node is visible.
8023         - When setting the top/bottom use the scrollbars is_visible, so
8024         everything will be set correctly even if the tree isn't visible
8025         yet.
8026
8027 2006-07-13  Jackson Harper  <jackson@ximian.com>
8028
8029         * ComboBox.cs: Revert the item->index part of my previous patch.
8030         * TreeView.cs: Use LostFocus instead of Leave for detecting when
8031         the edit box has lost focus (duh).
8032         - Just make the edit box not visible when we get return, that will
8033         take the focus, which will call EndEdit
8034         * TreeNode.cs When we start editing, notify the treeview.
8035
8036 2006-07-12  Jackson Harper  <jackson@ximian.com>
8037
8038         * ComboBox.cs: Clear out old items before setting the item list.
8039         This prevents databound controls from having their items added
8040         twice.
8041         - Switch the combobox to use indices whereever possible instead of
8042         using Item's.  This allows usto navigate through lists that have
8043         more then one item with the same string value (ie a, b, b, a).
8044         - Scroll the listboxes scrollbar when a non visible item is
8045         highlighted
8046         - Allow keypress to cycle through all the possible values. For
8047         example if you have b1, b2, b3 and hold down the B key all the
8048         values will be cycled through.
8049         
8050 2006-07-12  Jackson Harper  <jackson@ximian.com>
8051
8052         * TextBoxBase.cs:
8053         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8054         this using the internal methods.
8055         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8056         controls to "override" OnGotFocus and change focus behavior if
8057         needed.
8058         - Same thing for LostFocus
8059         * ComboBox.cs: Pass off focus to the text control properly.
8060
8061 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8062
8063         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8064         * FolderBrowserDialog.cs: Almost a complete rewrite.
8065           - Better support for Environment.Specialfolders
8066           - Added support for MWFVFS
8067           - Made setting SelectedPath work
8068
8069 2006-07-12  Jackson Harper  <jackson@ximian.com>
8070
8071         * Control.cs: Optimze getting all the controls.
8072
8073 2006-07-11  Jackson Harper  <jackson@ximian.com>
8074
8075         * ContainerControl.cs: Override SETFOCUS in the container control,
8076         so that it is not selected on mouse click.
8077
8078 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8079
8080         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8081           Hopefully we will have a better way once all of focus is complete.
8082
8083 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8084
8085         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8086           a compile error with csc.
8087
8088 2006-07-11  Jackson Harper  <jackson@ximian.com>
8089
8090         * Control.cs: When hiding a control only select the next control
8091         if the current control was focused.
8092         - Don't handle enter/leave when setting/killing focus, this is
8093         done by the container control.
8094         - Remove is_selected, it's not needed anymore.
8095         - Add utility methods for selecting a child control, and for
8096         firing the Enter/Leave events.
8097         * ContainerControl.cs: When a control is activated fire the
8098         enter/leave events.
8099         - Don't wrap when processing the tab key, so that focus can be
8100         moved outside of the container.
8101         - Use the correct active control
8102
8103 2006-07-11  Jackson Harper  <jackson@ximian.com>
8104
8105         * ComboBox.cs: Remove some debug code that was blinding me.
8106         * UpDownBase.cs: These controls actually aren't implicit, they are
8107         visible to the user.
8108
8109 2006-07-10  Chris Toshok  <toshok@ximian.com>
8110
8111         * DataGrid.cs: move back to the is_adding boolean field.  god i
8112         hate this is_editing/is_adding/is_changing stuff.
8113
8114 2006-07-10  Chris Toshok  <toshok@ximian.com>
8115
8116         * DataGridTableStyle.cs: just check if the property type is bool.
8117         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8118         Don't use CanRenderType.
8119
8120         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8121         if our text == NullText.  Remove CanRenderType.
8122
8123         * DataGridBoolColumn.cs: nuke CanRenderType.
8124
8125         * DataGrid.cs: reenable some code to end the current edit inside
8126         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8127         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8128         Also, remove the visible_row_count arg from CalcRowHeaders, since
8129         we don't need to worry about the actual height of the area.
8130
8131 2006-07-10  Chris Toshok  <toshok@ximian.com>
8132
8133         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8134         mode, just return.
8135
8136         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8137         the real sense of the IsInEditOrNavigateMode property (true =
8138         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8139
8140         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8141         column style exists, we still need to set its property descriptor
8142         to match up with our list manager.
8143
8144 2006-07-10  Chris Toshok  <toshok@ximian.com>
8145
8146         * ThemeWin32Classic.cs: implement the new row/header painting
8147         approach.  The parent row painting will likely go away and
8148         replaced with label controls, but the rest seems to work ok (and
8149         efficiently).
8150
8151         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8152         the row headers as a block now.  Instead we draw them in the
8153         normal draw-row loop.  Add some calls for drawing parent rows and
8154         relation rows.
8155
8156         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8157         a default table style.  Set the defaults from ThemeEngine.Current,
8158         not SystemColors.  Fix lots of misc issues with property setters.
8159
8160         * DataGrid.cs: move loads of style information out of this class
8161         as it's being duplicated with DataGridTableStyle.  keep track of a
8162         special DataGridTableStyle for the properties we used to mirror
8163         here.  Switch all the style properties to access this table style
8164         instead of instance fields of this class.  Also add a internal
8165         class to represent parent rows (more needs to be stored here, like
8166         the selection state from the parent table, as well as the
8167         expansion state.)  Also, for datasources with relations, do the
8168         right thing for collapse/expand, and add support for the
8169         navigation/parent row buttons.
8170
8171         Lastly, fix the crash in the 1.1.16 build.
8172
8173         * GridTableStylesCollection.cs: make the explicit interface
8174         implementations call the class's methods as opposed to duplicating
8175         them.
8176
8177         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8178         0 so the text doesn't jump around when we move the cursor.
8179
8180 2006-07-10  Jackson Harper  <jackson@ximian.com>
8181
8182         * TextBoxBase.cs:
8183         * ListBox.cs: Match MS's ToString (this makes debugging focus
8184         stuff infinitely easier).
8185
8186 2006-07-10  Jackson Harper  <jackson@ximian.com>
8187
8188         * Control.cs (SelectNextControl): When checking the control's
8189         parent use this instead of ctrl.parent so that null can be passed
8190         to SelectNextControl. (I have unit tests for this).
8191         - Remove unused var.
8192
8193 2006-07-10  Chris Toshok  <toshok@ximian.com>
8194
8195         * CurrencyManager.cs: correct one regression, the removal of the
8196         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8197         Refresh() correctly, and fix some event emission in
8198         ListChangedHandler.
8199
8200 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8201
8202         * FileDialog.cs: Don't use brackets for new folders if they exist
8203           under *nix. Instead use -(number of existing folders +1).
8204
8205 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8206
8207         * FileDialog.cs:
8208           - Fixed really nasty bug #78771
8209           - Don't block the whole GUI when reading directories with a lot of
8210             entries. Use an other thread instead and call BeginInvoke to
8211             update the ListView in MWFFileView
8212
8213 2006-07-07  Chris Toshok  <toshok@ximian.com>
8214
8215         * Control.cs (Dispose): release any Capture when disposing.
8216
8217 2006-07-07  Chris Toshok  <toshok@ximian.com>
8218
8219         * LinkLabel.cs (Select): if we chain up to the parent, set
8220         focused_index to -1 so we'll search for the first available link
8221         the next time the user tabs into us.  Also, if the direction is
8222         backward and focused_index == -1, start the search from the last
8223         element.
8224
8225 2006-07-07  Chris Toshok  <toshok@ximian.com>
8226
8227         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8228         is beyond the end of the text, don't do anything.
8229         (CreateLinkPieces): set our ControlStyles.Selectable based on
8230         whether or not we have any links.
8231         (Link.Invalidate): use a loop instead of foreach.
8232         (Link.set_Start): null out owner.sorted_links so it'll be
8233         recreated by CreateLinkPieces.
8234
8235 2006-07-06  Chris Toshok  <toshok@ximian.com>
8236
8237         * LinkLabel.cs: revert the SetStyle change.
8238
8239 2006-07-06  Chris Toshok  <toshok@ximian.com>
8240
8241         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8242         (OnEnableChanged): s/Refresh/Invalidate
8243         (OnGotFocus): if we have a focused index already, refocus it (so
8244         if we mouse out/in to the window it'll focus the right link).
8245         (OnKeyDown): move the tab handling out of here.
8246         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8247         when we lose focus.
8248         (OnMouseDown): don't Capture here - Control handles it.  Also,
8249         focus the active link.
8250         (OnMouseUp): don't deal with Capture.
8251         (OnPaintBackgroundInternal): remove.
8252         (OnTextAlignChanged): CreateLinkPieces before calling the
8253         superclass's method.
8254         (OnTextChanged): call CreateLinkPieces before calling superclass's
8255         method.
8256         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8257         move around.
8258         (Select): implement this, moving the selection between different
8259         links, and call parent.SelectNextControl if we don't have another
8260         link to focus in the given direction.
8261         (CreateLinkPieces): call Invalidate instead of Refresh.
8262         
8263 2006-07-06  Chris Toshok  <toshok@ximian.com>
8264
8265         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8266         new LinkLabel internals.
8267
8268         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8269         over pieces looking for active/focused/etc links.  also, deal with
8270         runs of text (and links) with embedded \n's in them, and use
8271         MeasureCharacterRanges instead of MeasureString to figure out the
8272         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8273         two-step.
8274
8275 2006-07-04  Jackson Harper  <jackson@ximian.com>
8276
8277         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8278         XKB or key auto repeat, do it manually.  Without key auto repeat,
8279         when a key is held down we get key press, key release, key press,
8280         key release, ... with auto repeat we get key press, key press, key
8281         press ..., and then a release when the key is actually released.
8282
8283 2006-07-03  Jackson Harper  <jackson@ximian.com>
8284
8285         * TabControl.cs:
8286         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8287         rules, they are always control color regardless of the background
8288         color.
8289
8290 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8291
8292         * FileDialog.cs: Added internal class MWFConfig.
8293           Removed Registry support and replaced it with support for the new
8294           MWFConfig class. See MWFConfig comments for more information.
8295
8296 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8297
8298         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8299           rectangle. Added some patches from eno from bug #78490 and fixed
8300           the arrow position for small up and down CPDrawScrollButtons.
8301
8302 2006-06-30  Jackson Harper  <jackson@ximian.com>
8303
8304         * InternalWindowManager.cs: Remove some debug code.
8305         * Form.cs: When an MdiParent is set to null, the window is
8306         "detatched" and becomes a normal window.
8307         * MdiClient.cs: Don't bring the new child form to the front until
8308         it is activated (setting it as active does this), this makes the
8309         previously active forms titlebar get redrawn as inactive.
8310
8311 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8312
8313         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8314           with later controls
8315
8316 2006-06-29  Mike Kestner  <mkestner@novell.com>
8317
8318         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8319         arrow in keynav state.  Fixes #78682.
8320
8321 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8322
8323         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8324           order (fixes #78393)
8325
8326 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8327
8328         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8329           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8330           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8331           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8332           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8333           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8334           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8335           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8336           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8337           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8338           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8339           values)
8340
8341 2006-06-28  Mike Kestner  <mkestner@novell.com>
8342
8343         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8344
8345 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8346
8347         * PropertyGrid.cs,
8348           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8349           item lines from other area (It also makes BackColor consistent and
8350           compatible with .NET). Fixed bug #78564.
8351
8352 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8353
8354         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8355         Patch from Eno for #78555.
8356
8357 2006-06-27  Chris Toshok  <toshok@ximian.com>
8358
8359         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8360
8361         * DataGridColumnStyle.cs: same.
8362
8363         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8364         
8365         * DataGridDrawingLogic.cs: nuke.
8366
8367 2006-06-27  Chris Toshok  <toshok@ximian.com>
8368
8369         * DataGridTableStyle.cs: clean up the constructors, and build the
8370         list of child relations for this table.  I have no idea if this is
8371         where we should be doing it (it probably isn't), but since we're
8372         already iterating over the properties..
8373
8374         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8375         struct and array for keeping track of row information, similar to
8376         what's shown in a hack on
8377         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8378
8379         * Theme.cs: be consistent about the naming of DataGrid methods,
8380         prefering ColumnWidths and RowHeights over columnsWidths and
8381         RowsHeights.
8382
8383         * ThemeWin32Classic.cs: same, and also add support for variable
8384         sized rows (and the +/- expansion icons for related rows).
8385
8386 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8387
8388         * TextBoxBase.cs: Applied Eno's patch from #78660
8389
8390 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8391
8392         * Form.cs (ScaleCore): We don't want to scale our form if it's
8393           state is minimized or maximized, but we still need to scale our
8394           child windows. Also, added try/finally block to ensure layout
8395           gets reset (Fixes #78697)
8396
8397 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8398
8399         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8400
8401 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8402
8403         * Form.cs: Fixed c+p error and added check to resize form if minimum
8404           size is bigger than current size (Fixes #78709)
8405
8406 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8407
8408         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8409
8410 2006-06-26  Mike Kestner  <mkestner@novell.com>
8411
8412         * ComboBox.cs: only do Keypress handling in the combo when there  
8413         are items in the collection. Fixes #78710.
8414
8415 2006-06-26  Chris Toshok  <toshok@ximian.com>
8416
8417         * Binding.cs: make this work bi-directionally.  also, clear up
8418         other mixups between Push/Pull Data (e.g. we're supposed to pull
8419         data when validating).
8420
8421         * BindingManagerBase.cs: trim some fully qualified collection
8422         types.
8423
8424         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8425
8426 2006-06-23  Chris Toshok  <toshok@ximian.com>
8427
8428         * PropertyManager.cs: It appears (according to the unit tests)
8429         that PropertyManager doesn't use
8430         PropertyDescriptor.AddValueChanged to track propery value changes
8431         in its datasource, but uses the same scheme as Binding, where it
8432         looks for a <Property>Changed event and binds to it.
8433
8434         Also, according to the docs, IsSuspended always returns false for
8435         a property manager with a non-null datasource.
8436
8437 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8438
8439         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8440           need to update the actual DialogResult. (Fixes #78613)
8441
8442 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8443
8444         * Form.cs (ShowDialog): Release any captures before running the
8445           new message pump (fixes #78680)
8446
8447 2006-06-22  Mike Kestner  <mkestner@novell.com>
8448
8449         * ListView.cs: Layout column widths properly in details mode even 
8450         if HeaderStyle.None is set.  Fixes #78691.
8451
8452 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8453
8454         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8455
8456 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8457
8458         * Control.cs (ContainsFocus): Using new driver method to get focused
8459           window, instead of trying to use internal tracking var, which can
8460           recursion issues (Fixes #78685)
8461         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8462           XplatUIWin32.cs: Added GetFocus method to return focused window
8463
8464 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8465
8466         * ColorDialog.cs: when the mouse button is pressed inside the color
8467         matrix, don't let the cursor move out of it until the button is
8468         released, which is the behavior on windows. Changed 'colours' by
8469         'colors' to use the same word consistently.
8470
8471 2006-06-21  Chris Toshok  <toshok@ximian.com>
8472
8473         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8474         child relation and back, using a stack).  Also, remove
8475         GetDataSource and the code that calls it - it's not needed.  Also,
8476         track CurrencyManager.ListName's removal.
8477
8478 2006-06-21  Chris Toshok  <toshok@ximian.com>
8479
8480         * CurrencyManager.cs: push some of the original type checking from
8481         BindingContext.CreateBindingManager to here, and remove some of
8482         the finalType stuff.  Need more tests to make sure I've got the
8483         ListName part right, and we might need more in SetDataSource.
8484
8485         * PropertyManager.cs: add a ctor that takes just the datasource,
8486         and no property name.  Make SetDataSource work with a null
8487         property_name, and make Current return the data_source if the
8488         property descriptor is null.  this makes 'string foo = "hi";
8489         BindingContext[foo].Current' return "hi" as it should.
8490
8491         * RelatedCurrencyManager.cs: make this code more generic - there's
8492         no reason the parent manager has to be CurrencyManager, and
8493         there's no reason to pass the DataRelation.  It suffices to use a
8494         BindingManagerBase and PropetyDescriptor.
8495
8496         * RelatedPropertyManager.cs: make a similar change here.
8497         
8498         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8499         flower I knew it could be.
8500
8501 2006-06-20  Chris Toshok  <toshok@ximian.com>
8502
8503         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8504         data in the source has changed and we need to update the control,
8505         so s/PullData/PushData.
8506
8507         * CurrencyManager.cs: Refresh is meant to update the control from
8508         data in the datasource.  So, s/PullData/PushData.
8509
8510         * BindingContext.cs: add more ugliness (we weren't handling the
8511         case where data_source = DataTable and data_member = column_name).
8512
8513         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8514         from the perspective of the datasource.  PullData pulls from the
8515         control, PushData pushes to the control.
8516
8517 2006-06-20  Chris Toshok  <toshok@ximian.com>
8518
8519         * BindingContext.cs: rewrite the CreateBindingManager code to
8520         handle navigation paths more or less properly.  This could
8521         definitely stand some more work, in particular to push the
8522         recursion up to the toplevel.  But that relies on fixes in other
8523         places (System.Data comes to mind).
8524
8525         Also, move to a flat hashtable (and encode the twolevel nature of
8526         the dictionary into the hash key).  This lets us implement the
8527         IEnumerable.GetEnumerator method.
8528
8529         * RelatedCurrencyManager.cs: new class.  Update our view based on
8530         our relation and our parent CurrencyManager's position.
8531
8532         * CurrencyManager.cs: split out some logic from the ctor into
8533         SetView, so it can be called from the new RelatedCurrencyManager
8534         subclass.
8535
8536         * RelatedPropertyManager.cs: new class.  Update our datasource
8537         based on the position of our parent CurrencyManager.
8538
8539         * PropertyManager.cs: split out some logic from the ctor into
8540         SetDataSource, so it can be called from the new RelatedDataSource
8541         subclass.  Also, make the Current getter return the value
8542         of the PropertyDescriptor, not the data_source.
8543
8544         * Binding.cs: no need to duplicate the string splitting code here.
8545
8546 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8547
8548         * Control.cs:
8549           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8550             of the control is not altered, even though  we might be changing the
8551             internal state of the control (#78458)
8552           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8553             OnEnabledChanged, to allow easy altering of any child window state
8554           - OnEnabledChanged: Added code to enable/disable driver window state
8555           - OnParentEnabledChanged: Instead of firing the event, call 
8556             OnEnabledChanged, which will fire the event and also a) set driver
8557             window state and pass the enabled state to any grandchildren (#78458)
8558
8559 2006-06-19  Jackson Harper  <jackson@ximian.com>
8560
8561         * InternalWindowManager.cs: We don't set the cursor explicitly
8562         thats done via the response to NCHITTESTs.
8563         - Don't need to adjust for titlebar heights anymore, the
8564         coordinates are coming in the correct coordinates now (see peters
8565         last patch).
8566
8567
8568 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8569
8570         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8571           being translated relative to whole window, instead of client window.
8572           That caused broken offsets on mouseclick (and caused gas for our
8573           InternalWindowManager)
8574
8575 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8576
8577         * TextControl.cs:
8578           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8579           - Undo(): Added replay of cursor move on DeleteChars action; added
8580             calling Undo() again if a recorded cursor move is invalid (to
8581             ensure that some action is performed on Undo)
8582         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8583
8584 2006-06-16  Jackson Harper  <jackson@ximian.com>
8585
8586         * MdiClient.cs: Instead of just sizing maximized windows when
8587         there is a resize we also have to adjust the Y of minimized
8588         windows, so they stay pinned to the bottom of the mdi container.
8589         - Eliminate separate tracking of the active control, we can just
8590         get this from the controls collection.
8591         - Paint the decorations for the newly activated titlebar so we get
8592         a pretty blue bar.
8593         * InternalWindowManager.cs:
8594         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8595         even if they are a tool window.
8596         
8597 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8598
8599         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8600           undo buffer, these can happen when text was deleted and the cursor
8601           was recorded first. Since we will also have a recorded cursor
8602           after the delete this is not an issue. (Fixes #78651)
8603
8604 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8605
8606         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8607           instead properly track control states internally (allows us to
8608           remove is_selected from Control)
8609
8610 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8611
8612         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8613         whose width is not a multiple of 8.
8614
8615 2006-06-13  Jackson Harper  <jackson@ximian.com>
8616
8617         * MdiClient.cs:  Only maximize the next child if the current one
8618         is maximized.
8619
8620 2006-06-13  Chris Toshok  <toshok@ximian.com>
8621
8622         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8623         modified.  Also, guard against grid or grid_drawing being null in
8624         Invalidate.
8625
8626         * DataGrid.cs: Reformat tons of getters/setters.  In the
8627         DataMember setter, just call SetNewDataSource instead of
8628         duplicating some of its functionality.  In SetNewDataSource, don't
8629         check ListManager for null, since the property getter creates the
8630         object if needed.
8631
8632         * DataGridTableStyle.cs: don't set TableStyle or call
8633         SetDataGridInternal on the column here, it's done in
8634         GridColumnStylesCollection.Add.
8635
8636         * GridColumnStylesCollection.cs: fix all the explicit interface
8637         implementations to just call our methods.  Nuke AddInternal() and
8638         move the body of it to Add().  Also, add a call to
8639         column.SetDataGridInternal to Add().
8640
8641         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8642         base()+duplicate code.  Also, use the Format property instead of
8643         format to generate an Invalidate ala MS.  Lastly, create the
8644         textbox here, unconditionally.
8645         (set_Format): call Invalidate.
8646         (get_TextBox): no need to call EnsureTextBox.
8647         (Commit): remove the message box.
8648         (Edit) remove the call to EnsureTextBox.
8649         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8650         (EnterNullValue): no need to check textbox for null.
8651         (HideEditBox): no need to check textbox for null.
8652         (SetDataGridInColumn): add the textbox to the grid's controls.
8653         (EnsureTextBox): nuke.
8654         
8655 2006-06-13  Jackson Harper  <jackson@ximian.com>
8656
8657         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8658         and redraw the buttons when needed. Unhook when the window is
8659         unmaximized.
8660         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8661         needs this so that it can redraw its buttons when the menu is
8662         repainted.
8663         * InternalWindowManager.cs:
8664         * Form.cs: The method order has changed for DrawMaximizedButtons,
8665         so that it can be a PaintEventHandler.
8666         
8667 2006-06-13  Jackson Harper  <jackson@ximian.com>
8668
8669         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8670         window is activated and maximized, even if it wasn't before.
8671         - When  a new window is activated repaint the decorations of the
8672         old one, so that it no longer has the Active "look" (the blue
8673         titlebar).
8674         * InternalWindowManager.cs: Open up CreateButtons to base classes
8675         so they can recreate the buttons on state changes.
8676         - If a window is maximized give it all three buttons
8677         * MdiWindowManager.cs: Create the titlebar buttons when the state
8678         is changed, this is needed because a toolwindow will not have all
8679         three buttons until it is maximized.
8680
8681 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8682
8683         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8684           Fixed bug #78609.
8685
8686 2006-06-12  Jackson Harper  <jackson@ximian.com>
8687
8688         * KeysConverter.cs: Make sure we handle the Ctrl special case
8689         if its the only key.
8690         
8691 2006-06-12  Jackson Harper  <jackson@ximian.com>
8692
8693         * Theme.cs: Add a method to get the size of a managed window
8694         toolbar button.
8695         * InternalWindowManager.cs: Remove the ButtonSize property, this
8696         should be retrieved from the theme.
8697         * MdiWindowManager.cs: Get the button size from the theme
8698         * ThemeWin32Classic.cs: Make the method to get the managed window
8699         titlebar button size public.
8700         - Handle the different button sizes of maximized toolwindows
8701         (should match any maximized window).
8702         - Get the titlebar height from the theme, not the WM (which gets
8703         it from the theme).
8704
8705 2006-06-12  Jackson Harper  <jackson@ximian.com>
8706
8707         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8708         event down to the mdi window manager.
8709         - Expose some extra stuff to base classes
8710         - Make sure to end the Capture on an NC Mouse up, so that we can
8711         get double clicks properly, and the sizing doens't stick.
8712         - When doing PointToClient contain it in the workable desktop
8713         area, this prevents windows from changing size when the cursor is
8714         pulled outside of the working area while sizing.
8715         * MdiWindowManager.cs: When we get a double click maximize the
8716         window.
8717         - Reset the cursor after handling mode changes.
8718
8719 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8720
8721         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8722           current desktop, instead of just assuming a 0, 0 origin. This
8723           is needed for our internal window manager, to know the top
8724           margin of the desktop
8725
8726 2006-06-12  Chris Toshok  <toshok@ximian.com>
8727
8728         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8729         we need this to get rid of the selected background in the bool
8730         column.
8731         (CancelEditing): move the ConcedeFocus call to above the Abort
8732         call.  Also, set is_changing to false and invalidate the row
8733         header if we were changing before.
8734         (ProcessKeyPreviewInternal): remove, since noone outside this
8735         class calls it anymore.  Roll the code into ProcessKeyPreview.
8736         (EndEdit): remove the internal version.
8737         (InvalidateCurrentRowHeader): make private.
8738
8739         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8740         Keys.Escape handling (and with it the last call to
8741         DataGrid.EndEdit from outside the class.)
8742
8743
8744 2006-06-12  Chris Toshok  <toshok@ximian.com>
8745
8746         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8747         (OnKeyPress): set isedit to true.
8748         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8749         already handled by the grid.
8750
8751         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8752         right.  ugh.
8753         (set_DataSource): SetDataSource always returns true, so stop
8754         putting it in an if statement.
8755         (EndEdit): get rid of some {}'s
8756         (ProcessGridKey): return true in case Keys.Escape.
8757         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8758         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8759         PositionChanged, stopped connecting to CurrentChanged.
8760         (GetDataSource): simplify this a bunch.
8761         (SetDataSource): change return type from bool to void.
8762         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8763         to this, and make sure we don't set ListManager.Position inside
8764         set_CurrentCell.
8765         (OnListManagerItemChanged): if we're passed an actual index,
8766         redraw that row.
8767
8768         * CurrencyManager.cs (set_Position): don't call PullData here.
8769
8770 2006-06-09  Jackson Harper  <jackson@ximian.com>
8771
8772         * TreeNode.cs:  Recalculate the visible order before doing the
8773         Expand/Collapse Below calls, because those calls generate an
8774         expose.
8775         - Reduce calls to the TreeView property, which is mildly expensive
8776         by using a local var.
8777         * Form.cs: Layout the MDI child windows when creating the parent
8778         form.
8779         - Don't use the internal constructor anymore
8780         * MdiClient.cs: use the parent form width/height (if available)
8781         when laying out the child windows, we do this because the
8782         mdiclient isn't docked yet when the initial layout is done.
8783         - Don't need an internal constructor anymore.
8784
8785 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8786
8787         * FileDialog.cs: handle access errors when trying to create a folder
8788         or changing to a directory. No need to initialize out parameters.
8789
8790 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8791
8792         * FileDialog.cs: Append a number when creating a new folder if the
8793           folder already exists (use parenthesis instead of square brackets)
8794
8795 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8796
8797         * FileDialog.cs:
8798           - Disabled registry support for windows and added better registry
8799             error checking for other systems (need to investigate why it
8800             works perfectly on my system)
8801           - If a folder already exist show an error MessageBox instead of
8802             trying to create an indexed name.
8803           - Fixed a non intentional typo.
8804
8805 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8806
8807         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8808
8809 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8810
8811         * FileDialog.cs: When creating a new folder don't crash if the
8812           folder already exists.
8813
8814 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8815
8816         * FileDialog.cs: Allmost a complete rewrite.
8817           - added a "virtual" file system that handles the differences
8818             between unix and windows file systems (especially the directory
8819             structure). Moved most of the directory and file handling code
8820             into the vfs.
8821             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8822             UnixFileSystem and FSEntry.
8823           - Recently used folder/directory, size, location and used file names
8824             (file name ComboBox) are now stored in the registry and get read
8825             before the dialog shows up (fixes part 6 of bug #78446).
8826           - Creation of new folders/directories is now possible (context menu
8827             or ToolBar). Added TextEntryDialog for this that fills in the gap
8828             until ListView.LabelEdit works.
8829           - Fixed cursor handling (bug #78527) and focus handling for
8830             PopupButtonPanel
8831           - Various "Search in" ComboBox enhancements. The content of the
8832             dropdown listbox now almost matches ms.
8833           - Changed the behaviour when the user switches to SpecialFolder
8834             Recent to show the ListView in View.Details.
8835           - Beside using the ToolBar to change the View property of the
8836             file ListView it is now possible to use the context menu too.
8837
8838 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8839
8840         * ComboBox.cs: Don't create a new ObjectCollection when an item
8841           gets inserted. Just insert the item in the existing object_items
8842           ArrayList.
8843
8844 2006-06-08  Jackson Harper  <jackson@ximian.com>
8845
8846         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8847         that the treeview and root node checks are done also, this fixes a
8848         regression i caused in the unit tests.
8849
8850 2006-06-07  Wade Berrier <wberrier@novell.com> 
8851
8852         * RichTextBox.cs: More ISO8859-1 -> unicode
8853
8854 2006-06-07  Mike Kestner  <mkestner@novell.com>
8855
8856         * ComboBox.cs : use items to hold highlight/selection so that
8857         collection insertions don't require synchronization.
8858
8859 2006-06-07  Jackson Harper  <jackson@ximian.com>
8860
8861         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8862         routine.  We now always keep the sized edge at the cursor instead
8863         of computing movement and adjusting rects.  There is one buglet
8864         with this method though when the cursor is moved over area that
8865         the window can not expand too (such as the toolbars on the desktop).
8866
8867 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8868
8869         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8870         here. Fixes crash on startup in AlbumSurfer.
8871
8872 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8873
8874         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8875           values
8876
8877 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8878
8879         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8880         statement to avoid calling XNextEvent which will block if another thread
8881         took the event that we were expecting. Fixes bug #78605.
8882
8883 2006-06-07  Mike Kestner  <mkestner@novell.com>
8884
8885         * ListView.cs : isolated checkbox clicking from the selection logic.
8886         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8887
8888 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8889
8890         * Form.cs: Check that the value passed to Form.DialogResult
8891         is a valid enum value.
8892
8893 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8894
8895         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8896         Computer'. Clicking it in the network view goes to 'My Computer'.
8897         Added CIFS filesystem type. Display the mount point of filesystems.
8898         Avoid duplicate mount points (happens for me with CIFS);
8899
8900 2006-06-06  Jackson Harper  <jackson@ximian.com>
8901
8902         * InternalWindowManager.cs: Draw the maximized windows buttons
8903         when resizing.
8904
8905 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8906
8907         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8908         all other dialogs. Fixes bug #78585.
8909
8910 2006-06-06  Mike Kestner  <mkestner@novell.com>
8911
8912         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8913         Only invalidate checkbox on checkstate changes to avoid flicker.
8914         * ListBox.cs : avoid unselect/select when clicking selected item.
8915         avoid reselection flicker for already multiselected items.
8916         Fixes #78382.
8917
8918 2006-06-06  Jackson Harper  <jackson@ximian.com>
8919
8920         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8921         the parent form so that the menu is removed if needed.
8922
8923 2006-06-06  Mike Kestner  <mkestner@novell.com>
8924
8925         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8926         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8927
8928 2006-06-06  Mike Kestner  <mkestner@novell.com>
8929
8930         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8931
8932
8933 2006-06-06  Jackson Harper  <jackson@ximian.com>
8934
8935         * Control.cs: Use the property (instead of the field) to get the
8936         default cursor so it is instantiated correctly.
8937         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8938         resizes so we need to manually repaint the window decorations here.
8939         - Set the titlebar button locations as soon as they are created,
8940         otherwise they are not set correctly on win32.
8941         
8942 2006-06-06  Chris Toshok  <toshok@ximian.com>
8943
8944         * CurrencyManager.cs (set_Position): call PullData before
8945         OnCurrentChanged.
8946         (AddNew): after calling IBindingList.AddNew, update our
8947         listposition, and call OnCurrentChanged/OnPositionChanged (without
8948         calling PullData).
8949         (OnCurrentChanged): remove the call to PullData from here.
8950         (OnItemChanged): remove the call to PushData from here.
8951         (OnPositionChanged): change the test from == null to != null to
8952         match the other methods.
8953         (ListChangedHandler): the grossest part of the patch.  Implement
8954         this such that it passes the unit tests in CurrencyManagerTest and
8955         the output more or less matches that of MS's implementation.
8956  
8957 2006-06-06  Mike Kestner  <mkestner@novell.com>
8958
8959         * ListView.cs : only update check state on single click.
8960         * ThemeWin32Classic.cs : fix focus drawing for details view without
8961         fullrowselect.  Fixes #78454.
8962         * XplatUIX11.cs : fix for double click emission.
8963
8964 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
8965
8966         * PropertyGridView.cs : Applied Atsushi's patch to fix
8967         font dialog bug  (#78197).
8968
8969 2006-06-05  Jackson Harper  <jackson@ximian.com>
8970
8971         * TreeNode.cs: Compute the next node for expanding/collapsing
8972         correctly. We now factor in nodes without a NextNode
8973         correctly. (Fixes somes cases in nunit-gui).
8974         * InternalWindowManager.cs: Set the bounds when updating the
8975         virtual position of a tool window.
8976         
8977 2006-06-05  Chris Toshok  <toshok@ximian.com>
8978
8979         * DataGrid.cs: rename cached_currencymgr to list_manager.
8980         (set_CurrentCell): move SetCurrentCell code here, and clean it up
8981         some.
8982         (CurrentRow, CurrentColumn): single accessors so we can make the
8983         cursor movement code a lot easier to understand.
8984         (CurrentRowIndex): implement this in terms of CurrentRow.
8985         (BeginEdit): clean this up a bit.
8986         (CancelEditing): sort out the is_editing/is_changing/is_adding
8987         stuff a little.
8988         (EndEdit): minor changes.
8989         (OnKeyDown): add a comment about a (most likely) unnecessary
8990         check.
8991         (OnMouseDown): cancel editing when we click on a row header.  And
8992         use the CurrentRow setter, not CurrentCell.
8993         (ProcessDialogKey): directly call ProcessGridKey.
8994         (UpdateSelectionAfterCursorMove): factor out this common block of
8995         code (it's used everywhere that we move the cursor by updating row
8996         or column).
8997         (ProcessGridKey): pretty substantial overhaul.  Use the
8998         CurrentRow/CurrentColumn properties to make the code a lot more
8999         readable.  Only use the CurrentCell property when we have to
9000         modify both row and column at once.  Tab behavior is still broken,
9001         and Delete is untested.
9002         (Select): if we have no selected rows, set selection_start to
9003         @row.
9004         (EditCurrentCell): rename EditCell this.  It was only ever invoked
9005         with CurrentCell as the arg, so drop the arg and rename it.
9006
9007         * DataGridColumnStyle.cs: clean up the constructors a little, and
9008         drop CommonConstructor().
9009
9010         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
9011         actually get notified when the user hits it.
9012         (ProcessKeyMessage): *substantially* simplify this method.
9013         There's no reason (that I can see) for the textbox to be making
9014         calls into the datagrid at all.  Remove all of them but the ones
9015         for Enter handling.  those will take some more work.
9016
9017         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
9018         calling HideEditBox.
9019         (HideEditBox): if we have an active textbox, render it invisible
9020         without causing a re-layout of the datagrid.
9021
9022 2006-06-05  Mike Kestner  <mkestner@novell.com>
9023
9024         * ListView.cs : fix NRE crasher when focuseditem is cleared by
9025         collection changes by resetting it to Items[0].  Fixes #78587.
9026
9027 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9028
9029         * MessageBox.cs: if the height of the text is larger than the icon_size,
9030         use that. Fixes bug #78575.
9031
9032 2006-06-05  Jackson Harper  <jackson@ximian.com>
9033
9034         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9035         node is basically responsible for drawing its entire horizontal
9036         area.  When drawing a node it draws its parent node lines if
9037         needed.
9038         - Adjust the clip area to the viewport rectangle
9039         - Fix Left/Right key handling to match MS. (It expand/collapses
9040         and moves to parents/first child but does not move selection to
9041         sibling nodes).
9042         - Fix SetTop to work with new bound calculation code
9043         - When scrollbars are no longer needed we need to reset scrolling
9044         vars and recalculate the visible order so the redraw is correct
9045         * TreeNode.cs: We can't expand/collapse nodes with no children.
9046
9047 2006-06-03  John Luke  <john.luke@gmail.com> 
9048
9049         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9050         so the colors work without dev packages
9051         
9052 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9053
9054         * Control.cs 
9055           - Select: Implemented to just use activate. Seems to match MS 
9056             behaviour closest. Documented to only do actual control walking 
9057             based on it's parameters if in a container control so I moved 
9058             the code there.
9059           - Removed selection check logic from our internal Select() method
9060         * ContainerControl.cs:
9061           - Select: Moved selection logic from Control here, since MS documents
9062             that containers obey the bool arguments. No longer calling base
9063
9064 2006-06-02  Jackson Harper  <jackson@ximian.com>
9065
9066         * TreeView.cs: If the selected node isn't changed when we get
9067         focus update the previously selected node so that we see the
9068         selection box.
9069
9070 2006-06-02  Mike Kestner  <mkestner@novell.com>
9071
9072         * ComboBox.cs: restructure grab and general mouse event handling.
9073         Make the composite control raise mouse events like it was a single
9074         control for leaves/enters/motion/up/down events.  fix dropdown list
9075         coordinate mangling and refactor it into the scrollbar subclass to
9076         reduce code duplication.  Fixes #78282 #78361 and #78457.
9077
9078 2006-06-02  Mike Kestner  <mkestner@novell.com>
9079
9080         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9081         automatically in the Control.WndProc.
9082
9083 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9084
9085         * FileDialog.cs: fix crash when running SharpChess, which sets the
9086         FilterIndex to 2 with only one Filter.
9087
9088 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9089
9090         * ToolBar.cs: add SizeSpecified property.
9091         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9092         try to figure out our real size, otherwise fallback to what the
9093         container says.
9094
9095 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9096
9097         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9098         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9099           up the event
9100
9101 2006-06-01  Mike Kestner  <mkestner@novell.com>
9102
9103         * ListView.cs: revamp the focus management in ListView.  It still
9104         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9105         better than not handling focus at all.  Will revisit when pdb feels
9106         the general focus handling is solid.  Fixes #78526.
9107
9108 2006-06-01  Jackson Harper  <jackson@ximian.com>
9109
9110         * TreeView.cs: Set the default border style in the constructor.
9111         - Move painting to use OnPaintInternal instead of capturing
9112         WM_PAINT, this is the correct way of doing things
9113         - UpdateBelow shouldn't invalidate the scrollbar area
9114         - Cap the top on update below in case the node was above the top
9115         of the viewport rectangle.
9116         - ExpandBelow and Collapse below need to obey Begin/End Update.
9117         * TreeNode.cs: Make is_expanded internal so the treenode
9118         collection can change it without firing the whole event chain.
9119         * TreeNodeCollection.cs: When clearing all the child nodes make
9120         sure to recalc the visible order.
9121         - Improve algo for remove the top node
9122
9123 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9124
9125         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9126           SendMessage directly calling window procedures, which in turn might
9127           call SetFocus()
9128
9129 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9130
9131         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9132           has focus (works around X11 sending a FocusIn after our SetFocus)
9133         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9134
9135 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9136
9137         * Mime.cs: Fix for the NET_2_0 build.
9138           NameValueCollection needs StringComparer now.
9139
9140 2006-05-31  Chris Toshok  <toshok@ximian.com>
9141
9142         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9143         return (via an out parameter) the starting X of the column.
9144         (UpdateVisibleColumn): track change to FromPixelToColumn.
9145         (HitTest): add a ColumnResize case here.
9146         (DrawResizeLine): new function, probably poorly named.
9147
9148         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9149         only need to keep one reference.
9150         (set_ListManager): same.
9151         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9152         Also, add support for HitTestType.ColumnResize.
9153         (OnMouseMove): add column resize behavior here, and change the
9154         cursor to the correct one as we move around the datagrid.
9155         (OnMouseUp): terminate the column resize if we're resizing.
9156         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9157         for the current cell.
9158         (ConnectListManagerEvents): use cached_currencymgr.
9159         (DisconnectListManagerEvents): fill this in, using
9160         cached_currencymgr.
9161         (SetCurrentCell): remove cached_currencymgr_events handling.
9162         (SetDataMember): only call DisconnectListManagerEvents if
9163         cached_currencymgr is != null.
9164         (SetDataSource): same.
9165         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9166         cached_currencymgr.
9167
9168 2006-05-31  Jackson Harper  <jackson@ximian.com>
9169
9170         * BindingManagerBase.cs: Remove somedebug code that creeped into
9171         SVN.
9172         * TreeNode.cs: We get the indent level dynamically right now, so
9173         don't track it as a member.
9174         * TreeNodeCollection.cs: Make sure all nodes added to the list
9175         have parents, treeviews/topnodes setup properly.
9176         - Don't attempt to track indent level.
9177
9178 2006-05-30  Jackson Harper  <jackson@ximian.com>
9179
9180         * BindingContext.cs: Create the currency manager tables here.
9181         This allows us to more easily create null tables (when bad data
9182         members are used), and more easily create related currency
9183         managers.
9184         * CurrencyManager.cs: All the table creation stuff is done by the
9185         binding context now.
9186         - Current should throw an exception if listposition is -1.
9187         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9188         been bound yet.
9189
9190 2006-05-30  Mike Kestner  <mkestner@novell.com>
9191
9192         * ListView.cs: allow reexpansion of zero-width column headers.
9193         Fixes #78528.
9194
9195 2006-05-28  Chris Toshok  <toshok@ximian.com>
9196
9197         * CurrencyManager.cs (get_Current): after the late binding
9198         listposition = -1 fix, we need to guard against it here and return
9199         null, otherwise we raise an exception (which is swallowed
9200         elsewhere, and breaks datagrid databinding.)
9201
9202 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9203
9204         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9205           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9206
9207 2006-05-26  Jackson Harper  <jackson@ximian.com>
9208
9209         * ControlPaint.cs:
9210         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9211         values, it's faster and it's all we care about (we don't care if
9212         the names aren't equal).
9213         * KeyboardLayouts.cs: Eliminate some dead code.
9214         - Lazy init things
9215         * X11Keyboard.cs: Lazy init keyboard detection.
9216         - Cleanup access modifiers a little.
9217
9218 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9219
9220         * XplatUIX11.cs: Once again, attempting to get layout just right.
9221
9222 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9223
9224         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9225           the sizes of each link section, that will result in sizes that
9226           match DrawString's layout (Fixes #78391)
9227
9228 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9229
9230         * FileDialog.cs: If AddExtension property is true autocomplete the
9231           extensions in SaveFileDialog correctly. Fixes bug #78453.
9232           Set MyNetwork and MyComputer to "C:\" for windows. This should
9233           fix part 8 of bug #78446 for now.
9234
9235 2006-05-26  Chris Toshok  <toshok@ximian.com>
9236
9237         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9238         invalidate the current row header if we need to, but presumably
9239         we'll invalidate the row corrsponding to the bounds or
9240         editingControl.
9241         (GridHScrolled): switch back to this method, as it's part of the
9242         public api.  *sigh*.
9243         (GridVScrolled): same.
9244         (OnMouseWheel): hack up something that more or less works.  Call
9245         GridHScrolled/GridVScrolled directly, instead of duplicating much
9246         of their code here.
9247         (EnsureCellVisibility): reinstate a bunch of this code, since we
9248         can't just set the scrollbar Value and expect to do all the work
9249         in the ValueChanged handler.  Also, Call Update() after scrolling
9250         in one direction so the other XplatX11.ScrollWindow call has the
9251         proper stuff in the proper places.
9252         (EditCell): set is_editing to true before calling .Edit.
9253
9254         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9255         don't bother comparing first.
9256         (OnKeyPress): call grid.ColumnStartedEditing before calling
9257         base.OnKeyPress.  this will set is_changing and invalidate the row
9258         header if necessary.
9259         (ProcessKeyMessage): for WM_CHAR messages, call
9260         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9261         and WM_KEYDOWN.
9262         
9263         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9264         it's done in the DataGrid.
9265         (NextState): call grid.ColumnStartedEditing, which takes care of
9266         invalidating the row header (and setting is_changing).
9267
9268         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9269         here.  it's done in the DataGrid.
9270
9271 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9272
9273         * Control.cs: allow changing the cursor when the mouse position is
9274         out of bounds but Capture is set.
9275         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9276         linklabel but released somewhere else.
9277
9278 2006-05-25  Jackson Harper  <jackson@ximian.com>
9279
9280         * TreeView.cs: When we get focus if there is no selected node make
9281         it the top node
9282         - Remove some uneeded setup code from Draw.
9283         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9284         a new node is inserted make the new node the top.
9285         * XplatUIX11.cs:
9286         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9287         be used (should be faster).
9288         
9289 2006-05-25  Chris Toshok  <toshok@ximian.com>
9290
9291         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9292         problem with the last commit.
9293
9294 2006-05-25  Chris Toshok  <toshok@ximian.com>
9295
9296         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9297         need the invalidate call here, while scrolling right-to-left via
9298         the left arrow key (i.e. moving the editing cell while scrolling).
9299
9300         * DataGrid.cs (.ctor): remove the initialization of
9301         ctrl_pressed/shift_pressed.  We no longer track them using key
9302         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9303         to using ValueChanged handlers on the scrollbars instead of
9304         Scrolled event handlers.  This simplifies a bunch of the scrolling
9305         code.
9306         (GridHValueChanged): rename from GridHScrolled, and change it to
9307         work with the new event args.
9308         (GridVValueChanged): same.
9309         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9310         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9311         selected cell.
9312         (ProcessGridKey): correct all the keyboard navigation stuff I
9313         could find.  Ctrl up/down/left/right/home/end work now.
9314         (EnsureCellVisibility): correct method name spelling.  Also,
9315         simplify this a touch by not explicitly calling the
9316         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9317         scrollbar value.
9318         (OnKeyUpDG): no need for this method now.
9319         
9320 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9321
9322         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9323         Fixes bug #78392.
9324
9325 2006-05-25  Chris Toshok  <toshok@ximian.com>
9326
9327         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9328         r61019.
9329
9330 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9331
9332         * Application.cs: Moved setting of is_modal and closing to before
9333           we create the control, to allow the event handlers called as a
9334           result of creation affect closing. Also removed Gonzalo's previous
9335           change to setting DialogResult, the behaviour has been moved to 
9336           Form.ShowDialog()
9337         * Form.cs: 
9338           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9339             handle it instead
9340           - ShowDialog(): If no dialog result is set, we need to return Cancel
9341           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9342             the close is cancelled
9343
9344 2006-05-25  Jackson Harper  <jackson@ximian.com>
9345
9346         * StatusBar.cs: We only need to update the sizes of the other
9347         panels when we have auto size contents.  Also we are only updating
9348         the contents of the panel, not the borders, so compensate for the
9349         border width (TODO: get this width from the theme somehow).
9350         * TreeView.cs: Scrollable is true by default
9351         - Use invalidate instead of refresh where needed
9352         - Factor the scrollable value into scrollbar updating
9353         - Update the scrollbars if the Scrollable property is altered
9354         - Update the selected node if its ImageIndex is changed
9355         - Handle null nodes in UpdateNode (mainly so we don't have to
9356         check if selected is null when updating it
9357         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9358         are factored into the visible count
9359         - Use VisibleCount for clarity in the code
9360         - When the font is changed we need to recurse through all the
9361         nodes and invalidate their sizes
9362         
9363 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9364
9365         * Application.cs: set the DialogResult to fixed when the main form is
9366         hidden or destroyed while being modal.
9367
9368 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9369
9370         * Theme.cs: Use Tangoified messagebox icons. 
9371
9372         (GetSizedResourceImage): Also cope with width = 0 and do not
9373         trigger a warning in that case (0 means "give me your icon from
9374         the resouce, no special size needed).
9375
9376 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9377
9378         * Application.cs: Leave runloop if the the main modal form is 
9379           hidden (fixes #78484)
9380
9381 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9382
9383         * BindingContext.cs : reject null datasource in Contains() and
9384           Item[].
9385         * CurrencyManager.cs : check data_member validity when data_source
9386           is dataset. When it is late binding, the initial position is -1.
9387
9388 2006-05-24  Jackson Harper  <jackson@ximian.com>
9389
9390         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9391         inserted nodes that aren't visible.  This changes the
9392         max_visible_order which confuses scrollbar settings.
9393         - Use the enumerator to get the prev node instead of duplicating
9394         code.
9395         * TreeView.cs: Use new method for setting scrollbar values
9396         - Don't set the bounds every time the scrollbar is updated
9397         - When updating below the root node use an invalidate instead of a
9398         refresh to prevent the child controls (scrollbars) from being
9399         refreshed. (UpdateBelow still needs to be reworked anyways).
9400         - Reenable SetBottom now that visible orders are set correctly,
9401         added some debug code incase we ever get bad values there again.
9402         - Set the scrollbar max to 2 less then the max value, this
9403         compensates for the max value being one above the node count, and
9404         for scrollbars adding one extra "notch".
9405         - When drawing image nodes if there is an imagelist we draw the
9406         first image in the list if the supplied image index is out of the
9407         image list's bounds.
9408         
9409 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9410
9411         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9412           we receive a size change from the WM (Fixes #78503)
9413
9414 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9415
9416         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9417           rectangle (Fixes #78501)
9418
9419 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9420
9421         * ButtonBase.cs: 
9422           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9423             as a bitfield.
9424           - Fixed MouseMove to no longer switch pressed state unless the left
9425             mouse button is pressed. Atsushi provided the original patch (#78485)
9426           
9427 2006-05-24  Jackson Harper  <jackson@ximian.com>
9428
9429         * ScrollBar.cs: New internal methods that allow us to change a
9430         couple values on the scrollbar (the most common case is maximum
9431         and large change) without getting multiple invalidates.
9432
9433 2006-05-24  Chris Toshok  <toshok@ximian.com>
9434
9435         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9436         (Edit): save off the original state in oldState, and set
9437         grid.is_editing to true.
9438         (OnKeyDown): abort editing if escape is pressed.  also, call
9439         NextState if space is pressed.
9440         (OnMouseDown): call NextState.
9441         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9442         here.  Also, only invalidate the row header once (on the initial
9443         is_changing switch) to save on redraws.
9444
9445 2006-05-24  Chris Toshok  <toshok@ximian.com>
9446
9447         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9448         if the value in the cell is different than it was before.  This
9449         keeps us from triggering a layout when we move around a datarid
9450         with a highlighted cell.
9451         (Edit): suspend layout when creating/positining the text box, and
9452         resume passing false so we don't ever actually re-layout.
9453         (ReleaseHostedControl): same.
9454         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9455
9456         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9457         control-key sequences should go to the datagrid - remove that
9458         lock.  Also, modify the conditions under which we move between
9459         cells when moving the cursor within a cell, and remove the "this"
9460         and "base" from field accesses.  We weren't even consistent, given
9461         they all were in the base class.
9462
9463 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9464
9465         * Binding.cs : (.ctor)
9466           An obvious NRE fix for BindingTest.CtorNullTest().
9467
9468 2006-05-23  Chris Toshok  <toshok@ximian.com>
9469
9470         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9471         them between lines.  This fixes some quirks editing cells in the
9472         datagrid.
9473
9474 2006-05-23  Jackson Harper  <jackson@ximian.com>
9475
9476         * TreeView.cs: Use begin/end update when doing expand/collapse all
9477         so that we don't get flicker on the scrollbar.
9478
9479 2006-05-23  Jackson Harper  <jackson@ximian.com>
9480
9481         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9482         treenode calculations to be independant of the painting code. To
9483         do this nodes track a visible order which is calculated by the
9484         treeview.
9485         - Call new methods for expanding/collapsing nodes.  These methods
9486         use scrollwindow so we don't have to update everything below the
9487         node.
9488         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9489         need to update nodes when drawing anymore or calculate scrollbar
9490         stuff.
9491         - Added new methods for expanding/collapsing nodes. These methods
9492         use ScrollWindow so as to not have to redraw all the nodes below.
9493         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9494         we add/remove nodes or sort.
9495         - Handle removing the selected and the top node properly.
9496
9497 2006-05-23  Chris Toshok  <toshok@ximian.com>
9498
9499         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9500         maybe this should actually happen in the datagrid code?
9501         (EndEdit): no need to invalidate anything, given that
9502         ReleaseHostedControl causes the datagrid to relayout, which
9503         invalidates everything anyway.
9504
9505         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9506         in SetCurrentCell).
9507         (set_SelectionBackColor): call InvalidateSelection instead of
9508         Refresh.
9509         (set_SelectionForeColor): same.
9510         (BeginEdit): Flesh this out a bit.
9511         (CancelEditing): only do any of this if we're editing/adding.
9512         (EndEdit): same.
9513         (OnMouseDown): there's no need to cancel editing here, it's done
9514         in SetCurrentCell.
9515         (SetCurrentCell): only invalidate the current row header if it's a
9516         different row than the new one.
9517         (ShiftSelection): fix this to work like MS does.
9518         (ResetSelection): factor out the invalidation of selected_rows to
9519         InvalidateSelection.
9520         (SetDataSource): cancel any editing that's going on.
9521
9522         * DataGridColumnStyle.cs
9523         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9524         call the non-interface version.
9525
9526         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9527         header rectangle with the clip rectangle so we don't redraw the
9528         entire header for just a small area.  Gets rid of the last flicker
9529         when horizontally scrolling.
9530         (DataGridPaintRow): same.
9531
9532 2006-05-23  Mike Kestner  <mkestner@novell.com>
9533
9534         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9535         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9536         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9537         Critical bug report.
9538
9539 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9540
9541         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9542           and this fixes #78493
9543
9544 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9545
9546         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9547         size is not found.  
9548         
9549         * FileDialog.cs: Do not change the background for the side bar as
9550         it wont work nicely with the theme, and also reduces the artifacts
9551         in rendering the icons (which I want to fix too).
9552
9553         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9554         resources, not resgen resources. 
9555
9556         (PlatformDefaultHandler): Pull images using the new API.
9557
9558 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9559
9560         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9561           a reference to the hwnd and will not remove it unless there are
9562           no pending exposures (fixes #78341)
9563         * XplatUI.cs: Improved debug
9564
9565 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9566
9567         * MenuAPI.cs : don't handle OnClick event when it was not the left
9568           button. Fixed bug #78487.
9569
9570 2006-05-23  Mike Kestner  <mkestner@novell.com>
9571
9572         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9573         prefer submenus to the top menu for item lookup, to avoid popping down
9574         top-row items.
9575
9576 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9577
9578         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9579           Graphics.FillRectangle as the visual results are really bad (even
9580           on win). We now draw perfect arrows (and perfect shadows when the
9581           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9582           Pen.DashPattern to draw the dots of each line.
9583
9584 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9585
9586         * FileDialog.cs: Update the filename combobox when navigating through
9587           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9588
9589 2006-05-22  Mike Kestner  <mkestner@novell.com>
9590
9591         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9592         Fixes #78463.
9593
9594 2006-05-22  Mike Kestner  <mkestner@novell.com>
9595
9596         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9597         requests. Fix a misspelled parameter and a copy paste exception error
9598         in Select.
9599
9600 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9601
9602         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9603           to get the same width/height (5/13) on X11 as the default font has on
9604           win32. This means that our DefaultFont emSize is smaller than the 
9605           the MS SWF equivalent (even thought the width/height stays the same)
9606
9607 2006-05-20  Jackson Harper  <jackson@ximian.com>
9608
9609         * MdiClient.cs:
9610         * MdiWindowManager.cs:
9611         * InternalWindowManager.cs: Make sure to use the border width from
9612         the theme.
9613
9614 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9615
9616         * PrintDialog.cs: Implements printer details
9617
9618 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9619
9620         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9621           Fixes part 1 and 2 of bug #78446
9622
9623 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9624
9625         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9626           instead of sticking to the first ever calculated value
9627
9628 2006-05-19  Mike Kestner  <mkestner@novell.com>
9629
9630         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9631         PointToClient, since Capture is set. Fixes #78344.
9632
9633 2006-05-19  Mike Kestner  <mkestner@novell.com>
9634
9635         * ListView.cs: match MS behavior in Details view where items are not
9636         drawn if Columns.Count == 0. 
9637         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9638         Use a separate pen to draw the check, since changing the width affects
9639         the box as well.  Fixes #78454.
9640
9641 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9642
9643         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9644         exception should throw the name of the invalid argument.
9645
9646         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9647         there are no files listed. 
9648
9649 2006-05-18  Jackson Harper  <jackson@ximian.com>
9650
9651         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9652         up.
9653
9654 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9655
9656         * Control.cs: Brought back our old UpdateZOrder method as a private
9657           function and switched our calls from UpdateZOrder to the new one.
9658           This fixes the Paint.Net canvas disappearing bug.
9659
9660 2006-05-18  Jackson Harper  <jackson@ximian.com>
9661
9662         * Theme.cs:
9663         * ThemeWin32Classic.cs:
9664         * InternalWindowManager.cs: Move the drawing into the theme,
9665         expose everything the theme should need from the window manager.
9666
9667 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9668
9669         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9670           from the call to NativeWindow to avoid walking up the parent chain
9671           further than needed (speeds up setting cursors and avoids setting
9672           the wrong cursor if a parent has another cursor defined)
9673         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9674           the icon as hotspot, not what's contained as hotspot in the icon
9675           file. This fixes the perceived drawing offset seen with Paint.Net
9676         
9677 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9678
9679         * XplatUIX11.cs: 
9680           - Store the calculated rectangle in Hwnd object and use it when 
9681             setting the client size
9682           - Force Toolwindows to always be type Dock, to ensure they're on top
9683
9684 2006-05-18  Mike Kestner  <mkestner@novell.com>
9685
9686         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9687         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9688         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9689         Substantial refactoring to remove confusing nested classes. Coding
9690         standard and Get+Set->property refactorings.  Shift to index based
9691         highlighting in ComboListBox instead of constantly using IndexOf and
9692         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9693         in FileDialog growth.  Draw borders manually since Simple mode needs
9694         to look like two independent controls.  Make listbox border
9695         conditional to DropDownStyle.  Improved OwnerDraw support.
9696
9697 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9698
9699         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9700         Don't set the disposed graphics to null, so we can throw the "right"
9701         exception if the graphics is reused later (added a flag to avoid 
9702         double disposing). Some behaviours are different under 2.0 and are
9703         filled under bug #78448.
9704
9705 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9706
9707         * Control.cs: When double-buffering is enabled, we need to reset
9708           our graphics context between paint calls. Otherwise, any 
9709           transformations and other alterations on the context will 
9710           become cumulative (#77734)
9711
9712 2006-05-18  Mike Kestner  <mkestner@novell.com>
9713
9714         * ListView.cs: do focused item selection like MS on clicks. 
9715         Rework focus handling for ItemControl so LostFocus invalidates as
9716         well.
9717         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9718         the ListView ItemControl has focus.
9719
9720 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9721
9722         * XplatUIX11.cs: If client_window ends up being width or height zero
9723           due to border settings, move it off window inside whole_window (#78433)
9724
9725 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9726
9727         * Mime.cs: Shrink the mime file cache correctly.
9728
9729 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9730
9731         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9732
9733 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9734
9735         * XplatUIX11.cs (AddExpose): More sanity checks
9736
9737 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9738
9739         * XplatUIX11.cs:
9740           - AddExpose: Don't add expose ranges outside the size of our
9741             window
9742           - Cast opacity values to Int32 to avoid crashes with certain
9743             values
9744           - Added disabled code paths that protect against illegal cross-
9745             thread painting (Developers.exe)
9746
9747 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9748
9749         * ProgressBar.cs: Invalidate the control when it's resized
9750           since block size is based on control size. (#78388)
9751
9752 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9753
9754         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9755         of setting the incoming argument to the "reset" value, we set the
9756         this.datamember to string.empty (before we were invalidating the
9757         incoming data).   
9758
9759         Fixes 78420
9760
9761 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9762
9763         * Form.cs: Only apply transparency settings after the form
9764           is created. (Fixes #77800)
9765
9766 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9767
9768         * ApplicationContext.cs: Grab the HandleDestroyed event so
9769           we know when to fire OnMainFormClosed 
9770
9771 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9772
9773         * Application.cs: Introduced sub-class to allow tracking of
9774           threads and centralized triggering of the event mess for
9775           ThreadExit, AppExit, etc..  (#76156)
9776
9777 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9778
9779         * MimeIcon.cs:
9780           - Do not return a null icon index value for a mime subclass.
9781             Instead try the main mime type class too.
9782           - Seems that some newer distributions don't have a link to some
9783             gnome default icons anymore. So check the default gnome dir too.
9784           
9785
9786 2006-05-16  Jackson Harper  <jackson@ximian.com>
9787
9788         * MdiClient.cs: Don't paint the parent background image if we have
9789         our own background image.
9790
9791 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9792
9793         * Control.cs:
9794           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9795             controls, all filled controls are supposed to overlap (#78080)
9796           - UpdateZOrder is supposed to update the control's z-order in the
9797             parent's z-order chain. Fixed to behave like that
9798           - BringToFront: Removed obsolete code
9799           - SendToBack: Simplyfied
9800           - SetChildIndex: Trigger layout calculations when Z-order changes
9801             since layout is done by z-order
9802
9803 2006-05-16  Chris Toshok  <toshok@ximian.com>
9804
9805         [ fixes bug #78410 ]
9806         * DataGrid.cs (set_AlternatingBackColor): use
9807         grid_drawing.InvalidateCells instead of Refresh().
9808         (set_BackColor): call grid_drawing.InvalidateCells.
9809         (set_BackgroundColor): use Invalidate instead of Refresh.
9810
9811         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9812         invalidate the cell area.
9813
9814 2006-05-15  Chris Toshok  <toshok@ximian.com>
9815
9816         [ fixes bug #78011 ]
9817         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9818         on to DataGridPaintRow.
9819         (DataGridPaintRow): take a clip argument, and only draw the cells
9820         which intersect it.  same with the not_usedarea.
9821
9822         * Theme.cs (DataGridPaintRow) add @clip parameter.
9823
9824         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9825         XplatUI.ScrollWindow.
9826         (ScrollToRow): same.
9827
9828         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9829         with last column which was causing a gray swath to appear with the
9830         XplatUI.ScrollWindow code.
9831
9832 2006-05-15  Chris Toshok  <toshok@ximian.com>
9833
9834         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9835         use XplatUI.ScrollWindow.
9836         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9837
9838 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9839
9840         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9841
9842 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9843
9844         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9845           file since there are no equivalent X11 cursors
9846
9847 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9848
9849         * MonthCalendar.cs : DateTimePicker should reflect selected date
9850           on mouse*up*, not mouse*down*. Fixed originally reported part of
9851           bug #76474.
9852
9853 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9854
9855         * TabControl.cs : When argument index is equal or more than tab
9856           count, just ignore. Fixed bug #78395.
9857
9858 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9859
9860         * Control.cs: Dispose all child controls when control is diposed (#78394)
9861
9862 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9863
9864         * ColorDialog.cs: Finally it is possible to select the color with
9865           the text boxes
9866
9867 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9868
9869         * PrintDialog.cs: Fix typo
9870
9871 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9872
9873         * PrintDialog.cs: PrintDialog is not resizable
9874         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9875           color. Made some ToolBar drawing methods protected virtual.
9876
9877 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9878
9879         * PrintDialog.cs: Implementation of the PrintDialog
9880
9881 2006-05-12  Chris Toshok  <toshok@ximian.com>
9882
9883         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9884         thumb, instead use MoveThumb.  This has the side effect of making
9885         most of the other thumb moving machinery use MoveThumb as well.
9886         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9887         need to actually invalidate the rectangle where the new thumb will
9888         go.
9889         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9890         We force an Update() after, so it's not as fast as it could be,
9891         but at least there's zero flicker and no droppings.
9892         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9893         (UpdateThumbPos): add another argument (dirty), which says whether
9894         or not to calculate/add dirty regions which we later invalidate.
9895         For cases where we know we're going to use MoveThumb, we pass
9896         false for this.  Otherwise, pass true.
9897
9898 2006-05-12  Jackson Harper  <jackson@ximian.com>
9899
9900         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9901         the status bar.
9902         
9903 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9904
9905         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9906           and GetClipRegion methods and UserClipWontExposeParent property.
9907         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9908           overriding UserClipWontExposeParent property, setting to false, since
9909           Win32 handles the required expose messages to draw our clipped parent
9910           areas internally
9911         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9912           PaintEventStart to set the user clip region if set.
9913         * Control.cs: 
9914           - Now internally tracking the Region for the control since we need to
9915             store it if the handle is not yet created and only set it when it
9916             becomes created. Before setting the region forced handle creation
9917           - Added code to draw the parents underneath a user-clipped region
9918         * Hwnd.cs: Added UserClip property
9919
9920 2006-05-12  Chris Toshok  <toshok@ximian.com>
9921
9922         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9923         (set_Maximum): same.
9924         (set_Minimum): same.
9925         (set_SmallChange): same.
9926         (OnMouseUpSB): remove the call to refresh when releasing the
9927         thumb.  We shouldn't need it.
9928         
9929 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9930
9931         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9932         AutoSize set to None, we do not need to relayout everything, we
9933         just need to invalidate the current region.
9934
9935         (Draw): Do not draw the entire ClientArea, just redraw the
9936         clip area being passed.
9937
9938         * MdiClient.cs: Make MdiClient constructor with the Form argument
9939         internal. 
9940
9941 2006-05-12  Jackson Harper  <jackson@ximian.com>
9942
9943         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9944         parents background image,  but strangely not their own.
9945         - (DrawStatusBarPanel): Take into account horizontal alignment
9946         when drawing the strings and icons.
9947
9948 2006-05-12  Mike Kestner  <mkestner@novell.com>
9949
9950         * ListBox.cs: avoid invalidations for focus when the collection is
9951         empty. 
9952
9953 2006-05-12  Chris Toshok  <toshok@ximian.com>
9954
9955         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9956         invalidate the entire thumb area.  Call InvalidateDirty which
9957         limits the redraw to the thumb itself and surrounding pixels.
9958
9959         * XplatUIX11.cs (ScrollWindow): optimize copying.
9960         
9961 2006-05-12  Chris Toshok  <toshok@ximian.com>
9962
9963         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
9964         Figure out the positioning/layout in a single pass instead of
9965         multiple recursive invocations.  Speeds up the initial display of
9966         the data grid.  Also, make many things private that were
9967         originally public but unused outside this class.
9968
9969 2006-05-11  Jackson Harper  <jackson@ximian.com>
9970
9971         * MdiClient.cs: Improved layout code.
9972
9973 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
9974
9975         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
9976           not SelectedObject.
9977
9978 2006-05-11  Chris Toshok  <toshok@ximian.com>
9979
9980         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
9981         union of that will always be {0,0,width,height}.
9982
9983 2006-05-11  Jackson Harper  <jackson@ximian.com>
9984
9985         * Form.cs: Match MS's DefaultSize for forms (they must have
9986         changed the size in sp2).
9987
9988 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9989
9990         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
9991
9992 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
9993
9994         * TextControl.cs : Fixed bug #78109. This incorrect position
9995           comparison caused crash on automatic line split.
9996         * TextBoxBase.cs : reduce duplicate code.
9997
9998 2006-05-10  Jackson Harper  <jackson@ximian.com>
9999
10000         * MdiClient.cs: Active form is only sent to the back when using
10001         the Next form functionality, when a form is clicked the current
10002         active shouldn't be sent to the back.
10003         - Layout the mdi windows when the container is first made visible.
10004         * Form.cs: Give the MdiClient a ref to the containing form when we
10005         create it.
10006         
10007 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10008
10009         * LinkLabel.cs : link_font could be uninitialized, so populate one
10010           before actual use. Fixed bug #78340.
10011
10012 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10013
10014         * XplatUIX11.cs : clipboard format native value is IntPtr.
10015           Fixed bug #78283.
10016
10017 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10018
10019         * Control.cs: 
10020           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
10021             which is passed up the parent chain by DefWndProc
10022           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
10023             to DefWndProc (#77956)
10024         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
10025
10026 2006-05-10  Jackson Harper  <jackson@ximian.com>
10027
10028         * MdiClient.cs: We need to remove the controls from the mdi
10029         collection, when we close the window.
10030         * MdiWindowManager.cs: Special handling of closing mdi windows.
10031         * InternalWindowManager.cs: Make the close method virtual so the
10032         mdi window manager can handle it specially.
10033
10034 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10035
10036         * DataGrid.cs:
10037           - Recalculate grid when the data source has changed
10038           - Matches styles provided by user from all data sources types
10039         * DataGridTableStyle.cs: For columns that provided by the user set the
10040         with the preferred value is there was unassigned.
10041         * CurrencyManager.cs: throw OnItemChanged event
10042
10043 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10044
10045         * PictureBox.cs: Don't animate until handle is created. Start animation
10046           when handle is created.
10047
10048 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10049
10050         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10051           current codebase.
10052         * XEventQueue.cs: We don't need to provide the extra info
10053
10054 2006-05-10  Jackson Harper  <jackson@ximian.com>
10055
10056         * MdiClient.cs: If the mdi clients parent form has a background
10057         image set, we draw that background image for the mdi area's
10058         background.
10059
10060 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10061
10062         * TextBoxBase.cs: Set IBeam cursor (#78347)
10063
10064 2006-05-10  Mike Kestner  <mkestner@novell.com>
10065
10066         * ToolBar.cs: fix some text padding issues with ButtonSize
10067         calculation. Update the default size to match MS documentation.
10068         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10069         button size. Fixes #78296.
10070
10071 2006-05-10  Mike Kestner  <mkestner@novell.com>
10072
10073         * ListBox.cs: use is_visible for scrollbar positioning in case the
10074         control isn't on screen yet.  Fix off by one with Right vs Width
10075         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10076         
10077 2006-05-10  Jackson Harper  <jackson@ximian.com>
10078
10079         * X11Dnd.cs: Drop to a control with another control on top of it.
10080         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10081         be modified in click handlers. TODO: Look for similar problems in
10082         other controls.
10083
10084 2006-05-09  Jackson Harper  <jackson@ximian.com>
10085
10086         * Form.cs: Window managers need the old window state when setting
10087         window state now.
10088         * InternalWindowManager.cs: Allow the base mdi window manager to
10089         handle more of the MDI only stuff (like maximize buttons).
10090         * MdiWindowManager.cs: Fix some snafus in changing the window
10091         state.  Add all the menu functionality, for both popup and
10092         maximized menus.
10093         * MdiClient.cs: When a new form is selected the currently
10094         activated form is sent to the back, this matches MS.
10095         - Implement a new method to activate the next mdi child window.
10096
10097 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10098
10099         * Control.cs: 
10100           - Added new InternalCapture method to allow controls to prevent
10101             the capture behaviour on the click handlers
10102           - Switched to use InternalCapture
10103         * ComboBox.cs:
10104           - Using InternalCapture to prevent mouse captures from being released
10105             on mouse button release (Fixes #78100)
10106         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10107           returns Form borders if a caption is present. (Fixes #78310)
10108
10109 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10110
10111         * TreeNode.cs: Changed serialization .ctor to not require every field
10112           to be present. (#78265)
10113         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10114
10115 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10116
10117         * MimeIcon.cs: for is faster than foreach for strings.
10118
10119 2006-05-05  Mike Kestner  <mkestner@novell.com>
10120
10121         * CheckedListBox.cs: update check handling code to not use selected.
10122         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10123         behavior for visual feedback, motion response, shift/ctrl handling,
10124         and properly deal with all 4 selection modes. Updates to bounds
10125         handling logic.  Add scroll wheel support. [Fixes #77842]
10126
10127 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10128
10129         * ListView.cs:
10130           - Moved adding of Implicit controls into .ctor. That way, subsequent
10131             creation of the controls will not cause them to think they are 
10132             toplevel windows (fixes #78200 header problem)
10133           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10134           - Switched visibility setting of header control to use internal field
10135             to avoid triggering handle creation
10136           - Now checking if handle is created before causing a refresh when items
10137             are added (This makes us now match handle creation time with MS)
10138         * Splitter.cs: Removed loading of private splitter cursor, switched to
10139           Cursors version now that that is loading the right ones
10140         * Cursors.cs: Load proper splitter cursors from resources
10141         * Cursor.cs: Added second method of loading resource cursors for the 
10142           VS.Net users amongst us
10143
10144 2006-05-05  Mike Kestner  <mkestner@novell.com>
10145
10146         * ListView.cs: give header_control a minimum size based on the
10147         ListView size.
10148
10149 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10150
10151         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10152           window seems to do that with metacity, so set that type. (#78120)
10153
10154 2006-05-05  Mike Kestner  <mkestner@novell.com>
10155
10156         * ListViewItem.cs: fix Details mode checkbox layout bug.
10157         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10158         at the end of the header, if it exists. [Fixes for #78200]
10159
10160 2006-05-04  Jackson Harper  <jackson@ximian.com>
10161
10162         * MdiClient.cs: Add a helper property to get the container form.
10163         * MdiWindowManager.cs: We have to make sure to use the menu origin
10164         when drawing the icons and buttons, this fixes maximized window
10165         icons/buttons on win32.
10166         * InternalWindowManager.cs: Reset the restore captions when a
10167         window goes from Maximized to Minimized and vice versa. Move the
10168         DrawMaximizedButtons into the MdiWindowManager source, tool
10169         windows can't be maximized. NOTE: This could use a little
10170         refactoring if time ever permits.
10171         
10172 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10173
10174         * TextBox.cs: Add MWFCategoryAttributes
10175         * TextBoxBase.cs: Add MWFCategoryAttributes
10176         * Form.cs: Add MWFCategoryAttributes
10177
10178 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10179
10180         * Control.cs: Add MWFCategoryAttributes
10181         * ScrollableControl.cs: Add MWFCategoryAttributes
10182
10183 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10184
10185         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10186           Divider is true. Fix a little glitch in PropertyToolBar
10187           drawing code
10188
10189 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10190
10191         * Control.cs:
10192           - Dispose: Call base.Dispose, this causes the disposed event
10193             to be fired (and probably other, more important stuff)
10194           - SetVisibleCore: Set is_visible to true after creating the
10195             window so that the window still gets created invisible (if
10196             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10197             to generate a WM_ACTIVE message
10198         * Form.cs: Call Dispose when we want to destroy the window, instead of
10199           just destroying the handle (Dispose will do that for us)
10200         * XplatUIX11.cs:
10201           - RootWindow also needs a queue, so we can properly process the
10202             property change events from RootWindow (like Activate)
10203           - Generatic synthetic WM_ACTIVE message when the active window is
10204             being destroyed
10205
10206 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10207
10208         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10209           bounds are changed
10210
10211 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10212
10213         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10214           for determining width and height (image might not be assigned if
10215           we're drawing an imagelist)
10216
10217 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10218
10219         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10220         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10221           height from system
10222         * Theme.cs: No longer returns hardcoded menu height, instead calls
10223           new driver method
10224         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10225           on MS (# 78257)
10226
10227 2006-05-01  Mike Kestner  <mkestner@novell.com>
10228
10229         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10230
10231 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10232
10233         * TextBoxBase.cs: Removed Fixme
10234         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10235
10236 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10237
10238         * XplatUIX11.cs:
10239           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10240             the rectangle relative to the parent, considering borders. We
10241             don't really want that.
10242           - ScrollWindow: Fixed warning to be more understandable
10243         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10244           scrollbars and scroll only the visible area
10245         * RichTextBox.cs: Removed debug output
10246
10247 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10248
10249         * NumericUpDown.cs (Text): Just use base
10250         * UpDownBase.cs: Ensure txtView is created before using it
10251
10252 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10253
10254         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10255           casting to IntPtr to avoid 64bit overflow errors
10256
10257 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10258
10259         * Control.cs:
10260           - AllowDrop: Don't force handle creation.
10261           - CreateHandle: Added call to tell driver if we're allowed to drop
10262
10263 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10264
10265         * FileDialog.cs: Remember the last directory not only for the
10266           current instance but also for new FileDialog instances.
10267
10268 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10269         
10270         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10271           broke sending async messages
10272
10273 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10274
10275         * XplatUIX11.cs:
10276           - ScrollWindow: Fixed method. We finally generate expose events again
10277             for scrolled areas. This was causing 'garbage' when scrolling
10278             textbox and other controls that used ScrollWindow
10279           - Switched from using the regular queue for paint events to the MS 
10280             model of 'generating' paint events when the queue is empty.
10281             We use the new XQueueEvent.Paint subclass to store which windows
10282             need painting.
10283           - AddExpose now takes the x/y/width/height of the exposed area
10284             and inserts the window into the paint queue if not already there
10285           - InvalidateWholeWindow: Switched to use new AddExpose method
10286           - UpdateMessageQueue: Added which queue to monitor for paint events
10287           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10288             the unlikely case nothing above handles it. We reset the expose
10289             pending states to get them off the queue.
10290           - GetMessage: Now pulls a paint event if no other events are in the
10291             queue
10292           - Invalidate: Switched to new AddExpose method
10293           - PeekMessage: Updated to understand pending paint events
10294           - UpdateWindow: Fixed logic bug. We were only updating if the window
10295             didn't need updating. Also switched to sending WM_PAINT directly,
10296             like MS does.
10297         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10298           and random access Remove(). The random access is needed to handle
10299           UpdateWindow() where a WM_PAINT is sent directly without accessing
10300           the queue.
10301         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10302           allow for better feedback when scrolling. Scrollbars are small and
10303           the immediate update should make it 'feel' more responsive without
10304           slowing things down. ScrollBar still needs it's invaliate logic
10305           updated to not always invalidate the whole bar on certain changes.
10306
10307 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10308
10309         * Control.cs:
10310         (BackColor): if the control does not support a transparent background,
10311         return the default backcolor when the parent backcolor is transparent.
10312
10313 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10314
10315         * Application.cs: Updated to new StartLoop/GetMessage API
10316         * RichTextBox.cs: Provide some output on RTF parsing errors
10317         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10318           new queue_id argument to GetMessage and PeekMessage to allow faster
10319           handling of per-thread queues in drivers.
10320         * Hwnd.cs: Added Queue tracking and property
10321         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10322         * XEventQueue.cs: Added thread trackingA
10323         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10324         * XplatUIX11.cs:
10325           - Implemented new per-thread queue
10326           - GetMessage: Fixed return/break behaviour on several cases. We were
10327             returning stale messages in some cases, instead of just processing
10328             the next message
10329
10330 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10331
10332         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10333
10334 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10335
10336         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10337           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10338
10339 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10340
10341         * PropertyGridView.cs: Fix drop down width.
10342
10343 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10344
10345         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10346           a mess in DrawToolBar, so I removed one of them.
10347
10348 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10349
10350         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10351           needed (clip). Otherwise we get artifacts.
10352
10353 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10354
10355         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10356           dimension is fixed
10357         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10358           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10359         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10360           if it matches the scale base font (avoids unneeded scaling)
10361
10362 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10363
10364         * X11DesktopColors.cs: One gtk_init_check should be enough
10365
10366 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10367
10368         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10369           match MS behaviour
10370
10371 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10372
10373         * TextBoxBase.cs: 
10374           - Generate OnTextChanged for Backspace even if we're only deleting
10375             the current selection
10376           - When setting the Text property, only select all text if the
10377             control does not have focus when it is being set. Otherwise
10378             just place the cursor at the beginning of the control
10379
10380 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10381
10382         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10383           Added a little helper to draw PropertyGrid ToolBar with a different
10384           border and a different BackColor.
10385         * PropertyGrid.cs: Some background parts didn't get painted with the
10386           correct background color. Added a class that helps us to draw the
10387           correct border for PropertyGridView and a class that helps us to
10388           draw ToolBars with a different backcolor
10389         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10390
10391 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10392
10393         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10394         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10395
10396 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10397
10398         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10399           into the palette entries. Also, since we're working on a copy
10400           we needed to copy the palette back onto the bitmap.
10401         * Cursor.cs: Same fix as XplatUIWin32.cs.
10402
10403 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10404
10405         * ImageListStreamer.cs: Need to read the var (or we're off)
10406
10407 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10408
10409         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10410           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10411           TextBoxBase.cs: Unused var fixes
10412         * AxHost.cs: Small 2.0 fix
10413         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10414           as it seems that is what at least Metacity expects. This will make
10415           icons show up on 64bit platforms. We still have some 64bit size
10416           issues, though, since the startup app window size still won't match.
10417
10418 2006-04-25  Mike Kestner  <mkestner@novell.com>
10419
10420         * *.cs: cleanup newly reported exception var unused warnings.
10421
10422 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10423
10424         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10425           ms
10426
10427 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10428
10429         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10430           image. The image position is always the same, no matter if the
10431           button is pressed or not.
10432
10433 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10434
10435         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10436           selection and set the correct filename for SaveFileDialog.
10437           Patch by Emery Conrad.
10438
10439 2006-04-24  Mike Kestner  <mkestner@novell.com>
10440
10441         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10442         check for item.X outside the ClientRect instead of item.Y. Fixes
10443         #78151.
10444
10445 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10446
10447         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10448         trust that value blindly and do some sanity check. Fixes bug #77814.
10449
10450 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10451
10452         * ImageListStreamer.cs: save the mask as a 1bpp image.
10453
10454 2006-04-21  Mike Kestner  <mkestner@novell.com>
10455
10456         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10457         pass Checked and Indeterminate to the Theme Engine. Improve
10458         encapsulation with ListBox.
10459         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10460         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10461         nested types.  Move all CheckState functionality to CheckedListBox.
10462         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10463         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10464         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10465         single base list. Fix scrollbar sizing and placement to mirror MS.
10466         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10467         used.
10468         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10469         for CheckedListBox by using new DrawItemState info.  Center the
10470         checkboxes on the items. Use new StringFormat property.
10471
10472 2006-04-18  Jackson Harper  <jackson@ximian.com>
10473
10474         * Form.cs: MdiChildren don't do default locations the same way as
10475         regular forms.  This prevents a crash when trying to position the
10476         mdi windows.
10477
10478 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10479
10480         * PropertyGridTextBox.cs: Formatting, copyright
10481         * PropertiesTab.cs: Formatting
10482         * PropertyGrid.cs: Formatting
10483         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10484           click toggling of values
10485           
10486 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10487
10488         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10489         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10490           every time a control is created
10491         * Application.cs: Removed obsolete EnableRTLMirroring method
10492
10493 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10494
10495         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10496         SelectedIndex to -1. Fixes bug #78121.
10497
10498 2006-04-17  Jackson Harper  <jackson@ximian.com>
10499
10500         * Binding.cs: Handle null values for Current and BindingContext.
10501         This occurs when binding is a little delayed.
10502         * CurrencyManager.cs: return null for Current when there are no
10503         items in the list.
10504         - Hookup to the listchanged event on the DataView and update
10505         bindings when the list is changed.  This fixes late binding of
10506         controls.
10507
10508 2006-04-17  Jackson Harper  <jackson@ximian.com>
10509
10510         * X11Dnd.cs:
10511         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10512         Ringenbach.
10513
10514 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10515
10516         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10517           place
10518         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10519           with the correct ButtonState
10520
10521 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10522
10523         * XplatUIX11.cs: Improved distinguishing between window types to
10524           tell the WM a type closer to what the app wants (Fixes #78107)
10525
10526 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10527
10528         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10529           GrabHandle
10530
10531 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10532
10533         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10534           drawing code to reflect the size grip changes
10535
10536 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10537
10538         * ImageListStreamer.cs: fix handling of the mask that follows the main
10539         bitmap when deserializing and serialize it properly. The generated mask
10540         should better be a 1bpp image, but I'll do that later.
10541
10542 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10543
10544         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10545           path doesn't fit into some of our Current.Places
10546
10547 2006-04-13  Jackson Harper  <jackson@ximian.com>
10548
10549         * ComboBox.cs: Use borders instead of drawing our own decorations,
10550         try to obey correct rules for heights.
10551         * Theme.cs:
10552         * ThemeNice.cs:
10553         * ThemeClearLooks.cs:
10554         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10555         this is now handled by borders.
10556         - Remove unused DrawListBoxDecorationSize method.
10557         
10558 2006-04-13  Mike Kestner  <mkestner@novell.com>
10559
10560         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10561         reported by Alex.
10562
10563 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10564
10565         * ThemeWin32Classic.cs: 
10566           - Fixed CPDrawStringDisabled
10567           - Corrected drawing of disabled menu items
10568           - Fixed drawing of disabled radio buttons (bug #78095)
10569           - Draw check in a disabled CheckBox with color ControlDark 
10570
10571 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10572
10573         * Form.cs: Use the provided width when calculating the menu size;
10574           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10575           and ClientSize.Width won't be updated yet
10576         * Application.cs: Use Visible instead of Show() to make form visible,
10577           this way we create the handle later and menusize is considered
10578
10579 2006-04-12  Mike Kestner  <mkestner@novell.com>
10580
10581         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10582         reporting.
10583
10584 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10585
10586         * TextBox.cs: Implemented context menu
10587
10588 2006-04-12  Mike Kestner  <mkestner@novell.com>
10589
10590         * ListView.cs: implement box selection. fixes #77838.
10591         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10592
10593 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10594
10595         * XplatUIX11.cs: Added setting of window type when transient window
10596           is created (metacity would move it otherwise)
10597         * X11Structs.cs: Added WINDOW_TYPE atoms
10598         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10599           background (the control is Opaque but still wants transparent
10600           backgrounds)
10601
10602 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10603
10604         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10605           that set Opaque but don't mean it (like all ButtonBase-derived
10606           controls) to still draw their background
10607         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10608           the background
10609
10610 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10611
10612         * Control.cs (PaintControlBackground): Set the graphics object
10613           on our PaintEvent to null to prevent it from being disposed
10614           when the PaintEvent gets disposed
10615
10616 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10617
10618         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10619         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10620
10621 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10622
10623         * Control.cs: 
10624           - Added transparency check to BackColor property. Transparent
10625             backgrounds are only allowed if the control styles permit it
10626           - Added recursive painting of parent control background and
10627             foreground if a control with a transparent backcolor is drawn
10628             (Thanks to Tim Ringenback for providing his 'hack' as a base
10629              for this patch) Fixes #77985 and #78026.
10630           - Added Opaque style check before calling OnPaintBackground, no
10631             need to draw the background if the control is opaque
10632           - Removed ControlAccessibleObject owner variable (inherited from
10633             base, no need to define again)
10634           - Added some documentation links explaining the drawing events
10635             and styles
10636
10637 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10638
10639         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10640           that the affected control is the located at the left border of our
10641           parent (Fixes #77936)
10642
10643 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10644
10645         * TextBoxBase.cs: When rendering disabled or readonly controls,
10646           draw the background with 'Control' instead of 'Window' color as
10647           long as the user hasn't specifically set a color
10648
10649 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10650
10651         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10652           since that won't be updated if the user types text (only if it's
10653           programatically set)
10654
10655 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10656
10657         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10658           layout changes do to app-triggered resizes will have the proper
10659           display rectangle for layout
10660
10661 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10662
10663         * ThemeWin32Classic.cs:
10664           - Make use of the SystemBrushes and SystemPens wherever possible
10665           - Corrected some highlight colors
10666           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10667             drawing
10668         * Theme.cs: Added Empty field to CPColor struct
10669
10670 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10671
10672         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10673           is displayed when calculating the display rectangle. Thanks to Mike
10674           for teaching me the err of my ways.
10675
10676 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10677
10678         * ScrollableControl.cs:
10679           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10680             (instead of 0,0) and we now return the real width/height instead of
10681             just the clientrectangle, adjusted for padding. The rectangle is
10682             now cached and created by the new CalculateDisplayRectangle method.
10683           - Created new CalculateDisplayRectange method, which basically does
10684             what get_DisplayRectangle() did originally, but now using the 
10685             right edge instead of DisplayRectangle to determine the size of
10686             our scrollbars
10687           - get_Canvas(): Fixed it to properly calculate canvas for 
10688             right/bottom controls which seem to be placed to the right/bottom
10689             of any controls that have a fixed location
10690           - Removed TODO that's taken care of
10691           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10692             and SetDisplayRectLocation according to new MSDN2 docs
10693           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10694             event when that is called, this is added for compatibility
10695           - ScrollControlIntoView(): Implemented.
10696           - Switched scrollbars to be implicit, they shouldn't be selectable
10697         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10698           call it when the active control is set/changed
10699         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10700         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10701           implicit_control variable (used for native Win32 message generation)
10702         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10703           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10704         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10705         * XplatUIStructs.cs: Added ScrollBarCommands enum
10706
10707 2006-04-10  Jackson Harper  <jackson@ximian.com>
10708
10709         * ButtonBase.cs:
10710         * CheckedListBox.cs:
10711         * ComboBox.cs:
10712         * DataGrid.cs:
10713         * DataGridView.cs:
10714         * Form.cs:
10715         * GroupBox.cs:
10716         * ListBox.cs:
10717         * PrintPreviewControl.cs:
10718         * ProgressBar.cs:
10719         * PropertyGrid.cs:
10720         * Splitter.cs:
10721         * StatusBar.cs:
10722         * TrackBar.cs:
10723         * UpDownBase.cs: Fixup base event overrides.
10724         
10725 2006-04-06  Mike Kestner  <mkestner@novell.com>
10726
10727         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10728         all user-initiated value changes to min <= value <= max-thumbsz+1.
10729         (set_Value): check for vert/horiz when calculating new thumb position.
10730         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10731         like MS does.
10732         (OnMouseMoveSB): refactor the thumb dragging code and refine
10733         invalidation logic to reduce flicker.
10734         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10735         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10736         (UpdateThumbPosition): small code readability cleanup
10737
10738 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10739
10740         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10741           different
10742
10743 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10744
10745         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10746
10747 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10748
10749         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10750         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10751           This dramatically reduces the number of Pen.Dispose calls. 
10752           Where possible call ResPool methods only once instead of calling it
10753           over and over again (for example for the same color).
10754
10755 2006-04-06  Mike Kestner  <mkestner@novell.com>
10756
10757         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10758         Also remove an unused private field on the collection. Fixes #77972.
10759
10760 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10761
10762         * ThemeNice.cs: Added ToolBar drawing code
10763
10764 2006-04-06  Mike Kestner  <mkestner@novell.com>
10765
10766         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10767         I'm assuming that means we need to look up the toplevel for the
10768         provided control. Fixes the crash trace in #77911 but exposes another
10769         crash in some strange reflection usage in NDocGui.
10770
10771 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10772
10773         * ThemeNice.cs: Gave it a little silver touch and added Images
10774           method
10775         * FontDialog.cs: FontDialog is not resizable
10776         * FileDialg.cs: Added SizeGripStyle.Show
10777
10778 2006-04-05  Jackson Harper  <jackson@ximian.com>
10779
10780         * KeyboardLayouts.cs: Remove warning.
10781
10782 2006-04-05  Jackson Harper  <jackson@ximian.com>
10783
10784         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10785         all of our controls instead of Paint +=.
10786         * ListBox.cs:
10787         * ListView.cs:
10788         * MenuAPI.cs:
10789         * MessageBox.cs:
10790         * NotifyIcon.cs:
10791         * ProgressBar.cs:
10792         * ScrollBar.cs:
10793         * Splitter.cs:
10794         * StatusBar.cs:
10795         * TabControl.cs:
10796         * TextBoxBase.cs:
10797         * ToolBar.cs:
10798         * TrackBar.cs:
10799         * UpDownBase.cs:
10800         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10801         use OnPaintInternal. Remove Width/Height and Visible checks in
10802         paint handler, this is done at a higher level now.
10803         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10804         * PaintEventArgs.cs: Add a handled flag so controls that don't
10805         want anymore painting after OnPaintInternal can make sure OnPaint
10806         isn't called.
10807
10808 2006-04-05  Mike Kestner  <mkestner@novell.com>
10809
10810         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10811         state of the form, so that we don't process events when Modal dialogs
10812         are up. Fixes #77922.
10813
10814 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10815
10816         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10817           checking is done.
10818
10819 2006-04-05  Mike Kestner  <mkestner@novell.com>
10820
10821         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10822
10823 2006-04-05  Mike Kestner  <mkestner@novell.com>
10824
10825         * ListView.cs (HeaderMouseMove): null guarding for the over column
10826         when setting up the drag_to_index.  Fixes #78015.
10827
10828 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10829
10830         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10831           in the taskbar. Transient windows seem to accomplish that.
10832
10833 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10834
10835         * Form.cs:
10836           - Re-enabled CreateParams.X/Y code for FormStartPosition
10837           - Added code for manual placement when creating the Control
10838           - Incomplete patch to treat MDI forms differently when
10839             setting the ClientSizeCore. (Still need to figure out handling
10840             x/y coords there)
10841         * XplatUIX11.cs:
10842           - When we're explicitly setting the X/Y position of a non-Child
10843             window, let the WM know. Metacity really wants this.
10844
10845 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10846
10847         * ThemeNice.cs: Added CPDrawButton
10848
10849 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10850
10851         * ThemeNice.cs: Changed the color for focused buttons and activated
10852           the arrows for small scroll buttons.
10853
10854 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10855
10856         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10857           anymore. Changed some method modifiers to protected (virtual)
10858         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10859           changes
10860         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10861           Updated drawing of menus, buttons and progressbars; added
10862           CPDrawBorder3D 
10863
10864 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10865
10866         * ImageListStreamer.cs: implemented serialization/deserialization
10867         of the images.
10868
10869 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10870
10871         * ThemeWin32Classic.cs:
10872           - Removed all the DrawFrameControl stuff; CPDrawButton,
10873             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10874             inside the methods
10875           - Updated and corrected the drawing code of CPDrawButton,
10876             CPDrawCheckBox and CPDrawRadioButton to better match ms
10877           - Updated theme checkbox and radiobutton code to use the CP*
10878             methods
10879
10880 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10881
10882         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10883           bug is fixed
10884
10885 2006-03-31  Jackson Harper  <jackson@ximian.com>
10886
10887         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10888         sometimes.
10889         * UpDownBase.cs: Don't CreateGraphics manually, use a
10890         Refresh. Ideally we would invalidate the correct areas here.
10891
10892 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10893
10894         * XplatUIX11.cs: 
10895           - We now track the mapping state of windows. If a window (or 
10896             one of it's parents) is not mapped we no longer permit
10897             WM_PAINT messages to be generated since we'd otherwise get 
10898             lots of BadMatch X errors. Jackson did all the work figuring
10899             out the problem.
10900           - Destroying the caret if the window it's contained in is 
10901             destroyed. Can't use regular DestroyCaret method since it
10902             might fall into a drawing function (trying to remove the
10903             caret) and with that generate new BadMatch errors. Again,
10904             Jackson tracked this down.
10905           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10906             make sure we send the messages to all windows. (The old code
10907             would send the WM_DESTROY to the window, and then all child
10908             windows would be 'gone' because the WM_DESTROY handle lookup
10909             would no longer find the destroyed window)
10910         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10911         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10912
10913 2006-03-31  Jackson Harper  <jackson@ximian.com>
10914
10915         * ScrollableControl.cs: Dont recalc if we are not visible.
10916
10917 2006-03-31  Mike Kestner  <mkestner@novell.com>
10918
10919         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10920         the visibility branch.
10921
10922 2006-03-31  Jackson Harper  <jackson@ximian.com>
10923
10924         * ScrollBar.cs: Cap values when incrementing/decrementing.
10925
10926 2006-03-31  Mike Kestner  <mkestner@novell.com>
10927
10928         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10929         * ToolTip.cs: guard against timer expirations with no active control.
10930         Not sure why it happened.
10931
10932 2006-03-31  Mike Kestner  <mkestner@novell.com>
10933
10934         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10935         text.
10936         * ToolTip.cs: Position the tooltip based on where the cursor is at
10937         popup time, not at MouseEnter time.  Add a Down state so that we don't
10938         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10939         positioning offset. Lookup DisplaySize at positioning time, since it
10940         can theoretically change during invocation.
10941         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10942         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10943
10944 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10945
10946         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10947           Fixes behaviour when the Text property of the box is String.Empty
10948
10949 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10950
10951         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10952           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10953           a window)
10954
10955 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10956
10957         * FileDialog.cs: Visual enhancement for the popup buttons in 
10958           PopupButtonPanel
10959
10960 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10961
10962         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
10963           code
10964
10965 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
10966
10967         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
10968           highlighted menu items to match ms
10969
10970 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
10971
10972         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
10973
10974 2006-03-30  Mike Kestner  <mkestner@novell.com>
10975
10976         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
10977         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
10978         go active to account for HotLight to Selected transition.
10979         * MenuItem.cs: add internal Selected prop. Fill out the Status
10980         property by calculating it from item info. Add HotLight,
10981         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
10982
10983 2006-03-30  Mike Kestner  <mkestner@novell.com>
10984
10985         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
10986
10987 2006-03-29  Jackson Harper  <jackson@ximian.com>
10988
10989         * Form.cs: Implement TODO.
10990
10991 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
10992
10993         * PrintPreviewDialog.cs: Implemented missing methods and events; still
10994           missing proper dialog setup in the constructor
10995
10996 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
10997
10998         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
10999         * Control.cs:
11000           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
11001           - Fixed ResetBindings and removed TODO
11002           - Added check for cross-thread calls to get_Handle()
11003           - Added Marshaller attribute for set_Font to satisfy class status
11004         * FontDialog.cs: Removed TODOs that seemed implemented
11005         * UpDownBase.cs: Removed unneeded TODO and Fixme
11006         * MessageBox.cs: Implemented support for Default button and removed TODO
11007         * FileDialog.cs: Removed obsolete TODO
11008         * DomainUpDown.cs: Removed obsolete TODO
11009         * ButtonBase.cs: Removed obsolete TODO
11010         * XplatUIWin32.cs: Removed obsolete TODO
11011         * Form.cs:
11012           - Removed obsolete TODO
11013           - Calling CheckAcceptButton when the acceptbutton is changed to allow
11014             internal status updates
11015           - Making sure the active control is selected when the control is created
11016         * CurrencyManager.cs: Removed obsolete TODO
11017
11018 2006-03-29  Mike Kestner  <mkestner@novell.com>
11019
11020         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
11021         of PrintPreviewDialog and RichTextBox.
11022
11023 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11024
11025         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
11026           DarkDark, Light and LightLight colors for a specific color
11027         * ThemeWin32Classic.cs:
11028           - Use Button drawing code to draw RadioButtons and CheckBoxes with
11029             Appearance = Button 
11030           - Make use of the new ResPool helper CPColor
11031           - Draw ProgressBar and StatusBar with correct 3D borders
11032
11033 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11034
11035         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11036
11037 2006-03-28  Mike Kestner  <mkestner@novell.com>
11038
11039         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11040         calculating col/row counts.
11041
11042 2006-03-28  Mike Kestner  <mkestner@novell.com>
11043
11044         * ColumnHeader.cs:
11045         * ListView.cs:
11046         * ListViewItem.cs:
11047         * Menu.cs: 
11048         switch to explicit interface method implementation for some methods
11049         corcompare identifies as inconsistent with MS.
11050
11051 2006-03-28  Mike Kestner  <mkestner@novell.com>
11052
11053         * MainMenu.cs: 
11054         * Menu.cs:
11055         add a few missing methods from the class status output.
11056
11057 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11058
11059         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11060           correct.
11061
11062 2006-03-28  Mike Kestner  <mkestner@novell.com>
11063
11064         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11065
11066 2006-03-27  Mike Kestner  <mkestner@novell.com>
11067
11068         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11069         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11070
11071 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11072
11073         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11074
11075 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11076
11077         * ThemeWin32Classic.cs:
11078           - GroupBox: Inserted a little gap between the text and the lines
11079             on the right side
11080           - Made the code in CPDrawBorder3D more readable
11081           - Corrected the drawing location of the up and down arrows in 
11082             CPDrawScrollButton
11083
11084 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11085
11086         * ControlPaint.cs: Corrected line widths in DrawBorder for
11087           ButtonBorderStyle Inset and Outset
11088
11089 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11090
11091         * ThemeWin32Classic.cs:
11092           - Rewrote the totally broken CPDrawBorder3D method. That was
11093             one of the main problems for the terrific ThemeWin32Classic
11094             look
11095           - Updated and corrected Button drawing
11096           - Correct the dimensions of the SizeGrip to match ms ones
11097           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11098         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11099           Border3DStyle.Sunken to match ms.
11100
11101 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11102
11103         * ThemeWin32Classic.cs: First small part of the "de-uglify
11104           ThemeWin32Classic" effort, SizeGrip
11105
11106 2006-03-24  Jackson Harper  <jackson@ximian.com>
11107
11108         * XplatUIX11.cs: Give a max idle time of one second, this matches
11109         MS and forces an Idle event every second when there are no other
11110         events in the queue.
11111
11112 2006-03-24  Mike Kestner  <mkestner@novell.com>
11113
11114         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11115         * ListView.Item.cs: fix layout issues with null image lists and images
11116         smaller than checkbox size.
11117         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11118         mode like MS does.  It's weird, but consistent.  ;-)
11119         Fixes #77890.
11120
11121 2006-03-24  Mike Kestner  <mkestner@novell.com>
11122
11123         * ListView.cs: Scroll wheel support for the item control.  Fixes
11124         #77839.
11125
11126 2006-03-23  Jackson Harper  <jackson@ximian.com>
11127
11128         * ScrollableControl.cs: Special case negative sized areas, not
11129         zero.
11130         * MonthCalendar.cs: Save the rect of the clicked date so we can
11131         use it for invalidation.
11132         - Try to cut down on the number of invalidates
11133         - Invalidate the rect the mouse is over and was over when moving
11134         the mouse, so we get the focus box following the cursor.
11135
11136 2006-03-23  Mike Kestner  <mkestner@novell.com>
11137
11138         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11139         focus rectangle drawing. Fixes #77835.
11140
11141 2006-03-23  Mike Kestner  <mkestner@novell.com>
11142
11143         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11144         the if and else if and reverting back to the original == check on the
11145         None conditional.
11146
11147 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11148
11149         * FontDialog.cs: Update the example panel if the selected index of
11150           the fontListBox changes.
11151
11152 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11153
11154         * FileDialog.cs: Make FileDialog remember which directory it was in
11155           last in the same execution.
11156
11157 2006-03-22  Mike Kestner  <mkestner@novell.com>
11158
11159         * FileDialog.cs: make the DropDownMenu on the toolbar display
11160         RadioChecks since they are mutually exclusive and that's what MS does.
11161
11162 2006-03-22  Mike Kestner  <mkestner@novell.com>
11163
11164         * Theme.cs: add Color param to CPDrawMenuGlyph.
11165         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11166         checks and radio marks and arrows are visible on highlighted items.
11167         * ControlPaint.cs: update to use new Theme signature.
11168
11169 2006-03-22  Mike Kestner  <mkestner@novell.com>
11170
11171         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11172         is active. Fixes #77870.
11173
11174 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11175
11176         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11177           to be focused/selected after startup
11178
11179 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11180
11181         * ColorDialog.cs: 
11182           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11183             CustomColors and ShowHelp properties
11184           - Some internal rewrites to get better results when using the
11185             ColorMatrix
11186
11187 2006-03-22  Mike Kestner  <mkestner@novell.com>
11188
11189         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11190         HoverSelection.  Fixes #77836.
11191
11192 2006-03-22  Mike Kestner  <mkestner@novell.com>
11193
11194         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11195         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11196         1, not 0.  Update ButtonSize based on a pixel count of the win32
11197         control.  Adjust the toolbar size/location for new button size.
11198
11199 2006-03-22  Jackson Harper  <jackson@ximian.com>
11200
11201         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11202         true.
11203         * ScrollBar.cs: When doing increments and decrements we need to
11204         set the Value property so that ValueChanged gets raised. A
11205         possible optimization here would be to make an internal SetValue
11206         that doesn't invalidate immediately.
11207         * ToolTip.cs: Tooltips get added to their container (when
11208         supplied) so they get disposed when the container is disposed.
11209         - Don't create tooltips for String.Empty. This prevents all these
11210         little 2-3 pixel windows from showing up when running nunit-gui
11211         and driving me mad.
11212         * Form.cs: Don't set topmost when setting the owner if the handles
11213         haven't been created yet.  The topmost set will happen when the
11214         handles are created.
11215
11216 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11217
11218         * XplatUIX11.cs:
11219           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11220           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11221             visible (to allow them to recalculate their sizes)
11222
11223 2006-03-21  Mike Kestner  <mkestner@novell.com>
11224
11225         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11226         methods. Removed a ton of redundant code.  Still not really happy with
11227         the border rendering, but I think that's mainly because of the
11228         ControlDarkDark being black instead of a dark grey. Depending on how 
11229         close we want to be, we might want to revisit those color choices.
11230         Among the new features added during the refactor were DropDownArrow
11231         pressed rendering, Disabled image rendering.  Proper flat appearance
11232         boundary rendering.  Removed the Divider and Wrapping dividers since I
11233         can't figure out any combination of themes and conditions to make the
11234         MS control draw a horizontal line on a toolbar despite what the
11235         Divider property docs indicate.
11236         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11237         conditions and incorrect layout.  Updated to coding standard.
11238         * ToolBarButton.cs: refactored layout and positioning code from
11239         ToolBar to here.  Invalidate wherever possible instead of forcing
11240         redraws of the whole toolbar. 
11241         (Known remaining issues: explicit ButtonSize smaller than provided
11242         images.)
11243
11244 2006-03-21  Mike Kestner  <mkestner@novell.com>
11245
11246         * ContextMenu.cs (Show): use the position parameter instead of just
11247         showing at the MousePosition.
11248
11249 2006-03-21  Jackson Harper  <jackson@ximian.com>
11250
11251         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11252         control handle this.
11253         * TreeNodeCollection.cs: If we are clearing the root node we need
11254         to reset top_node so calcs can still happen.
11255         * ThemeWin32Classic.cs: This is a Flags so we need to check
11256         properly.
11257         
11258 2006-03-21  Jackson Harper  <jackson@ximian.com>
11259
11260         * DataGrid.cs: Create columns when the binding context has been
11261         changed.
11262         * X11Structs.cs: Keysyms are uints.
11263         - Add size to fix build.
11264
11265 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11266
11267         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11268           XplatUIOSX.cs: 
11269           - Added ResetMouseHover method to allow controls to retrigger
11270             hovering if they need it more than once
11271           - Implemented MouseHoverTime and MouseHoverSize properties
11272         * Timer.cs: Start() must reset the interval
11273         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11274           properties
11275
11276 2006-03-21  Jackson Harper  <jackson@ximian.com>
11277
11278         * X11Keyboard.cs: improved layout detection. Move the nonchar
11279         tables into this file.
11280         * KeyboardLayouts.cs: Move the tables into resource files.
11281
11282 2006-03-21  Mike Kestner  <mkestner@novell.com>
11283
11284         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11285
11286 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11287
11288         * Mime.cs: Various speed optimizations. Looking up mime types
11289           is now 2 times faster than before
11290
11291 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11292
11293         * CreateParams.cs: Added internal menu field
11294         * Control.cs: 
11295           - Switched call order for UpdateBounds; now we always call
11296             the one that also takes ClientSize, and we're calculating the 
11297             client size via driver method in the others. The previous
11298             method of tracking client size by difference wasn't working
11299             for forms where even the starting client size wouldn't match
11300             the overall form size (due to borders) (Part of fix for #77729)
11301           - CreateParams(): Do not use parent.Handle unless the handle is
11302             already created. Causes havoc with Nexxia and throws off our
11303             creation of controls
11304         * XplatUIX11.cs:
11305           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11306           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11307             method (consolidates code)
11308           - Changed RequestNCRecalc to use new PerformNCCalc method
11309           - Added calls to RequestNCRecalc when menus and borders are changed
11310             to allow app to set NC size. (Part of fix for #77729) This matches
11311             when MS send a WM_NCRECALC on Win32 windows.
11312           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11313             (Part of fix for #77729). This matches what MS does, they also
11314             send that message when the form is made visible.
11315           - XException.GetMessage: Improved usability of X errors by including
11316             a translation of the window into Hwnd and Control class
11317           - Improved debug info for window creation, reparenting and destruction
11318           - Created helper method WindowIsMapped() [Currently not used]
11319         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11320         * Form.cs:
11321           - CreateParams: Now setting our menu on the new internal menu field
11322           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11323             avoid calculating the same property twice
11324         * Hwnd.cs:
11325           - Improved usability of ToString() for debugging purposes
11326           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11327             determine the height of the menu, instead of just the font. This
11328             required to also create a graphics context and to keep a bmp 
11329             around (for performance reasons)
11330
11331 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11332
11333         * MenuAPI.cs: Added OnMouseUp method
11334         * Form.cs:
11335           - Now remembering the requested client size, avoids size errors
11336           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11337             instead of base if the menu is active. This is required due to
11338             control now capturing and releasing on down/up and it would
11339             prematurely release our menu capture
11340
11341 2006-03-17  Jackson Harper  <jackson@ximian.com>
11342
11343         * KeyboardLayouts.cs: Add the czech layouts.
11344
11345 2006-03-16  Jackson Harper  <jackson@ximian.com>
11346
11347         * Control.cs: Use the viewport space when sizing not the controls
11348         client size, so things like ScrollableControl that effect the
11349         viewport size (when scrollbars are added) are computed correctly.
11350         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11351         of ManagerEntrys.
11352         - Handle creating BindingManagers for null data sources.
11353         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11354         source, otherwise when rows are added they are added to the 'fake'
11355         datasource and we will crash when trying to set the position in
11356         those rows.
11357         - Use Implicit scrollbars on the datagrid so they arent
11358         selectable.
11359         
11360 2006-03-16  Jackson Harper  <jackson@ximian.com>
11361
11362         * Binding.cs:
11363         * InternalWindowManager.cs:
11364         * MdiWindowManager.cs:
11365         * X11Keyboard.cs: I really want Mike to love me again (fix
11366         compiler warnings).
11367
11368 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11369
11370         * DataGrid.cs:
11371           - OnMouseDown: Switch to editing mode when clicking on the cell
11372                          even if we're clicking on the cell that's currently 
11373                          selected
11374           - ProcessGridKey: Left/Right now wrap like MS.Net does
11375           - ProcessGridKey: Tab now knows to add a new row when tab is
11376                             pressed in the cell of the last column of the 
11377                             last row
11378           - ProcessGridKey: Enter now adds another row  if pressed in the last
11379                             row and selectes the new row, same column cell
11380           - ProcessGridKey: Home/End navigate columns, not rows, like 
11381                             originally implemented
11382           - Broke ProcessKeyPreview code out into an extra Internal method
11383             so it can be called from the edit code
11384         * DataGridTextBox.cs (ProcessKeyMessage):
11385           - Switched to accept Tab keypresses
11386           - Added F2 handling to allow jumping to the end of the edited cell
11387           - Added logic to allow moving caret left/right inside edited cell
11388             and making the edited cell jump when the caret hits cell borders
11389           - Tab and Enter are now passed to the datagrid after being handled
11390         * TextBoxBase.cs:
11391           - Removed capture code now that Control handles it
11392           - set_SelectionStart now ensures caret is visible
11393
11394 2006-03-16  Jackson Harper  <jackson@ximian.com>
11395
11396         * TrackBar.cs: Debackwards the increment/decrement for handling
11397         mouse clicks on the bar with vertical trackbars.
11398         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11399         bottom to match MS.
11400
11401 2006-03-16  Mike Kestner  <mkestner@novell.com>
11402
11403         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11404         consistent with the MS control. Fix a bug in
11405         SelectedListViewItemCollection.Clear that was pissing me off for the
11406         better part of a day because the collection was being altered
11407         underneath us as we walked the list.
11408
11409 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11410
11411         * Control.cs: Not sure how we could miss this so long, but it seems
11412           that MS.Net has Capture set all the way from before calling 
11413           OnMouseDown through sending the mouse events until after
11414           OnMouseUp. This will fix DataGrid's selection being set to end
11415           at the location of the MouseUp.
11416
11417 2006-03-15  Jackson Harper  <jackson@ximian.com>
11418
11419         * BindingContext.cs: Check the binding after its added so that it
11420           can initialize the binding managers and hookup to events.
11421         * Binding.cs: Data members seem to sometimes include rows/cols in
11422           the format Row.Column we now take this into account.
11423           - Hookup to the position changed event so we can update the
11424           control when the position has changed in the data set.
11425         * CurrencyManager.cs: Take into account the row/col naming
11426           convention when creating dataset tables.
11427         * BindingContext.cs: Using a newer better way of storing
11428           datasource/datamember pairs.  Hopefully this better matches MS for
11429           looking up binding managers.
11430
11431
11432 2006-03-15  Jackson Harper  <jackson@ximian.com>
11433
11434         * BindingContext.cs: The currency manager needs the data member
11435         name, if the member is a data set we use the name to find the
11436         correct table.
11437         * CurrencyManager.cs: When creating the list prefer an IList over
11438         an IListSource.
11439         - Attempt to create a DataTable from a DataSet (TODO: might need
11440         some better error checking here, although MS doesn't seem to have much)
11441         - If we have a DataTable create a view and use it as our list.
11442
11443 2006-03-15  Mike Kestner  <mkestner@novell.com>
11444
11445         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11446         keyboard navigation. Support Up/Down/Left/Right selection correctly
11447         for all 4 View modes.
11448         * ListViewItem.cs: add internal row/col fields for icon layouts.
11449
11450 2006-03-15  Jackson Harper  <jackson@ximian.com>
11451
11452         * TabControl.cs: Redraw the tabs when we resize so their newly
11453         calculated sizes are drawn on screen.
11454         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11455         composite characters.
11456         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11457         - filter events so that composite characters can be created
11458         patches by peter
11459         * X11Structs.cs: Add XIMProperties enum.
11460
11461 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11462
11463         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11464           unless it's created
11465
11466 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11467
11468         * Control.cs (PerformLayout): We don't need to consider visiblity
11469           for anchoring, only for docking. This fixes 'whacky' alignment
11470           in listbox and other controls that use implicit scrollbars after
11471           the previous PerformLayout patch
11472         * ListBox.cs: Switched to use implicit scrollbars
11473           
11474 2006-03-14  Mike Kestner  <mkestner@novell.com>
11475
11476         * ToolBar.cs: 
11477         * VScrollBar.cs:
11478         - chain up the "new event" overrides to base and use
11479         OnEvent to raise them.  Part of fix for bug #76509.
11480
11481 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11482
11483         * FileDialog.cs: Do not select an item in the parent directory
11484           on backspace
11485
11486 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11487
11488         * Control.cs (PerformLayout): It would seem that we considered
11489           invisible windows for our layout. Not quite the right thing
11490           to do. Now we don't any longer, thereby fixing bug #76889.
11491
11492 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11493
11494         * Control.cs (CanFocus): I goofed. A control can have focus 
11495           even though it's not selectable. Made it match MS docs.
11496
11497 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11498
11499         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11500           center by default (fixes #76895)
11501         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11502           all uses of Border3DSides.All with the explicit ORd together
11503           Left|Right|Top|Bottom because I assume that nobody was aware 
11504           that All also implies a center fill. Most places I checked had
11505           a fill right above.
11506         * ProgressBarStyle.cs: Added
11507
11508 2006-03-13  Mike Kestner  <mkestner@novell.com>
11509
11510         * ListView.cs: fix breakage in drag shadow header positioning 
11511         from Peter's csc compilation fix.
11512
11513 2006-03-13  Mike Kestner  <mkestner@novell.com>
11514
11515         * ListView.cs: fix NRE produced by backspacing twice in a focused
11516         FileDialog.
11517
11518 2006-03-13  Mike Kestner  <mkestner@novell.com>
11519
11520         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11521
11522 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11523
11524         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11525           be changed
11526         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11527           the allowed size before making programmatic size changes
11528
11529 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11530
11531         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11532           set, metacity is broken and will still use the emty sizes in 
11533           the struct. (Fix for #77089)
11534
11535 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11536
11537         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11538           WindowExStyles and marked both enums as Flags
11539         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11540           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11541           to match WindowStyles split
11542         * XplatUIX11.cs:
11543           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11544           - Updated to match WindowStyles split
11545         * XplatUIWin32.cs:
11546           - Fixed FosterParent creation, was using ExStyle on the Style field
11547             (This should help with Popup focus issues)
11548           - Updated to match WindowStyles split
11549
11550 2006-03-13  Jackson Harper  <jackson@ximian.com>
11551
11552         * MdiWindowManager.cs: Use the system menu height. Fixes some
11553         strange sizing issues.
11554
11555 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11556
11557         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11558         * TextBoxBase.cs:
11559           - Scroll to caret after inserting text (#77672)
11560           - Make scroll range one pixel higher, fixes off-by-one error (and
11561             makes underlines visible on the last line)
11562
11563 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11564
11565         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11566           the keyboard state from being stuck with keys in 'pressed' state when
11567           focus is switched away via keyboard
11568         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11569           reset the keyboard if no X11 KeyUp events are expected to come
11570         * X11Structs.cs: Switched type of Visible to bool to match driver
11571
11572 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11573
11574         * TextControl.cs:
11575           - Switched caret to be just 1 pixel wide, matches MS and looks less
11576             clunky
11577           - Moved caret display 1 pixel down from the top of the control
11578             to improve view
11579           - InsertCharAtCharet: Update the selection start if moving the caret
11580             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11581           - No longer always creating the caret when the caret methods are
11582             called. Only the actual ShowCaret/HideCaret will do that now
11583           - Only setting caret visible if the owner control has focus
11584           - UpdateView: Added invalidation-shortcut logic for center and right 
11585             aligned text. Previously we'd update all according to the left
11586             logic which caused drawing errors. Also fixed height of invalidated
11587             areas, now properly invalidating the whole area (was off-by-one)
11588           - owner_HandleCreated: Always generate the document when the
11589             handle is created; this ensures that 
11590         * TextBoxBase.cs:
11591           - Fixed situation where caret would disappear under the right
11592             window border, also improved scrolling behaviour on left-
11593             aligned textboxes
11594           - Fixed right-aligned textboxes to have a border to the
11595             right instead of the caret being under the right border
11596         * XplatUIX11.cs:
11597           - Switched from 'nested' to simple visible/not visible tracking 
11598             for caret (part of fix for #77671)
11599           - No longer passing through translated FocusIn/FocusOut messages
11600             since we were notifying too often and the wrong windows. Instead
11601             we just notify our focussed window of receiving or loosing focus
11602         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11603           counting for caret to simple visible yes/no behaviour (part of 
11604           fix for #77671)
11605
11606 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11607
11608         * Mime.cs: Remove debug code...
11609
11610 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11611
11612         * MimeGenerated.cs: Removed
11613         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11614           and subclasses) from /usr/(local/)share/mime and
11615           $HOME/.local/share/mime.
11616
11617 2006-03-10  Jackson Harper  <jackson@ximian.com>
11618
11619         * MdiWindowManager.cs: Recalc the NC area when a window is
11620         maximized/restored so that the menu area is drawn on forms that
11621         don't have a menu.
11622
11623 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11624
11625         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11626           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11627           us to force a WM_NCCALCRESIZE message being sent. This is needed
11628           for MDI maximizing.
11629
11630 2006-03-10  Jackson Harper  <jackson@ximian.com>
11631
11632         * Form.cs: We need to use the ActiveMenu when calculating menu
11633         height.
11634         - Fix nullref when the window manager hasn't been created yet.
11635         * Control.cs: Fix nullref when we try to bring a control to the
11636         front that has no parent.
11637         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11638         height.
11639         - Add a dummy item to the maximized menu so it always has the
11640         correct height. Otherwise when there are no menus we don't get our
11641         icon and buttons.
11642         
11643
11644 2006-03-10  Jackson Harper  <jackson@ximian.com>
11645
11646         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11647         stuff.
11648         * Form.cs: Make the window_state internal so the window managers
11649         can track it.
11650         - When an MDI child is maximized let its window manager create the
11651         main menu (so it can add its icon).
11652         - Notify the window managers of state changes
11653         - Let the window manager paint its buttons and handle button
11654         clicks on the menu when it is maximized.
11655         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11656         window manager, since tool windows don't use it, only mdi windows.
11657         - Tell the main form that we don't want it to handle NCPAINT
11658         itself to avoid extra painting.
11659         - Handle clicks on a maximized windows menu.
11660         - Handle window state changes
11661         - Handle minimize/maximize clicks correctly by setting the window state.
11662         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11663         when clicking on the forms icon).
11664         - New method to create a forms maximized menu. This is its normal
11665         menu + an icon.
11666         - Handle window state changes.
11667         - Handle sizing of maximized windows.  Maximized windows are just
11668         drawn bigger then the parent visible area. All controls are still
11669         there, they are just outside the visible area (this matches windows).
11670         * MdiClient.cs: No scrollbars when a child window is maximized.
11671         - Let the children windows figure out how big they should be when
11672         sizing maximized windows.
11673         - Implement a version of ArrangeIconicWindows somewhat similar to
11674         Windows version.  There are some little differences, but I don't
11675         think any app will rely on the layout of minimized mdi windows.
11676
11677 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11678
11679         * Padding.cs: Several fixes to allow compiling with csc 2.0
11680
11681 2006-03-09  Jackson Harper  <jackson@ximian.com>
11682
11683         * Menu.cs:
11684         * MenuItem.cs: Cheap hack so we can add items to the list without
11685         the events being raised.  This allows adding mdi items during
11686         drawing. TODO: Should probably find a better time to add the items.
11687
11688 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11689
11690         * ThemeWin32Classic.cs:
11691           - CheckBox_DrawText: Added logic to not wrap if not enough space
11692             is available (Fix for bug #77727)
11693           - RadioButton_DrawText: Added logic not to wrap if not enough
11694             space is available (Fix for bug #77727). Also removed some
11695             duplicate code, DrawString always drawing the regular text
11696             before hitting the if statement.
11697
11698 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11699
11700         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11701
11702 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11703
11704         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11705         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11706           methods. Moved the new 2.0 properties into alphabetical order with
11707           other properties and added MonoTODO tags
11708
11709 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11710
11711         * AutoScaleMode.cs: Added. Fix build.
11712
11713 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11714
11715         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11716           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11717           and was requiring premature handle creation for calls from above
11718         * Form.cs, Control.cs: Removed handle arguments from calls to
11719           CalculateClientRect()
11720
11721 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11722
11723         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11724           drag_column.column_rect is MarshalByRef and can't be used that way
11725
11726 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11727
11728         * AxHost.cs: Added deserialization constructor for 
11729           AxHost+State (fixes 77743)
11730
11731 2006-03-09  Mike Kestner  <mkestner@novell.com>
11732
11733         * ListView.cs: 
11734         - Added column drag reordering for details view.
11735         - fixed behavior when mouse is dragged off column and
11736         AllowColumnReorder is false.
11737         * ColumnHeader.cs: clone the format too in Clone.
11738         * Theme.cs: add DrawListViewHeaderDragDetails method.
11739         * ThemeWin32Classic.cs:
11740         - impl new method for drawing drag column shadows and targets.
11741         - support column offset for details mode in DrawListViewItem.
11742
11743 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11744
11745         * TextControl.cs: Reset the char_count when the document is cleared
11746           (Fixes bug reported on mono-winforms mailing list)
11747
11748 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11749
11750         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11751           of calling base we simply process the key ourselves, since both
11752           DefWindowProc and the handled method would set m.Result. 
11753           (Fixes #77732)
11754
11755 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11756
11757         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11758           method also moves the window; instead implemented a copy of
11759           Control.ScaleCore (Part of fix for #77456)
11760         * TextBoxBase.cs: 
11761           - Created new CreateGraphicsInternal method to allow providing
11762             a graphics context when no handle is created without triggering
11763             handle creation. (Part of fix for #77456)
11764           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11765         * TextControl.cs: 
11766           - Switched Constructor to require TextBoxBase instead of Control (to
11767             allow uncast access to CreateGraphicsInternal)
11768           - Safeguarded use of owner.Handle property. No longer accessing it
11769             unless the handle is already created.
11770           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11771           - Now triggering a recalc when owning control becomes visible
11772         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11773           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11774           premature handle creation (Part of fix for #77456)
11775         * Control.cs:
11776           - We now only destroy our double-buffering buffers when the
11777             control is resized or disposed, but not when visibility
11778             changes. (The code even re-created them twice every time)
11779           - Now requiring a redraw of the buffer on visibility changes
11780             (fixes bug 77654 part 2)
11781           - Not passing OnParentVisibleChanged up unless the control
11782             is visible
11783           - CanFocus: Fixed to match MS documentation
11784           - Focus: Fixed to return actual focus state and to check if
11785             setting focus is legal before setting it
11786
11787 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11788
11789         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11790           when to draw focus rectangle by looking at parent focus and
11791           selected state instead. This fixes TabPages on Linux sometimes
11792           having none or multiple focus rectangles.
11793         * XplatUIX11.cs (SetFocus): 
11794           - Don't set the focus if the same window already has focus
11795           - Use SendMessage instead of PostMessage (like it's Win32
11796             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11797             to match MS behaviour
11798         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11799           are not selectable.
11800
11801 2006-03-07  Jackson Harper  <jackson@ximian.com>
11802
11803         * PictureBox.cs: Revert line I accidently committed last week.
11804
11805 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11806
11807         * Control.cs: 
11808           - Added new IsRecreating and ParentIsRecreating properties to
11809             allow testing if RecreateHandle has been called on ourselves
11810             or one of our parents
11811           - WndProc(WM_DESTROY): If our control handle is being recreated
11812             we immediately need to create the handle when receiving the
11813             destroy, that way our child windows find a valid parent handle
11814             when they themselves are being recreated upon WM_DESTROY receipt
11815             (fix for bug #77654 part 1)
11816         * XplatUIX11.cs:
11817           - DestroyWindow: WM_DESTROY must be sent to our own window before
11818             notifying any child windows. MS documents that child windows
11819             are still valid when WM_DESTROY is received. (Control now relies on
11820             this behaviour)
11821           - Added some fine-grain debug options
11822
11823 2006-03-06  Jackson Harper  <jackson@ximian.com>
11824
11825         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11826         box and base calculations off this.
11827         * MdiChildContext.cs:
11828         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11829         anymore.
11830         
11831 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11832
11833         * Splitter.cs: In situations where the affected control is added
11834           to the parent's control list after the splitter, we would not
11835           populate affected. Now we try populating it on mousedown, if
11836           it's not already set, and force it to be re-set whenever our
11837           parent changes.
11838
11839 2006-03-03  Matt Hargett  <matt@use.net>
11840
11841         * Control.cs: implement Control.Padding
11842         * Padding.cs: -Padding.All returns -1 when constructing with the
11843         implicit default ctor
11844         -Padding.ToString() matches MS.NET
11845         * ContainerControl.cs: implement
11846         ContainerControl.AutoScaleDimensions
11847         * ListControl.cs: implement ListControl.FormattingEnabled
11848         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11849         * ButtonBase.cs:
11850         * TabPage.cs: Implement UseVisualStyleBackColor.
11851         * PictureBox.cs: Implement PictureBox.InitialImage.
11852
11853 2006-03-03  Mike Kestner  <mkestner@novell.com>
11854
11855         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11856         event declarations to proxy to base event.
11857         * ListViewItem.cs: update to use ItemControl.
11858         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11859         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11860         column header label rendering for 0 width columns.
11861
11862 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11863
11864         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11865           that causes the control to be created. Fixes #77476.
11866
11867 2006-03-02  Jackson Harper  <jackson@ximian.com>
11868
11869         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11870         expose_pending.
11871
11872 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11873
11874         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11875           passed in for the EventArgs (fixes #77690)
11876
11877 2006-03-01  Jackson Harper  <jackson@ximian.com>
11878
11879         * ScrollBar.cs: Refresh afterbeing resized.
11880
11881 2006-02-28  Mike Kestner  <mkestner@novell.com>
11882
11883         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11884         Clean up a tracker compile warning.
11885         * MenuItem.cs: add internal PerformPopup method.
11886         [Fixes #77457]
11887
11888 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11889
11890         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11891           implicit expose) when the text is set to null
11892
11893 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11894
11895         * RichTextBox.cs (FlushText): When newline is true, we always
11896           need to split the line, even if no text is on it and we may
11897           never eat newlines. (Fixes #77669)
11898
11899 2006-02-28  Mike Kestner  <mkestner@novell.com>
11900
11901         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11902         and set Selected instead.
11903         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11904         collections.
11905
11906 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11907
11908         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11909
11910 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11911
11912         * FontDialog.cs:
11913           - Got rid of the panel. All controls are now directly added to
11914             the dialog form
11915           - It is now possible to set a font with the Font property
11916           - MinSize and MaxSize property do now what they should
11917           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11918           - Searching and selecting a font with the font textbox works now,
11919             the same applies to the style and size textbox
11920           - Draw the correct 3D border in the example panel
11921           - Fixed a little mem leak (unused fonts didn't get disposed)
11922           - Many other internal updates/rewrites...
11923           - Fix typo
11924
11925 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11926
11927         * TextControl.cs: 
11928           - InsertRTFFromStream: Added 'number of characters inserted' argument
11929           - set_SelectedRTF: Now using the number of characters to calculate
11930             the new location for the selection and cursor (x/y cannot be used
11931             due to potentially already wrapped text)
11932
11933 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11934
11935         * TextControl.cs: Added property and implemented means to allow 
11936           disabling recalculation of a document (can be used to speed up
11937           multiple inserts and is needed to make RTF inserts predictable, see
11938           bug #77659)
11939         * RichTextBox.cs: Using the new NoRecalc property of Document to
11940           keep x/y insert locations predictable. Also makes it faster inserting
11941           large chunks of RTF
11942
11943 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11944
11945         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11946           it's easier for a child control to handle the other messages without
11947           having to duplicate the special functionality
11948         * TextBoxBase.cs
11949           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11950             code to handle processing the key ourselves, in order to get 
11951             access to the result of KeyEventArgs.Handled. We now only call 
11952             ProcessKey if they key hasn't been handled already. Fixes #77526.
11953           - set_Text: If null or empty string is given, just clear the 
11954             document. Fixes part of #77526
11955
11956 2006-02-27  Jackson Harper  <jackson@ximian.com>
11957
11958         * SizeGrip.cs: Paint the background color before painting the grip
11959         so things look right.
11960         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
11961
11962 2006-02-27  Mike Kestner  <mkestner@novell.com>
11963
11964         * ListView.cs:
11965           - Restructure layout and invalidation model to remove a ton of
11966           flicker from the control and speed up performance in general.
11967           - Add manual column resize, flickers like crazy, but I already have
11968           some ideas on how I'll fix that. (#76822)
11969           - Merge the three Icon-based views into a single layout method.
11970           - Move item selection interaction logic from the item since 
11971           interaction with the collections is more appropriate to the view.
11972           - Deselection on non-item clicks.
11973         * ListViewItem.cs:
11974           - Encapsulate most of the layout. Add some internal props to trigger
11975           layout.  Move to a model where Items invalidate themselves instead
11976           of just invalidating the whole control every time something changes.
11977           - Invalidate on Text/Caption changes.
11978           - switch to an offset based layout model to avoid having to absolute
11979           position every element on item moves.
11980           - correct checkbox layout to conform to MS layout.
11981         * ThemeWin32Classic.cs:
11982           - refactor some column header drawing code.
11983           - fix string justification for column headers (#76821)
11984           - make SmallIcon labels top justified for compat with MS impl.
11985         * ThemeClearlooks.cs:
11986           - adjust to new ListViewItem internal checkbox bounds api.
11987
11988 2006-02-27  Jackson Harper  <jackson@ximian.com>
11989
11990         * Control.cs:  Change where implicit controls fall in the zorder.
11991         They are now on top of all children.
11992         - Synced AddImplicit code with Add
11993         - Removed unused enumerator.
11994         * SizeGrip.cs: Remove the TODO as its been TODONE.
11995
11996 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
11997
11998         * TextControl.cs(Insert): Combine the last lines unless the insertion
11999           string ends with \n\n, otherwise we leave one line too many (Fixes
12000           something I noticed with the testapp for #77526; the bug itself was
12001           already fixed in the previous checkin)
12002
12003 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
12004
12005         * RichTextBox.cs:
12006           - SelectionColor and SelectionFont methods no longer set absolute
12007             styles. Instead, the keep font or color respectively (This 
12008             resolves a long-standing FIXME in the code)
12009           - When flushing RTF text, the insert code now considers text trailing
12010             behind the insertion point (Fixes the bug where when replacing
12011             the selected text via SelectedRTF the remainder of the line behind 
12012             the selection would stay on the first insertion line)
12013         * TextBoxBase.cs:
12014           - AppendText now updates the selection points after inserting text
12015           - AppendText now ensures that the last tag (sometimes 0-length) of
12016             the document is used for the style information (Fixes part of 
12017             bug #77220)
12018         * TextControl.cs:
12019           - Created new FontDefiniton class to allow describing partial style
12020             changes
12021           - StreamLine() now takes a lines argument, to allow it to decide
12022             whether an encountered zero-length tag is the last in the document
12023             (which must be kept to not loose the font/color contained in it,
12024             for later appends)
12025           - Created Combine() and Split() methods for Marker structs, to 
12026             support marker updates due to reformatted documents (soft line
12027             wraps)
12028           - Implemented Document.CaretTag setter
12029           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
12030             of the last line (Not the cause, but also exposed by bug #77220)
12031           - Added LineTag argument to InsertString method, to allow callers
12032             to force a certain tag to be used (required to force use of the
12033             trailing zero-length tag of a document)
12034           - Now updating markers in Combine(), to avoid stale tag markers
12035           - Added some method descriptions to aid maintenance
12036           - Implemented new FormatText concept, allowing additive/subtractive
12037             formatting by only specifying the components that are to be 
12038             changed. This was needed for resolving the RTB.SelectedColor/
12039             RTB.SelectedFont fixmes
12040           - Added Break() support method to allow breaking up linetags (used
12041             for partial formatting)
12042           - Added GenerateTextFormat() method. It is used for partial 
12043             formatting and allows to generate a full font/color from given
12044             attributes and an existing tag.
12045
12046 2006-02-26  Jackson Harper  <jackson@ximian.com>
12047
12048         * XplatUIX11.cs:  Use the correct caption height.
12049         - Translate hittest coordinates to screen coords to match MS.
12050         * XplatUIWin32.cs: When we create MDI windows we need to reset
12051         some of the style flags, so we get a nice blank window, and can
12052         draw all the decorations ourselves.
12053         - Set a clipping rectangle on the non client paint event, the
12054         window manager drawing code needs one.
12055         * Form.cs: The window manager needs to know when the window state
12056         has been updated.
12057         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12058         don't need to factor in border and title sizes in these
12059         methods. TODO: Remove the args and fix the call points.
12060         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12061         properly.
12062         - Let the driver set the cursors.
12063         - Improve active window handling
12064         - Correct sizes for title bars and buttons.
12065         - Match MS drawing better
12066         * MdiWindowManager.cs: We don't need to handle border style
12067         updates specially anymore.
12068         - Check for scrollbars when windows are done moving
12069         - Handle Active properly.
12070         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12071         correctly. I am spewing the exception though, so we don't hide the
12072         bugs.
12073         
12074 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12075
12076         * DataGridViewRowPostPaintEventArgs.cs,
12077           DataGridViewCellPaintingEventArgs.cs,
12078           DataGridViewRowCollection.cs,
12079           DataGridViewRowPrePaintEventArgs.cs,
12080           DataGridViewCell.cs: Clear a few warnings and implement a few
12081           exceptions that should be thrown.
12082
12083 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12084
12085         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12086           'inheriting' our parent's (non-default) cursor. (Part of
12087            the fix for #77479)
12088
12089 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12090
12091         * XplatUIX11.cs: Fixed cast to make csc happy
12092
12093 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12094
12095         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12096           it's for the client area (part of fix for #77479 and needed
12097           for MDI window cursor handling)
12098         * XplatUIX11.cs
12099           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12100             the appropriate default cursors and also passing the message
12101             up the parent chain 
12102           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12103             for non-client areas
12104
12105 2006-02-15  Jackson Harper  <jackson@ximian.com>
12106
12107         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12108         is a real MDI window
12109
12110 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12111
12112         * X11DesktopColors.cs: Instead of checking the desktop session
12113           string for "KDE" check if it starts with "KDE"
12114
12115 2006-02-10  Jackson Harper  <jackson@ximian.com>
12116
12117         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12118         systems).
12119
12120 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12121
12122         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12123           errors
12124         * ColorDialog.cs:
12125           - Got rid of the panel. All controls are now directly added to
12126             the dialog form
12127           - Changed to mono coding style
12128
12129 2006-02-10  Jackson Harper  <jackson@ximian.com>
12130
12131         * InternalWindowManager.cs: We don't need the set visibility to
12132         false hack anymore now that peter has written beautiful shutdown
12133         code.
12134
12135 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12136
12137         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12138           where already explicitly destroyed
12139
12140 2006-02-10  Jackson Harper  <jackson@ximian.com>
12141
12142         * MdiClient.cs: Handle the case where windows are too high or to
12143         the left and we need scrollbars.
12144
12145 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12146
12147         * MimeIcon.cs: Added some icons
12148         * FileDialog.cs:
12149           - Fixed bug #77477
12150           - Got rid of the panel. All controls are now directly added to
12151             the dialog form
12152           - Changed to mono coding style
12153           - On Linux "My Computer" and "My Network" will now show some
12154             more usefull information. A new class, MasterMount, gathers
12155             this information from /proc/mount. Updated MWFFileView to make
12156             use of this information
12157           - Fixed a bug that caused FileDialog to crash when
12158             ".recently_used" file had a zero size
12159           - FilterIndex does now what it should
12160           - Some Refactoring
12161         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12162             FileDialog changes
12163
12164 2006-02-09  Jackson Harper  <jackson@ximian.com>
12165
12166         * ComboBox.cs: Don't touch if null.
12167
12168 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12169
12170         * Cursor.cs: 64bit safeness fix
12171         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12172
12173 2006-02-09  Jackson Harper  <jackson@ximian.com>
12174
12175         * Form.cs: If a form is made into an MDI form update the styles so
12176         all the props can get set correctly.
12177         - Kill the mdi_container when we dont need it anymore.
12178         * InternalWindowManager.cs: Add missing NOT
12179
12180 2006-02-08  Jackson Harper  <jackson@ximian.com>
12181
12182         * InternalWindowManager.cs: Respek clipping when drawing MDi
12183         decorations.
12184
12185 2006-02-08  Jackson Harper  <jackson@ximian.com>
12186
12187         * Hwnd.cs: Add bits to track non client expose events.
12188         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12189         gives us a proper invalid rect and will allow for some nice
12190         optimizations with NC client drawing
12191         - MDI windows are children windows, so move their style handling
12192         into the child window block.
12193         * InternalWindowManager.cs: Remove a state reset that was
12194         getting invoked at the wrong time. Fixes managed windows getting
12195         into a 'stuck' captured state.
12196
12197 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12198
12199         * TextControl.cs (Document.ctor): Now initializing 
12200           selection_anchor. Fixes #77493
12201
12202 2006-02-07  Jackson Harper  <jackson@ximian.com>
12203
12204         * TrackBar.cs: The increment/decrements were backwards.
12205
12206 2006-02-07  Mike Kestner  <mkestner@novell.com>
12207
12208         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12209         to the instance itself.
12210
12211 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12212
12213         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12214           on ulongs and pointers, the size differs between 32bit and 64bit
12215           systems. 
12216
12217 2006-02-07  Mike Kestner  <mkestner@novell.com>
12218
12219         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12220         for 64 bit platforms to work around a metacity bug. 
12221
12222 2006-02-07  Jackson Harper  <jackson@ximian.com>
12223
12224         * TrackBar.cs: Process the input keys we need, and hookup to
12225         KeyDown instead of using WndProc, so we get key messages.
12226
12227 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12228
12229         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12230           machine we're on. 
12231         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12232           we need to translate the XdndVersion atoms array before sending it
12233
12234 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12235
12236         * XplatUIX11.cs: 
12237           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12238             number of bits for the property, not the number of bytes. The
12239             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12240             but would not crash since it specified 8 bits instead of 4 bits)
12241           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12242             defined as XID -> long in the C headers)
12243           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12244             references since those are now IntPtr to begin with
12245           - Switched all Atom.XXX 'int' casts to IntPtr casts
12246           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12247           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12248           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12249         * X11Structs.cs:
12250           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12251           - Changed atom in HoverStruct to be IntPtr
12252         * X11DnD.cs:
12253           - Removed local DllImports, switched code to use those from XplatUIX11
12254           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12255
12256 2006-02-06  Mike Kestner  <mkestner@novell.com>
12257
12258         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12259         method signatures in the import region.  There may still be some
12260         lingering struct marshaling issues, as I didn't drill down into those.
12261         Yet.
12262
12263 2006-02-06  Jackson Harper  <jackson@ximian.com>
12264
12265         * ComboBox.cs: Dont manually set the top_item, this is computed
12266         when the scrollbar position is set.
12267
12268 2006-02-06  Mike Kestner  <mkestner@novell.com>
12269
12270         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12271         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12272         usage of Atom needs to be mapped to IntPtr for example.  And there are
12273         likely other int/long issues to be addressed.
12274
12275 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12276
12277         * FileDialog.cs: One more...
12278
12279 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12280
12281         * FileDialog.cs: Next try
12282
12283 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12284
12285         * FileDialog.cs: First part of fix for #77464
12286
12287 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12288
12289         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12290           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12291           AcceptButton border drawing.
12292
12293 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12294
12295         * Form.cs: Moved positioning of form after auto scaling is applied,
12296           otherwise it would possibly use wrong form size.
12297
12298 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12299
12300         * Control.cs (RecreateHandle): No need to re-create any child
12301           controls, the child windows will get destroyed automatically by
12302           the windowing system or driver, and re-created when the handle
12303           is being accessed the first time. Fixes #77456
12304         * Form.cs: No longer setting the form to closing if the handle is 
12305           being recreated. This seems like the right thing to do, don't
12306           have a bug or testcase for this, though.
12307
12308 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12309
12310         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12311           controls to avoid unwanted side effects
12312
12313 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12314
12315         * Control.cs: 
12316           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12317             control. Fixes #77416.
12318           - DefaultSize is 0,0 for control
12319         * TextBoxBase.cs: 
12320           - DefaultSize is 100, 20
12321           - SetBoundsCore: Now enforcing the height, no matter if the provided
12322             height is more or less than the preferred one, as long as AutoSize
12323             is on
12324         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12325
12326 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12327
12328         * Control.cs:
12329           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12330             call unless both performLayout is true *and* we have a pending
12331             layout change
12332           - ResumeLayout: MS does not completely nest Suspend and Resume,
12333             they bottom out at 0, fixed our code to match that.
12334           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12335             SetBoundsCore, we were updating even when we shouldn't. This fixes
12336             swf-anchors mis-anchoring when resizing the app fast and lots.
12337           - UpdateDistances: Now only setting the left and top distance if 
12338             we have a parent and are not suspended, this is based on
12339             a suggestion by Don Edvaldson in bug #77355.
12340           - OnVisibleChanged: Fixed logic when to create the control. We may
12341             not create the control if we have no parent or if it's not visible;
12342             switched to using Visible property instead of is_visible field 
12343             since the property also considers parent states. This fixes a bug
12344             when starting Paint.Net
12345
12346 2006-02-02  Jackson Harper  <jackson@ximian.com>
12347
12348         * Form.cs: If the forms handle hasn't been created yet don't call
12349         into xplatui to make it top most, just set the topmost flag on the
12350         form in CreateParams
12351         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12352
12353 2006-02-01  Jackson Harper  <jackson@ximian.com>
12354
12355         * ScrollableControl.cs: Refactored the Recalculate method a
12356         little, this wasn't handling all the variants of bottom and right
12357         bars needed to be added and added/removed based on their
12358         counterparts being added/removed (which changes the drawable
12359         size). Also we special case client widths and heights of 0 and
12360         don't add the scrollbar for those.
12361
12362 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12363
12364         * XplatUIX11.cs: 
12365           - Added method to get AbsoluteGeometry(); currently unused, but might
12366             be used in the future, if we try again to figure out toplevel
12367             coordinates with some more crappy window managers
12368           - Added FrameExtents() method to retrieve the WM set decoration size
12369           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12370             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12371         * Hwnd.cs: 
12372           - Added whacky_wm tracking var for metacity
12373           - Added logic to have default menu height if the actual menu height
12374             has not yet been calculated (part of fix for #77426)
12375         * Form.cs: Keep track whether client size has been set and re-set 
12376           it if a menu is added/removed afterwards (Fixes #77426)
12377
12378 2006-01-31  Jackson Harper  <jackson@ximian.com>
12379
12380         * Control.cs: When a new Site is set on the component attempt to
12381         pull the AmbientProperties from it.
12382
12383 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12384
12385         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12386           in the background of the owning form. Fixes #77332
12387
12388 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12389
12390         * MimeIcon.cs: Fix for #77409
12391
12392 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12393
12394         * XplatUIX11GTK.cs: Initial import
12395
12396 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12397
12398         * FixedSizeTextBox: fixes class signature
12399
12400 2006-01-30  Jackson Harper  <jackson@ximian.com>
12401
12402         * FixedSizeTextBox.cs: New internal class that represents a
12403         textBox that will not be scaled.
12404         * TreeView.cs:
12405         * ComboBox.cs:
12406         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12407         standard TextBox.
12408                 
12409 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12410
12411         * XplatUIX11.cs: Retrieve default screen number instead of
12412           assuming 0. Attempted fix for #77318
12413
12414 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12415
12416         * XplatUIWin32.cs: 
12417           - GetWindowPos: When a window is parented by FosterParent, use 
12418             the desktop instead of FosterParent as the base to get coordinates
12419           - CreateWindow: Don't make FosterParent the parent window for Popups
12420             if we don't want a taskbar entry, Popups automatically don't get one
12421         * Hwnd.cs: Need to call remove to actually remove the key from the
12422           hash table
12423
12424 2006-01-30  Mike Kestner  <mkestner@novell.com>
12425
12426         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12427
12428 2006-01-30  Jackson Harper  <jackson@ximian.com>
12429
12430         * TreeView.cs:
12431         * TreeNode.cs: Raise events no matter how the treenode is
12432         checked. Patch by Don Edvalson.
12433
12434 2006-01-30  Jackson Harper  <jackson@ximian.com>
12435
12436         * TreeNode.cs: Signature fix.
12437
12438 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12439
12440         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12441
12442 2006-01-20  Mike Kestner  <mkestner@novell.com>
12443
12444         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12445         event forwarding when menus are active.
12446         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12447         Most of the patch is pdb's with a little rework.
12448
12449 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12450
12451         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12452           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12453           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12454         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12455         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12456           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12457           the PaintWindowDecorations method
12458         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12459         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12460         * MenuAPI.cs: Made tracker window invisible
12461         * XplatUIWin32.cs:
12462           - Removed GetMenuDC and ReleaseMenuDC methods
12463           - Implemented the client=false path for PaintEventStart and
12464             PaintEventEnd
12465
12466 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12467
12468         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12469         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12470           styles
12471         * Form.cs: 
12472           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12473             the style
12474           - CreateParams: Reworked the styles to match MS look'n'feel,
12475             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12476             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12477
12478 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12479
12480         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12481           window is not mapped, since otherwise every form that's being 
12482           created is considered minimized, which is wrong.
12483         * Form.cs: Catching the exception and returning our internal value
12484           instead
12485
12486 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12487
12488         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12489           SetWindowMinMax() to have means to tell the driver about the minimum,
12490           maximum and maximized state window sizes. (Part of the fix for #76485)
12491         * Form.cs:
12492           - Implemented tracking of minimum and maximum window size, now calling
12493             new SetWindowMinMax() driver method to tell the driver (Part of the
12494             fix for #76485)
12495           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12496             (Completes fix for #76485)
12497           - Calling new SetWindowMinMax driver method when the handle for a 
12498             form is created, to make sure the driver knows about it even if
12499             the values have been set before the window was created
12500           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12501             to avoid messing up our anchoring calculations (partial fix
12502             for #77355)
12503         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12504         * XplatUIX11.cs:
12505           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12506           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12507             (and presumably other freedesktop.org compliant WMs). Left the
12508             assumption unmapped=minimized, needed for SetVisible to work.
12509           - Now setting the window state when creating windows
12510           - Fixed SetVisible to consider/set the window state when mapping
12511             a Form. We cannot set the state before it's mapped, and we cannot
12512             use Form.WindowState once it's mapped (since it would ask the
12513             driver and get 'normal'. Therefore, we grab the state before
12514             mapping, map, and then set state.
12515           - Implmemented SetWindowMinMax method; Metacity does not seem to
12516             honor the ZoomHints, though.
12517         * XplatUIWin32.cs:
12518           - Removed MINMAXINFO (moved to XplatUIStructs)
12519           - Added SetWindowMinMax stub (on Win32 the only way to set that
12520             information is in response to the WM_GETMINMAXINFO message, which
12521             is handled in Form.cs)
12522           - Added logic to SetVisible to set the proper window state when a 
12523             form is made visible (fixes #75720)
12524
12525 2006-01-26  Jackson Harper  <jackson@ximian.com>
12526
12527         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12528         same way we handle them with Invoke.
12529
12530 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12531
12532         * Form.cs:
12533           - Added tracking of window state so CreateParams can return
12534             the appropriate style
12535           - Moved setting of WS_CAPTION style in CreateParams to allow
12536             styles without caption
12537         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12538           control if the TextBox property is accessed. Fixes #77345
12539         * Control.cs:
12540           - get_Created: now uses is_disposed and is_created to determine
12541             return value (suggested by Jackson)
12542           - CreateHandle: No longer exits if the handle is being recreated
12543           - RecreateHandle: If the handle is not yet created call the 
12544             appropriate method to create either control or handle. If the
12545             control is already created CreateHandle will simply exit instead
12546             of just creating the handle
12547         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12548           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12549           is called.
12550         * XplatUIX11.cs: 
12551           - When DestroyWindow is called, instead of waiting for the 
12552             DestroyNotification from X11, we directly post it to the WndProc
12553             and immediately dispose the hwnd object.
12554             Same applies to DestroyChildWindows, and this obsoletes the
12555             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12556             child windows before our own, to avoid X11 errors.
12557           - Removed the direct sending of WM_PAINT on UpdateWindow
12558         * XplatUIWin32.cs:
12559           - Reworked DoEvents and GetMessage to allow access to internal queue
12560             even when trying non-blocking access to the queue.  Fixes #77335. 
12561             Based on a patch suggestion by Don Edvalson. The new private
12562             GetMessage can now also be used as a backend for a PeekMessage
12563             frontend version.
12564         * XplatUI.cs: Improved debug output for CreateWindow
12565
12566 2006-01-25  Jackson Harper  <jackson@ximian.com>
12567
12568         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12569
12570 2006-01-24  Jackson Harper  <jackson@ximian.com>
12571
12572         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12573         when we have a MaxDropItems lower then the selected index.
12574
12575 2006-01-24  Jackson Harper  <jackson@ximian.com>
12576
12577         * Control.cs: Don't allow selection of non visible controls, allow
12578         selection of controls without parents.
12579
12580 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12581
12582         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12583         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12584
12585 2006-01-23  Jackson Harper  <jackson@ximian.com>
12586
12587         * UpDownBase.cs: Make the textbox handle all the selection and
12588         tabbing. This fixes tabing to updown controls.
12589
12590 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12591
12592         * TextBoxBase.cs: fixes exception thown the object was null
12593
12594 2006-01-23  Jackson Harper  <jackson@ximian.com>
12595
12596         * ButtonBase.cs: Just use the base CreateParams. They set
12597         visibility and enabled correctly.
12598         * ComboBox.cs:
12599         * TrackBar.cs:
12600         * MonthCalendar.cs: Lets let the base set as much of the
12601         createparams as possible so we don't have duplicate code all over
12602         the place.
12603
12604 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12605
12606         * ThemeGtk.cs: Added TrackBar and some experimental code to
12607           get double buffering back
12608
12609 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12610
12611         * DataGrid.cs: Allows row number set internally higher than the last
12612         when creating a new row. Restores the editing functionality.
12613
12614 2006-01-20  Mike Kestner  <mkestner@novell.com>
12615
12616         * MimeIcon.cs: delay Image creation until the icons are accessed
12617         instead of creating 190 scaled images on GnomeHandler startup.
12618
12619 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12620
12621         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12622           first call base before processing the event. Fixes #77279
12623
12624 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12625
12626         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12627           that the stride for the GDI bitmap would match the stride of
12628           a DIB or a Cursor.
12629
12630 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12631
12632         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12633
12634 2006-01-19  Jackson Harper  <jackson@ximian.com>
12635
12636         * ComboBox.cs: Hookup the text controls keydown event so we get
12637         those when the text control has the focus.
12638
12639 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12640
12641         * Label.cs: Now using the base events instead of defining new ones;
12642           this allows us to just call the base properties without having to
12643           duplicate all base property logic 
12644
12645 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12646
12647         * Label.cs: A label by default is not a tabstop (Fixes one of our
12648           failing nunit tests)
12649
12650 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12651
12652         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12653         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12654
12655 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12656
12657         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12658           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12659           This fixes #77218
12660         * XplatUIWin32.cs: 
12661           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12662             constructor creates images that can't be saved. Part of the fix
12663             for #76103
12664           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12665           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12666             bug fix for handling window state in forms properly)
12667
12668 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12669
12670         * ThemeGtk.cs: Simplify ScrollBar drawing
12671
12672 2006-01-18  Jackson Harper  <jackson@ximian.com>
12673
12674         * Splitter.cs: Set the default dock style for the splitter control
12675         in the constructor.
12676
12677 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12678
12679         * ThemeGtk.cs: Corrected StateType and ShadowType for
12680           gtk_paint_box
12681
12682 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12683
12684         * Control.cs: Make use of Theme.DoubleBufferingSupported
12685         * ThemeGtk.cs:
12686           - Added drawing for flat style buttons
12687           - Added ScrollBar drawing
12688
12689 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12690
12691         * ThemeClearlooks.cs: Removed some unneeded code.
12692         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12693
12694 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12695
12696         * LinkLabel.cs: We need to update the hover drawing when
12697           leaving the control as well.
12698
12699 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12700
12701         * DataGrid.cs: Clicking on non empty areas in the columns
12702            area was giving an exception
12703
12704 2006-01-17  Jackson Harper  <jackson@ximian.com>
12705
12706         * ThemeWin32Classic.cs:
12707         * ListView.cs: Do not draw/clip the headers when the header style
12708         is None.
12709
12710 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12711
12712         * DataGrid.cs: Fixes 77260
12713         
12714 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12715
12716         * DataGrid.cs: Clicking on a column on a empty grid was giving
12717           an exception
12718
12719 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12720
12721         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12722           or any keypress will crash the grid.
12723
12724 2006-01-17  Mike Kestner  <mkestner@novell.com>
12725
12726         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12727         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12728         invisible/previously-visible items.
12729         [Fixes #76909]
12730
12731 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12732
12733         * ThemeClearlooks.cs:
12734         - Added CL_Draw_Button method; now other theme controls that are 
12735           not derived from button or do not have a button can draw buttons
12736           too
12737         - Updated ComboBox drawing
12738         - Beautified RadioButton drawing
12739         - Corrected drawing of bottom and left tabs
12740         - Beautified DateTimePicker and MonthCalendar
12741         - Added CPDrawButton and CPDrawRadioButton
12742
12743 2006-01-16  Jackson Harper  <jackson@ximian.com>
12744
12745         * ComboBox.cs: Set the initial value of the scrollbar to the
12746         current index. Reduce the numbers of refreshs and IndexOfs called.
12747
12748 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12749
12750         * FileDialog.cs: When the file listview is focused hitting the
12751           backspace key moves the fileview to the parent directory
12752
12753 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12754
12755         * Form.cs: 
12756           - Added RecreateHandle call when changing taskbar visibility to 
12757             trigger reparenting in Win32 driver (Fixes #75719)
12758           - If a window has minimize or maximize buttons, it cannot have
12759             a help button
12760         * XplatUIWin32.cs:
12761           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12762             the toplevel form with FosterParent (A toolwindow not on the
12763             taskbar) (Fixes #75719)
12764           - Made FosterParent a toolwindow
12765
12766 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12767
12768         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12769
12770 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12771
12772         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12773           is currently over that control, make sure that tooltip_window.Text
12774           gets updated
12775
12776 2006-01-13  Mike Kestner  <mkestner@novell.com>
12777
12778         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12779
12780 2006-01-13  Jackson Harper  <jackson@ximian.com>
12781
12782         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12783         value passed.  Also redraw the selected node when we recieve
12784         focus, so tabbing between trees works correctly.
12785
12786 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12787
12788         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12789           ~/.gconf/%gconf-tree.xml, so use
12790           .gconf/desktop/gnome/interface/%gconf.xml
12791
12792 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12793
12794         * TextControl.cs: Draw text in gray if control is disabled
12795
12796 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12797
12798         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12799           make sure it's always visible. Fixes #76680.
12800
12801 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12802
12803         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12804
12805 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12806
12807         * PageSetupDialog.cs: Added.
12808         * PrintDialog.cs: Attributes.
12809         * PrintPreviewControl.cs: Updates.
12810         * PrintPreviewDialog.cs: Updates.
12811         
12812 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12813
12814         * Control.cs: Undid my selection check fix, since it's not needed
12815         * TextBoxBase.cs:
12816           - Now considering the presence of hscroll/vscroll when sizing
12817             vscroll/hscroll respectively. Fixed bug #77077
12818           - Added Left/Up/Down/Right to IsInputKey list to prevent
12819             ContainerControl from stealing them. This fixes what I broke
12820             with my last checkin.
12821
12822 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12823
12824         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12825           I finally understand how the property can be set without a setter :-)
12826
12827 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12828
12829         * Application.cs:
12830           - Switched RunLoop to use static Message.Create to create a 
12831             Message object
12832           - Added PreProcessMessage call in runloop for keyboard events; this
12833             is part of the fix for #77219, I overlooked this originally in the
12834             MSDN doc for PreProcessMessage
12835         * Control.cs:
12836           - Removed call to PreProcessMessage from handling of keyboard 
12837             messages; it's supposed to be done in the message pump
12838           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12839             per MSDN documentation.
12840           - IsInputChar: All chars are input chars by default; removed the 
12841             parent calling chain, MS does not document that
12842           - PreProcessMessage: If IsInputChar is true, we want to return false
12843             to allow dispatching of the message
12844           - When selecting the next control, now also check that we're not
12845             selecting ourselves again and therefore return a false positive.
12846         * TextBoxBase.cs:
12847           - Tried to match return values for IsInputKey and ProcessDialogKey
12848             to what MS returns; moved processing of our special keys outside
12849             ProcessDialogKey since MS does not seem to return true on those.
12850           - Moved code that previously was in ProcessDialogKey into new private
12851             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12852           - Reworked handling of WM_CHAR to not have to duplicate code from
12853             Control.cs anymore, instead we simply call down to base.
12854            
12855 2006-01-12  Jackson Harper  <jackson@ximian.com>
12856
12857         * ComboBox.cs: We always need to refresh the text area when
12858         EndUpdate is called. Fixes the combobox in the file dialog.
12859         * Control.cs: Don't create the creator_thread until the controls
12860         handle is created.  Also in InvokeRequired we check if the
12861         creator_thread is null. This gives the effect of InvokeRequired
12862         returning true if the controls handle is not created yet, and
12863         matches MS.
12864
12865 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12866
12867         * XplatUI.cs:
12868           - Added StartLoop() driver method. This is used to allow drivers to
12869             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12870             loop for a particular thread
12871           - Added EndLoop() driver method. This is called once the message
12872             pump for the thread is shut down
12873           - Added SupportsTransparency method to allow the driver to indicate
12874             opacity support for windows
12875         * Form.cs:
12876           - Removed TODO attribute, completed AllowTransparency property
12877           - Added documented logic to Opacity
12878         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12879           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12880           versions of CompatibleTextRendering
12881         * X11Structs.cs: Added opacity atom to our atom enumeration
12882         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12883           of a form might be set before it's reparented by the WM, and we need
12884           the opacity value without calling up to Form)
12885         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12886           SupportsTransparency() driver methods
12887         * Application.cs: Now calling StartLoop and EndLoop driver methods
12888         * XplatUIX11.cs:
12889           - Added opacity atom registration
12890           - Added StartLoop()/EndLoop() methods. They're empty right now but
12891             will need to get implemented when we switch to a per-thread queue
12892           - Implemented SupportsTransparency() method
12893           - Implemented SetWindowTransparency() method
12894           - Added support for setting the opacity value when a window is
12895             reparented (since the opacity needs to be set on the WM frame)
12896         * XplatUIOSX.cs, XplatUIWin32.cs:
12897           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12898
12899 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12900
12901         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12902
12903 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12904
12905         * FileDialog.cs: Added ToolTip for MWFFileView
12906         * MimeIcon.cs: Rewrote GnomeHandler.
12907           - Get currently used gnome icon theme from
12908             ($HOME)/.gconf/%gconf-tree.xml
12909           - Make use of inherited icon themes
12910           - Support SVG icon themes like Tango via librsvg
12911
12912 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12913
12914         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12915         builds. 
12916         
12917         * Application.cs: Move the use_compatible_text_rendering outside
12918         the NET_2_0 define.  If we ever need to use the
12919         use_compatible_text_rendering on the individual controls they will
12920         access the variable from the common shared code paths.
12921
12922 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12923
12924         * XplatUI.cs:
12925           - Added more granular debug options
12926           - Added method to print both window text and id
12927           - Switched debug output to use new Window() debug method
12928           - Added IsEnabled() driver method
12929           - Added EnableWindow() driver method
12930         * Form.cs:
12931           - Removed end_modal; no longer needed, new loop handles termination
12932             via 'closing' variable
12933           - If form is modal, setting DialogResult will now initiate loop
12934             termination via 'closing' variable
12935           - Added support for is_enabled/WS_DISABLED to CreateParams
12936           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12937             does all the work
12938           - Removed code that's now in RunLoop from ShowDialog()
12939           - Added various documented sanity checks to ShowDialog()
12940           - Added handling of WM_DESTROY message; we set 'closing' on getting
12941             the message to indicate the message pump to terminate
12942           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12943             send by the Application.ExitThread method. (We send the message
12944             to destroy the window after all other events have been
12945             processed through the queue, instead of destroying the handle 
12946             directly)
12947           - Moved code from Close() method to WM_CLOSE handler; added logic
12948             to only send close-related events if the form is not displayed
12949             modal
12950         * Splitter.cs (..ctor): Fixed typo in resource name
12951         * Control.cs:
12952           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12953             brush now
12954           - set_Cursor: Now only setting calling into XplatUI if the handle for
12955             the control is already created; this avoids implict handle creation
12956             or crashes if it's not created
12957           - set_Enabled: Now setting the enabled state via the new driver method
12958             instead of just tracking it
12959           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12960           - CreateControl: Reordered event firing and method calls to more
12961             closely fire events in the order MS does. Now setting the
12962             enabled state in the driver when creating the control.
12963           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
12964             match MS order
12965         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
12966           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
12967         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
12968         * Hwnd.cs:
12969           - Added tracking of window enabled state (get_Enabled/set_Enabled)
12970           - Added EnabledHwnd property to easily allow a driver to find the
12971             handle of the first enabled window in the parent chain (this is
12972             used by drivers to pass up input events of disabled windows)
12973         * XplatUIDriver.cs: Added IsEnabled() method
12974         * Application.cs:
12975           - Removed crude and obsolete exiting tracking variable
12976           - Removed internal ModalRun(); replaced by RunLoop()
12977           - Implemented private CloseForms() method to allow closing all 
12978             windows owned by a particular (or all) threads
12979           - Exit() now properly closes all windows without forcing the message
12980             pump to quit
12981           - Removed obsolete InternalExit() method
12982           - Changed Run() methods to use new RunLoop() message pump
12983           - Implemented new RunLoop() method for both modal and non-modal forms
12984         * CommonDialog.cs:
12985           - get_CreateParams: Added setting of WS_DISABLED
12986           - Simplified ShowDialog(); now all the work is done in RunLoop(),
12987             invoked via Form.ShowDialog()
12988         * NativeWindow.cs: We don't remove the window from the collection when
12989           the handle is destroyed; there might still be messages for it in the
12990           queue (mainly the resulting WM_DESTROY); instead it will be removed
12991           when Control calls InvalidateHandle in the WM_DESTROY handler
12992         * XplatUIX11.cs:
12993           - CreateWindow: Added logic to handle the WS_DISABLED window style
12994           - EnableWindow: Implemented based on Hwnd.Enabled
12995           - GetMessage: Reset PostQuitState so the method can be called again
12996           - Implemented support for disabled windows (passing messages to the
12997             first enabled parent) in handling all input messages
12998           - Added optimizations for handling Expose events
12999           - Implemeted new driver method IsEnabled()
13000           - Now always resetting paint pending tracking vars when we start paint
13001           - Re-implemented UpdateWindow via just sending a WM_PAINT message
13002         * XplatUIOSX.cs: Added IsEnabled method stub
13003         * XplatUIWin32.cs: Implemented new IsEnabled() method
13004
13005 2006-01-11  Jackson Harper  <jackson@ximian.com>
13006
13007         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13008         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
13009         variables a little.
13010         * ColorDialog.cs: Clear out the old form before adding the new
13011         panel.  
13012
13013 2006-01-11  Jackson Harper  <jackson@ximian.com>
13014
13015         * X11Dnd.cs: Make sure to add all the text formats when adding
13016         strings to the data object.
13017         * TreeNodeCollection.cs: When adding to a sorted tree we need to
13018         do some redrawing too.  Also change the UpdateNode to an
13019         UpdateBelow so the newly added node gets painted.
13020         
13021 2006-01-11  Miguel de Icaza  <miguel@novell.com>
13022
13023         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13024         LinkLabel.cs, PropertyGrid.cs: Implement the
13025         UseCompatibleTextRendering property for 2.x
13026
13027         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
13028
13029 2006-01-11  Jackson Harper  <jackson@ximian.com>
13030
13031         * TreeView.cs: Use the property for setting the selected node so
13032         the correct events get raised.
13033         * TreeNode.cs: Update the tree when the fore/back colours of a
13034         node are set.
13035
13036 2006-01-10  Jackson Harper  <jackson@ximian.com>
13037
13038         * TreeView.cs: Allow setting SelectedNode to null.
13039
13040 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13041
13042         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13043
13044 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13045
13046         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13047
13048 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13049
13050         * PrintDialog.cs: Added attributes and set default property values.
13051
13052 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13053
13054         * PrintControllerWithStatusDialog.cs: 
13055         Added PrintControllerWithStatusDialog.
13056
13057 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13058
13059         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13060         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13061
13062 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13063
13064         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13065
13066 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13067
13068         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13069         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13070
13071 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13072
13073         * MimeIcon.cs: Added internal class SVGUtil.
13074
13075 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13076
13077         * FileDialog.cs: Don't crash if there are two files with the
13078           same name but different locations.
13079
13080 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13081
13082         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13083         dates across multiple month grids. Used to not highlight entire 
13084         month, but does now.
13085         
13086 2006-01-06  Jackson Harper  <jackson@ximian.com>
13087
13088         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13089         message loop. Change timer intervals to numbers that seem more
13090         natural.
13091
13092 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13093
13094         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13095           object for location info since screen object is now implemented.
13096
13097 2006-01-05  Jackson Harper  <jackson@ximian.com>
13098
13099         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13100         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13101         AsyncMethodResult, this is because we ALWAYS want the
13102         ManualResetEvent to get set.
13103         * Control.cs: When disposing use an async invoke to call shutdown
13104         code, so that thigns don't block on the finalizer thread.  Also
13105         check if we even have a message loop before trying to send
13106         messages, if we don't then don't bother sending messages.
13107         - No more weak references for async methods
13108         * XplatUIDriver.cs: No more weak references for async methods.
13109
13110 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13111
13112         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13113           returns two FontFamily with the same name
13114
13115 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13116
13117         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13118           drawing disabled text. Instead using the ColorGrayText color
13119
13120 2006-01-04  Jackson Harper  <jackson@ximian.com>
13121
13122         * TreeNode.cs: redraw the node when its image index is changed.
13123
13124 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13125
13126         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13127           time I checked there are no others like it.
13128
13129 2006-01-04  Jackson Harper  <jackson@ximian.com>
13130
13131         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13132         this gives the behavoir I was looking for.
13133         * Control.cs: Special case Invoking EventHandlers, this matches MS
13134         and fixes part of bug #76326.
13135
13136 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13137
13138         * ThemeClearlooks.cs, FileDialog.cs:
13139           - Reflect the latest Theme class changes
13140           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13141             with DateTime
13142             
13143 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13144
13145         * Theme.cs: Cache UI resource images and resize them if needed
13146
13147 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13148
13149         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13150           is called. This fixes the crash in Nexxia when setting the font
13151           attributes in the chat. [However, RTF needs a look-over to make sure
13152           that all SelectionXXX methods handle the special case that selection
13153           is empty and therefore the change must be applied to all text starting
13154           at the cursor/selection start]
13155
13156 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13157
13158         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13159           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13160         * X11Keyboard.cs: Switched to new way of calling PostMessage
13161
13162 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13163
13164         * Theme.cs: Added theme interface for images to allow the theme to
13165           control what images are used for things like FileDialog, MessageBox
13166           icons, etc.
13167         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13168
13169 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13170
13171         * FileDialog.cs:
13172           - Removed some dead code
13173           - Opening a recently used file does work now
13174           - Small UI enhancements
13175           - Refactoring
13176
13177 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13178
13179         * FileDialog.cs: Forgot too add __MonoCS__
13180
13181 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13182
13183         * FileDialog.cs: We are able to read recently used files now let's
13184           go on and write them.
13185
13186 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13187
13188         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13189           button
13190         * MimeIcon.cs: Do a check for the top level media type also
13191
13192 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13193
13194         * ThemeClearlooks.cs:
13195           - Added CPDrawStringDisabled
13196           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13197             some chars if the text doesn't fit into text_rect
13198           - DrawListViewItem: If View = View.LargeIcon center the image;
13199             rewrote the drawing of ListViewItem.Text if View = 
13200             View.LargeIcon
13201
13202 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13203
13204         * MimeIcon.cs: Use default KDE icon theme if there is no
13205           "48x48" directory for the current icon theme, fixes #77114
13206         * Mime.cs: Disable not working and actually not used code. 
13207         * ThemeWin32Classic.cs:
13208           - Replace "new SolidBrush" in GetControlBackBrush and
13209             GetControlForeBrush with ResPool.GetSolidBrush
13210           - Changed DrawListViewItem from private to protected virtual
13211         * FileDialog.cs:
13212           - Added form.MaximizeBox = true
13213           - Don't throw an exception if there is a broken symbolic link
13214
13215 2005-12-23  Jackson Harper  <jackson@ximian.com>
13216
13217         * TabControl.cs: Give the panels focus, keyboard navigation is
13218         fixed so this works correctly now.
13219         - We need these key events also.
13220         * ToolBar.cs: Remove some of the poor mans double buffering.
13221         
13222 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13223
13224         * ComboBox.cs: The internal TextBox now returns the focus.
13225
13226 2005-12-23  Jackson Harper  <jackson@ximian.com>
13227
13228         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13229
13230 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13231
13232         * Control.cs: Removed debug code
13233         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13234           implicit children
13235
13236 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13237
13238         * Control.cs: When creating the control, update the Z-order after
13239           all it's children are created, too. (Fixes nexxia not showing
13240           picturebox bug)
13241
13242 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13243
13244         * Control.cs: Do not update the anchoring distances if layout is
13245           suspended, instead do it once layout is resumed
13246
13247 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13248
13249         * Control.cs: 
13250           - After many hours of debugging, for both Jackson and
13251             myself, it turns out that it helps to set the parent of a control
13252             if you want to actually see it onscreen. In the spirit of that
13253             discovery, we're now setting the parent of the control and
13254             it's children when the control's handle is created. This fix
13255             will make Lutz Roeder's Reflector run happily. 
13256           - now just creating the handle instead of the whole control when
13257             getting a graphics context for the control.
13258
13259 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13260
13261         * ScrollableControl.cs: When calculating the canvas, don't consider
13262           the scrollbar widths. Instead, predict if horizontal scrollbar
13263           will affect canvas when deciding on vertical display and vice versa.
13264
13265 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13266
13267         * RichTextBox.cs: Set default RTF font for documents that don't
13268           have a font table (Fixes #77076)
13269
13270 2005-12-22  Jackson Harper  <jackson@ximian.com>
13271
13272         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13273         clipboard. This prevents a NullRef in that case.
13274         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13275         clipboard. PRIMARY is for the currently selected text only. (We
13276         should implement PRIMARY at some point.
13277
13278 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13279
13280         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13281           a Unicode function with a structure that was defined in Ansi way.
13282           This fixes #76942.
13283
13284 2005-12-21  Jackson Harper  <jackson@ximian.com>
13285
13286         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13287         on. Because thats how it rolls. (and this avoids it using ambient
13288         colours).
13289         * ThemeWin32Classic.cs: Use the proper back color for filling.
13290         * Menu.cs: Use the system menu bar color for drawing menu
13291         bars. Using the window back color will bring ambient colours into
13292         the picture.
13293
13294 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13295
13296         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13297           Bitmaps were created and not disposed.
13298
13299 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13300
13301         * Control.cs (CreateControl): Don't do anything if the control is
13302           already created, otherwise we'd fire the OnCreated event more than
13303           once
13304
13305 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13306
13307         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13308           will always match. Instead return -1. Fixes #76464.
13309
13310 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13311
13312         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13313           neither the beginning nor the end of the line (Fixes bug #76479)
13314
13315 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13316
13317         * Control.cs:
13318           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13319             where handle is invalid
13320           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13321             instead of slower linear search
13322         * NativeWindow.cs: Don't remove the window from the hashtable until
13323           after the driver has destroyed it (since the driver might use
13324           Control.FromHandle to lookup the control object
13325         * Hwnd.cs: Added DestroyPending property to track if a window is 
13326           already destroyed as far as the driver is concerned and only hasn't
13327           yet notified the control
13328         * XplatUIX11.cs:
13329           - Activate(): Check if the window is still valid before using the 
13330             handle
13331           - Implemented DestroyChildWindow() method to mark child windows as
13332             destroyed when a window is destroyed. This prevents situations 
13333             where we might call an X method based on queued events for a
13334             window that already has been destroyed but we haven't yet pulled
13335             the destroy method from the queue.
13336           - Added a call to the new DestroyChildWindow() method to the drivers
13337             DestroyWindow code. Also now marking the destroyed window itself
13338             as pending
13339
13340 2005-12-20  Jackson Harper  <jackson@ximian.com>
13341
13342         * StatusBar.cs:
13343         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13344         anymore. Just do them when needed, also track the rects of panels
13345         so that we can optimize refreshing more in the future.
13346
13347 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13348
13349         * ColorDialog.cs: Fixed focus drawing in small color controls
13350
13351 2005-12-19  Jackson Harper  <jackson@ximian.com>
13352
13353         * InternalWindowManager.cs:
13354         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13355         moving windows works properly.
13356
13357 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13358
13359         * Control.cs: 
13360           - Removed call to InitLayout() from SetBoundsCore(); doc says
13361             it's only called when a control is added to a container
13362           - Split InitLayout logic, moved to separate UpdateDistances() method
13363             since we need to perform those calculations more often than just
13364             when adding the control to a container. (Needed to fix #77022)
13365           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13366           - Reduced the OnBindingContextChanged events count, don't send them
13367             unless the control is created, we still aren't totally matching
13368             MS, but I can't quite figure out some of their rules
13369
13370 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13371
13372         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13373           stripes
13374
13375 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13376
13377         * ThemeClearlooks.cs:
13378           - Updated ProgressBar drawing
13379           - Corrected drawing of ScrollBars and scroll buttons
13380           - Some temporary fixes for minor pixel artefacts
13381
13382 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13383
13384         * Control.cs:
13385           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13386             cause events to be sent in the same order as MS does.
13387           - Added ChangeParent() method to trigger various OnXXXChanged events
13388             that need to be fired when a parent changes (This is a reworking
13389             of the patch from r54254, with the X11 errors fixed)
13390           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13391             since on MS we get OnLayoutChanged events when calling Clear()
13392           - Changed Enabled property to consider parent state as well, if a
13393             parent is not enabled, the control will not be either
13394           - Changed Parent property to simply call Controls.Add() since that
13395             now does all the work required, this way we avoid code duplication
13396           - Threw in a few OnBindingsContextChanged calls to try and match
13397             when MS sends them. We seem to send a few too many, though.
13398           - Added call to CreateControl when adding the control to a parent.
13399             We were never calling CreateControl. Still needs some work, in
13400             some places we treat HandleCreated and ControlCreated as equal, 
13401             which is wrong
13402           - Removed obsolete commented out code from UpdateZOrder()
13403
13404 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13405
13406         * ThemeClearlooks.cs: Updated TrackBar drawing.
13407
13408 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13409
13410         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13411
13412 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13413
13414         * FileDialog.cs: Add the Help button and the open readonly
13415           checkbox only if needed
13416
13417 2005-12-16  Jackson Harper  <jackson@ximian.com>
13418
13419         * Control.cs: Make sure we have an active menu before trying to
13420         process commands on it. Prevents menu-less forms from crashing
13421         when Alt is pressed.
13422         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13423         Dieter Bremes.
13424         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13425         2.0 build.
13426
13427 2005-12-16  Jackson Harper  <jackson@ximian.com>
13428
13429         * InternalWindowManager.cs: Don't translate tool windows screen
13430         coordinates. This fixes windows 'bouncing' around when being moved.
13431
13432 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13433
13434         * TextBoxBase.cs:
13435           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13436             not quite MS compatible, MS uses that number only for single line
13437             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13438             the limit at 2GB)
13439           - Now enforcing the MaxLength limit when entering characters
13440           - Added argument to internal Paste() method to track if it's called
13441             from programatically or via keyboard, since keyboard driven pastes
13442             need to enforce max-length
13443           - Added logic to Paste to only paste as many chars as MaxLength 
13444             allows
13445         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13446         * TextControl.cs:
13447           - Added Length property to return number of characters in document
13448           - Added private CharCount property which only tracks actual chars
13449             in the document (no linefeeds) and fires event when CharCount
13450             changes
13451           - Added tracking of character count to all methods that alter it
13452           - Added LengthChanged event to allow applications to subscribe
13453             to any changes to the document
13454
13455 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13456
13457         * TextBox.cs: 
13458           - Removed local password_char field (moved to TextBoxBase)
13459           - Now setting the document's password var when password is
13460             set
13461         * TextBoxBase.cs:
13462           - Added password_char field (needed here so MultiLine can
13463             access it)
13464           - Added logic to MultiLine property setter to set the document's
13465             variable when password display is allowed
13466           - Removed debug code and made some debug code conditional
13467         * TextControl.cs:
13468           - Added RecalculatePasswordLine() method to handle special password
13469             char only lines
13470           - Added PasswordChar property, also added related tracking vars
13471           - Draw() method now uses local text var for grabbing text to draw,
13472             this var is set to line.text unless we're doing password display,
13473             then it is set to the pre-generated all-password-chars line
13474           - Added calling RecalculatePasswordLine() method for password lines
13475
13476 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13477
13478         * Hwnd.cs: 
13479           - Added Reparented property to allow tracking of Window Manager
13480             reparenting actions (which affect X/Y calculations of toplevel 
13481             windows)
13482           - Made ToString() print window handles in hex
13483         * XplatUIX11.cs:
13484           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13485             determine if X/Y needs offsetting
13486           - AddConfigureNotify(): Fixed offset calculations
13487           - Now adds ReparentNotify messages into the queue
13488           - Now processes ReparentNotify messages and causes a 
13489             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13490             is reparented (as most likely it's X/Y coordinates are changed
13491             due to that)
13492
13493 2005-12-14  Jackson Harper  <jackson@ximian.com>
13494
13495         * XplatUIX11.cs: Tool windows still need to respek focus.
13496
13497 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13498
13499         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13500           have a working release
13501
13502 2005-12-13  Jackson Harper  <jackson@ximian.com>
13503
13504         * Form.cs: Update styles after setting the border style regardless
13505         of whether or not the window is using a window manager.
13506
13507 2005-12-13  Jackson Harper  <jackson@ximian.com>
13508
13509         * Form.cs: We now hook into an internal window manager instead of just an
13510         MDI subsystem, this is so we can have properly behaving tool windows.
13511         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13512         * InternalWindowManager.cs: New internal class that acts as a
13513         window manager for tool windows and as a base for mdi windows.
13514         * MdiWindowManager.cs: New class that acts as a window manager for
13515         mdi windows.
13516
13517 2005-12-12  Jackson Harper  <jackson@ximian.com>
13518
13519         * Control.cs: Updates so we match behavoir for for implicit
13520         controls. Fixes explosions in MDI.
13521
13522 2005-12-12  Jackson Harper  <jackson@ximian.com>
13523
13524         * Control.cs: Implement Invalidate (Region).
13525
13526 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13527
13528         * Control.cs: 
13529           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13530             the same events as MS does. MS fires events for each property 
13531             except, for unknown reasons, Cursor, when the control is reparented. 
13532             I can't seem to totally match add/remove since MS also fires some 
13533             VisibleChanged events, which makes no sense. Consolidated the
13534             parenting code into a separate method so it can be called from
13535             both Add and Remove. set_Parent no longer needs any special logic
13536             as it calls the parent's add method which implicitly fires
13537             all events
13538           - Removed some obsolete code and debug output
13539           - Enabled state is inherited from parents, if this is enabled
13540
13541 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13542
13543         * Form.cs: Removed commented out code
13544
13545 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13546
13547         * Control.cs:
13548           - Added internal version of Invoke, with additional argument 
13549             indicating if we're calling it from a Dispose() handler. That
13550             way we can avoid BeginInvoke throwing an exception if we're
13551             calling for an already destroyed window.
13552           - Added a dispose argument to BeginInvokeInternal, and made the
13553             check if a valid window handle chain exists conditional on
13554             it not being a dispose call
13555           - Removed code in DestroyHandle to destroy our children. Since we
13556             now handle the WM_DESTROY message we will catch all our children
13557             being destroyed.
13558           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13559         * Form.cs:
13560           - Added a field to track the application context of the form.
13561           - No need to set closing variable as response to WM_CLOSE, instead
13562             we destroy the window. We also call PostQuitMessage if the form
13563             has an application context (which makes it the main app form,
13564             which, when closed terminates the app)
13565         * XplatUI.cs:
13566           - Dropped Exit() method, it's naming was confusing
13567           - Added PostQuitMessage() which causes GetMessage to return false
13568             once the message queue is empty
13569         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13570           PostQuitMessage()
13571         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13572           no longer a valid XplatUI method, but left it in since it's used
13573           internally. Added empty PostQuitMessage() method.
13574         * MenuAPI.cs: Replaced call to Exit() with call to
13575           PostQuitMessage, even though this is probably no longer needed.
13576         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13577         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13578         * Application.cs:
13579           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13580           - Removed old debug code that would call XplatUI for exception
13581             display, enabled standard exception handling (Still not enabled
13582             though, until NativeWindow's ExternalExceptionHandler define
13583             is removed
13584         * NativeWindow.cs:
13585           - Added internal method to allow control to update NativeWindow
13586             after a window has been destroyed
13587           - Added handling of already destroyed windows when calling i
13588             DestroyWindow
13589           - Added removal of handle from list on ReleaseHandle
13590         * XplatUIX11.cs:
13591           - Dropped GetMessageResult var and related code
13592           - Added PostQuitState to field to track if PostQuitMessage has been
13593             called
13594           - Dropped Exit() method
13595           - Added PostQuitMessage() method
13596           - GetMessage now will return false if PostQuitState is set and no
13597             more messages are in the queue.
13598           - Expose handler will no longer generate WM_PAINT messages if we are
13599             in PostQuitState since it's very likely any windows have already
13600             been destroyed, and since Hwnd won't get updated until we have
13601             processed the DestroyNotify we'd be causing X errors.
13602         
13603 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13604
13605         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13606           Thanks to Mike for pointing out the err of my ways.
13607
13608 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13609
13610         * Control.cs(PreProcessMessage): Moved menu handling back, but
13611           after all other key handling, to match MS (who handles Menu in
13612           DefWndProc)
13613         * Menu.cs (WndProc): Removed my brainfart
13614
13615 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13616
13617         * Control.cs(PreProcessMessage): Removed special menu handling 
13618         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13619
13620 2005-12-07  Mike Kestner  <mkestner@novell.com>
13621
13622         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13623         state according in tracker.
13624         * Menu.cs : promote tracker field to base class and provide a tracker
13625         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13626         has a tracker. Unparent items that are removed from the collection.
13627         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13628         * Theme*.cs: add always_show_hotkeys field to support configurability
13629         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13630         pressed.
13631
13632 2005-12-07  Jackson Harper  <jackson@ximian.com>
13633
13634         * MdiChildContext.cs: Use Control.ResetCursor.
13635         * Control.cs: ResetCursor needs to set the property so that the
13636         correct XplatUI call gets made.
13637
13638 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13639
13640         * Control.cs: More fixes to make our key events match MS. We
13641           were not setting the modifier state on KeyData, and we were
13642           not generating any events when Alt was pressed with a key
13643           since handling of WM_SYSxxx was missing for the OnKey methods.
13644
13645 2005-12-07  Jackson Harper  <jackson@ximian.com>
13646
13647         * MdiChildContext.cs: reenable the sizing code.
13648         - When the mouse leaves a window reset its cursor.
13649
13650 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13651
13652         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13653
13654 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13655
13656         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13657           widths of Fixed3D borders
13658
13659 2005-12-07  Jackson Harper  <jackson@ximian.com>
13660
13661         * MdiClient.cs: Fix warnings. Earn Mike's love.
13662
13663 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13664
13665         * ThemeClearlooks.cs:
13666           - Adjusted mouse over button color
13667           - Added first parts of CheckBox drawing
13668           - Added correct color for selected text background
13669           - Fixed ComboBox drawing
13670           - Added CPDrawBorder3D and CPDrawBorder
13671
13672 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13673
13674         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13675
13676 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13677
13678         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13679           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13680           alert users via sound. We could add an enum arg with different
13681           types of alerts in the future
13682
13683 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13684
13685         * Control.cs: Fix behaviour problems pointed out by Mike
13686
13687 2005-12-05  Mike Kestner  <mkestner@novell.com>
13688
13689         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13690         prop setters.  Calls parent.Refresh for now, but could be maybe be
13691         optimized with an internal method on StatusBar at some point.
13692         [Fixes #76513]
13693
13694 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13695
13696         * RichTextBox.cs: Implemented get_SelectionColor
13697
13698 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13699
13700         * ThemeClearlooks.cs:
13701           - Removed dead code
13702           - Draw black button border only if button is Form.AcceptButton
13703           - Draw correct button color for pressed RadioButton if the mouse 
13704             has entered the button
13705           - Updated ProgressBar drawing!
13706           - Updated CPDrawSizeGrip drawing
13707           - Updated StatusBarPanel drawing
13708
13709 2005-12-05  Mike Kestner  <mkestner@novell.com>
13710
13711         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13712         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13713
13714 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13715
13716         * ThemeClearlooks.cs: Initial check-in, activate with
13717           export MONO_THEME=clearlooks
13718         * ThemeEngine.cs: Added ThemeClearlooks
13719
13720 2005-12-03  Mike Kestner  <mkestner@novell.com>
13721
13722         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13723         [Fixes #76897]
13724
13725 2005-12-02  Jackson Harper  <jackson@ximian.com>
13726
13727         * Form.cs: If the child form has no menu the default main menu is
13728         used as the active menu.
13729
13730 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13731
13732         * ListBox.cs: Check if any items exist before trying to resolve 
13733           coordinates into items
13734
13735 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13736
13737         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13738           as the second color for the background hatch
13739
13740 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13741
13742         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13743         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13744           sure that what we pass to FormatText is always 1-based. Fixes #76885
13745
13746 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13747
13748         * NumericUpDown.cs (EndInit): When we are done initializing,
13749         reflect any updates on the UI.
13750
13751 2005-12-02  Jackson Harper  <jackson@ximian.com>
13752
13753         * ImplicitHScrollBar.cs:
13754         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13755         their container controls.
13756         * TreeView.cs: Use the new implicit scrollbars.
13757
13758 2005-12-02  Jackson Harper  <jackson@ximian.com>
13759
13760         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13761         can play with it.
13762         * TreeNodeCollection.cs: If we remove the topnode we need to
13763         update topnode to the next node in line.
13764         - When clearing nodes go through the same process as removing
13765         them, so they get depareneted and checked if they are top node.
13766
13767 2005-12-01  Jackson Harper  <jackson@ximian.com>
13768
13769         * TreeView.cs: When imagelists are used the image area is
13770         selectable as well as the text.
13771         - If there are no selected nodes select the first one.
13772         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13773         so don't do it more then we need to.
13774
13775 2005-12-01  Jackson Harper  <jackson@ximian.com>
13776
13777         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13778         that arrows can be scaled.
13779
13780 2005-12-01  Jackson Harper  <jackson@ximian.com>
13781
13782         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13783         fail. Patch by Dieter Bremes
13784
13785 2005-11-30  Jackson Harper  <jackson@ximian.com>
13786
13787         * Form.cs: Property is 2.0 only
13788         * PrintDialog.cs: Signature fix.
13789
13790 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13791
13792         * TextControl.cs: 
13793           - No longer artificially moves text 2 pixels down (now that we have
13794             borders this is no longer needed)
13795           - Added calcs for left, hanging and right indent
13796
13797 2005-11-23  Mike Kestner  <mkestner@novell.com>
13798
13799         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13800
13801 2005-11-30  Jackson Harper  <jackson@ximian.com>
13802
13803         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13804         get cloned as part of CloneMenu ().
13805         * Menu.cs: Make sure the parent of the items get set correctly
13806         when they are added.  And the owners are notified of the changes.
13807         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13808         we can change the menu being displayed/handled by the form without
13809         changing the menu assosciated with the form.
13810         - Don't let Mdi children draw/handle menus.
13811         
13812 2005-11-30  Jackson Harper  <jackson@ximian.com>
13813
13814         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13815         a MenuChanged event. Just to make the API a little more
13816         consistent.
13817         * MainMenu.cs:
13818         * MenuItem.cs: Use the new OnMenuChanged
13819         * MdiChildContext.cs: Handle menu merging.
13820         * Form.cs: Implement MergedMenu.
13821         
13822 2005-11-30  Jackson Harper  <jackson@ximian.com>
13823
13824         * Menu.cs: We were misusing Add. Add goes behind the specified
13825         index according to the docs, and does not replace the specified
13826         index. So I added an Insert method.
13827
13828 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13829
13830         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13831           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13832           is for Jackson
13833         * RichTextBox.cs: Added calls to base for DnD events
13834
13835 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13836
13837         * TextControl.cs:
13838           - Fixed drag-selection related crash; style fixes
13839           - Implemented undo class
13840             o Implemented method to capture document state for specified
13841               range in document tree
13842             o Implemented method to restore captured document state
13843             o Implemented cursor tracking
13844             o Implemented basic undo stack
13845           - Added undo cursor tracking to methods altering cursor location
13846           - Added undo tracking to selection deletion (still missing
13847             other text-altering hookups)
13848         * RichTextBox.cs:
13849           - Added SelectionLength property
13850           - Implemented CanPaste()
13851           - Implemented Paste()
13852           - Added missing protected methods
13853           - Fixed RTF->Document conversion; now uses font index 0 and color 
13854             index 0 as the default font for the parsed text
13855           - Fixed RTF<->Document font size translation
13856           - Fixed RTF generation, now properly handles cross-tag boundaries
13857             for single line selection
13858           - No longer always appends blank line to generated RTF
13859           - Removed TODOs
13860           - Added missing attributes
13861           - Hooked up undo-related methods
13862         * TextBoxBase.cs:
13863           - Implemented Copy()
13864           - Implemented Paste()
13865           - Implemented Cut()
13866           - Fixed caret mis-behaviour on backspace across line-boundaries
13867
13868 2005-11-29  Jackson Harper  <jackson@ximian.com>
13869
13870         * MdiClient.cs: Add a method for activating mdi children. Very
13871         basic right now. I imagine someday it might need more girth.
13872         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13873         children windows names are added to the menu item.
13874         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13875         mdilist. This happens regardless of whether or not there are any
13876         mdi windows to see in the list, and according to my tests happens
13877         before the items are even added. Also happens if there isn't even
13878         an mdi client to get windows from.
13879
13880 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13881
13882         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13883         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13884
13885 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13886
13887         * DataGridTableStyle.cs:
13888           - Create always the styles for the missing columns even if they are
13889             provided by the user (not default table style)
13890         * DataGrid.cs:
13891           - Fixes bug 76770
13892           - Fixes SetDataBinding (always re-attach source)
13893           - Fixes SetNewDataSource (only clear styles if they are not for 
13894             this source)
13895          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13896             and remove properly
13897
13898 2005-11-29  Jackson Harper  <jackson@ximian.com>
13899
13900         * FileDialog.cs: Implement missing bits, remove some dead
13901         code.
13902         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13903         creation of the panel so that the options set on the dialog are
13904         seen when the panel is created.
13905         * TreeView.cs: raise a click when items are clicked.
13906         
13907 2005-11-29  Jackson Harper  <jackson@ximian.com>
13908
13909         * MdiClient.cs: Pass some signature methods through to base.
13910
13911 2005-11-28  Jackson Harper  <jackson@ximian.com>
13912
13913         * ListView.cs: Raise the click event when items are clicked.
13914
13915 2005-11-28  Jackson Harper  <jackson@ximian.com>
13916
13917         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13918         a nullref.
13919
13920 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13921
13922         * ThemeNice.cs: - Removed 1 pixel bitmaps
13923           - Use SmoothingMode.AntiAlias where it makes sense
13924             (ScrollButton arrow for example)
13925           - Enhanced Button focus drawing
13926           - Fixed ComboBox drawing (no artefacts anymore, focus
13927             rectangle is back again, reduced size of ComboButton, etc.)
13928           - Fixed RadioButton focus drawing for Appearence.Button
13929           - Slight ScrollButton redesign
13930           - Some LinearGradientBrush size fixes
13931           - GroupBoxes have now rounded edges
13932           - Fixed StatusBar drawing
13933
13934 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13935
13936         * ThemeNice.cs: - Remove dead code
13937           - use correct background colors for menus, etc.
13938           - Fake pixel drawing with 1 pixel bitmaps
13939
13940 2005-11-24  Jackson Harper  <jackson@ximian.com>
13941
13942         * MdiClient.cs: Size the scrollbars when resizing the window.
13943         - Resize the maximized windows when the client is resized
13944         * Form.cs: Make the child context available
13945         
13946 2005-11-23  Jackson Harper  <jackson@ximian.com>
13947
13948         * MdiChildContext.cs: Don't size windows if they are maximized.
13949
13950 2005-11-23  Mike Kestner  <mkestner@novell.com>
13951
13952         * ContextMenu.cs: use MenuTracker.
13953         * Control.cs: remove menu handle usage.
13954         * Form.cs: remove menu handle usage.
13955         * Hwnd.cs: remove menu handle usage.
13956         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13957         motion and clicks to the new Tracker handlers.
13958         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13959         and handle usage.
13960         * MenuAPI.cs: refactored to combine popup and menubar event handling.
13961         Killed the MENU and MENUITEM data types and associated collections
13962         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
13963         MenuTracker class that exposes the leftovers from the old MenuAPI
13964         static methods. Restructured Capture handling so that only one grab is
13965         done for the entire menu hierarchy instead of handing off grabs to
13966         submenus. Tracker now has an invisible control to Capture when active.
13967         * MenuItem.cs: add sizing accessors, kill Create
13968         and handle usage.
13969         * Theme.cs: remove menu handle and MENU(ITEM) usage.
13970         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
13971         MENU(ITEM). remove menu handle usage, use Menu directly.
13972         * XplatUIDriver.cs: remove menu handle usage.
13973         * XplatUIOSX.cs: remove menu handle usage.
13974         * XplatUIWin32.cs: remove menu handle usage.
13975         * XplatUIX11.cs: remove menu handle usage.
13976
13977 2005-11-22  Jackson Harper  <jackson@ximian.com>
13978
13979         * Hwnd.cs: Don't compute the menu size for
13980         DefaultClientRectangle.
13981         - Reenable menu sizes being computed for GetClienRectangle.
13982         * Form.cs: Remove comment of trechery
13983         
13984 2005-11-22  Jackson Harper  <jackson@ximian.com>
13985
13986         * Hwnd.cs: The adjustments for the menu bar are made when it is
13987         attached to the form.
13988
13989 2005-11-19  Jackson Harper  <jackson@ximian.com>
13990
13991         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
13992         (just like on windows).
13993
13994 2005-11-19  Jackson Harper  <jackson@ximian.com>
13995
13996         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
13997         use real buttons anymore because they are in non client area. The
13998         one TODO here is that I need to somehow invalidate a section of
13999         the non client area.
14000
14001 2005-11-18  Jackson Harper  <jackson@ximian.com>
14002
14003         * Control.cs: Put the enum check back in now that MDI doesnt have
14004         to use this to set border styles.
14005         * Form.cs: Only set mdi child windows borders if the handle has
14006         been created.
14007         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
14008         this directly on to the driver.
14009         - Get the move start position before adjusting for the titlebar
14010         height, this fixes the windows "skipping" when they are first
14011         moved.
14012
14013 2005-11-18  Jackson Harper  <jackson@ximian.com>
14014
14015         * XplatUIX11.cs: Just compute the mdi borders separately as they
14016         don't totally match up with normal form borders.
14017
14018 2005-11-18  Jackson Harper  <jackson@ximian.com>
14019
14020         * Control.cs: Set WS_ styles for borders, so that the driver does
14021         not have to retrieve the control instance to figure out what kind
14022         of borders it should have.
14023         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
14024         driver can know its an mdi child easily.
14025         * XplatUIX11.cs: Get the border styles and whether the window is
14026         MDI from the Styles and ExStyles params instead of having to get a
14027         control. This prevents a chicken and egg problem.       
14028
14029 2005-11-18  Jackson Harper  <jackson@ximian.com>
14030
14031         * MdiClient.cs: Fix typo so scrollbars show up correctly.
14032
14033 2005-11-18  Jackson Harper  <jackson@ximian.com>
14034
14035         * MdiClient.cs: Calculate when to add and remove scrollbars
14036         correctly.
14037         * MdiChildContext.cs: Adjust the y position to take the titlebar
14038         into account.
14039         - No height for FormBorderStyle.None
14040
14041 2005-11-18  Jackson Harper  <jackson@ximian.com>
14042
14043         * Control.cs: Allow non enum values to be used for
14044         InternalBorderStyle.  MDI does this to set a special border style.
14045         - New utility methods for converting points to/from client coords
14046         - Add the newly created control to the Controls collection before
14047         updating its style. This way UpdateStyle can walk the control
14048         heirarchy to find the control if needed.
14049         so I don't need to create a new Point object all the time.
14050         * Form.cs: Let MDI windows handle their border styles.
14051         - Set styles on MDI windows so the correct title style is derived.
14052         * MdiChildContext.cs: Move all the painting and window handling
14053         into the non client area.
14054         - Use correct sizing and put correct buttons on frames based on
14055         the FormBorderStyle.
14056         - Notify the mdi client about scrolling
14057         - Need to handle the buttons ourselves now, because they are all
14058         in non client areas and we can't add controls there.
14059         * MdiClient.cs: Halfway to scrolling, this implementation is
14060         somewhat broken though, we need to check to make sure other
14061         windows aren't causing scrolling before removing the bars. Also
14062         the bars need to be drawn on top, maybe I can switch implicit
14063         controls to be on top.
14064         * Hwnd.cs: caption_height and tool_caption_height are now
14065         properties of an hwnd, this way they can be set by the driver
14066         based on the type of window they are.  In X11 the window manager
14067         handles the decorations so caption_height is zero unless its an
14068         MDI window.
14069         - Add 3 pixel borders for MDI windows (0xFFFF).
14070         - Get rid of some code duplication, have DefaultClientRectanle
14071         just call GetClientRectangle.
14072         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14073         Hwnd now.
14074         - Set border styles differently for mdi windows.
14075         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14076         Hwnd now.
14077         
14078 2005-11-15  Mike Kestner  <mkestner@novell.com>
14079
14080         * Menu.cs: when adding an item to the collection, if item is already 
14081         parented, remove it from the parent.
14082
14083 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14084
14085         * X11DesktopColors.cs: Added KDE support
14086
14087 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14088
14089         * XplatUIWin32.cs: 
14090           - Clipboard methods now can translate Rtf format
14091           - No longer removes clipboard contents whenever a new format is added
14092             to allow placing multiple formats on the clipboard
14093         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14094           will place all formats contained in it onto the clipboard. Also
14095           now cleans the clipboard before placing a new object onto it
14096         * RichTextBox.cs:
14097           - Implemented set_Rtf
14098           - Implemented set_SelectedRtf
14099           - Created InsertRTFFromStream() method to allow single code base
14100             for all properties and methods that insert RTF into document
14101           - Removed debug output
14102         * TextControl.cs:
14103           - Fixed Delete(int) to fix up line numbers
14104           - Fixed ReplaceSelection to combine start and end line
14105           - Fixed serious DeleteChars bug that would leave the document tree
14106             broken
14107           - Improved DumpTree with several logic checks to detect broken
14108             document trees
14109           - Removed debug lines
14110           - Fixed Caret.WordForward/WordBack moving code, now always also 
14111             updates caret.tag (fixes crash when word-selecting across tag
14112             boundaries via keyboard)
14113           - Added Insert() method for inserting multiline text into documents
14114           - Fixed DeleteChars() calculation errors that would cause a broken
14115             tag chain with multiple tag lines
14116           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14117           - Split() no longer moves caret if split is at caret location
14118           - ReplaceSelection() now updates the cursor and re-displays it
14119           - ReplaceSelection() now uses new Insert() method to avoid code
14120             duplication
14121           - FormatText() can now handle formatting partial lines
14122         * TextBoxBase.cs:
14123           - Append now uses new TextControl.Insert() method (this avoids 
14124             duplicate code)
14125           - Implemented Ctrl-X (Cut) (
14126           - Implemented Ctrl-C (Copy)
14127           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14128             regeneration when pasting text; roundtripping Copy&Paste within
14129             edit control still fails due to some calculation bugs in GenerateRTF)
14130           - The Delete key will now remove the current selection if it is visible
14131         * TextBox.cs: Removed debug lines
14132         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14133           driver to be initialized and can't therefore be done via a static ctor)
14134
14135 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14136
14137         * TextControl.cs: Added backend code for finding char arrays and strings
14138         * TextBoxBase.cs:
14139           - Added mouse wheel scroll support
14140           - Added support for VScroll and HScroll events
14141         * RichTextBox.cs:
14142           - Implemented all seven Find() variants
14143           - Implemented GetCharFromPosition()
14144           - Implemented GetCharIndexFromPosition()
14145           - Implemented GetLineFromIndex()
14146           - Implemented GetPositionFromCharIndex();
14147           - Implemented SaveFile for PlainText and UnicodeText
14148           - Fixed set_Font, now setting a new font applies that font to
14149             the whole document
14150           - Implemented generic Document to RTF converter
14151           - Implemented SaveFile for RichText format (still missing unicode
14152             conversion for non-ansi chars)
14153           - Implemented get_Rtf
14154           - Implemented get_SelectedRtf
14155
14156 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14157
14158         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14159           to allow any captures to be released before triggering OnClick. This
14160           way a click handler may capture the mouse without interference.
14161         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14162           This way we send them even though X may not allow a grab (if the window
14163           isn't visible, for example)
14164
14165 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14166
14167         * DataGridViewRowEventArgs.cs: DataGridView implementation
14168         * DataGridViewElement.cs: DataGridView implementation
14169         * DataGridViewComboBoxCell.cs: DataGridView implementation
14170         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14171         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14172         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14173         * ImageLayout.cs: DataGridView implementation
14174         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14175         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14176         * DataGridViewSelectionMode.cs: DataGridView implementation
14177         * IDataGridViewEditingControl.cs: DataGridView implementation
14178         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14179         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14180         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14181         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14182         * DataGridViewColumnSortMode.cs: DataGridView implementation
14183         * DataGridView.cs: DataGridView implementation
14184         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14185         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14186         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14187         * Padding.cs: DataGridView implementation
14188         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14189         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14190         * DataGridViewRowEventHandler.cs: DataGridView implementation
14191         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14192         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14193         * DataGridViewButtonCell.cs: DataGridView implementation
14194         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14195         * DataGridViewEditMode.cs: DataGridView implementation
14196         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14197         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14198         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14199         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14200         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14201         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14202         * DataGridViewCellEventHandler.cs: DataGridView implementation
14203         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14204         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14205         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14206         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14207         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14208         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14209         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14210         * QuestionEventArgs.cs: DataGridView implementation
14211         * IDataGridViewEditingCell.cs: DataGridView implementation
14212         * DataGridViewTriState.cs: DataGridView implementation
14213         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14214         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14215         * DataGridViewColumnCollection.cs: DataGridView implementation
14216         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14217         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14218         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14219         * DataGridViewColumn.cs: DataGridView implementation
14220         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14221         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14222         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14223         * DataGridViewRow.cs: DataGridView implementation
14224         * DataGridViewImageCellLayout.cs: DataGridView implementation
14225         * DataGridViewImageCell.cs: DataGridView implementation
14226         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14227         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14228         * DataGridViewHeaderCell.cs: DataGridView implementation
14229         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14230         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14231         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14232         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14233         * QuestionEventHandler.cs: DataGridView implementation
14234         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14235         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14236         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14237         * DataGridViewCell.cs: DataGridView implementation
14238         * DataGridViewCellEventArgs.cs: DataGridView implementation
14239         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14240         * DataGridViewCellStyle.cs: DataGridView implementation
14241         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14242         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14243         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14244         * TextFormatFlags.cs: DataGridView implementation
14245         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14246         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14247         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14248         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14249         * DataGridViewButtonColumn.cs: DataGridView implementation
14250         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14251         * HandledMouseEventArgs.cs: DataGridView implementation
14252         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14253         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14254         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14255         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14256         * DataGridViewRowCollection.cs: DataGridView implementation
14257         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14258         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14259         * DataGridViewHitTestType.cs: DataGridView implementation
14260         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14261         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14262         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14263         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14264         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14265         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14266         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14267         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14268         * DataGridViewContentAlignment.cs: DataGridView implementation
14269         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14270         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14271         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14272         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14273         * DataGridViewPaintParts.cs: DataGridView implementation
14274         * DataGridViewCellCollection.cs: DataGridView implementation
14275         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14276         * DataGridViewImageColumn.cs: DataGridView implementation
14277         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14278         * DataGridViewElementStates.cs: DataGridView implementation
14279         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14280         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14281         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14282         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14283         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14284         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14285         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14286         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14287         * DataGridViewTextBoxCell.cs: DataGridView implementation
14288         * DataGridViewBand.cs: DataGridView implementation
14289         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14290         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14291         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14292         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14293         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14294         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14295         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14296         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14297         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14298         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14299         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14300
14301 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14302
14303         * ThemeWin32Classic.cs: 
14304           - Draw the outside focus rectangle around buttons
14305           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14306             doesn't use end caps for every dash of a line anymore. This
14307             workaround ignores the forecolor.
14308
14309 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14310
14311         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14312           endian safe.
14313
14314 2005-11-07  Jackson Harper  <jackson@ximian.com>
14315
14316         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14317
14318 2005-11-07  Jackson Harper  <jackson@ximian.com>
14319
14320         * ScrollableControl.cs: Calculate the maximum and change vars
14321         (more) correctly so that scrollbars appear as a sensible size.
14322
14323 2005-11-04  Jackson Harper  <jackson@ximian.com>
14324
14325         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14326         collection.
14327         * TreeView.cs: When the tree is sorted null out the top_node so
14328         that it is recalculated.
14329         - Use dotted lines instead of dashed lines to match MS better.
14330
14331 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14332
14333         * ListView.cs: 
14334           - Implements key search for items. Useful when browsing files with FileDialog
14335           - When changing view mode or when clear the items reset scrollbar positions
14336
14337 2005-11-04  Jackson Harper  <jackson@ximian.com>
14338
14339         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14340         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14341         as to what the method may do as there is no real way of creating a
14342         derived CurrencyManager and calling the method. 
14343
14344 2005-11-03  Jackson Harper  <jackson@ximian.com>
14345
14346         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14347         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14348         method which seems to just be used internally to refresh the tabs.
14349
14350 2005-11-03  Jackson Harper  <jackson@ximian.com>
14351
14352         * TabControl.cs: Implement the remove method. Fix some broken
14353         comments.
14354
14355 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14356
14357         * DateTimePicker.cs:
14358           - Added missing DateTimePickerAccessibleObject class
14359           - Added missing events
14360           - Added OnFontChanged method
14361         * Form.cs: Added missing attributes
14362         * TreeView.cs: Added missing attributes
14363
14364 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14365
14366         * GridItemCollection.cs: Fix signatures
14367
14368 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14369
14370         * XplatUI.cs: Updated build rev/date
14371         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14372           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14373         * Application.cs: Trigger context-specific ExitThread events
14374
14375 2005-11-03  Jackson Harper  <jackson@ximian.com>
14376
14377         * Menu.cs:
14378         * MainMenu.cs:
14379         * GridTableStylesCollection.cs:
14380         * Timer.cs:
14381         * TabPage.cs:
14382         * HelpProvider.cs:
14383         * StatusBar.cs:
14384         * MonthCalendar.cs: Signature fixes
14385
14386 2005-11-03  Jackson Harper  <jackson@ximian.com>
14387
14388         * TreeNodeCollection.cs: Remove should not be virtual.
14389         * TreeView.cs: Implement the last of the missing methods.
14390
14391 2005-11-03  Jackson Harper  <jackson@ximian.com>
14392
14393         * TreeNodeConverter.cs: Implement to get off my class-status back.
14394
14395 2005-11-03  Jackson Harper  <jackson@ximian.com>
14396
14397         * TreeView.cs: Hookup the bits for drag and drop.
14398         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14399         that nodes can be moved from tree to tree easily this just causes
14400         all sorts of problems.
14401         * TreeNodeCollection: Don't need to give treenodes an index and
14402         treeview anymore when they are added, these are computed on the
14403         fly. Also make sure to remove a node before its added.
14404
14405 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14406
14407         * TextControl.cs:
14408           - Added CaretSelection enum
14409           - Added comparison methods to Marker struct, makes selection code
14410             more readable
14411           - Added SelectionStart and SelectionEnd as 'moveable' location for
14412             the CaretDirection enum and handler
14413           - Added selection_prev variable to track optimized invalidation for
14414             word and line selection
14415           - Added SelectionVisible property (returns true if there is a valid 
14416             selection)
14417           - Switched CaretHasFocus to only display the caret if there is no
14418             visible selection
14419           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14420             using the direct character index; should be much faster
14421           - Added various conditional debug statements
14422           - Fixed invalidation calculation for selection ranges
14423           - Added ExpandSelection() method to support word and line selection
14424           - Switched SetSelectionToCaret to use new Marker compare overloads
14425           - Added central IsWordSeparator() method to determine word 
14426             separators/whitespace and FindWordSeparator() to streamline common
14427             usage of IsWordSeparator()
14428         * TextBoxBase.cs:
14429           - Removed unneeded grabbed variable, it was just mirroring
14430             Control.Capture
14431           - No longer firing OnTextChanged event when Text setter is called,
14432             since the base will fire the event for us
14433           - Added handling of Ctrl-Up/Down selection
14434           - Added handling of Shift-Cursorkey selection
14435           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14436             words
14437           - Added handling of Shift and Ctrl-Shift-Home/End selection
14438           - Removed some debug output
14439           - Added handling for single/double/tripple-click to place caret/
14440             select word/select line respectively (Fixes bug #76031)
14441           - Added support for drag expansion of word/line selection
14442         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14443           current selection
14444
14445 2005-11-02  Jackson Harper  <jackson@ximian.com>
14446
14447         * X11Dnd.cs: If the drag is going to and from a MWF window just
14448         copy the data instead of sending it out through the X Selection
14449         mechanism.
14450
14451 2005-11-02  Jackson Harper  <jackson@ximian.com>
14452
14453         * X11Dnd.cs:
14454         * XplatUIX11.cs: When in a drag we don't want motion notify
14455         messages to get passed on to the other controls. This prevents
14456         mouse move messages from showing up in the drag source.
14457
14458 2005-11-02  Jackson Harper  <jackson@ximian.com>
14459
14460         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14461         the correct button is release to end a drag.
14462         * XplatUIX11.cs: Make the button state internal so the drag system
14463         can access it.  Dragging needs to know about all button releases,
14464         not just left button.
14465
14466 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14467
14468         * Form.cs (Icon): If the icon is null, reset the icon to the
14469         default value. 
14470
14471         * Cursor.cs: When writing the AND-mask bitmap do not include the
14472         number of colors, but hardcode those to two (black and white),
14473         fixes the loading of color cursors (Paint Dot Net).
14474
14475         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14476         turn off autoscaling.
14477
14478         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14479
14480 2005-11-02  Jackson Harper  <jackson@ximian.com>
14481
14482         * X11Dnd.cs: Make sure to send a status message if the pointer
14483         enters a control that can not accept a drop, otherwise the cursor
14484         isn't updated correctly. Also tried to compress the lines of code
14485         a bit.
14486
14487 2005-11-02  Jackson Harper  <jackson@ximian.com>
14488
14489         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14490         set actions correctly.  This isn't perfect as XDND and win32 have
14491         some differences on how you allow actions. I'll clear this up by
14492         adding a path for drag from MWF to MWF windows.
14493         * XplatUIX11.cs: Hook into the dnd system.
14494
14495 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14496
14497         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14498         previously shown but they are no longer need it. Very obvious when 
14499         browsing files with FileDialog.
14500
14501 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14502
14503         * Control.cs: We always need to call OnPaintBackground. We pretty much
14504           ignore AllPaintingInWmPaint and always do the painting there, whether 
14505           it's set or not, since we always ignore the WM_ERASEBKGND message 
14506           (which we don't generate on X11). This fixes #76616.
14507         * Panel.cs: Removed unneeded background painting. This happens properly
14508           in Control.cs already
14509
14510 2005-10-31  Mike Kestner  <mkestner@novell.com>
14511
14512         * Menu.cs: Add items to collection before setting their index.
14513         * MenuItem.cs : add range checking with ArgumentException like MS.
14514         [Fixes #76510]
14515
14516 2005-10-31  Jackson Harper  <jackson@ximian.com>
14517
14518         * ListBox.cs: Invalidate if the area is visible at all not just
14519         contained in the visible rect. Fixes unselection of semi visible
14520         items.
14521
14522 2005-10-31  Jackson Harper  <jackson@ximian.com>
14523
14524         * Control.cs: Consistently name the dnd methods. Make them
14525         internal so we can override them to match some MS behavoir
14526         internally.
14527         * Win32DnD.cs: Use the new consistent names.
14528
14529 2005-10-31  Jackson Harper  <jackson@ximian.com>
14530
14531         * TreeView.cs: Don't draw the selected node when we lose focus.
14532
14533 2005-10-31  Jackson Harper  <jackson@ximian.com>
14534
14535         * X11Dnd.cs: We still need to reset the state even though a full
14536         reset isn't being done, otherwise status's still get sent all over
14537         the place.
14538
14539 2005-10-31  Jackson Harper  <jackson@ximian.com>
14540
14541         * Control.cs: Make the dnd_aware flag internal so the dnd
14542         subsystem can check it. Catch exceptions thrown in dnd handlers to
14543         match MS behavoir.
14544         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14545         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14546         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14547         flags to reduce the number of dnd enters/status's sent.
14548
14549 2005-10-31  Jackson Harper  <jackson@ximian.com>
14550
14551         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14552
14553 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14554
14555         * PictureBox.cs: Fixes 76512
14556
14557 2005-10-28  Jackson Harper  <jackson@ximian.com>
14558
14559         * X11Dnd.cs: Early implementation to support winforms being a drag
14560         source for data on X11. Also restructured the converters so they
14561         can go both ways now.
14562         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14563         
14564 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14565
14566         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14567           clipboard requests
14568
14569 2005-10-27  Jackson Harper  <jackson@ximian.com>
14570
14571         * TreeNode.cs: Implement serialization so my DnD examples will work.
14572
14573 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14574
14575         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14576           TreeView.cs: Don't dispose objects that are not owned.
14577           
14578 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14579
14580         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14581           should retrieve the current cursor and report that, but XplatUI
14582           doesn't (yet) have an interface for that (and I'm not sure I even
14583           can, on X11)
14584         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14585           until any message loop processing is done (and the WM_SETCURSOR
14586           replaces the cursor to the proper one)
14587         * XplatUIX11.cs: 
14588           - Fixed override behaviour, we can't set the cursor globally on X11, 
14589             just for our windows.
14590           - Invalidating the System.Drawing X11 display handle when we are
14591             shutting down
14592         * Control.cs: Fix to make csc happy
14593
14594 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14595
14596         * TextBoxBase.cs: 
14597           - get_Text: Add last line (without trailing newline) to returned
14598             value (Fixes 76212)
14599           - get_TextLength: Count last line in returned length
14600           - ToString: Call Text property instead of duplicating code
14601
14602 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14603
14604         * ImageList.cs: Dispose ImageAttributes objects.
14605
14606 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14607
14608         * ImageList.cs: Use attribute constructors with less arguments where
14609           possible.
14610
14611 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14612
14613         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14614           Use typeof instead of strings when assembly is referenced. Added
14615           some more comments.
14616
14617 2005-10-21  Jackson Harper  <jackson@ximian.com>
14618
14619         * ListView.cs: Raise a double click event. Also tried to somewhat
14620         fix when the selectedindexchanged event is raised. Its still
14621         broken though.
14622
14623 2005-10-21  Jackson Harper  <jackson@ximian.com>
14624
14625         * TreeView.cs: New method to invalidate the plus minus area of a
14626         node without invalidating the whole node (maybe this can be used
14627         in some more places).
14628         * TreeNodeCollection.cs: When adding to an empty node we need to
14629         invalidate its plus minus area so the little block shows up.
14630         
14631 2005-10-21  Jackson Harper  <jackson@ximian.com>
14632
14633         * TreeView.cs: Make sure that when we invalidate a node the bounds
14634         are big enough to cover the selected box and the focus
14635         rectangle. Use a different colour for the lines connecting nodes
14636         so they show up with all themes.
14637
14638 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14639
14640         * NativeWindow.cs: Don't call anything that could call into the driver,
14641           we might be on a different thread.
14642
14643 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14644
14645         * Control.cs(Dispose): Since Dispose might run on a different thread,
14646           make sure that we call methods that could call into the driver via
14647           invoke, to avoid thread issues
14648
14649 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14650
14651         * XplatUI.cs: Removed finalizer
14652         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14653           not allowing to be called on the finalizer thread.
14654
14655 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14656
14657         * ImageList.cs:
14658           - Reverted r51889 and r51891.
14659           - Added ImageListItem class that stores unmodified image items and image
14660             properties required to create list images until handle is created.
14661           - Added AddItem and moved image creation logic to AddItemInternal.
14662           - Added CreateHandle method that creates images based on unmodified items.
14663           - Added DestroyHandle that changes state to store unmodified items.
14664           - Add and AddStrip methods no more create handle.
14665           - ReduceColorDepth has no return value.
14666           - Dispose destroys handle.
14667           - Modified other methods to reflect the above changes.
14668           - Implemented key support.
14669           - Added profile 2.0 members and attributes.
14670           - Added private Reset and ShouldSerialize methods that provide the same
14671             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14672             them as they are private.
14673           - Added some more comments about implementation details.
14674
14675 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14676
14677         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14678
14679 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14680
14681         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14682
14683 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14684
14685         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14686         * DataGridColumnStyle.cs: Remove debug message
14687
14688 2005-10-20  Jackson Harper  <jackson@ximian.com>
14689
14690         * TreeView.cs: We can always get input keys regardless of whether
14691         or not editing is enabled. They are used for navigation.
14692
14693 2005-10-20  Jackson Harper  <jackson@ximian.com>
14694
14695         * TreeNode.cs: Use the viewport rect for determining if a node
14696         needs to be moved for visibility. Don't use Begin/End edit. This
14697         calls a full refresh when its done.
14698         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14699         rect property internal so the treenodes can see it. When clicking
14700         on a node we need to ensure that its visible because it might just
14701         be partly visible when clicked.
14702
14703 2005-10-20  Jackson Harper  <jackson@ximian.com>
14704
14705         * TreeNodeCollection.cs: Remove debug code.
14706
14707 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14708
14709         * Datagrid.cs: Implements column sorting in Datagrid
14710         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14711
14712 2005-10-20  Jackson Harper  <jackson@ximian.com>
14713
14714         * TreeNodeCollection.cs: Remove items properly. Update the correct
14715         area after removing them.
14716
14717 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14718
14719         * Datagrid.cs: Should not call base.OnPaintBackground
14720
14721 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14722
14723         * XplatUIX11.cs (GetMessage):
14724           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14725             window instead of client window
14726           - Now properly calculates NC_xBUTTONUP message coordinates
14727           - ScreenToMenu now properly calculates it's coordinates of whole 
14728             window, since menus are in the whole window, not in the client
14729             window
14730           - Added WholeToScreen coordinate translation method
14731
14732 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14733
14734         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14735           want to return a message, loop back to the beginning of the function
14736           and grab the next real message to process instead.
14737
14738 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14739
14740         * Splitter.cs: Properly set limits if no filler control is used
14741
14742 2005-10-19  Jackson Harper  <jackson@ximian.com>
14743
14744         * ColorDialog.cs: Don't show the help button if it is not enabled
14745         instead of disabling it (this is what MS does). Don't create the
14746         panel until the dialog is run, otherwise the vars (such as
14747         ShowHelp) are not set yet.
14748
14749 2005-10-19  Jackson Harper  <jackson@ximian.com>
14750
14751         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14752         are reduced when adding nodes.
14753         * TreeNode.cs:
14754         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14755         tree.
14756         
14757 2005-10-19  Jackson Harper  <jackson@ximian.com>
14758
14759         * FolderBrowserDialog.cs: End editing our treeview so the window
14760         actually gets refreshed.
14761
14762 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14763
14764         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14765           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14766           inside of WM_PAINT
14767
14768 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14769
14770         * MenuAPI.cs: Returns after Hidding window
14771         * XplatUIX11.cs: Added TODO found while debugging menu issues
14772
14773 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14774
14775         * XplatUIX11.cs: Do not re-map the whole window when it's size
14776           becomes non-zero unless it's supposed to be actually visible
14777
14778 2005-10-18  Jackson Harper  <jackson@ximian.com>
14779
14780         * TreeView.cs: We don't need to keep a count anymore.
14781         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14782         use the Grow method.
14783
14784 2005-10-18  Jackson Harper  <jackson@ximian.com>
14785
14786         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14787         implement it manually here.
14788
14789 2005-10-18  Jackson Harper  <jackson@ximian.com>
14790
14791         * ImageList.cs: Dont kill the list when the colour depth is
14792         changed, just change the colour depth of all the images.
14793         - Same goes for setting the image size. Just resize them all
14794         instead of killing the list softly.
14795
14796 2005-10-18  Jackson Harper  <jackson@ximian.com>
14797
14798         * Control.cs: Don't invalidate empty rectangles.
14799
14800 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14801
14802         * ListViewItem.cs:
14803           - Adds checked item to the Checked/Item lists (where empty before)
14804           - Do not add items to the Selected lists if they are already present
14805         * ListView.cs:
14806           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14807           - When deleting items make sure that we delete them for the Selected
14808           and Checked list also.
14809
14810 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14811
14812         * Label.cs: Dispose objects no longer used
14813         * ThemeWin32Classic.cs: Dispose objects no longer used
14814
14815 2005-10-18  Jackson Harper  <jackson@ximian.com>
14816
14817         * TabControl.cs: Don't refresh the whole control when the tabs are
14818         scrolled, we just need to refresh the tab area.
14819
14820 2005-10-17  Jackson Harper  <jackson@ximian.com>
14821
14822         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14823         after handle when we need it.
14824
14825 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14826
14827         * Control.cs: When the parent size changes, recalculate anchor 
14828           positions. Partial fix for #76462
14829
14830 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14831
14832         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14833           drawn. Fixes #76462
14834
14835 2005-10-17  Jackson Harper  <jackson@ximian.com>
14836
14837         * MonthCalendar.cs: Don't create the numeric up down until our
14838         handle is created. Otherwise our handle is created in the
14839         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14840         yet.
14841
14842 2005-10-17  Jackson Harper  <jackson@ximian.com>
14843
14844         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14845         correctly.
14846
14847 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14848         * TreeNode.cs : small logical fix (was using local var instead of field)
14849         
14850 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14851
14852         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14853
14854 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14855
14856         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14857
14858 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14859
14860         * Control.cs: 
14861           - Re-implemented anchoring code. My first version was really broken.
14862             This fixes bug #76033. Unlike the previous implementation we will
14863             no longer have round errors since all numbers are calculated from
14864             scratch every time. Removed various anchor-related obsolete vars.
14865           - InitLayout no longer causes layout event firing and layout to be 
14866             performed
14867
14868 2005-10-16  Jackson Harper  <jackson@ximian.com>
14869
14870         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14871         which was broken).
14872
14873 2005-10-16  Jackson Harper  <jackson@ximian.com>
14874
14875         * TabControl.cs: Remove debug code.
14876
14877 2005-10-16  Jackson Harper  <jackson@ximian.com>
14878
14879         * XEventQueue.cs: Increase the default queue size (very simple
14880         apps needed to grow the queue).
14881         * Hwnd.cs: No finalizer so we don't need to suppress
14882         finalization. Compute the invalid area manually so a new rectangle
14883         does not newto be created.
14884         * ScrollableControl.cs: Don't set any params (otherwise visibility
14885         isn't set correctly).
14886         * MdiChildContext.cs: New constructor takes the mdi parent so it
14887         doesn't have to be computed and avoids a crash on windows. Draw
14888         the window icon properly, and allow the text to be seen.
14889         * Form.cs: Use new MdiChildContext constructor. Make sure the
14890         child context isn't null in wndproc.
14891         * TabControl.cs: Don't set focus, this is muddling keyboard
14892         behavoir. Expand the tab rows when a window size increase will
14893         allow extra tabs to be seen. Don't allow tabs smaller than the
14894         width of a window to be scrolled out of view.
14895         * TreeNode.cs:
14896         * TreeView.cs: Use measure string to calculate a nodes width, the
14897         width is cached and only updated when the text or the font is
14898         changed. Don't check for expand/collapse clicks on the first level
14899         nodes if root lines are disabled.
14900         
14901 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14902
14903         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14904
14905 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14906
14907         * DataGridBoolColumn.cs: fixes warning
14908
14909 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14910
14911         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14912         to match more to match more precisely the MS Net behavior
14913
14914 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14915
14916         * Hwnd.cs: Added field to track if window is mapped
14917         * XplatUIX11.cs: 
14918           - Unmap windows if they become 0-size, re-map when 
14919             they are >0 again; fixes #76035
14920           - Re-set our error handler after initializing X11Desktop
14921             to override any error handlers Gtk or whatever was called
14922             may have set.
14923
14924 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14925
14926         * CheckedListBox.cs: Removed unused vars
14927         * ListView.cs: Fixed signatures
14928         * RichTextBox.cs: Removed unused vars
14929         * TextBoxBase.cs: Removed unused vars
14930         * XplatUIWin32.cs: Removed unused vars
14931         * XplatUIX11.cs: Removed unused vars
14932         * XplatUI.cs: Updated version and date to latest published
14933
14934 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14935
14936         * Cursor.cs: Added private .ctor to work around a bug in
14937           resourceset (Thanks to Geoff Norton for the help on this)
14938         * SplitterEventArgs.cs: Made fields accessible so we don't
14939           waste boatloads of objects and can reuse the same one
14940           in Splitter
14941         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14942           any captions and borders when generating screen coordinates
14943         * Splitter.cs: Reimplemented control, now fully complete, uses
14944           rubberband drawing, supports and obeys all properties, has
14945           proper cursors
14946
14947 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14948
14949         * Form.cs (Form): Setup default values for autoscale and
14950         autoscale_base_size;  Make these instance variables, not static
14951         variables. 
14952
14953         (OnLoad): on the first load, adjust the size of the form.
14954
14955 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14956
14957         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14958           width argument to DrawReversibleRectangle()
14959         * XplatUIWin32.cs, XplatUIX11.cs: 
14960           - Implemented width for DrawReversibleRectangle()
14961           - Added logic to DrawReversibleRectangle that recognizes a zero
14962             width or height and only draws a line in that situation
14963         
14964 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
14965
14966         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
14967         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
14968         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
14969           method (it uses our FosterParent window to get a graphics context)
14970
14971 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
14972
14973         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
14974           and SetWindowBackground methods
14975         * Control.cs:
14976           - Setting proper ControlStyles
14977           - We no longer call XplatUI.SetWindowBackground and XplatUI.
14978             EraseWindowBackground, instead we draw the window background
14979             ourselves in PaintControlBackground. This behaviour is
14980             required to match MS, where, when OnPaintBackground is not
14981             called, the background is not drawn.
14982           - Removed unneeded Refresh() in set_Text
14983         * Hwnd.cs: Dropped the ErasePending support. No longer needed
14984         * XplatUIX11.cs:
14985           - Created DeriveStyles method to translate from CreateParams to
14986             FormBorderStyle and TitleStyle, also handles BorderStyle (which
14987             matches FormBorderStyle enum values)
14988           - Consolidated SetHwndStyles and CalculateWindowRect border/title
14989             style calculations into single DeriveStyles method
14990           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
14991             from redrawing the whole window on any resize or expose.
14992           - Fixed CreateWindow usage of SetWindowValuemask. Before not
14993             all styles were applied to our whole/client window appropriately
14994           - Removed EraseWindowBackground() and SetWindowBackground() methods
14995           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
14996             no longer clear/redraw the background through X
14997           - Removed handling of erase_pending bit, we have no use for it (or
14998             so it seems)
14999         * XplatUIOSX.cs:
15000           - Removed generation and handling of WM_ERASEBKGND message
15001           - Removed EraseWindowBackground() and SetWindowBackground() methods
15002           - Removed handling of hwnd.ErasePending flag
15003         * XplatUIWin32.cs:
15004           - Removed EraseWindowBackground() and SetWindowBackground() methods
15005           - We no longer call EraseWindowBackground on PaintEventStart, we 
15006             ignore the fErase flag, erasing is handled in Control in the
15007             background handler
15008         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
15009           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
15010           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
15011           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
15012           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
15013           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
15014           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
15015
15016 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
15017
15018         * PropertyGrids.cs: Get sub properties
15019         * PropertyGridView.cs: Fix drawing code
15020
15021 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15022
15023         * ListBox.cs: Fixes 76383
15024
15025 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15026
15027         * DataGridTextBoxColumn.cs: Sets location and size before attachment
15028         * ThemeWin32Classic.cs: Fixes border drawing and calculations
15029         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
15030
15031
15032 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15033
15034         * ComboBox.cs: Fixes border drawing
15035
15036 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15037
15038         * MimeIcon.cs: Ignore errors if the file can not be read.
15039
15040 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15041
15042         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15043          - Fixed border calculations
15044          - Fixed horizontal scrolling in single column listboxes
15045          - Fixed drawing issues
15046
15047 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15048
15049         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15050           FormBorderStyle enum
15051         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15052           code to determine FormBorderStyles from CreateParams
15053         * Form.cs:
15054           - Fixed bug where we'd set the wrong window styles if we were
15055             not creating an MDI window
15056           - Added call to XplatUI.SetBorderStyle when form borders are set
15057         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15058         * Hwnd.cs:
15059           - Removed obsolete edge style
15060           - Switched from BorderStyle to FormBorderStyle
15061         
15062 2005-10-10  Jackson Harper  <jackson@ximian.com>
15063
15064         * Form.cs: Use the property to get the window handle instead of
15065         accessing it directly. Prevents a null reference exception.
15066
15067 2005-10-10  Jackson Harper  <jackson@ximian.com>
15068
15069         * TreeView.cs: Don't adjust the rect given to DrawString now that
15070         our libgdiplus draws correctly.
15071
15072 2005-10-08  Jackson Harper  <jackson@ximian.com>
15073
15074         * TreeView.cs: Don't try to find the clicked on node if there are
15075         no nodes in the tree.
15076
15077 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15078
15079         * RichTextBox.cs:
15080
15081           restore
15082
15083 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15084
15085         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15086           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15087           ErrorProvider.cs:
15088           Use ResPool for brushes and dispose System.Drawing objects that
15089           are not used anymore.
15090
15091 2005-10-07  Jackson Harper  <jackson@ximian.com>
15092
15093         * MdiChildContext.cs: Use the new borders instead of drawing them
15094         ourselves.
15095
15096 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15097
15098         * Calling UpdateBounds after changing the window's BorderStyle 
15099         since the style can change the ClientSize
15100
15101 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15102
15103         * Control.cs: Made PaintControlBackground virtual
15104         * Panel.cs: Overriding PaintControlBackground instead of using paint
15105           event; paint event method was interfering with 'real' users of the
15106           event.
15107
15108 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15109
15110         * ThemeWin32Classic.cs: remove border drawing since it is handled
15111         by the base control class now and was causing double border drawing.
15112
15113 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15114
15115         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15116           but it does seem to match MS behaviour. This fixes bug #75324
15117
15118 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15119
15120         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15121           somewhat hackish looking
15122
15123 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15124
15125         * TextBoxBase.cs:
15126           - We now accept Enter even if AcceptEnter is false, if the containing
15127             form does not have an AcceptButton configured (fixes bug #76355)
15128           - Calculations are now fixed to no longer use Width/Height, but
15129             ClientSize.Width/Height, since we now support borders (this was
15130             a result of fixing borders and therefore bug #76166)
15131           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15132             true (fixes bug #76354)
15133         
15134 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15135
15136         * Control.cs: 
15137           - Defaulting BorderStyle and setting it in XplatUI when our window 
15138             is created
15139           - Added enum check to InternalBorderStyle setter
15140         * XplatUIX11.cs: 
15141           - Added drawing of window borders
15142           - Now properly calculates WM decorations offset for toplevel 
15143             windows (fixes bug #74763)
15144         * XplatUIWin32.cs: 
15145           - Implemented BorderStyles for windows (we're letting win32 draw 
15146             the border for us)
15147           - Fixed the signature for SetWindowLong
15148         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15149           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15150           setting borders
15151         * UpDownBase.cs: Remove drawing of borders, this is handled by
15152           the driver, outside the client area
15153         * ListView.cs: Removed bogus border calculations. The control should
15154           be oblivious to borders, since those are not part of the client
15155           area. 
15156         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15157         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15158           drawing code
15159
15160 2005-10-06  Jackson Harper  <jackson@ximian.com>
15161
15162         * MdiChildContext.cs: Clear out the old virtual position remove
15163         all the unneeded calls to CreateGraphics.
15164
15165 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15166
15167         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15168
15169 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15170
15171         * Form.cs: 
15172           - Added loading and setting of our new default icon
15173           - Only set icon if window is already created
15174
15175 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15176
15177         * Label.cs:
15178           - Do not explicitly set the foreground and background colors, to
15179             allow inheriting from parents (fixes #76302)
15180           - Use Control's InternalBorderStyle property to deal with borders
15181
15182 2005-10-06  Jackson Harper  <jackson@ximian.com>
15183
15184         * MdiChildContext.cs: Use the new xplatui function to draw a
15185         reversible rect.
15186
15187 2005-10-06  Jackson Harper  <jackson@ximian.com>
15188
15189         * Form.cs: Add the parent before creating the child context cause
15190         we need the parent when setting up the child.
15191
15192 2005-10-06  Jackson Harper  <jackson@ximian.com>
15193
15194         * FolderBrowserDialog.cs: redo the tree population code so a
15195         second thread isn't used. Should be a lot faster and more stable
15196         now.
15197
15198 2005-10-05  Jackson Harper  <jackson@ximian.com>
15199
15200         * TreeView.cs: There are no expand/collapse boxes if the node has
15201         no children.
15202
15203 2005-10-05  Jackson Harper  <jackson@ximian.com>
15204
15205         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15206
15207 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15208
15209         * FileDialog.cs: Fix InitialDirectory
15210
15211 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15212
15213         * ComboBox.cs:
15214                 - Fixes changing between styles
15215                 - Fixes simple mode
15216                 - Fixes last item crashing when navigating with keyboard
15217
15218 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15219
15220         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15221
15222 2005-10-05  Jackson Harper  <jackson@ximian.com>
15223
15224         * TreeView.cs: If updating the root node do a full refresh.
15225         * TreeNode.cs: The root node should be expanded by default. Also
15226         added a utility prop to tell if we are the root node.
15227         * TreeNodeCollection.cs: Only refresh if the node we are being
15228         added to is expanded. Also added a comment on a potential
15229         optimization.
15230         
15231 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15232
15233         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15234           in dispose method. Fixes #76330
15235
15236 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15237
15238         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15239
15240                 - Implements vertical and horizontal scrolling using XplatUI
15241                 - Fixes keyboard navagation
15242                 - Fixes EnsureVisible
15243                 - Drawing fixes
15244                 - Handles and draws focus properly
15245
15246
15247 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15248
15249         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15250           Create handle. NET_2_0: Destroy handle when value is null.
15251
15252 2005-10-03  Jackson Harper  <jackson@ximian.com>
15253
15254         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15255         revert and a new patch to prevent the thumb from refreshing so
15256         much.
15257
15258 2005-10-02  Jackson Harper  <jackson@ximian.com>
15259
15260         * ScrollBar.cs: Don't update position if it hasn't actually
15261         changed. This occurs when you hold down the increment/decrement
15262         buttons and the thumb gets to the max/min.
15263
15264 2005-10-01  Jackson Harper  <jackson@ximian.com>
15265
15266         * Form.cs:
15267         * MdiChildContext.cs:
15268         * MdiClient.cs: Implement ActiveMdiChild in Form.
15269
15270 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15271
15272         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15273
15274 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15275
15276         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15277           be found
15278
15279 2005-09-30  Jackson Harper  <jackson@ximian.com>
15280
15281         * ListBox.cs: Don't do a full refresh unless some data has
15282         actually changed.
15283
15284 2005-09-30  Jackson Harper  <jackson@ximian.com>
15285
15286         * TreeView.cs: Make sure that the checkboxes size is factored in
15287         even when not visible.
15288
15289 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15290
15291         * FileDialog.cs: Fix Jordi's build break
15292
15293 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15294
15295         * FileDialog.cs: 
15296                 - Use standard the Windows colours for the combobox as espected
15297                 - Dispose objects that use resouces when no longer need them
15298
15299 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15300
15301         * X11DesktopColors.cs: Initial incomplete implementation
15302         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15303
15304 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15305
15306         * Theme.cs: 
15307           - Switched Theme color names to match the names defined in 
15308             System.Drawing.KnownColors. Life's hard enough, no need to make 
15309             it harder.
15310           - Added setters to all theme color properties so themes can set
15311             their color schemes. The setters also propagate the color changes
15312             to System.Drawing.KnownColors via reflection
15313         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15314           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15315           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15316           use the new, more logical theme color names
15317         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15318           post-NT colors
15319         * ThemeWin32Classic.cs:
15320           - Removed code to set the old classic Windows colors. Instead it
15321             now relies on the colors returned by System.Drawing.KnownColors
15322             which will be either modern static colors (Unix) or colors
15323             read from the user's configuration (Win32)
15324           - Updated to use the new, more logical theme color names
15325           - Switched DataGrid drawing code to use only Theme colors instead of
15326             a mix of System.Drawing.KnownColors and Theme colors
15327           - DrawFrameControl(): Removed code that fills the button area, the
15328             fill would overwrite any previous fill done by a control. This
15329             fixes bug #75338 
15330           - Added DrawReversibleRectangle() stub
15331         * ScrollableControl.cs: Set visible state to false when scrollbars
15332           are removed (pdn fix)
15333         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15334           DrawReversibleRectangle() method to allow drawing primitive 
15335           'rubber bands'
15336         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15337
15338 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15339
15340         * ImageList.cs: Add(Icon): Create handle.
15341
15342 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15343
15344         * ListView.cs:
15345         * ThemeWin32Classic.cs:
15346                 - Fixes detail mode
15347                 - Sets clippings
15348                 - Issues with drawing
15349
15350 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15351
15352         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15353           source has to be the ImageList.
15354
15355 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15356
15357         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15358
15359 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15360
15361         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15362
15363 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15364
15365         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15366
15367 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15368         * GridItem.cs: Fixed TODOs
15369         * GridItemCollection.cs: Added ICollection interface
15370
15371 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15372
15373         * ImageList.cs: Resize icons when needed.
15374
15375 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15376
15377         * ListViewItem.cs
15378                 - Fixes GetBounds and returns on screen rects
15379         * ListView.cs:
15380                 - Fixes vertical and horzintal scrolling of items
15381         * ThemeWin32Classic.cs:
15382                 - Fixes drawing
15383                 
15384 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15385
15386         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15387
15388 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15389
15390         * ImageList.cs: Added comments about handle creation. Moved Handle,
15391           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15392           Handle is created in Add methods.
15393
15394 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15395          
15396         * DataGridDrawingLogic.cs: 
15397                 - Takes rows into account on Colum calculations
15398                 - Returns the column when clickig
15399         * DataGrid.cs:
15400                 - Fixes default HitTestInfo values
15401                 - Fixes HitTestInfo.ToString
15402                 - Fixes ResetBackColor          
15403         
15404 2005-09-28  Jackson Harper  <jackson@ximian.com>
15405
15406         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15407         sizing or cursor changes). Also added some temp code to draw the
15408         titlebars text (Makes dev a little easier).
15409
15410 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15411
15412         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15413
15414 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15415          
15416         * ListBox.cs: Fixes bug 76253
15417
15418 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15419
15420         * ImageList.cs: Added comments about the current implementation. Added
15421           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15422           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15423           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15424           with Bitmap.LockBits for better performance. Revised the whole file to
15425           match MS.NET behaviour and provide better performance. Non-public
15426           interface members are calling public members even when they throw
15427           NotSupportedException for better maintainability. Moved ColorDepth,
15428           ImageSize, ImageStream and TransparentColor implementations to
15429           ImageCollection for better performance as these properties are not used
15430           by ImageList.
15431         * ImageListStreamer.cs: Added a new internal constructor that takes an
15432           ImageList.ImageCollection and serializes Images based on
15433           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15434           match ImageList property name.
15435
15436 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15437
15438         * ListBox.cs: Fixes IndexFromPoint for last item
15439
15440 2005-09-27  Jackson Harper  <jackson@ximian.com>
15441
15442         * Form.cs: Set the position of new mdi children correctly.
15443
15444 2005-09-27  Jackson Harper  <jackson@ximian.com>
15445
15446         * MdiClient.cs: New mdi children need to be added to the back of
15447         the controls collection so the zorder is set correctly. Also add a
15448         count of all the child windows that have been created.
15449
15450 2005-09-27  Jackson Harper  <jackson@ximian.com>
15451
15452         * Form.cs (CreateParams): Setup MDI forms correctly.
15453
15454 2005-09-27  Jackson Harper  <jackson@ximian.com>
15455
15456         * MdiChildContext.cs:
15457         * MonthCalendar.cs:
15458         * UpDownBase.cs:
15459         * ListBox.cs:
15460         * ListView.cs:
15461         * TextBoxBase.cs:
15462         * TreeView.cs:
15463         * ScrollableControl.cs:
15464         * ComboBox.cs: Add implicit controls using the new implict control
15465         functionality in ControlCollection. Also try to block multiple
15466         control add in a suspend/resume layout to save some cycles.
15467         
15468 2005-09-27  Jackson Harper  <jackson@ximian.com>
15469
15470         * Control.cs: Add functionality to the controls collection to add
15471         'implicit controls' these are controls that are created by the
15472         containing control but should not be exposed to the user. Such as
15473         scrollbars in the treeview.
15474         * Form.cs: The list var of the ControlsCollection is no longer
15475         available because of the potential of implicit controls getting
15476         ignored by someone accessing the list directly.
15477
15478 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15479
15480         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15481           loose it's parent. (Fixed bug introduced in r49103 when we added
15482           setting the child parent to null on Remove)
15483
15484 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15485
15486         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15487         * Splitter.cs: Added missing attributes for BorderStyle property.
15488         * TextBoxBase.cs: Marked Calculate* methods internal.
15489         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15490         MS.NET.
15491
15492 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15493          
15494         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15495
15496 2005-09-25  Jackson Harper  <jackson@ximian.com>
15497
15498         * TreeView.cs: Update the node bounds correctly regardless of
15499         whether the node is visible.
15500
15501 2005-09-25  Jackson Harper  <jackson@ximian.com>
15502
15503         * ImageList.cs: Don't dispose the image after it is added to the
15504         image list. Only reformat images that need to be resized.
15505
15506 2005-09-25  Jackson Harper  <jackson@ximian.com>
15507
15508         * ImageList.cs: Don't set the format when changing the image.
15509
15510 2005-09-25  Jackson Harper  <jackson@ximian.com>
15511
15512         * TreeView.cs: We can't just assume the node has a font. Use the
15513         treeviews font if no node font is available.
15514
15515 2005-09-25  Jackson Harper  <jackson@ximian.com>
15516
15517         * TreeView.cs: Allow the scrollbars to be reset with negative
15518         values.
15519         - Don't add scrollbars to negative sized windows.
15520
15521 2005-09-23  Jackson Harper  <jackson@ximian.com>
15522
15523         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15524         old Mono.Posix. Also remove some stray code that shouldn't have
15525         been committed.
15526
15527 2005-09-23  Jackson Harper  <jackson@ximian.com>
15528
15529         * TreeView.cs: Attempt at proper sizing of the horizontal
15530         scrollbar. Also don't resize the scrollbars unless they are
15531         visible.
15532
15533 2005-09-23  Jackson Harper  <jackson@ximian.com>
15534
15535         * TreeView.cs: We don't need to expand the invalid area when the
15536         selection changes, as this is all drawn in the node's bounding
15537         box. The area needs to be expanded (previous typo was contracting
15538         it) when the focus rect moves.
15539
15540 2005-09-23  Jackson Harper  <jackson@ximian.com>
15541
15542         * TreeView.cs: Display the selection box under the correct
15543         circumstances. We were rendering white text with no selection box
15544         before.
15545
15546 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15547
15548         * TextControl.cs(Split): Now updates selection start/end if it points 
15549           into a line that's being split. Fixes a FIXME and bug #75258
15550
15551 2005-09-23  Jackson Harper  <jackson@ximian.com>
15552
15553         * Binding.cs:
15554         * ListControl.cs: Don't use the path when retrieving binding
15555         managers from the binding context. My bat sense tells me that the
15556         path is only used on insertion.
15557
15558 2005-09-22  Jackson Harper  <jackson@ximian.com>
15559
15560         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15561
15562 2005-09-22  Jackson Harper  <jackson@ximian.com>
15563
15564         * Splitter.cs: There are special cursors used for splitting.
15565         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15566
15567 2005-09-22  Jackson Harper  <jackson@ximian.com>
15568
15569         * Splitter.cs: Change the cursor appropriately when the splitter
15570         is moused over, so the user actually knows there is a splitter
15571         there.
15572
15573 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15574
15575        * Label.cs : Fix ToString method to give same output as MS.NET
15576
15577 2005-09-22  Jackson Harper  <jackson@ximian.com>
15578
15579         * TreeView.cs: Create the scrollbars when the handle is created
15580         and add them right away, just make them invisble. Also account for
15581         the window being shrunk vertically to the point that the vert
15582         scrollbar needs to be added.
15583         - Remove some 0.5 adjustments to get around anti aliasing issues.
15584         
15585 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15586          
15587         * MainMenu.cs: Fixes default value
15588         * MenuItem.cs: Fixes default value
15589
15590 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15591
15592         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15593
15594 2005-09-21  Jackson Harper  <jackson@ximian.com>
15595
15596         * Control.cs: Don't try to set the border style on the window if
15597         it hasn't been created. When the window is created the border
15598         style will be used.
15599
15600 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15601
15602         * Control.cs (Update): Don't call XplatUI if we don't have a
15603           window handle yet
15604
15605 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15606
15607         * ContainerControl.cs: Instead of throwing an exception, print
15608           a one-time warning about Validate not being implemented
15609         * XplatUIWin32.cs: Removed debug output
15610
15611 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15612
15613         * Control.cs: Only set XplatUI background if we expect the windowing
15614           system to handle the background. This stops controls that draw their
15615           own background from flickering
15616
15617         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15618           creation. This allows, amongst other things, using MWF X11 windows 
15619           with OpenGL.
15620
15621 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15622
15623         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15624           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15625           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15626           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15627           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15628           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15629           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15630           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15631           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15632           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15633           GridColumnStylesCollection.cs, 
15634           IDataGridColumnStyleEditingNotificationService.cs,
15635           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15636           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15637           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15638           TreeNodeCollection.cs, AmbientProperties.cs, 
15639           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15640           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15641           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15642           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15643           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15644           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15645           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15646           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15647           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15648           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15649           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15650           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15651           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15652           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15653           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15654           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15655           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15656           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15657           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15658           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15659           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15660           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15661           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15662           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15663           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15664           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15665           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15666           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15667           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15668           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15669           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15670           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15671           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15672           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15673           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15674           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15675           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15676
15677 2005-09-21  Jackson Harper  <jackson@ximian.com>
15678
15679         * TreeNode.cs: Call Before/After Expand not Collapse when
15680         expanding.
15681
15682 2005-09-20  Jackson Harper  <jackson@ximian.com>
15683         
15684         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15685
15686 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15687          
15688         * ListViewItem.cs:
15689                 - Fixes bug 76120
15690                 - Fixes proper storing of subitems
15691                 - Fixes not updated items
15692
15693 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15694
15695         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15696           things if our window handle isn't created yet. Also disabled 
15697           debug for TextBoxBase
15698
15699 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15700
15701         * MenuAPI.cs: Remove filtering of events to allow menu usage
15702
15703 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15704
15705         * Cursor.cs: Allow null to be passed to Cursor.Current.
15706
15707 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15708
15709         * ThemeWin32Classic.cs:
15710           - Change some private methods/fields to protected virtual so that 
15711             they can be accessed and overriden in derived classes
15712           - First refactoring of some methods. Derived themes now don't 
15713             need to duplicate the complete code from ThemeWin32Classic
15714         * ThemeNice.cs:
15715           - Added nice StatusBar
15716           - Derive from ThemeWin32Classic and not Theme
15717           - Removed duplicate ThemeWin32Classic code
15718
15719 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15720
15721         * Control.cs (ControlCollection.Add): If the value null is passed
15722         the control is ignored. 
15723
15724         Optimize this loop.
15725
15726 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15727
15728         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15729           PostQuitMessage state.
15730         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15731
15732 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15733
15734         * Application.cs: Our constructor will never get called, move 
15735           initialization to fields; fixes bug #75933
15736
15737 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15738
15739         * FileDialog.cs :
15740                 - Allow files to be selected properly using file name
15741                 combo box.
15742                 - Add ability to change diretory (absolute / relative)
15743                 using file name combo box.
15744
15745 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15746          
15747         * ListBox.cs: 
15748                 - Fixes Multicolumn listboxes item wrong calculations
15749                 - Allows to click when only one item is in the listbox
15750                 - Fixes crash when no items using keyboard navigation
15751
15752 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15753
15754         * ComboBox.cs: Reverted almost everything from the latest patch which
15755           broke ComboBox
15756
15757 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15758         
15759         * ToolTip.cs:
15760                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15761         * ComboBox.cs:
15762                 - When DropDownStyle is Simple, it does not show scrollbar 
15763                 to the last item of the list.
15764                 - When DropDownStyle is Simple, it crashed when the list was 
15765                 scrolled down with the down cursor key.
15766                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15767                 selected item was not shown.
15768                 - The position of the selected item was not preserved when 
15769                 the next dropdown happened.
15770         * ThemeWin32Classic.cs:
15771                 - Items were wrapped at the right end.
15772         * CheckedListBox.cs:
15773                 - Fixed Add method
15774         * ListBox.cs:
15775                 - Items should be fully shown.
15776                 - When resizing and vertical scrollbar disappeared, the item 
15777                 of index 0 should be on the top of the list.
15778                 - GetItemRectangle should consider the size of ver. scrollbar
15779         * StatusBar.cs:
15780                 - SizingGrip area should not be allocated when it is not 
15781                 displayed.
15782                 - Now it reflects MinWidth of the containing panel and 
15783                 fixed a crash that happens when its width becomes so small.
15784
15785 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15786
15787         * CheckedListBox.cs: Fixes bug 76028
15788         * ListBox.cs: Fixes bug 76028
15789
15790 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15791
15792         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15793         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15794
15795 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15796
15797         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15798
15799 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15800
15801         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15802
15803 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15804
15805         * IRootGridEntry.cs: Added
15806         * PropertyGridCommands.cs: Added
15807         * PropertiesTab.cs: Added missing methods and property
15808         * PropertyGridView.cs: Made class internal
15809         * PropertyGridTextBox.cs: Made class internal
15810
15811 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15812
15813         * MimeIcon.cs: Try to check some other environment variables
15814           if "DESKTOP_SESSION" returns "default"
15815
15816 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15817
15818         * ThemeNice.cs: Corrected background colors (e.g. menus)
15819         * ColorDialog.cs: Use correct background colors for controls
15820
15821 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15822
15823         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15824
15825 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15826
15827         * RichTextBox.cs: Added initial implementation
15828         * lang.cs: Removed. Was accidentally checked in long time ago
15829         * TODO: Removed. Contents were obsolete
15830
15831 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15832                                                                                 
15833         * PropertiesTab.cs : Added
15834
15835 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15836                                                                                 
15837         * PropertyGrid.cs : Update
15838         * PropertyGridView.cs : Update
15839         * System.Windows.Forms.resx : Added images and strings
15840
15841 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15842
15843         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15844  
15845 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15846
15847         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15848           a busy loop right after the Ungrab the X11 display is otherwise 
15849           blocked
15850
15851 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15852
15853         * ThemeWin32Classic.cs: Optimise the use of clipping
15854
15855 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15856
15857         * DataGrid.cs: fixes recursion bug
15858
15859 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15860
15861         * ThemeNice.cs: 
15862           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15863           - Cleanup
15864
15865 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15866
15867         * ThemeNice.cs: Draw nice ProgressBars
15868
15869 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15870
15871         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15872
15873         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15874         bug finder.
15875
15876 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15877
15878         * ThemeNice.cs:
15879           - Added nicer menu drawing
15880           - Updated DrawTab
15881           - some refactoring
15882
15883 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15884
15885         * CreateParams.cs (ToString): Made output match MS
15886         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15887             handle is already created (to avoid forcing window creation)
15888         * XplatUIX11.cs: Set window text to caption after creating window,
15889           in case Text was set before window was created
15890         * Form.cs: Use this.Text instead of a static string as caption
15891
15892 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15893
15894         * NotifyIcon.cs: Don't set the window to visible; this screws
15895           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15896           OnPaint without a bitmap)
15897         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15898           happen very often anyway; we could add the check to the WM_PAINT 
15899           event generation code
15900
15901 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15902
15903         * NotifyIcon.cs: Fill the icon area with a background color, to 
15904           avoid 'residue' when transparent icons are drawn
15905         * XplatUIX11.cs:
15906           - Handle whole_window == client_window when destroying windows
15907           - SystrayAdd(): Set client_window to whole_window value to
15908             get mouse and other events passed to NotifyIcon
15909
15910 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15911
15912         * Form.cs: Set proper default for Opacity property
15913         * NotifyIcon.cs:
15914           - ShowSystray(): Don't bother creating telling the OS
15915             about the systray item if no icon is provided
15916           - Now handles WM_NCPAINT message to deal with whole/client window
15917             split
15918           - Create window as visible to not get caught by Expose optimization
15919         * Hwnd.cs: Removed debug message
15920         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15921           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15922             PaintEventStart/End to use new client argument
15923         * TextBoxBase.cs:
15924           - Commented out debug messages
15925           - Switched PaintEventStart/End to use new client argument
15926         * XplatUI.cs: Added client window bool to PaintEventStart()/
15927           PaintEventEnd() calls, to support drawing in non-client areas
15928         * XplatUIDriver.cs: 
15929           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15930             calls, to support drawing in non-client areas
15931           - Added conditional compile to allow using MWF BeginInvoke 
15932             on MS runtime
15933         * XplatUIX11.cs:
15934           - Added some conditional debug output
15935           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15936             whole/client window split
15937           - Implemented handling of client argument to PaintEventStart()/End()
15938         * Control.cs:
15939           - Throw exception if BeginInvoke() is called and the window handle
15940             or one of the window's parent handles is not created
15941           - Added conditional compile to allow using MWF BeginInvoke on
15942             MS runtime
15943           - get_Parent(): Only sets parent if handle is created. This avoids
15944             forcing window handle creation when parent is set.
15945           - Now fires Layout and Parent changed events in proper order
15946           - Switched to use Handle instead of window.Handle for Z-Order setting,
15947             the get_Parent() patch above causes us to possibly get null for 'window'
15948           - Implemented handling of client argument to PaintEventStart()/End()
15949           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15950             default handling)
15951           - Now sends a Refresh() to all child windows when Refresh() is called
15952
15953 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15954
15955         * Form.cs: Added (non-functional) Opacity property
15956         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15957
15958 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15959         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15960           use export MONO_THEME=nice to activate it.
15961           Currently supported controls:
15962           - Button
15963           - ComboBox
15964           - ScrollBar
15965           - TabControl (TabAlignment.Top only, other will follow)
15966         * ThemeEngine.cs: Add theme nice
15967         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
15968           if enabled
15969
15970 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
15971
15972         * Splitter.cs: Resize docked control and its neighbor.
15973
15974 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15975         -- Making Windows with Menus layout correctly --
15976         * Form.cs : The first leg of the fix
15977                 Menu setter - adjust Client Size as needed to make space for the menu
15978                 SetClientSizeCore - doesn't call base version to be able to pass the 
15979                         menu handle to XplatUI.CalculateWindowRect
15980         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
15981         * XplatUIX11.cs: The critical second leg of the fix
15982                 GetWindowPos needs to use a recalculated client_rect
15983                 so that resizing the window doesn't break layout of child controls. 
15984                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
15985                 Lots of \t\n killed
15986
15987 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
15988
15989         * Label.cs: Now properly recalculates width and height on Font and Text
15990           changes if AutoSize is set
15991
15992 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15993         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
15994
15995 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
15996
15997         * ImageList.cs: Makes ToString method compatible with MS
15998
15999 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
16000
16001         * MenuAPI.cs: fixes bug 75716
16002
16003 2005-08-11 Umadevi S <sumadevi@novell.com>
16004         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
16005
16006 2005-08-11 Umadevi S <sumadevi@novell.com>
16007         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
16008
16009 2005-08-10  Umadevi S <sumadevi@novell.com>
16010         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
16011
16012 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
16013
16014         * Menu.cs: fixes bug 75700
16015         * MenuAPI.cs: fixes navigation issues
16016
16017 2005-08-09  Umadevi S <sumadevi@novell.com>
16018         * CheckedListBox.cs - simple fix for GetItemChecked.
16019
16020 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
16021
16022         * ComboBox.cs: Serveral fixes
16023         * ListBox.cs: Serveral fixes
16024
16025 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16026
16027         * ComboBox.cs: Fixes FindString methods and GetItemHeight
16028         * ListBox.cs: Fixes FindString methods
16029
16030 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16031
16032         * DataGrid.cs: fixes bugs exposed by new tests
16033
16034 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16035
16036         * Mime.cs: Compile Mono assembly references only if compiling
16037           with Mono (Allows to build with VS.Net again)
16038
16039 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16040
16041         * Control.cs (PaintControlBackground): Draw background image
16042         corrrectly.
16043         (CheckForIllegalCrossThreadCalls): Stubbed.
16044         
16045         * Form.cs (OnCreateControl): Center when should be centered.
16046         
16047         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16048
16049 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16050
16051         * Binding.cs: Binding to properties should be case unsensitive
16052
16053 2005-07-18 vlindos@nucleusys.com
16054
16055         * DataGrid.cs: fixes setmember order
16056
16057 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16058
16059         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16060         * FileDialog.cs: FileDialog is now resizable and uses the new
16061           MimeIconEngine
16062
16063 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16064
16065         * DataGridTextBoxColumn.cs: default value
16066         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16067         * GridTableStylesCollection.cs: fixes checking MappingName
16068         * DataGridDrawingLogic.cs: fixes drawing logic issues
16069         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16070         * DataGrid.cs: fixes    
16071
16072 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16073
16074         * MimeGenerated.cs: Use case sensitive comparer for
16075           NameValueCollections
16076
16077 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16078
16079         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16080         * ThemeWin32Classic.cs: bug fixes, code refactoring
16081         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16082         * DataGrid.cs: bug fixes, code refactoring
16083         * DataGridTextBox.cs: bug fixes, code refactoring
16084         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16085         * Theme.cs:  bug fixes, code refactoring
16086
16087 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16088
16089         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16090           and other text box usage
16091
16092 2005-07-01  Jackson Harper  <jackson@ximian.com>
16093
16094         * TabControl.cs: Make sure the bottom of the tab covers the pages
16095         border.
16096
16097 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16098
16099         * Form.cs (ShowDialog): Assign owner of the dialog
16100         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16101           might have been moved to a tag with different height
16102
16103 2005-06-30  Jackson Harper  <jackson@ximian.com>
16104
16105         * Form.cs: Don't create an infinite loop when setting focus
16106         * MenuItem.cs: Don't dirty the parents if we don't have any
16107
16108 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16109
16110         * LibSupport.cs: Rename
16111
16112 2005-06-29  Peter Bartok  <pbartok@novell.com>
16113
16114         * TextBoxBase.cs: Re-align caret after deleting a character
16115         * TextControl.cs:
16116           - DeleteChars(): Ensure that tag covers the provided position
16117           - StreamLine(): Drop reference for dropped tag
16118
16119 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16120
16121         * TextControl.cs: 
16122           - Selections now work properly, anchoring at the initial location
16123             and properly extending in either direction (SetSelectionToCaret(),
16124             SetSelectionStart() and SetSelectionEnd())
16125           - No longer redraws the whole control on selection change, now
16126             calculates delta between previous and new selection and only
16127             invalidates/redraws that area
16128           - Fixed FindPos() math off-by-one errors
16129           - Changed DeleteChars() to verify the provided tag covers the
16130             provided position, selections may have a tag that doesn't cover
16131             the position if the selection is at a tag border
16132           - Fixed off-by-one errors in DeleteChars()
16133           - Added missing streamlining check in DeleteChars() to remove
16134             zero-length tags
16135           - Implemented Invalidate() method, now properly calculates exposures
16136             between two given lines/positions
16137           - Implemented SetSelection()
16138           - Obsoleted and removed FixupSelection()
16139           - Improved RecalculateDocument() logic, removing code duplication
16140
16141 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16142
16143         * LibSupport.cs: changes to match different input/output arguments.
16144
16145 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16146
16147         * LibSupport.cs: added libsupport.so init routine.
16148
16149 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16150         
16151         * ControlBindingsCollection.cs
16152                 - Throws an exception on null datasource when adding
16153                 - Checks for duplicated bindings when adding
16154
16155 2005-06-28  Jackson Harper  <jackson@ximian.com>
16156
16157         * TreeView.cs (OnKeyDown): Support left and right properly
16158         (navigates as well as expanding and collapsing.
16159         - Add support for Multiply, this expands all the selected nodes
16160         children.
16161         - Fix some tabbing.
16162
16163 2005-06-28  Jackson Harper  <jackson@ximian.com>
16164
16165         * TreeView.cs: Implement keyboard navigation, currently supports,
16166         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16167         support for toggling checkboxes with the space bar.
16168
16169 2005-06-28  Jackson Harper  <jackson@ximian.com>
16170
16171         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16172         tree.
16173
16174 2005-06-28  Jackson Harper  <jackson@ximian.com>
16175
16176         * TreeView.cs: Add missing event.
16177
16178 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16179
16180         * TextControl.cs:
16181           - Made line ending size configurable (now allows for counting 
16182             lineendings as \n or \r\n)
16183           - Added margin to viewport to keep caret visible on right side
16184           - Fixed translation routines for line/pos to documentpos to consider
16185             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16186           - Fixed some line-endings to be unix style
16187           - Fixed Document.FormatText to perform it's calculations 1-based
16188           - Added descriptions for a few methods that might otherwise get 
16189             used wrong
16190           - Added NOTE section with some basic conventions to remember at 
16191             the top of the file
16192           - Major fixup for RichTextBox selection drawing:
16193             * Fixed crashes when multiple tags on a single line were selected
16194             * fixed selection box drawing not overlaying text
16195             * fixed bogus offset calculation for tags not starting at index 1
16196             * Switched behaviour from using multiple Substrings of a 
16197               StringBuilder.ToString() to using multiple 
16198               StringBuilder.ToString(start, length) statements, hoping this is
16199               faster (kept original version commented out in the code, in case
16200               original version was faster)
16201         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16202           alignment != Left
16203         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16204           call it as well
16205
16206 2005-06-27  Jackson Harper  <jackson@ximian.com>
16207
16208         * TabControl.cs: Move to the left and right with the arrow
16209         keys. These keys don't cycle beyond first and last like
16210         tab. Refresh all the tabs when scrolling them to the left or
16211         right.
16212
16213 2005-06-27  Jackson Harper  <jackson@ximian.com>
16214
16215         * TabControl.cs:
16216           - ToString: Added method
16217           - CreateParams: Remove TODO and comment
16218           - OnKeyDown: Cycle through bounds properly.
16219           - SelectedIndex: Scroll to the right or left if we need to
16220           display the newly selected tab.
16221
16222 2005-06-23  Jackson Harper  <jackson@ximian.com>
16223
16224         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16225         set.
16226
16227 2005-06-23  Jackson Harper  <jackson@ximian.com>
16228
16229         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16230         CTRL-SHIFT-TAB, and HOME, END are there any others?
16231
16232 2005-06-23  Jackson Harper  <jackson@ximian.com>
16233
16234         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16235
16236 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16237         
16238         * DataGridTextBoxColumn.cs: fixes and enhancements
16239         * ThemeWin32Classic.cs: fixes and enhancements
16240         * DataGridBoolColumn.cs:  fixes and enhancements
16241         * DataGridDrawingLogic.cs:  fixes and enhancements
16242         * CurrencyManager.cs: fixes and enhancements
16243         * DataGrid.cs: fixes and enhancements
16244         * DataGridColumnStyle.cs:  fixes and enhancements
16245
16246 2005-06-22  Jackson Harper  <jackson@ximian.com>
16247
16248         * TabControl.cs: Add some missing methods that just call into the
16249         base. Make the TabPageCollection's IList interface behave in the
16250         same manner as the MS implementation.
16251
16252 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16253
16254         * TextControl.cs: Added sanity check
16255         * TextBoxBase.cs: 
16256           - Fixed wrapping behaviour, don't set wrap on single line controls
16257             (this fixes the breakage of colordialog introduced in an earlier
16258              checkin)
16259           - Added rudimentary support for autoscrolling right-aligned controls
16260             (still needs fixing, also, center alignment scroll is missing)
16261
16262 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16263         
16264         * ScrollBar.cs: Fixes thumbpos on Maximum values
16265
16266 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16267         
16268         * PropertyGridView.cs: Pass context information to UITypeEditors 
16269
16270 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16271
16272         * TextBoxBase.cs:
16273           - Now calling PositionCaret with absolute space coordinates
16274           - Enabled vertical scrolling
16275           - Better tracking of scrollbar changes, tied into WidthChange
16276             event
16277           - Improved cursor tracking
16278           - Removed debug output
16279         * TextControl.cs:
16280           - PositionCaret coordinates are now works in absolute space, not 
16281             the canvas
16282           - Improved tracking of document size
16283           - Added events for width and height changes
16284
16285 2005-06-21  Peter Bartok  <pbartok@novell.com>
16286
16287         * Form.cs: Set focus to active control when form is activated
16288         * TextControl.cs: 
16289           - Added word-wrap functionality to RecalculateLine() 
16290           - Added some short function descriptions for VS.Net to aid in
16291             writing dependent controls
16292           - Added Caret property, returning the current coords of the caret
16293           - Added ViewPortWidth and ViewPortHeight properties
16294           - Added Wrap property
16295           - Added CaretMoved event
16296           - Removed some old debug code
16297           - Split() can now create soft splits
16298           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16299           - Added method to format existing text
16300           - Fixed size/alignment calculations to use viewport
16301           - RecalculateDocument now can handle changing line-numbers while
16302             calculating lines
16303
16304         * TextBox.cs:
16305           - Added some wrap logic, we don't wrap if alignment is not left
16306           - Added casts for scrollbar var, base class switched types to
16307             also support RichTextBoxA
16308           - Implemented handling of scrollbar visibility flags
16309
16310         * TextBoxBase.cs:
16311           - Switched scrollbars type to RichTextBoxScrollBars to support
16312             RichTextBox
16313           - Added tracking of canvas width/height
16314           - Switched scrollbars to be not selectable (to keep focus on text)
16315           - Added central CalculateDocument() method to handle all redraw
16316             requirements
16317           - Added ReadOnly support
16318           - Added WordWrap support
16319           - Fixed handling of Enter key (we now treat it as a DialogKey)
16320           - Fixed caret positioning when h or v scroll is not zero
16321           - Fixed placing/generation of vertical scrollbar
16322           - Added CalculateScrollBars() method to allow updating scrollbar
16323             limits and visibility
16324           - Fixed handling of horizontal scroll
16325           - Added handling of vertical scroll
16326           - Implemented auto-'jump' when caret moves to close to a left or
16327             right border and there is text to be scrolled into view (currently
16328             there's the potential for a stack overflow, until a bug in
16329             scrollbar is fixed)
16330
16331 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16332         
16333         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16334
16335 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16336
16337         * Mime.cs:
16338         - added inodes.
16339         - return application/x-zerosize for files with size zero
16340           (if no extension pattern matches).
16341         - check matches collection for strings too.
16342         - return only the first mime type if the name value
16343           collection has more than one mime type.
16344
16345 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16346         
16347         * PropertyGrid.cs: Cleaned up some TODOs
16348         * PropertyGridView.cs: Added support for UITypeEditors
16349
16350 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16351         
16352         * DataGrid.cs: clears cached value
16353
16354 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16355
16356         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16357         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16358         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16359         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16360         
16361 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16362
16363         * ThemeWin32Classic.cs: fixes colour
16364
16365 2005-06-15  Peter Bartok  <pbartok@novell.com>
16366
16367         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16368         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16369         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16370         * Control.cs: Added some MWFCategory and MWFDescription attributes
16371         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16372
16373 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16374
16375         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16376         usage
16377
16378 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16379
16380         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16381         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16382         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16383         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16384         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16385         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16386
16387 2005-06-13  Jackson Harper  <jackson@ximian.com>
16388
16389         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16390         isn't printed when the user enables dropping. (X11 does accept
16391         drops).
16392         
16393 2005-06-13  Jackson Harper  <jackson@ximian.com>
16394
16395         * TreeView.cs: Remove some TODOS.
16396
16397 2005-06-13  Jackson Harper  <jackson@ximian.com>
16398
16399         * Form.cs: Hook into the mdi framework.
16400         * MdiClient.cs: Use the base control collections add method so
16401         parents get setup correctly. Set the default back colour and dock
16402         style.
16403         * MdiChildContext.cs: New class, this bad actor handles an
16404         instance of an MDI window. Right now there is only basic
16405         support. You can drag, close, and resize windows. Minimize and
16406         Maximize are partially implemented.
16407
16408 2005-06-13  Jackson Harper  <jackson@ximian.com>
16409
16410         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16411         freaky when both vals are negative. NOTE: There are probably other
16412         places in XplatUIX11 that this needs to be done.
16413
16414 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16415
16416         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16417         * DataGridColumnStyle.cs: fixes signature
16418
16419 2005-06-12  Jackson Harper  <jackson@ximian.com>
16420
16421         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16422         windows.
16423
16424 2005-06-11  Jackson Harper  <jackson@ximian.com>
16425
16426         * StatusBarPanel.cs: Signature cleanups. Implement
16427         BeginInit/EndInit.
16428
16429 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16430
16431         * DataGridTextBoxColumn.cs: Honors aligment
16432         * GridColumnStylesCollection.cs: Contains is case unsensitive
16433         * GridTableStylesCollection.cs: several fixes
16434         * DataGridTableStyle.cs: default column creation
16435         * DataGridDrawingLogic.cs: fixes
16436         * CurrencyManager.cs: ListName property
16437         * DataGrid.cs: multiple styles support
16438         * DataGridColumnStyle.cs: fixes
16439         
16440
16441 2005-06-10  Peter Bartok  <pbartok@novell.com>
16442
16443         * Control.cs(Select): Moved SetFocus call to avoid potential
16444           loops if controls change the active control when getting focus
16445         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16446           the up/down buttons
16447
16448 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16449
16450         * ImageListConverter.cs: Implemented
16451
16452 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16453
16454         * MonthCalendar.cs: Wired in NumericUpDown control for year
16455
16456 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16457
16458         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16459           DoubleClick events, since they are not meant to be fired.
16460
16461 2005-06-09  Peter Bartok  <pbartok@novell.com>
16462
16463         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16464           Jonathan's standalone controls into MWF, implemented missing
16465           events, attributes and methods; added xxxAccessible classes
16466         * AccessibleObject.cs: Made fields internal so other classes
16467           can change them if needed
16468
16469 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16470
16471         * UpDownBase.cs: Complete implementation
16472         * NumericUpDown.cs: Complete implementation
16473         * DomainUpDown.cs: Complete implementation
16474
16475 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16476
16477         * DataGridTextBoxColumn.cs: drawing fixes
16478         * DataGridCell.cs: fixes ToString method to match MSNet
16479         * DataGridTableStyle.cs: fixes
16480         * DataGridBoolColumn.cs: fixes, drawing
16481         * DataGridDrawingLogic.cs: fixes, new methods
16482         * DataGridTextBox.cs: Keyboard and fixes
16483         * DataGrid.cs:
16484                 - Keyboard navigation
16485                 - Scrolling fixes
16486                 - Row selection (single, multiple, deletion, etc)
16487                 - Lots of fixes
16488         
16489 2005-06-07  Jackson Harper  <jackson@ximian.com>
16490
16491         * ThemeWin32Classic.cs: Clear the background area when drawing
16492         buttons.
16493
16494 2005-06-06  Peter Bartok  <pbartok@novell.com>
16495
16496         * ImageListStreamer.cs: Fixed signature for GetData
16497         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16498         * ComboBox.cs:
16499           - Added missing ChildAccessibleObject class
16500           - Added missing OnXXXFocus overrides, switched to using those
16501             instead of the event handler
16502         * Control.cs:
16503           - Added Parent property for ControlAccessibleObject
16504           - Fixed signatures
16505           - Fixed attributes
16506           - Added ResetBindings()
16507         * ListBindingConverter.cs: Implemented some methods
16508         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16509         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16510         * ContainerControl.cs: Fixed signature, now subscribing to the
16511           ControlRemoved event instead of overriding the handler, LAMESPEC
16512         * CurrencyManager.cs: Added missing attribute
16513         * MonthCalendar.cs: Added missing properties
16514
16515 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16516
16517         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16518         
16519 2005-06-06  Gaurav Vaish and Ankit Jain
16520
16521         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16522         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16523         
16524 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16525
16526         * Control.cs: fixes CreateParams Width / Height.
16527
16528 2005-06-05  Peter Bartok  <pbartok@novell.com>
16529
16530         * Win32DnD.cs: Removed compilation warnings
16531
16532 2005-06-05  Peter Bartok  <pbartok@novell.com>
16533
16534         * Control.cs (CreateParams): Since we don't know if one of the
16535           properties we use is overridden, lets make sure if we fail accessing
16536           we continue with a backup plan
16537
16538 2005-06-05  Peter Bartok  <pbartok@novell.com>
16539
16540         * Win32DnD.cs:
16541           - Removed debug output
16542           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16543             struct
16544           - Plugged resource leak
16545         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16546           MS size
16547
16548 2005-06-05  Peter Bartok  <pbartok@novell.com>
16549
16550         * XplatUIWin32.cs: Removed DnD code
16551         * Win32DnD.cs: Implemented drop source and drop target functionality
16552
16553 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16554
16555         * UpDownBase.cs: remove duplicate addition of event, enable some code
16556         that was commented out.
16557         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16558         Validate input when a key is pressed. It works fine now for every
16559         combination of Hexadecimal. Only missing some drawing love when sharing
16560         space with other controls.
16561
16562 2005-06-04  Peter Bartok  <pbartok@novell.com>
16563
16564         * Control.cs:
16565           - We need to pass a window for DragDrop, so enable callback events
16566           - Added DnD callback events when being a DragSource
16567         * XplatUI.cs (StartDrag): Added window handle argument
16568         * XplatUIDriver.cs (StartDrag): Added window handle argument
16569         * QueryContinueDragEventArgs: Made fields internally accessible so
16570           drivers can set them
16571         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16572           can set them
16573
16574 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16575
16576         * DataGridTextBoxColumn.cs: column text editing
16577         * DataGridTableStyle.cs: Respect columns styles created by the user
16578         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16579         * DataGridBoolColumn.cs: bool column editing
16580         * DataGrid.cs: fixes to scrolling, properties, etc
16581         * DataGridTextBox.cs: handle keyboard
16582         * DataGridColumnStyle.cs: fixes
16583
16584 2005-06-02  Jackson Harper  <jackson@ximian.com>
16585
16586         * ImageListStreamer.cs: Somewhat broken implementation of
16587         GetObjectData. The RLE needs some work to match MS properly.
16588
16589 2005-06-02  Jackson Harper  <jackson@ximian.com>
16590
16591         * X11Dnd.cs: Attempting to keep at least one file in MWF
16592         monostyled.
16593
16594 2005-06-02  Peter Bartok  <pbartok@novell.com>
16595
16596         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16597           that way
16598
16599 2005-06-02  Peter Bartok  <pbartok@novell.com>
16600
16601         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16602         * XplatUI.cs: Added DoDragDrop() method
16603         * XplatUIDriver.cs: Added DoDragDrop() method
16604
16605 2005-06-02  Jackson Harper  <jackson@ximian.com>
16606
16607         * Splitter.cs: Implement BorderStyle.
16608
16609 2005-06-02  Jackson Harper  <jackson@ximian.com>
16610
16611         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16612         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16613         X11 using XDND.
16614
16615 2005-06-02  Peter Bartok  <pbartok@novell.com>
16616
16617         * DataObject.cs:
16618           - Added Data setter
16619           - Fixed broken insertion code for SetData, now also
16620             overwrites any existing entry of the same format name
16621         * Hwnd.cs: Added list of pointers that automatically gets
16622           freed when the window is disposed
16623         * XplatUI.cs: Call driver initialization method when loading
16624           a driver
16625         * Control.cs:
16626           - OnDragLeave takes EventArgs, not DragEventArgs
16627           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16628             supported
16629           - Forces style update when drop state changes
16630         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16631           not perfect since we cannot (yet) call the IDataObject.GetData()
16632           method, we keep getting 0x80004005 error, dunno why)
16633
16634 2005-06-02  Peter Bartok  <pbartok@novell.com>
16635
16636         * DragEventArgs.cs: Make fields internal so we can cache the
16637           object and re-set the fields from XplatUI
16638
16639 2005-06-02  Jackson Harper  <jackson@ximian.com>
16640
16641         * Control.cs: Add some internal methods so the DnD subsystem can
16642         raise DnD events. Also call into the driver when AllowDrop is set.
16643         * XplatUI.cs:
16644         * XplatUIDriver.cs: New method for setting whether or not a window
16645         is allowed to accept drag and drop messages.
16646                 
16647 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16648         
16649         * ScrollBar.cs: Make sure that values sent in Scroll events
16650         are always between Maximum and Minimum.
16651
16652 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16653
16654         * Menu.cs: Call MenuChanged when menuitem visibility has been
16655         changed.
16656         * MenuItem.cs: Rebuild menu when item is (not) visible.
16657         * MainMenu.cs: MainMenu has special MenuChanged.
16658         * Theme.cs: Caption and FrameBorderSize are not fixed.
16659         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16660         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16661         * XplatUIX11.cs,
16662         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16663         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16664
16665 2005-05-30  Jackson Harper  <jackson@ximian.com>
16666
16667         * DataFormat.cs: We can't statically initialize this stuff because
16668         it calls into the xplatui and could create a loop. So we lazy init
16669         it.
16670
16671 2005-05-28  Jackson Harper  <jackson@ximian.com>
16672
16673         * Control.cs: Proper implementation of Product(Name/Version).
16674
16675 2005-05-27  Jackson Harper  <jackson@ximian.com>
16676
16677         * DataObject.cs: Dont crash if no data is found.
16678
16679 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16680         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16681                 as per status page, guessing it should be set to true
16682
16683 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16684
16685         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16686         * DataGridTableStyle.cs: set proper formatting text, def header text
16687         * ThemeWin32Classic.cs: new themable paramaters
16688         * DataGridBoolColumn.cs: paint check box, get data, fixes
16689         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16690         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16691         * DataGridColumnStyle.cs: fixes
16692         * Theme.cs: new themable paramaters
16693                 
16694 2005-05-26  Peter Bartok  <pbartok@novell.com>
16695
16696         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16697
16698 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16699         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16700
16701 2005-05-24  Peter Bartok  <pbartok@novell.com>
16702
16703         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16704           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16705           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16706           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16707           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16708           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16709           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16710           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16711           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16712           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16713           missing attributes, etc
16714         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16715
16716 2005-05-24  Peter Bartok  <pbartok@novell.com>
16717
16718         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16719           when user tries to get help
16720         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16721           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16722           to suppress warnings
16723         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16724           avoid unreachable code warning
16725
16726 2005-05-20  Peter Bartok  <pbartok@novell.com>
16727
16728         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16729
16730 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16731
16732         * DataGridTextBoxColumn.cs: Basic painting methods
16733         * DataGridTableStyle.cs: Set table style in the column
16734         * ThemeWin32Classic.cs: Use Theme for colors
16735         * DataGridDrawingLogic.cs: Implement more drawing
16736         * DataGrid.cs: drawing, theming, enhacements, fixes
16737         * DataGridColumnStyle.cs: fixes, drawing
16738         * Theme.cs: theming for Datagrid
16739
16740 2005-05-20  Peter Bartok  <pbartok@novell.com>
16741
16742         * Cursor.cs: Implemented GetObjectData() method
16743
16744 2005-05-20  Peter Bartok  <pbartok@novell.com>
16745
16746         * Cursors.cs: Added setting of cursor name
16747         * Cursor.cs:
16748           - Implemented constructors
16749           - Implemented Draw and DrawStretched
16750           - Implemented Current property
16751           - Implemented == and != operators
16752           - Implemented Dispose()
16753           - Implemented ToString
16754           - Added missing attributes
16755         * XplatUIX11.cs:
16756           - Added missing reset for OverrideCursor when DoEvents is called
16757           - Fixed creation of cursor, logic was wrong
16758         * XplatUIWin32.cs:
16759           - Added missing reset for OverrideCursor when DoEvents is called
16760           - Fixed creation of cursor, bit arrays were swapped
16761         * Clipboard.cs: Removed obsolete MonoTODO attribute
16762
16763 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16764
16765         * ComboBox.cs: fixes OnSelectedItemChanged
16766         * ControlBindingsCollection.cs: fixes item range check
16767
16768 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16769
16770         * UpDownBase.cs:
16771                 - Calc preferred height properly
16772                 - Implement missing properties
16773                 
16774         * NumericUpDown.cs: Implement missing events
16775
16776 2005-05-19  Jackson Harper  <jackson@ximian.com>
16777
16778         * TabControl.cs: New method that resizes the tab pages before
16779         redrawing them. This as needed as the control is double buffered
16780         and sizing will not be recalculated unless ResizeTabPages is
16781         called.
16782         * TabPage.cs: Set base.Text instead of Text in the constructor so
16783         that UpdateOwner does not get called. Use the new Redraw method of
16784         TabControl instead of Refresh so the sizing is recalculated.
16785         * ThemeWin32Classic.cs: Draw the text for button tabs.
16786
16787 2005-05-19  Jackson Harper  <jackson@ximian.com>
16788
16789         * Control.cs: Paint control background images. Fix typo where
16790         PaintControlBackground was not getting called correctly.
16791
16792 2005-05-19  Peter Bartok  <pbartok@novell.com>
16793
16794         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16795           I can investigate, apparently I broke FileDialog
16796
16797 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16798
16799         * AxHost.cs: Some simple properties.
16800         * Control.cs: window must be accessible after ctor.
16801         * Form.cs: Added TransparencyKey property.
16802         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16803         * XplatUIWin32.cs: SetBorderStyle implemented.
16804
16805 2005-05-18  Peter Bartok  <pbartok@novell.com>
16806
16807         * DataObject.cs: Entries are not global but particular to the
16808           DataObject, now it behaves that way
16809         * XplatUIWin32.cs: Implemented Clipboard methods
16810         * Clipboard.cs: Implemented
16811         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16812         * XplatUIOSX.cs: Updated to final clipboard prototypes
16813         * XplatUIX11.cs: Implemented Clipboard methods
16814         * XplatUIDriver.cs: Updated to final clipboard prototypes
16815         * XplatUIStructs.cs:
16816           - Added BITMAPINFOHEADER struct
16817           - Added ClipboardFormats enum
16818         * X11Structs.cs:
16819           - Added ClipboardStruct
16820           - Added Atom enum items for clipboard types
16821           - Fixed atom types for Selection event structures
16822         * DataFormats.cs:
16823           - Added internal properties and methods for drivers to enumerate
16824             all known formats
16825           - Switched initialization method to allow drivers to assign their
16826             own IDs even for the MS predefined clipboard IDs
16827         * XplatUI.cs: Updated to final clipboard interface
16828
16829 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16830         * PropertyGridView.cs: Fixed compiler warnings.
16831
16832 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16833         * PropertyGrid.cs: Added some event calls
16834         * PropertyGridView.cs: Change drawing code to use double buffering
16835         * PropertyGridTextBox.cs: Changed Text property name
16836         * GridItem.cs: Added Bounds property.
16837         * GridEntry.cs: Added Bounds property.
16838
16839 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16840
16841         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16842         since GetType() may not return the correct type if the object is
16843         a remoting proxy.
16844
16845 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16846
16847         * TreeNodeCollection.cs: fixes get/set item ranges
16848         
16849 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16850
16851         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16852                 
16853 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16854
16855         * ComboBox.cs: Fix item range comparation
16856         * ListView.cs: Fix item range comparation
16857
16858 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16859
16860         * FontDialog.cs:
16861           - Clear example panel when OnPaint is called
16862           - Better solution for displaying the example panel text
16863           - Select default indexes in the ListBoxes
16864
16865 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16866
16867         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16868
16869 2005-05-11  Peter Bartok  <pbartok@novell.com>
16870
16871         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16872         * SelectionRangeConverter.cs: Implemented
16873         * PropertyGrid.cs: Fixed attribute value
16874         * Control.cs:
16875           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16876           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16877         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16878           that's common to all drivers. First methods to go there are
16879           Sebastien Pouliot's CAS Stack Propagation helper methods
16880         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16881           Sebastien Pouliot for CAS Stack Propagation
16882
16883 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16884
16885         * OSXStructs.cs:
16886           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16887
16888 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16889
16890         * DataGridTextBoxColumn.cs: fixed some members
16891         * GridColumnStylesCollection.cs: indexed column is case insensitive
16892         * DataGridTableStyle.cs: fixes
16893         * ThemeWin32Classic.cs: add new theme parameter
16894         * Theme.cs: add new theme parameter
16895         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16896         * DataGrid.cs: fixes, new internal properties, etc.
16897         * DataGridColumnStyle.cs: allows to set grid value
16898         *
16899
16900 2005-05-10  Peter Bartok  <pbartok@novell.com>
16901
16902         * AccessibleObject.cs:
16903           - Removed MonoTODO attribute on help, method is correct
16904           - Fixed Bounds property
16905         * AxHost.cs: Moved MonoTODO
16906         * ButtonBase.cs: Now setting AccessibleObject properties
16907         * RadioButton.cs: Setting proper AccessibleObject role
16908         * CheckBox.cs: Setting proper AccessibleObject role
16909         * ControlBindingsCollection.cs: Added properties, methods and attributes
16910         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16911           userdefined DataFormats.Format items as well
16912         * ListControl.cs: Removed data_member from the public eye
16913         * OpenFileDialog.cs:
16914           - Made class sealed
16915           - Added missing attributes
16916         * SaveFileDialog.cs: Added missing attributes
16917         * ImageListStreamer.cs: Fixed code that caused warnings
16918         * LinkLabel.cs: Removed unreachable code
16919         * TreeView.cs: Fixed code that caused warnings
16920         * PropertyGridView.cs: Fixed code that caused warnings
16921         * GridColumnStylesCollection.cs: Added missing attributes
16922         * GridTableStylesCollection: Added missing attribute
16923         * PropertyManager: Added .ctor
16924         * SecurityIDType: Added
16925         * DataObject.cs: Implemented class
16926         * LinkArea.cs: Added missing attribute
16927
16928 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16929
16930         * RadioButton.cs: call base method to allow to fire OnClick event
16931         * UpDownBase.cs: OnMouseUp call base method
16932         * CheckedListBox.cs: call base method before returning
16933         * TrackBar.cs: call base method before returning
16934         
16935
16936 2005-05-10  Peter Bartok  <pbartok@novell.com>
16937
16938         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16939           for messages
16940
16941 2005-05-10  Peter Bartok  <pbartok@novell.com>
16942
16943         * DataFormats.cs: Implemented
16944         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16945           XplatUIX11.cs: Added Clipboard APIs
16946         * XplatUIWin32.cs: Implemented Clipboard APIs
16947         * FolderBrowserDialog.cs: Added missing event, attributes
16948
16949 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16950
16951         * CheckBox.cs: call base method to allow to fire OnClick event
16952
16953 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16954
16955         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16956
16957 2005-05-06  Peter Bartok  <pbartok@novell.com>
16958
16959         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16960         * Screen.cs: Implemented
16961         * HelpNavigator.cs: Added
16962         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
16963           property
16964         * HelpProvider.cs: Implemented all we can do until we have a CHM
16965           help library (which means that "What's This" does work now)
16966
16967 2005-05-06  Jackson Harper  <jackson@ximian.com>
16968
16969         * XplatUIX11.cs: Fix waking up the main loop.
16970                 
16971 2005-05-05  Peter Bartok  <pbartok@novell.com>
16972
16973         * XplatUI.cs: Updated revision
16974         * Form.cs: Removed enless loop
16975         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
16976         * Label.cs (OnPaint): Added call to base.OnPaint()
16977         * ToolTip.cs: Made ToolTipWindow reusable for other controls
16978         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
16979         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
16980         * AxHost.cs: Added
16981         * ButtonBase.cs: Moved base.OnPaint() call to end of method
16982         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
16983           to ToolTip.ToolTipWindow for drawing and size methods; this allows
16984           reuse of ToolTipWindow by other controls
16985         * SizeGrip.cs: Moved base.OnPaint() call to end of method
16986         * XplatUIX11.cs: Now clipping drawing area (experimental)
16987         * PictureBox.cs: Moved base.OnPaint() call to end of method
16988         * Theme.cs: Fixed ToolTip abstracts to match new format
16989         * ErrorProvider.cs: Implemented
16990
16991 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
16992
16993         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
16994         * LinkLabel.cs:
16995                 - Adds cursors
16996                 - Handles focus
16997                 - Implements LinkBehavior
16998                 - Fixes many issues
16999
17000 2005-05-03  Jackson Harper  <jackson@ximian.com>
17001
17002         * ListView.cs: Calculate the scrollbar positioning on resize and
17003         paint, so they get put in the correct place.
17004
17005 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17006
17007         * ColorDialogs.cs: The small color panels are now handled by
17008           SmallColorControl. This fixes drawing of the focus rectangle
17009           and adds a 3D border.
17010
17011 2005-05-03  Peter Bartok  <pbartok@novell.com>
17012
17013         * Control.cs: Modified version of Jonathan Chamber's fix for
17014           double-buffering
17015
17016 2005-05-03  Jackson Harper  <jackson@ximian.com>
17017
17018         * ListView.cs: Remove redraw variable. Control now handles whether
17019         or not a redraw needs to be done, and will only raise the paint
17020         event if redrawing is needed.
17021
17022 2005-05-03  Jackson Harper  <jackson@ximian.com>
17023
17024         * Splitter.cs: No decorations for the splitter form. Cache the
17025         hatch brush.
17026
17027 2005-05-03  Jackson Harper  <jackson@ximian.com>
17028
17029         * TreeView.cs: Use dashed lines to connect nodes. Use the
17030         ControlPaint method for drawing the focus rect instead of doing
17031         that in treeview.
17032
17033 2005-05-02  Peter Bartok  <pbartok@novell.com>
17034
17035         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17036
17037 2005-04-29  Jackson Harper  <jackson@ximian.com>
17038
17039         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17040         entire image buffer. Just clear the clipping rectangle.
17041
17042 2005-04-29  Jackson Harper  <jackson@ximian.com>
17043
17044         * ThemeWin32Classic.cs: Don't draw list view items that are
17045         outside the clipping rectangle.
17046
17047 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17048
17049         * ListBox.cs: added horizontal item scroll
17050
17051 2005-04-29  Jackson Harper  <jackson@ximian.com>
17052
17053         * ThemeWin32Classic.cs: Remove some old debug code that was
17054         causing flicker with the new double buffering code.
17055
17056 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17057
17058         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17059         behave like combobox and comboboxlist (still not sure if this is
17060         correct though).
17061
17062 2005-04-28  Jackson Harper  <jackson@ximian.com>
17063
17064         * ThemeWin32Classic.cs: Don't fill the middle of progress
17065         bars. This fills areas outside of the clip bounds that don't need
17066         to be filled.
17067
17068 2005-04-28  Jackson Harper  <jackson@ximian.com>
17069
17070         * Control.cs: Don't expose functionality to touch the image buffers.
17071         * ProgressBar.cs:
17072         * ListView.cs: We do not need to (and no longer can) manipulate
17073         the image buffers directly. All of this is handled by Control.
17074
17075 2005-04-28  Peter Bartok  <pbartok@novell.com>
17076
17077         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17078           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17079           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17080
17081 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17082
17083         * Combobox:
17084                 - Adjust control's height for non-simple comboboxes (bug fix)
17085                 - Remove dead code
17086         * MenuAPI.cs: remove unused var
17087         * ScrollBar.cs: remove unsed var
17088                  
17089         * ListBox.cs: unselect items when clearing
17090
17091 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17092
17093         * ListControl.cs: honors OnPositionChanged and default Selected Item
17094         * ListBox.cs: unselect items when clearing
17095
17096 2005-04-27  Jackson Harper  <jackson@ximian.com>
17097
17098         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17099         if a "correct" keyboard is not found. This will make us not crash,
17100         but might give some users bad keyboard layouts...seems to be the
17101         same thing rewind does.
17102
17103 2005-04-27  Jackson Harper  <jackson@ximian.com>
17104
17105         * BindingManagerBase.cs: Attach the current/position changed
17106         handlers to their respective events.
17107
17108 2005-04-27  Jackson Harper  <jackson@ximian.com>
17109
17110         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17111         not just a blit.
17112         * ThemeWin32Classic.cs: Don't fill the background for picture
17113         boxes. This could overright user drawing.
17114         * ComboBox.cs: Just fill the clipping rect not the entire client
17115         rect when drawing the background. This prevents pieces of the
17116         image buffer from getting overwritten and is theoretically faster.
17117
17118 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17119
17120         * ComboBox.cs: Databinding support fixes, fire missing events
17121         * ListControl.cs: implement missing methods and properties, fixes
17122         * ThemeWin32Classic.cs: Databiding support on Drawing
17123         * CheckedListBox.cs: Databinding support fixes, fire missing events
17124         * ListBox.cs: Databinding support fixes, fire missing events
17125         
17126 2005-04-25  Peter Bartok  <pbartok@novell.com>
17127
17128         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17129
17130 2005-04-25  Jackson Harper  <jackson@ximian.com>
17131
17132         * TreeView.cs: Use the horizontal scrollbars height not width when
17133         determining how much of the client area is available.
17134
17135 2005-04-25  Jackson Harper  <jackson@ximian.com>
17136
17137         * Control.cs: Double buffering is handled differently now. As per
17138         the spec, the extra buffer is created in the WM_PAINT message and
17139         passed down to the control's drawing code.
17140         * GroupBox.cs:
17141         * Label.cs:
17142         * CheckBox.cs:
17143         * ProgressBar.cs:
17144         * RadioButton.cs:
17145         * ColorDialog.cs:
17146         * ComboBox.cs:
17147         * PropertyGridView.cs:
17148         * UpDownBase.cs:
17149         * MessageBox.cs:
17150         * MenuAPI.cs:
17151         * ListView.cs:
17152         * ButtonBase.cs:
17153         * SizeGrip.cs:
17154         * ScrollBar.cs:
17155         * ListBox.cs:
17156         * TrackBar.cs:
17157         * ToolBar.cs:
17158         * PictureBox.cs:
17159         * DateTimePicker.cs:
17160         * StatusBar.cs:
17161         * TreeView.cs: Update to new double buffering system.
17162         * MonthCalendar.cs: Uncomment block, as Capture is now
17163         working. Update to new double buffering
17164         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17165         * PaintEventArgs.cs: New internal method allows us to set the
17166         graphics object. This is used for double buffering.
17167         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17168         rectangle. The internal paint_area var has been removed from
17169         StatusBar. The clipping rect should be used instead.
17170         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17171         * TabPage.cs: The RefreshTabs method was removed, so just call the
17172         tab controls Refresh method now.
17173         * TabControl.cs: Update to new double buffering. Make sure the
17174         handle is created before sizing the tab pages, otherwise we will
17175         get stuck in a loop.
17176
17177 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17178
17179         * LinkLabel.cs: Fix typo, bug #74719; patch
17180           from Borja Sanchez Zamorano
17181
17182 2005-04-22  Jackson Harper  <jackson@ximian.com>
17183
17184         * TreeNode.cs: Implement Handle stuff.
17185         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17186
17187 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17188
17189         * DataGridTextBoxColumn.cs: call base constructors, fixes
17190         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17191         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17192         * DataGridTableStyle.cs: implements create default column styles
17193         * DataGridBoolColumn.cs: which types can handle
17194         * DataGrid.cs: missing methods, fixes, new functionality
17195         * DataGridColumnStyle.cs: fixes
17196
17197 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17198         * FolderBrowserDialog.cs:
17199         - Use a thread to fill the TreeView
17200         - Adjusted some sizes
17201
17202 2005-04-19  Peter Bartok  <pbartok@novell.com>
17203
17204         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17205           property. Fixes #74360.
17206
17207 2005-04-19  Jackson Harper  <jackson@ximian.com>
17208
17209         * XEventQueue.cs: Lock when getting the lockqueue size.
17210         * PictureBox.cs: Call base OnPaint
17211         
17212 2005-04-19  Peter Bartok  <pbartok@novell.com>
17213
17214         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17215           messages were no longer being processed (this broke BeginInvoke)
17216
17217           
17218 2005-04-18  Jackson Harper  <jackson@ximian.com>
17219
17220         * TreeView.cs: buglet that caused node images to get drawn
17221         regardless of whether or not they were in the clipping rectangle.
17222
17223 2005-04-18  Jackson Harper  <jackson@ximian.com>
17224
17225         * CurrencyManager.cs: There are four rules for GetItemProperties:
17226         - If the type is an array use the element type of the array
17227         - If the type is a typed list, use the type
17228         - If the list contains an Item property that is not an object, use
17229         that property
17230         - use the first element of the list if there are any elements in
17231         the list.
17232         
17233 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17234
17235         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17236         click. This handles offsets for scrolling properly and reduces
17237         memory. Also fixed GetNode to not offset now that TopNode works
17238         properly.
17239         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17240         
17241 2005-04-17  Jackson Harper  <jackson@ximian.com>
17242
17243         * CursorConverter.cs: Initial implementation.
17244
17245 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17246
17247         * ListControl.cs: work towards complex data binding support on ListControl
17248         * CurrencyManager.cs: work towards complex data binding support on ListControl
17249         * ListBox.cs: work towards complex data binding support on ListControl
17250
17251
17252 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17253
17254         * GridTableStylesCollection.cs: fixes name and constructor
17255         * DataGridTableStyle.cs: fixes
17256         * DataGridBoolColumn.cs: fixes names and constructors
17257         * DataGrid.cs: define methods and properties. Some init implementations
17258         * DataGridCell.cs: define methods and properties. Some init implementations
17259         * GridTablesFactory.cs: Define methods and properties
17260
17261 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17262
17263         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17264         graphics port changes.  We still want the coordinates in global screen
17265         coordinates.
17266
17267 2005-04-14  Jackson Harper  <jackson@ximian.com>
17268
17269         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17270         check plus minus or checkbox clicks unless those features are enabled.
17271
17272 2005-04-14  Jackson Harper  <jackson@ximian.com>
17273
17274         * TreeView.cs: Add methods for setting the top and bottom visible
17275         nodes. TreeNode::EnsureVisible uses these methods.
17276         * TreeNode.cs: Implement EnsureVisible
17277
17278 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17279
17280         * Form.cs: Pospone menu assignation if the window has not been created yet
17281         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17282         size and position
17283
17284 2005-04-12  Jackson Harper  <jackson@ximian.com>
17285
17286         * TreeView.cs: Set the TopNode properly when scrolling
17287         occurs. This has the added benifit of reducing the amount of
17288         walking that needs to be done when drawing. Also removed an old
17289         misleading TODO.
17290         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17291         
17292 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17293
17294         * Timer.cs: fixes interval setting when the timer is already enabled
17295         
17296 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17297
17298         * FolderBrowserDialog.cs: First approach
17299
17300 2005-04-09  Peter Bartok  <pbartok@novell.com>
17301
17302         * FolderBrowserDialog: Added
17303
17304 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17305
17306         * LinkLabel.cs: move drawing code into the theme
17307         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17308         * Theme.cs: define DrawLinkLabel method
17309
17310 2005-04-05  Jackson Harper  <jackson@ximian.com>
17311
17312         * BindingContext.cs: Use weak references so these bad actors don't
17313         stay alive longer then they need to.
17314
17315 2005-04-05  Jackson Harper  <jackson@ximian.com>
17316
17317         * ListControl.cs: Basic implementation of complex databinding.
17318         * ComboBox.cs:
17319         * ListBox.cs: Add calls to ListControl databinding methods.
17320
17321 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17322
17323         * FileDialog.cs:
17324           - Don't change PopupButtonState to Normal when the
17325             PopupButton gets pressed several times.
17326           - Renamed ButtonPanel to PopupButtonPanel
17327
17328 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17329
17330         * ColorDialog.cs: Use cached objects instead of creating them
17331         * LinkLabel.cs: Use cached objects instead of creating them
17332         * Splitter.cs: Use cached objects instead of creating them
17333         * FontDialog.cs: Use cached objects instead of creating them
17334         * PropertyGridView.cs: Use cached objects instead of creating them
17335         * MessageBox.cs: Use cached objects instead of creating them
17336         * FileDialog.cs: Use cached objects instead of creating them
17337         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17338         * TreeView.cs: Use cached objects instead of creating them
17339         
17340 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17341
17342         * Control.cs: use Equals to compare the font since no == op
17343         * ScrollBar.cs: use Equals to compare the font since no == op
17344
17345 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17346
17347         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17348
17349 2005-04-01  Jackson Harper  <jackson@ximian.com>
17350
17351         * Binding.cs: Implement IsBinding.
17352         * BindingManagerBase.cs:
17353         * PropertyManager.cs:
17354         * CurrencyManager.cs: Add IsSuspended property.
17355
17356 2005-04-01  Jackson Harper  <jackson@ximian.com>
17357
17358         * Binding.cs: Had some IsAssignableFrom calls backwards.
17359
17360 2005-04-01  Jackson Harper  <jackson@ximian.com>
17361
17362         * Binding.cs: Handle null data members when pulling data.
17363         * PropertyManager.cs: Handle the data member being a property that
17364         does not exist.
17365
17366 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17367
17368         * DataGridTextBoxColumn.cs: fixes signature
17369         * DataGrid.cs: calls right constructor
17370
17371 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17372
17373         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17374         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17375         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17376         * DataGridTableStyle.cs: implements DataGridTableStyle
17377         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17378         * DataGridTextBox.cs: implements DataGridTextBox
17379         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17380
17381 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17382
17383         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17384
17385 2005-03-29  Peter Bartok  <pbartok@novell.com>
17386
17387         * Application.cs:
17388           - Properly implemented CompanyName property
17389           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17390             returns a path that includes CompanyName, ProductName and
17391             Version (fixes bug #70330)
17392
17393 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17394
17395         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17396           fixes bug #72588.
17397
17398 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17399
17400         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17401         
17402           - Added ReadOnly CheckBox
17403           - Further refactoring: moved some code from Open-/SaveFileDialog
17404             to FileDialog
17405
17406 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17407
17408         * OpenFileDialog.cs: Fixed CheckFileExists
17409         * FileDialog.cs:
17410           Moved FileView and DirComboBox outside FileDialog class.
17411           They can now be used outside FileDialog
17412
17413 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17414
17415         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17416         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17417
17418 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17419
17420         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17421           - Added missing CreatePrompt property in SaveDialog
17422           - Overall SaveDialog handling should be better now
17423           - Added non standard ShowHiddenFiles property
17424           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17425           - Added InitialDirectory and RestoreDirectory support
17426
17427 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17428
17429         * FileDialog.cs: Made dirComboBox usable
17430
17431 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17432
17433         * FileDialog.cs: Added Filter support (case sensitiv)
17434
17435 2005-03-24  Jackson Harper  <jackson@ximian.com>
17436
17437         * TabControl.cs: Need a couple more pixels for the lines.
17438
17439 2005-03-23  Jackson Harper  <jackson@ximian.com>
17440
17441         * TabControl.cs: Give the tab page focus when it is selected.
17442
17443 2005-03-23  Jackson Harper  <jackson@ximian.com>
17444
17445         * TabControl.cs: Account for the drawing of tabs borders when
17446         invalidating. If the slider was clicked dont do click detection on
17447         the tabs.
17448
17449 2005-03-23  Jackson Harper  <jackson@ximian.com>
17450
17451         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17452
17453 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17454
17455         * CategoryGridEntry.cs: Added
17456         * GridItem.cs: Added helper properties
17457         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17458         * GridEntry.cs: Updated code for collection
17459         * PropertyGrid.cs: Cleaned up some formatting
17460         * PropertyGridView.cs: Added drop down functionality for enums.
17461         * GridItemCollection.cs: Added enumerator logic
17462         * PropertyGridEntry.cs: Added
17463
17464 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17465
17466         * FileDialog.cs:
17467           - Removed unnecessary commented code
17468           - Fixed handling for entering the filename manually in the combobox
17469
17470 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17471
17472         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17473
17474 2005-03-18  Peter Bartok  <pbartok@novell.com>
17475
17476         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17477           them being touching the border
17478
17479 2005-03-18  Peter Bartok  <pbartok@novell.com>
17480
17481         * TextControl.cs: Quick hack to center text better
17482
17483 2005-03-18  Peter Bartok  <pbartok@novell.com>
17484
17485         * ControlPaint.cs:
17486           - Don't throw NotImplemented exceptions, just print a notice once
17487             instead (requested by Miguel). This makes running existing SWF
17488             apps a bit easier
17489         * Control.cs:
17490           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17491           - Added context menu trigger on right click
17492         * Panel.cs: Trigger invalidate on resize
17493         * StatusBar.cs:
17494           - Removed old double-buffer drawing
17495           - Added ResizeRedraw style to force proper update of statusbar
17496         * ListView.cs:
17497           - Removed debug output
17498         * ThemeWin32Classic.cs:
17499           - Fixed drawing of status bar, now draws Text property if there
17500             are no defined panels
17501
17502 2005-03-18  Jackson Harper  <jackson@ximian.com>
17503
17504         * ImageList.cs: When the image stream is set pull all the images
17505         from it.
17506         * ImageListStreamer.cs: Implement reading image list streams.
17507
17508 2005-03-18  Peter Bartok  <pbartok@novell.com>
17509
17510         * ThemeWin32Classic.cs (DrawPictureBox):
17511           - Fixed calculations for centered drawing
17512           - Fixed drawing for normal mode, not scaling the image on normal
17513
17514 2005-03-18  Peter Bartok  <pbartok@novell.com>
17515
17516         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17517           textbox
17518         * FileDialog.cs:
17519           - Made Open/Save button the accept button for FileDialog
17520           - Tied the cancel button to the IButtonControl cancel button
17521           - Save/Open now properly builds the pathname
17522           - Now handles user-entered text
17523           - Preventing crash on right-click if no item is selected
17524           - Fixed Text property, now uses contents of textbox
17525           - Fixed SelectedText property, now just returns the text part that
17526             is selected in the text box
17527
17528 2005-03-18  Jackson Harper  <jackson@ximian.com>
17529
17530         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17531         rect, make sure to de-adjust the interior rect after drawing the
17532         tab text.
17533
17534 2005-03-18  Peter Bartok  <pbartok@novell.com>
17535
17536         * MenuAPI.cs: Remove menu *before* executing selected action to
17537           prevent the menu from 'hanging around'
17538           
17539 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17540
17541         * XplatUIOSX.cs: Implemented WorkingArea property
17542
17543 2005-03-17  Peter Bartok  <pbartok@novell.com>
17544
17545         * XplatUIX11.cs: Fixed menu coord calculations
17546         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17547           for calculating offsets
17548
17549 2005-03-17  Peter Bartok  <pbartok@novell.com>
17550
17551         * Hwnd.cs: Do not consider menu presence for default client
17552           rectangle location/size
17553         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17554           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17555           translation functions
17556         * FileDialog.cs: Fixed (what I presume is a) typo
17557
17558 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17559
17560         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17561           X access (avoids X-Async errors)
17562
17563 2005-03-16  Jackson Harper  <jackson@ximian.com>
17564
17565         * TabControl.cs: Raise the SelectedIndexChanged event.
17566
17567 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17568
17569         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17570           - Removed vertical ToolBar and replaced it with a custom panel
17571             (desktop and home button already work)
17572           - Added Help button (some controls get resized or relocated then)
17573           - Draw correct text depending on Open or Save.
17574           - Fixed some typos...
17575
17576 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17577
17578         * ScrollBar.cs:
17579           - Only change Maximum and Minimum when need it (bug fix)
17580
17581 2005-03-15  Peter Bartok  <pbartok@novell.com>
17582
17583         * Form.cs: Use Handle for icon, to trigger creation if
17584           the window does not yet exist
17585         * Control.cs:
17586           - CanSelect: Slight performance improvement
17587           - Focus(): Preventing possible recursion
17588           - Invalidate(): Removed ControlStyle based clear flag setting
17589           - WM_PAINT: fixed logic for calling OnPaintBackground
17590           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17591             EraseWindowBackground if the control doesn't paint background
17592         * XplatUIWin32.cs:
17593           - Moved EraseWindowBackground() method to internal methods
17594           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17595             is sent via SendMessage on BeginPaint call on Win32
17596         * XplatUIX11.cs:
17597           - Added EraseWindowBackground() method
17598           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17599             PaintEventStart, which more closely matches Win32 behaviour
17600           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17601           - Fixed SetFocus() to properly deal with client and whole windows
17602         * Hwnd.cs: Added ErasePending property
17603         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17604         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17605
17606 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17607
17608         * XplatUIOSX.cs:
17609           - Fix hard loop when timers exist.
17610           - Fix bugs with middle and right click for 3 button mice.
17611
17612 2005-03-11  Peter Bartok  <pbartok@novell.com>
17613
17614         * XplatUIX11.cs:
17615           - get_WorkingArea: Need to call X directly, GetWindowPos only
17616             returns cached data now
17617           - Added sanity check to GetWindowPos hwnd usage
17618
17619 2005-03-11  Jackson Harper  <jackson@ximian.com>
17620
17621         * BindingManagerBase.cs: This method isn't used anymore as
17622         PullData now updates the data in the control.
17623
17624 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17625
17626         * Form.cs: fixes menu drawing on X11
17627         * MenuAPI.cs:  fixes menu drawing on X11
17628
17629 2005-03-11  Peter Bartok  <pbartok@novell.com>
17630
17631         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17632           from Jonathan Gilbert; should fix bug #73606
17633         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17634           in Screen coordinates. Thanks, Jordi.
17635         * Form.cs: Added missing attribute
17636
17637 2005-03-11  Peter Bartok  <pbartok@novell.com>
17638
17639         * Form.cs:
17640           - Rudimentary Mdi support
17641           - Removed outdated FormParent code
17642           - Implemented lots of missing properties and methods, still missing
17643             transparency support
17644           - Added missing attributes
17645           - Implemented support for MaximumBounds
17646           - Added firing of various events
17647         * XplatUI.cs: Added SetIcon() method
17648         * XplatUIDriver.cs: Added SetIcon() abstract
17649         * XplatUIOSX.cs: Stubbed out SetIcon() method
17650         * XplatUIX11.cs:
17651           - Implemented SetIcon() support
17652           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17653           - Switched to unix line endings
17654         * XplatUIWin32.cs:
17655           - Made POINT internal so for can access it as part of MINMAX
17656           - Implemented SetIcon() support
17657           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17658             native Mdi support again, might have to go managed)
17659         * Control.cs: Now fires the StyleChanged event
17660         * MdiClient.cs: Added; still mostly empty
17661
17662 2005-03-10  Peter Bartok  <pbartok@novell.com>
17663
17664         * SaveFileDialog.cs: Added emtpy file
17665
17666 2005-03-08  Peter Bartok  <pbartok@novell.com>
17667
17668         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17669           in turn triggers OnCreateContro) when creating a handle for the
17670           first time.
17671         * TextControl.cs: Fixed endless loop in certain cases when
17672           replacing the current selection
17673
17674 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17675
17676         * ScrollBar.cs:
17677           - Honors NewValue changes in Scroll events allowing apps to change it
17678           - Adds First and Last Scroll events
17679           - Fixes Thumb events
17680
17681 2005-03-07  Peter Bartok  <pbartok@novell.com>
17682
17683         * Hwnd.cs: Added DefaultClientRectangle property
17684         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17685           more detailed debug information
17686         * XplatUIX11.cs:
17687           - Fixed size-change feedback loop, where we would pull an old size
17688             off the queue and mistakenly change our window's size to an
17689             earlier value
17690           - Now compressing ConfigureNotify events, to reduce looping and
17691             redraw issues
17692         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17693           is called
17694
17695 2005-03-07  Jackson Harper  <jackson@ximian.com>
17696
17697         * Binding.cs: Push data pushes from data -> property. Check if the
17698         property is readonly when attempting to set it.
17699
17700 2005-03-07  Jackson Harper  <jackson@ximian.com>
17701
17702         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17703         instead of IsSubclassOf. Pulling data now sets the value on the
17704         control.
17705         * PropertyManager.cs:
17706         * CurrencyManager.cs: Just need to pull data when updating now,
17707         because PullData will set the value on the control.
17708
17709 2005-03-04  Jackson Harper  <jackson@ximian.com>
17710
17711         * Binding.cs: Implement data type parsing and converting on pulled
17712         data. TODO: Are there more ways the data can be converted?
17713
17714 2005-03-04  Jackson Harper  <jackson@ximian.com>
17715
17716         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17717         controls Validating method so we can repull the data when the
17718         control loses focus.
17719
17720 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17721
17722         * ColumnHeader.cs:
17723           - Fixes null string format
17724           
17725         * ListView.cs:
17726           - Adds enum type checks
17727           - Fixes redrawing and recalc need after changing some properties
17728           - Fixes on focus_item set after the event
17729           - Fixes adding columns after the control has been created
17730           
17731         * ThemeWin32Classic.cs:
17732           - Fixes CheckBox focus rectangle
17733           - Fixes ColumnHeader drawing
17734
17735
17736 2005-03-03  Jackson Harper  <jackson@ximian.com>
17737
17738         * Binding.cs: Bind to <Property>Changed events so we can detect
17739         when properties are changed and update the data.
17740
17741 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17742
17743         * ImageList.cs:
17744           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17745           - Fixes ImageList constructor with ImageList container
17746           - Fixes image scaling (wrong parameters at DrawImage)
17747
17748 2005-02-02  Jackson Harper  <jackson@ximian.com>
17749
17750         * Binding.cs: Make property searches case-insensitive. Eliminate
17751         some duplicated code.
17752
17753 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17754
17755         * ComboBox.cs:
17756                 - Handle focus event
17757                 - Fix scrollbar events
17758                 - Discard highlighted item if remove it
17759                 - Fixes SelectedItem with strings
17760
17761 2005-03-01  Peter Bartok  <pbartok@novell.com>
17762
17763         * Control.cs:
17764           - Fixed Visible property, now follows (once again) parent chain
17765             to return false if any control in the chain is visible=false
17766           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17767           - Fixed several places where is_visible instead of Visible was used
17768           - Implemented FIXME related to focus selection when setting focused
17769             control to be invisible
17770
17771         * XplatUIWin32.cs: Now using proper method to find out if window is
17772           visible. Thanks to Jordi for pointing it out
17773
17774 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17775
17776         * ComboBox.cs: show/hide scrollbar instead of creating it
17777
17778 2005-02-27  Jackson Harper  <jackson@ximian.com>
17779
17780         * CurrencyManager.cs: Add PositionChanged stuff.
17781
17782 2005-02-27  Peter Bartok  <pbartok@novell.com>
17783
17784         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17785         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17786         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17787         * XplatUIX11.cs:
17788           - Implemented GetMenuDC()
17789           - Implemented GetMenuOrigin()
17790           - Implemented ReleaseMenuDC()
17791           - Implemented generation of WM_NCPAINT message
17792           - Implemented generation and handling of WM_NCCALCSIZE message
17793         * Form.cs: Added debug helper message for Jordi's menu work
17794         * Hwnd.cs:
17795           - Modified ClientRect property; added setter, fixed getter to handle
17796             setting of ClientRect
17797           - Added MenuOrigin property
17798
17799 2005-02-26  Peter Bartok  <pbartok@novell.com>
17800
17801         * XplatUIX11.cs:
17802           - Destroys the caret if a window that's being destroyed contains it
17803           - Ignores expose events coming from the X11 queue for windows that
17804             already are destroyed
17805           - Now uses the proper variable for handling DestroyNotify, before we
17806             marked the wrong window as destroyed
17807           - Improved/added some debug output
17808
17809 2005-02-26  Peter Bartok  <pbartok@novell.com>
17810
17811         * X11Keyboard.cs: Fixes to work on 64bit systems
17812
17813 2005-02-26  Peter Bartok  <pbartok@novell.com>
17814
17815         * Control.cs:
17816           - Now calling OnHandleDestroyed from DestroyHandle()
17817             instead of Dispose()
17818           - Removed bogus call to controls.Remove() from DestroyHandle()
17819
17820 2005-02-26  Peter Bartok  <pbartok@novell.com>
17821
17822         * Control.cs: Properly destroy child windows when our handle is
17823           destroyed
17824
17825 2005-02-25  Peter Bartok  <pbartok@novell.com>
17826
17827         * XplatUI.cs:
17828           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17829           - Alphabetized Static Methods and Subclasses
17830
17831         * XplatUIX11.cs:
17832           - Added XException class to allow custom handling of X11 exceptions
17833           - Created custom X11 error handler, tied into XException class
17834           - Added support for MONO_XEXCEPTIONS env var to allow the user
17835             to either throw an exception on X errors or continue running
17836             after displaying the error
17837           - Added handling of DestroyNotify message
17838           - Added handler for CreateNotify message (still disabled)
17839           - Improved (tried to at least) Where method to provide file and lineno
17840         * X11Structs.cs:
17841           - Added XErrorHandler delegate
17842           - Added XRequest enumeration (to suppor translation of errors)
17843
17844 2005-02-25  Jackson Harper  <jackson@ximian.com>
17845
17846         * PropertyManager.cs: Implement editing features
17847         * CurrencyManager.cs:
17848         * Binding.cs: First attempt at UpdateIsBinding
17849         * BindingManagerBase.cs: Call UpdateIsBinding before
17850         pushing/pulling data.
17851
17852 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17853
17854         * MenuAPI.cs: Respect disabled items
17855         * ThemeWin32Classic.cs
17856                 - Caches ImageAttributes creation for DrawImageDisabled
17857                 - Fixes vertical menu line drawing
17858                 - Draws disabled arrows in disable menu items
17859
17860 2005-02-24  Peter Bartok  <pbartok@novell.com>
17861
17862         * Hwnd.cs:
17863           - Added UserData property to allow associating arbitrary objects
17864             with the handle
17865           - Fixed leak; now removing Hwnd references from static windows array
17866         * XplatUIWin32.cs:
17867           - Fixed Graphics leak in PaintEventEnd
17868           - Removed usage of HandleData, switched over to Hwnd class
17869         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17870
17871 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17872
17873         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17874         * ScrollBar.cs: Fixes bug
17875         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17876          keyboard navigation enhancements
17877
17878 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17879
17880         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17881         * GroupBox.cs: Add control styles
17882         * Label.cs: Add control styles
17883         * UpDownBase.cs: Add control styles
17884         * ListBox.cs: Add control styles
17885         * XplatUIWin32.cs: Fixes wrong parameter order
17886
17887
17888 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17889
17890         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17891
17892 2005-02-23  Jackson Harper  <jackson@ximian.com>
17893
17894         * PropertyManager.cs: Implement property binding. This doesn't
17895         seem to work yet though as (I think) there are some bugs in
17896         System.ComponentModel.PropertyDescriptor.
17897         * BindingContext.cs: Use new PropertyManager constructor.
17898
17899 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17900
17901         * ProgressBar.cs: use clip region in ProgressBar
17902         * ThemeWin32Classic.cs: use clip region in ProgressBar
17903
17904 2004-02-22  Jackson Harper  <jackson@ximian.com>
17905
17906         * BindingsCollection.cs: Remove some debug code.
17907
17908 2005-02-22  Jackson Harper  <jackson@ximian.com>
17909
17910         * BindingContext.cs:
17911         * ControlBindingsCollection.cs:
17912         * CurrencyManager.cs:
17913         * Binding.cs:
17914         * BindingManagerBase.cs: Initial implementation
17915         * BindingsCollection.cs: Add an internal contains method that the
17916         BindingManagerBase uses to ensure bindings aren't added twice to
17917         the collection.
17918         * PropertyManager.cs: Stubbed out.
17919         * Control.cs:
17920         * ContainerControl.cs: Hook up databinding
17921         
17922 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17923
17924         * XplatUIOSX.cs:
17925           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17926           Fixed Invalidate/Update chain.
17927           Fixed tons of other minor bugs (this is almost a complete rewrite).
17928
17929 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17930
17931         * ComboBox.cs: do subcontrol creation when the control is created
17932
17933 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17934
17935         * Label.cs: fixes image drawing (image and imagelist)
17936         * ThemeWin32Classic.cs: cache brushes
17937         
17938 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17939
17940         * Form.cs: Move menu drawing code to Theme class
17941         * ComboBox.cs: Move ComboBox drawing code to Theme class
17942         * MenuItem.cs: Move menu drawing code to Theme class
17943         * MenuAPI.cs: Move menu drawing code to Theme class
17944         * ThemeWin32Classic.cs: New methods
17945         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17946         * ListBox.cs: Move Listbox drawing code to Theme class
17947         * Theme.cs: New methods
17948
17949 2005-02-20  Peter Bartok  <pbartok@novell.com>
17950
17951         * Control.cs:
17952           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17953             only process mnemonics on those)
17954           - Fixed event sequence for key handling; first calling
17955             ProcessKeyEventArgs now
17956         * TextBoxBase.cs:
17957           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17958             for processing non-character keys
17959           - Fixed WM_CHAR to generate proper event sequence before processing
17960         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
17961           generation
17962
17963 2005-02-19  Peter Bartok  <pbartok@novell.com>
17964
17965         * UserControl.cs: Added TextChanged event; added attributes
17966         * SizeGrip.cs: Implemented resizing and optional display of grip
17967         * Form.cs: Fixed attribute
17968         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
17969           Changed meaning of ScrollWindow bool argument; instead of the
17970           clear attribute (which will be true usually anyway), it gives the
17971           option of moving child controls as well.
17972         * XplatUIX11.cs:
17973           - Changed to match new ScrollWindow argument
17974           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
17975             now handles the implicit parent window a WM puts around us
17976         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
17977           to work)
17978         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
17979         * TreeView.cs: Adjusted to new ScrollWindow arguments
17980
17981 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17982
17983         * Form.cs: Menu integration with non-client area
17984         * MenuItem.cs: Menu integration with non-client area
17985         * MenuAPI.cs: Menu integration with non-client area
17986
17987 2005-02-18  Peter Bartok  <pbartok@novell.com>
17988
17989         * MethodInvoker.cs: Added
17990         * MdiLayout.cs: Added
17991         * SendKeys.cs: Started implementation
17992         * ErrorIconAlignment.cs: Added
17993
17994 2005-02-18  Peter Bartok  <pbartok@novell.com>
17995
17996         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
17997         * Form.cs: Added handling for Menu-related Non-client messages
17998
17999 2005-02-17  Peter Bartok  <pbartok@novell.com>
18000
18001         * UpDownBase.cs: Fixed typo, compilation errors
18002         * DomainUpDown.cs: Fixed attribute value
18003
18004 2005-02-16  Miguel de Icaza  <miguel@novell.com>
18005
18006         * UpDownBase.cs: Attach entry events.
18007         Propagate events.
18008         Add ForeColor property, Focused, InterceptArrowKeys (interception
18009         does not work yet).
18010
18011 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
18012
18013         * Form.cs:
18014                 - Redraw non client are on Setmenu
18015                 - Calc proper menu starting point
18016
18017 2005-02-17  Peter Bartok  <pbartok@novell.com>
18018
18019         * Application.cs: Fixed message_filter check
18020
18021 2005-02-17  Peter Bartok  <pbartok@novell.com>
18022
18023         * Application.cs: Now calls registered message filters
18024         * DockStyle.cs: Fixed attribute
18025         * Form.cs: Fixed attribute
18026         * Menu.cs: Fixed attribute
18027         * ToolTip.cs: Fixed attribute
18028         * TreeNode.cs: Added missing attributes and arranged in regions
18029         * PropertyGrid.cs: Fixed signatures
18030         * TreeNodeCollection.cs: Added attributes
18031         * Splitter.cs: Added missing attributes; arranged into regions
18032         * TabPage.cs: Added missing attributes; arranged into regions
18033         * TextBoxBase.cs: Added missing attributes
18034         * TextBox.cs: Added missing attributes
18035         * ArrangeDirection.cs: Added missing attributes
18036         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18037         * ToolBarButton.cs: Fixed attributes
18038         * AnchorStyles.cs: Fixed attribute
18039         * TrackBar.cs: Fixed attributes
18040         * TabControl.cs: Added missing attributes and arranged into regions
18041         * ToolBar.cs: Fixed attribute
18042         * StatusBar.cs: Fixed signature, organized into regions and added
18043           attributes
18044         * StatusBarPanel.cs: Fixed attributes
18045         * ContentsResizedEventArgs.cs: Implemented
18046         * ContentsResizedEventHandler.cs: Implemented
18047         * DateBoldEventArgs.cs: Implemented
18048         * DateBoldEventHandler.cs: Implemented
18049         * UpDownEventArgs.cs: Implemented
18050         * UpDownEventHandler.cs: Implemented
18051         
18052 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18053
18054         * Form.cs: first Menu NC refactoring
18055         * MenuAPI.cs: first Menu NC refactoring
18056         
18057 2005-02-16  Peter Bartok  <pbartok@novell.com>
18058
18059         * ImeMode.cs: Added missing attributes
18060         * Menu.cs: Fixed attribute
18061         * GroupBox.cs: Fixed attribute
18062         * Label.cs: Fixed attribute
18063         * ColorDialog.cs (RunDialog): Removed TODO attribute
18064         * ComboBox.cs: Fixed attributes
18065         * ListControl.cs: Added missing attributes
18066         * PropertyGrid.cs: Fixed attributes
18067         * Control.cs: Fixed attributes
18068         * ListViewItem.cs: Added TypeConverter attribute
18069         * NotifyIcon.cs: Fixed attributes
18070         * ListView.cs: Fixed attributes
18071         * ButtonBase.cs: Fixed attribute
18072         * ImageList.cs: Added missing attributes
18073         * ContainerControl.cs: Fixed signature
18074         * CheckedListBox.cs: Fixed attribute; added missing attributes
18075         * Panel.cs: Fixed attributes
18076         * PropertyTabChangedEventArgs.cs: Added missing attribute
18077         * PropertyValueChangedEventArgs.cs: Added missing attribute
18078         * Binding.cs: Fixed attribute
18079         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18080         * ListBox.cs: Fixed attribute; added missing attributes;
18081         * ScrollableControl.cs: Added missing attributes
18082         * PictureBox.cs: Added missing attributes; implemented missing property
18083         * DateTimePicker.cs: Added missing attributes
18084         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18085         * MonthCalendar.cs: Fixed attributes
18086         * StatusBarPanel.cs: Added missing attributes
18087         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18088
18089 2005-02-16  Peter Bartok  <pbartok@novell.com>
18090
18091         * TextBoxBase.cs: The previous method to enforce height yet remember
18092           the requested high was less than ideal, this is an attempt to do
18093           it better.
18094         * Control.cs: Added comment about possible problem
18095         * Copyright: Updated format
18096         * GridItemType.cs: Fixed swapped values
18097
18098 2005-02-15  Jackson Harper  <jackson@ximian.com>
18099
18100         * BaseCollection.cs: Use property so we never access an
18101         uninitialized list. Also initialize the list in the property.
18102
18103 2005-02-15  Peter Bartok  <pbartok@novell.com>
18104
18105         * GroupBox.cs (ProcessMnemonic): Implemented
18106         * Label.cs (ProcessMnemonic): Implemented
18107         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18108           hotkeys
18109
18110 2005-02-15  Peter Bartok  <pbartok@novell.com>
18111
18112         * RadioButton.cs (ProcessMnemonic): Implemented
18113         * CheckBox.cs (ProcessMnemonic): Implemented
18114         * Control.cs:
18115           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18116             handling
18117           - Added internal method to allow calling ProcessMnemonic from other
18118             controls
18119         * ContainerControl.cs:
18120           - Started support for handling validation chain handling
18121           - Implemented ProcessMnemonic support
18122           - Added Select() call to Active, to make sure the active control
18123             receives focus
18124         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18125           FormParent rewrite)
18126         * ThemeWin32Classic.cs:
18127           - DrawCheckBox(): Fixed stringformat to show hotkeys
18128           - DrawRadioButton(): Fixed stringformat to show hotkeys
18129         * CommonDialog.cs: Removed WndProc override, not needed
18130
18131 2005-02-14  Peter Bartok  <pbartok@novell.com>
18132
18133         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18134           missed those in the rewrite
18135
18136 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18137
18138         * NumericUpDown.cs (Increment, ToString): Add.
18139         (DecimalPlaces): implement.
18140         
18141         Add attributes.
18142         
18143         * UpDownBase.cs: Add the designer attributes.
18144
18145 2005-02-13  Peter Bartok  <pbartok@novell.com>
18146
18147         * Panel.cs: Removed border_style, now in Control
18148         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18149           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18150
18151 2005-02-13  Peter Bartok  <pbartok@novell.com>
18152
18153         * MouseButtons.cs: Added missing attributes
18154         * XplatUIStructs.cs: Added enumeration for title styles
18155         * LeftRightAlignment.cs: Added missing attributes
18156         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18157           it compatible with Graphics.FromHwnd()
18158         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18159         * Keys.cs: Added missing attributes
18160         * SelectionRange.cs: Added missing attributes
18161         * SelectionRangeConverter.cs: Added
18162         * XplatUI.cs:
18163           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18164             ReleaseMenuDC methods
18165           - Renamed ReleaseWindow to UngrabWindow
18166           - Added proper startup notice to allow version identification
18167         * Form.cs:
18168           - Added missing attributes
18169           - Removed FormParent concept
18170         * Label.cs: Removed border_style field, now in Control
18171         * RadioButton.cs: Now properly selects RadioButton when focus is
18172           received
18173         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18174         * Control.cs:
18175           - Added missing attributes
18176           - Added borderstyle handling
18177           - Removed FormParent concept support
18178           - Fixed calls to XplatUI to match changed APIs
18179           - Fixed bug that would case us to use disposed Graphics objects
18180           - Removed unneeded internal methods
18181           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18182           - SelectNextControl(): Fixed to properly check common parents
18183         * TextBoxBase.cs: Removed border_style field (now in Control)
18184         * MessageBox.cs:
18185           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18186             fixed calculations for form size
18187           - Added support for localized strings and icons
18188           - Improved form size calculations, added border
18189         * ListView.cs: Removed border_style field (now in Control)
18190         * X11Structs.cs: Moved several structs from X11 driver here
18191         * X11Keyboard.cs: Changed debug message
18192         * Application.cs: Removed FormParent concept support
18193         * CommonDialog.cs:
18194           - Resetting end_modal flag
18195           - Removed FormParent concept support
18196         * NativeWindow.cs: Removed FormParent concept support
18197         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18198           Client area and Non-Client whole window to allow support for WM_NC
18199           messages
18200         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18201           prevent using it until it supports Hwnd as per Geoff Norton's request
18202         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18203         * PictureBox.cs: Removed border_style field, now in Control
18204         * XplatUIWin32.cs: Added new driver methods
18205
18206 2005-02-12  Peter Bartok  <pbartok@novell.com>
18207
18208         * OpacityConverter.cs: Implemented
18209         * Hwnd.cs: Internal class to support drivers that need to emulate
18210           client area/non-client area window behaviour
18211
18212 2005-02-11  Peter Bartok  <pbartok@novell.com>
18213
18214         * KeysConverter.cs: Implemented
18215
18216 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18217
18218         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18219         * LinkLabel: Added missing attributes
18220         * MainMenu.cs: fixes ToString
18221         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18222         * ListBox.cs: fixes event position
18223         * TrackBar.cs: adds missing attributes and events
18224         
18225 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18226
18227         * MenuItem.cs: Use SystemInformation and bug fixes
18228         * MenuAPI.cs: Use SystemInformation and bug fixes
18229
18230 2005-02-09  Jackson Harper  <jackson@ximian.com>
18231
18232         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18233         their keystate otherwise things like VK_MENU get stuck "on".
18234
18235 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18236
18237         * ListBox.cs: Fixes AddRange bug
18238         
18239 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18240
18241         * ProgressBar.cs
18242                 - Add missing attributes
18243                 - Add missing method
18244                 
18245         * CheckedListBox.cs: Added missing attributes
18246                 - Add missing attributes
18247                 - Remove extra method
18248         
18249         * ComboBox.cs: Added missing attributes
18250         * VScrollBar.cs: Added missing attributes
18251         * ScrollBar.cs:  Added missing attributes
18252         * ListBox.cs: Fixes signature, add missing consts
18253         * LinkArea.cs:   Added missing attributes
18254         
18255
18256 2005-02-08  Peter Bartok  <pbartok@novell.com>
18257
18258         * Menu.cs: Added missing attributes
18259         * MainMenu.cs: Added missing attributes
18260         * GroupBox.cs: Added missing attributes
18261         * Label.cs: Added missing attributes
18262         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18263         * ColorDialog.cs:
18264           - Added Instance and Options properties
18265           - Added missing attributes
18266         * Cursor.cs: Made Serializable
18267         * NotifyIcon: Added missing attributes
18268         * MenuItem.cs: Added missing attributes
18269         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18270         * Panel.cs: Added Missing attributes
18271         * MonthCalendar.cs: Fixed CreateParams
18272
18273 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18274         
18275         * LinkLabel.cs:
18276                 - Fixes signature
18277                 - Fixes issues with links
18278                 - Adds the class attributes
18279
18280 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18281         
18282         * ComboBox.cs:
18283                 - Fixes button when no items available in dropdown
18284                 - Fixes repainting problems
18285                 - Adds the class attributes
18286                 
18287 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18288
18289         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18290         the current theme.  Cache these on startup.
18291
18292 2005-02-07  Jackson Harper  <jackson@ximian.com>
18293
18294         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18295         the scrollbar buttons when they are depressed.
18296
18297 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18298
18299         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18300         Get the display size from the main displayid.  We currently dont
18301         support multiple display configurations.
18302
18303 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18304
18305         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18306
18307 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18308
18309         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18310
18311 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18312
18313         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18314
18315 2005-02-04  Jackson Harper  <jackson@ximian.com>
18316
18317         * ThemeWin32Classic.cs: Respect the clipping rect when
18318         drawing. Only fill the intersection of clips and rects so there
18319         isn't a lot of large fills.
18320         * ScrollBar.cs: Pass the correct clipping rect to the theme
18321         engine. Remove some debug code.
18322
18323 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18324         
18325         * DateTimePicker.cs:
18326                 - Fixed crash on DateTime.Parse, use Constructor instead
18327
18328 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18329         
18330         * MenuItem.cs:
18331         * MenuAPI.cs:
18332                 - Owner draw support (MeasureItem and DrawItem)
18333
18334 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18335         
18336         *  Menu.cs:
18337                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18338                 - Fixes MenuItems.Add range
18339         * MenuItem.cs:
18340                 - MergeMenu and Clone and CloneMenu functions
18341
18342 2005-02-03  Jackson Harper  <jackson@ximian.com>
18343
18344         * ScrollBar.cs: Make abstract
18345         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18346         is abstract.
18347
18348 2005-02-03  Jackson Harper  <jackson@ximian.com>
18349
18350         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18351         all the unneeded refreshes and uses invalidates with properly
18352         computed rects.
18353
18354 2005-02-03  Peter Bartok  <pbartok@novell.com>
18355
18356         * ComponentModel.cs: Added
18357         * IDataGridEditingService.cs: Added
18358         * Timer.cs: Added missing attributes
18359         * ToolTip.cs: Added missing attributes
18360
18361 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18362
18363         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18364
18365 2005-02-03  Peter Bartok  <pbartok@novell.com>
18366
18367         * ListBox.cs: Added missing attributes
18368
18369 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18370         
18371         * ListBox.cs:
18372                 - Fixes font height after font change
18373                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18374                 
18375 2005-02-02  Peter Bartok  <pbartok@novell.com>
18376
18377         * HandleData.cs: Introduced static methods to allow class
18378           to be more self-contained and track it's own HandleData objects
18379         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18380           HandleData to use new static methods
18381
18382 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18383
18384         * Combobox.cs:
18385                 - Fixes default size and PreferredHeight
18386                 - Missing events
18387                 - ObjectCollection.Insert implementation
18388                 
18389         * ListControl.cs
18390                 - Fixes signature
18391         * ListBox.cs:
18392                 - Several fixes
18393                 - ObjectCollection.Insert implementation
18394                 - No selection after clean
18395                 - Small fixes
18396
18397 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18398
18399         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18400
18401 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18402
18403         * Combobox.cs:
18404                 - Caches ItemHeight calculation for OwnerDrawVariable
18405                 - Handles dropdown properly
18406                 - Fixes several minor bugs
18407
18408 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18409
18410         * ListBox.cs:
18411                 - Fixes 71946 and 71950
18412                 - Fixes changing Multicolumn on the fly
18413                 - Fixes keyboard navigation on Multicolumn listboxes
18414
18415 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18416         
18417         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18418         crash reporter log.
18419
18420 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18421
18422         * XplatUIOSX.cs: Allow applications to actually exit.
18423
18424 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18425
18426         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18427         their parent at creation time rather than lazily later.  Fixes a major
18428         regression we were experiencing.
18429
18430 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18431
18432         * ThemeWin32Classic.cs: more date time picker painting fixes
18433         * DateTimePicker.cs: more monthcalendar drop down fixes
18434         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18435
18436 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18437
18438         * ScrollBar.cs:
18439                 - When moving the thumb going outside the control should stop the moving
18440                 - Adds the firing of missing events
18441                 - Fixes no button show if Size is not specified
18442                 - End / Home keys for keyboard navigation
18443
18444 2005-01-30  Peter Bartok  <pbartok@novell.com>
18445
18446         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18447           sanity check to prevent theoretical loop
18448         * XplatUIWin32.cs (SetVisible): Removed debug output
18449         * XplatUIX11.cs (SystrayChange): Added sanity check
18450         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18451         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18452           behaviour, valid until the X11 client window rewrite is done
18453         * TextBox.cs (ctor): Setting proper default foreground and background
18454           colors
18455
18456 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18457
18458         * Theme: Added DrawDateTimePicker to interface
18459         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18460         * DateTimePicker.cs: Created (still needs keys and painting code)
18461         * DateTimePickerFormat.cs: added
18462         * MonthCalendar.cs: fixed CreateParams for popup window mode
18463           
18464 2005-01-29  Peter Bartok  <pbartok@novell.com>
18465
18466         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18467           this should also the calculations for ligher/darker
18468         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18469
18470 2005-01-29  Peter Bartok  <pbartok@novell.com>
18471
18472         * ArrangeDirection.cs: Added
18473         * ArrangeStartingPositon.cs: Added
18474         * SystemInformation.cs: Implemented
18475         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18476           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18477           used by SystemInformation class
18478         * X11Strucs.cs: Added XSizeHints structure
18479         * MenuAPI.cs:
18480           - Fixed CreateParams to make sure the menu window is always visible
18481           - TrackPopupMenu: Added check to make sure we don't draw the
18482             menu offscreen
18483
18484 2005-01-29  Peter Bartok  <pbartok@novell.com>
18485
18486         * HandleData.cs: Added method for altering invalid area
18487         * TextBoxBase.cs: Implemented TextLength
18488
18489 2005-01-28  Peter Bartok  <pbartok@novell.com>
18490
18491         * XplatUIX11.cs: Improvement over last patch, not sending
18492           the WM_PAINT directly anymore, instead we scroll any pending
18493           exposed areas and let the system pick out the WM_PAINT later
18494
18495 2005-01-28  Peter Bartok  <pbartok@novell.com>
18496
18497         * SWF.csproj: Deleted, no longer used. Instead,
18498           Managed.Windows.Forms/SWF.csproj should be used
18499         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18500           directly, to avoid a potential race condition with the next
18501           scroll
18502
18503 2005-01-28  Peter Bartok  <pbartok@novell.com>
18504
18505         * XplatUI.cs: Made class internal
18506
18507 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18508
18509         * CheckedListBox.cs:
18510                 - Draw focus
18511                 - Fixed Drawing
18512                 - Missing methods and events
18513
18514 2005-01-27  Peter Bartok  <pbartok@novell.com>
18515
18516         * Application.cs (Run): Don't use form if we don't have one
18517
18518 2005-01-27  Peter Bartok  <pbartok@novell.com>
18519
18520         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18521
18522 2005-01-27  Peter Bartok  <pbartok@novell.com>
18523
18524         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18525         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18526         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18527         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18528         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18529         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18530         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18531         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18532         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18533         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18534         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18535         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18536
18537 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18538
18539         * Combobox.cs:
18540                 - Draw focus on Simple Combobox
18541                 - Fixes drawing issues
18542                 - fixes 71834
18543
18544 2005-01-27  Peter Bartok  <pbartok@novell.com>
18545
18546         * Form.cs:
18547           - Place window in default location, instead of hardcoded 0/0
18548           - Send initial LocationChanged event
18549         * Control.cs:
18550           - UpdateBounds after creation to find out where the WM placed us
18551           - Make sure that if the ParentForm changes location the Form
18552             is notified
18553         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18554             to the root, but to whatever the WM placed around us.
18555             Translate to root coordinates before returning toplevel
18556             coordinates
18557         * XplatUIWin32.cs: Removed debug output
18558         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18559           flag to GetWindowPos, to allow translation of coordinates on X11
18560
18561 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18562
18563         * ListBox.cs: connect LostFocus Event
18564
18565 2005-01-27  Peter Bartok  <pbartok@novell.com>
18566
18567         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18568           XplatUIX11.cs: Extended the Systray API
18569         * Form.cs: Removed debug output
18570         * Application.cs: Fixed focus assignment, always need to call
18571           XplatUI.Activate() since Form.Activate() has rules that may
18572           prevent activation
18573         * NotifyIcon.cs: Should be complete now
18574         * ToolTip.cs: Worked around possible timer bug
18575
18576 2005-01-27  Jackson Harper  <jackson@ximian.com>
18577
18578         * TabControl.cs:
18579         - Only invalidate the effected tabs when the
18580         selected index changes. This reduces drawing and gets rid of some
18581         flicker.
18582         - Only refresh if the tabs need to be shifted, otherwise only
18583         invalidate the slider button.
18584         - On windows the tabs are not filled to right if the slider is
18585         visible.
18586         
18587 2005-01-27  Jackson Harper  <jackson@ximian.com>
18588
18589         * TabControl.cs: Only refresh on mouseup if we are showing the
18590         slider. Also only invalidate the button whose state has changed.
18591
18592 2005-01-26  Peter Bartok  <pbartok@novell.com>
18593
18594         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18595         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18596           and SystrayRemove() methods
18597         * XplatUIOSX.cs: Stubbed Systray methods
18598         * XplatUIX11.cs:
18599           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18600             methods
18601           - Fixed broken XChangeProperty calls (marshalling messed up things)
18602         * X11Structs.cs: Added enums and structs required for Size hinting
18603         * NotifyIcon.cs: Added & implemented
18604
18605 2005-01-26  Jackson Harper  <jackson@ximian.com>
18606
18607         * TabControl.cs: Space vertically layed out tabs properly.
18608
18609 2005-01-26  Peter Bartok  <pbartok@novell.com>
18610
18611         * Form.cs (CreateClientParams): Always set the location to 0,0
18612           since we're a child window.
18613
18614         * Control.cs (SetVisibleCore): Always explicitly setting the location
18615           of a toplevel window, apparently X11 doesn't like to move windows
18616           while they're not mapped.
18617
18618 2005-01-26  Jackson Harper  <jackson@ximian.com>
18619
18620         * TabControl.cs: Implement FillToRight size mode with vertically
18621         rendered tabs.
18622
18623 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18624
18625         * ControlPaint.cs, ThemeWin32Classic.cs
18626                 - Fixes DrawFocusRectangle
18627
18628 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18629
18630         * MenuAPI.cs:
18631                 - MenuBar tracking only starts when item is first clicked
18632                 - Fixes menu hidding for multiple subitems
18633                 - Unselect item in MenuBar when item Executed
18634                 - Fixes bug 71495
18635
18636 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18637
18638         * ListControl.cs:
18639                 - IsInputKey for ListBox
18640         * ListBox.cs:
18641                 - Focus item
18642                 - Shift and Control item selection
18643                 - Implement SelectionMode.MultiExtended
18644                 - Fixes RightToLeft
18645         * ComboBox.cs:
18646                 - IsInputKey implemented
18647                 - Do not generate OnTextChangedEdit on internal txt changes
18648                 
18649 2005-01-23  Peter Bartok  <pbartok@novell.com>
18650
18651         * AccessibleObject.cs: Partially implemented Select()
18652         * MonthCalendar.cs: Added missing attributes and events
18653         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18654           form can properly override CreateParams.
18655         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18656           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18657           Control performs Invalidate & Update
18658         * NativeWindow (CreateHandle): Added special handling for Form
18659           and Form.FormParent classes to allow overriding of From.CreateParams
18660         * Control.cs:
18661           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18662             name 'owner'
18663           - ControlNativeWindow: Added Owner property
18664           - Removed usage of Refresh() on property changes, changed into
18665             Invalidate(), we need to wait until the queue is processed for
18666             updates, direct calls might cause problems if not all vars for
18667             Paint are initialized
18668           - Added call to UpdateStyles() when creating the window, to set any
18669             styles that CreateWindow might have ignored.
18670           - Added support for Form CreateParent overrides to UpdateStyles()
18671         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18672           CreateParams are now properly overridable
18673         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18674           CreateParams are now properly overridable
18675
18676 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18677
18678         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18679         OnTextBoxChanged.
18680
18681         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18682         recursive invocation that I have not figured out yet.
18683
18684         Reset the timer when not using (it was accumulating).
18685
18686
18687         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18688         user has made changes that require validation.
18689
18690         Reset changing to avoid loops.
18691
18692 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18693
18694         * NumericUpDown.cs: Display value at startup.
18695
18696         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18697         ValidateEditText.
18698
18699         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18700         filled in.  Added some basic parsing of text.
18701
18702         Still missing the OnXXX method overrides, and figuring out the
18703         events that must be emitted.
18704
18705         * UpDownBase.cs: Handle UserEdit on the Text property.
18706         
18707 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18708
18709         * ComboBox.cs:
18710           - Fixes IntegralHeight
18711           - ToString method
18712
18713 2005-01-21  Jackson Harper  <jackson@ximian.com>
18714
18715         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18716         is set so that the page visibility is updated and the tabs are
18717         sized correctly.
18718
18719 2005-01-21  Jackson Harper  <jackson@ximian.com>
18720
18721         * TabControl.cs: Use cliping rectangle for blitting. Give the
18722         theme the clipping rect so we can do clipping while
18723         drawing. Remove some debug code.
18724
18725 2005-01-21  Jackson Harper  <jackson@ximian.com>
18726
18727         * TabPage.cs: Add a new method so tab pages can force the tab
18728         control to recalculate the tab page sizes.
18729         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18730         sizes.
18731
18732 2005-01-20  Jackson Harper  <jackson@ximian.com>
18733
18734         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18735
18736 2005-01-20  Jackson Harper  <jackson@ximian.com>
18737
18738         * TreeView.cs: Set the bounds for nodes properly. They were
18739         getting screwed up when checkboxes were not enabled, but images
18740         were.
18741
18742 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18743
18744         * ListBox.cs:
18745                 - Owner draw support
18746                 - Fixes
18747                 
18748 2005-01-20  Jackson Harper  <jackson@ximian.com>
18749
18750         * XplatUIStructs.cs: More misc keys
18751         * X11Keyboard.cs: Ignore some control keys.
18752
18753 2005-01-20  Jackson Harper  <jackson@ximian.com>
18754
18755         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18756         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18757
18758 2005-01-19  Peter Bartok  <pbartok@novell.com>
18759
18760         * Control.cs: Un-selecting the control when it is loosing focus
18761
18762 2005-01-19  Jackson Harper  <jackson@ximian.com>
18763
18764         * TreeView.cs: Hook up to the text controls leave event so we can
18765         end editing when the users clicks outside the text box.
18766         
18767 2005-01-19  Jackson Harper  <jackson@ximian.com>
18768
18769         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18770         get set in the conversion array.
18771
18772 2005-01-19  Peter Bartok  <pbartok@novell.com>
18773
18774         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18775           focus is properly set
18776         * Button.cs:
18777           - Added missing attributes
18778           - removed styles, those are already set in the base class
18779         * ButtonBase.cs:
18780           - Added missing attributes
18781           - Added clip window styles
18782         * CheckBox.cs: Added missing attributes
18783         * CommonDialog.cs:
18784           - FormParentWindow.CreateParams: Added required clip styles
18785         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18786           also filters modifier keys
18787         * MessageBox.cs:
18788           - Added assignment of Accept and Cancel button to enable Enter
18789             and Esc keys in MessageBox dialogs
18790           - FormParentWindow.CreateParams: Added required clip styles
18791         * RadioButton.cs: Added missing attributes
18792         * TextControl.cs: No longer draws selection if control does not
18793           have focus
18794         * TextBoxBase.cs:
18795           - Now draws simple rectangle around test area to make it obvious
18796             there's a control. This is a hack until we properly support borders
18797           - A few simple fixes to support selections better, now erases selected
18798             text when typing, and resets selection when using movement keys
18799
18800 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18801
18802         * UpDownBase.cs: Added some new properties.
18803
18804         * DomainUpDown.cs: Implement a lot to get my test working.
18805
18806 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18807
18808         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18809
18810 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18811
18812         * OSXStructs (WindowAttributes): Fixed csc complaints
18813
18814 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18815
18816         * XplayUIOSX.cs:
18817           OSXStructs.cs: Initial refactor to move enums and consts into
18818           OSXStructs and use them in the driver for greater readability.
18819
18820 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18821
18822         * XplatUIOSX.cs: Initial support for Standard Cursors.
18823         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18824
18825 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18826
18827         * ComboBox.cs: ability to change style when the ctrl is already
18828         created, missing methods and events, bug fixes, signature fixes
18829
18830 2005-01-19  Peter Bartok  <pbartok@novell.com>
18831
18832         * Cursors.cs (ctor): Added ctor to fix signature
18833
18834 2005-01-18  Peter Bartok  <pbartok@novell.com>
18835
18836         * Button.cs: Implemented DoubleClick event
18837         * ButtonBase.cs:
18838           - Fixed keyboard handling to behave like MS, where the press of
18839             Spacebar is equivalent to a mousedown, and the key release is
18840             equivalent to mouseup. Now a spacebar push will give the same
18841             visual feedback like a mouse click.
18842           - Added missing attributes
18843           - Added ImeModeChanged event
18844           - Added support for generating DoubleClick event for derived classes
18845         * CheckBox.cs:
18846           - Implemented DoubleClick event
18847           - Added missing attributes
18848         * CommonDialog.cs: Added missing attribute
18849         * ContextMenu.cs: Added missing attributes
18850         * RadioButton.cs:
18851           - AutoChecked buttons do not allow to be unselected when clicked
18852             (otherwise we might end up with no selected buttons in a group)
18853           - Added missing attributes
18854           - Implemented DoubleClickEvent
18855         * ThreadExceptionDialog.cs: Enabled TextBox code
18856
18857 2005-01-18  Peter Bartok  <pbartok@novell.com>
18858
18859         * Form.cs: Removed debug output
18860         * Button.cs: Added support for DoubleClick method
18861
18862 2005-01-18  Peter Bartok  <pbartok@novell.com>
18863
18864         * Form.cs:
18865           - Added method to parent window that allows triggering size
18866             calculations when a menu is added/removed
18867           - set_Menu: Cleaned up mess from early days of Form and Control,
18868             now properly triggers a recalc when a menu is added/removed
18869           - Added case to select form itself as focused form if no child
18870             controls exist
18871           - Added PerformLayout call when showing dialog, to ensure properly
18872             placed controls
18873         * Control.cs:
18874           - Select(): Made internal so Form can access it
18875           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18876             status
18877         * Application.cs (Run): Removed hack and calls PerformLayout instead
18878           to trigger calculation when Form becomes visible
18879
18880 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18881
18882         * ComboBox.cs: fixes for ownerdraw
18883
18884 2005-01-18  Peter Bartok  <pbartok@novell.com>
18885
18886         * TextControl.cs:
18887           - Sentinel is no longer static, each Document gets it's own, this
18888             avoids locking or alternatively overwrite problems when more
18889             than one text control is used simultaneously.
18890           - Switched to use Hilight and HilightText brushes for text selection
18891
18892         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18893
18894 2005-01-18  Peter Bartok  <pbartok@novell.com>
18895
18896         * Control.cs:
18897           - Hooked up the following events:
18898                 o ControlAdded
18899                 o ControlRemoved
18900                 o HandleDestroyed
18901                 o ImeModeChanged
18902                 o ParentChanged
18903                 o TabStopChanged
18904                 o Invalidated
18905                 o SystemColorsChanged
18906                 o ParentFontChanged
18907                 o Move
18908           - Removed debug output
18909           - Added a call to the current theme's ResetDefaults when a color change
18910             is detected
18911         * Form.cs: Now setting the proper ImeMode
18912         * Theme.cs: Defined a method to force recreation of cached resources
18913           and rereading of system defaults (ResetDefaults())
18914         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18915
18916 2005-01-17  Peter Bartok  <pbartok@novell.com>
18917
18918         * Control.cs: Added missing attributes
18919
18920 2005-01-17  Jackson Harper  <jackson@ximian.com>
18921
18922         * TreeNode.cs: Implement editing. Add missing properties selected
18923         and visible.
18924         * TreeView.cs: Implement node editing. Also some fixes to use
18925         Invalidate (invalid area) instead of Refresh when selecting.
18926
18927 2005-01-17  Peter Bartok  <pbartok@novell.com>
18928
18929         * Control.cs:
18930           - Implemented InvokeGotFocus() method
18931           - Implemented InvokeLostFocus() method
18932           - Implemented InvokePaint() method
18933           - Implemented InvokePaintBackground() method
18934           - Implemented InvokeClick() method
18935           - Implemented FindForm() method
18936           - Implemented RectangleToClient() method
18937           - Implemented ClientToRectangle() method
18938           - Implemented ResetBackColor() method
18939           - Implemented ResetCursor() method
18940           - Implemented ResetFont() method
18941           - Implemented ResteForeColor() method
18942           - Implemented ResetImeMode() method
18943           - Implemented ResetLeftToRight() method
18944           - Implemented ResetText() method
18945           - Implemented Scale() methods
18946           - Implemented ScaleCore() method
18947           - Implemented Update() method
18948           - Removed unused variables
18949           - Stubbed AccessibilityNotifyClients and
18950             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18951             with those yet)
18952           - Now setting proper default for RightToLeft property
18953           - Fixed bug in SetClientSizeCore that would cause windows to get
18954             really big
18955           - Now sending Click/DoubleClick events
18956           - Now selecting controls when left mouse button is clicked on
18957             selectable control
18958         * AccessibleEvents.cs: Added
18959         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18960         * XplatUIOSX.cs: Stubbed UpdateWindow() method
18961         * XplatUIWin32.cs: Implemented UpdateWindow() method
18962         * XplatUIX11.cs: Implemented UpdateWindow() method
18963         * Form.cs: Removed stray semicolon causing CS0162 warning
18964         * ThemeWin32Classic.cs: Fixed unused variable warnings
18965         * ScrollableControl.cs: Now calls base method for ScaleCore
18966         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
18967           style to avoid interference with internal click handler (which is
18968           different than standard Control click handling)
18969         * RadioButton.cs:
18970           - Now unchecks all sibling radio buttons when control is
18971             selected (Fixes #68756)
18972           - Removed internal tabstop variable, using the one inherited from
18973             Control
18974
18975 2005-01-17  Jackson Harper  <jackson@ximian.com>
18976
18977         * NavigateEventArgs.cs: Fix base type.
18978         * LinkLabel.cs: Sig fix
18979         
18980 2005-01-17  Jackson Harper  <jackson@ximian.com>
18981
18982         * TreeView.cs: Only invalidate the effected nodes bounds when
18983         selecting nodes.
18984
18985 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
18986
18987         * XplatUIWin32.cs: fixes Win32 marshaling
18988         * XplatUIX11.cs: fixes method signature
18989
18990 2005-01-17  Peter Bartok  <pbartok@novell.com>
18991
18992         * XplatUIX11.cs: Clean up resources when we no longer need them
18993
18994 2005-01-17  Peter Bartok  <pbartok@novell.com>
18995
18996         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
18997           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
18998           and DestroyCursor() methods.
18999         * Cursor.cs: Partially implemented, now supports standard cursors;
19000           still contains some debug code
19001         * Cursors.cs: Implemented class
19002         * Control.cs:
19003           - WndProc(): Added handling of WM_SETCURSOR message, setting the
19004             appropriate cursor
19005           - Implemented Cursor property
19006           - Replaced break; with return; more straightforwar and possibly
19007             faster
19008           - Now properly setting the result for WM_HELP
19009         * X11Structs.cs: Added CursorFontShape enum
19010         * XplatUIStructs.cs:
19011           - Added StdCursor enum (to support DefineStdCursor() method)
19012           - Added HitTest enum (to support sending WM_SETCURSOR message)
19013         * XplatUIX11.cs:
19014           - Now sends the WM_SETCURSOR message
19015           - Implemented new cursor methods
19016         * XplatUIOSX.cs: Stubbed new cursor methods
19017         * XplatUIWin32.cs:
19018           - Implemented new cursor methods
19019           - Added GetSystemMetrics function and associated enumeration
19020
19021 2005-01-15  Peter Bartok  <pbartok@novell.com>
19022
19023         * Control.cs:
19024           - WndProc(): Now handles EnableNotifyMessage
19025           - SelectNextControl(): Fixed bug where if no child or sibling
19026             controls exist we looped endlessly
19027
19028 2005-01-14  Jackson Harper  <jackson@ximian.com>
19029
19030         * TreeView.cs: Recalculate the tab pages when a new one is added
19031         so that the proper bounding rects are created.
19032
19033 2005-01-14  Jackson Harper  <jackson@ximian.com>
19034
19035         * TreeView.cs: Draw a gray box instead of a grip in the lower
19036         right hand corner when there are both horizontal and vertical
19037         scroll bars.
19038
19039 2005-01-14  Jackson Harper  <jackson@ximian.com>
19040
19041         * Control.cs: When erasing backgrounds use FromHwnd instead of
19042         FromHdc when there is a NULL wparam. This occurs on the X driver.
19043         * XplatUIX11.cs: Set the wparam to NULL.
19044
19045 2005-01-13  Jackson Harper  <jackson@ximian.com>
19046
19047         * PictureBox.cs: Implement missing methods (except ToString, need
19048         to test that on windows) and events. When visibility is changed we
19049         need to redraw the image because the buffers are killed. When size
19050         is changed refresh if the sizemode needs it.
19051
19052 2005-01-13  Peter Bartok  <pbartok@novell.com>
19053
19054         * Control.cs (SelectNextControl): Was using wrong method to select
19055           a control
19056
19057 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19058
19059         * ComboBox.cs: fixes dropstyle
19060
19061 2005-01-13  Peter Bartok  <pbartok@novell.com>
19062
19063         * Form.cs:
19064           - Implemented Select() override
19065           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19066           - Now sets keyboard focus on startup
19067         * Control.cs (SelectNextControl): Now properly handles directed=true
19068         * TextBoxBase.cs:
19069           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19070           - Added (really bad) focus rectangle (mostly for testing)
19071         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19072           to enforce redraw on focus changes
19073         * ContainerControl.cs:
19074           - Fixed detection of Shift-Tab key presses
19075           - Fixed traversal with arrow keys
19076         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19077           gonna keep this or if it's complete yet
19078         
19079 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19080
19081         * ComboBox.cs: missing properties, fixes
19082
19083 2005-01-13  Peter Bartok  <pbartok@novell.com>
19084
19085         * Panel.cs (ctor): Setting Selectable window style to off
19086         * Splitter.cs (ctor): Setting Selectable window style to off
19087         * GroupBox.cs (ctor): Setting Selectable window style to off
19088         * Label.cs (ctor): Setting Selectable window style to off
19089
19090 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19091
19092         * UpDownBase.cs (InitTimer): If the timer has been already
19093         created, enable it.
19094
19095         Use a TextBox instead of a Label.
19096
19097 2005-01-12  Jackson Harper  <jackson@ximian.com>
19098
19099         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19100         draw the connecting node lines (when ShowLines is true).
19101         * TreeNode.cs: The nodes index can now be updated. This is used
19102         when a node collection is sorted.
19103         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19104         insert or an existing unsorted node collection can be sorted.
19105         
19106 2005-01-12  Peter Bartok  <pbartok@novell.com>
19107
19108         * ContainerControl.cs: Implemented ProcessDialogKeys()
19109
19110 2005-01-12  Peter Bartok  <pbartok@novell.com>
19111
19112         * Control.cs:
19113           - Implemented SelectNextControl() method
19114           - Several focus related bug fixes
19115           - Fixed Docking calculations to match MS documentation and
19116             behaviour
19117
19118 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19119
19120         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19121         bug fixes
19122
19123 2005-01-12  Peter Bartok  <pbartok@novell.com>
19124
19125         * Control.cs:
19126           - Fixed broken Contains() method
19127           - Implemented GetNextControl() method. Finally. This is the pre-
19128             requisite for focus handling.
19129
19130 2005-01-12  Peter Bartok  <pbartok@novell.com>
19131
19132         * OSXStrucs.cs: Added
19133
19134 2005-01-12  Peter Bartok  <pbartok@novell.com>
19135
19136         * XplatUIWin32.cs:
19137           - Removed PeekMessageFlags
19138           - Implemented SetWindowStyle() method
19139         * XplatUIStructs.cs: Added PeekMessageFlags
19140         * X11Structs: Added missing border_width field to XWindowChanges struct
19141         * XplatUIX11.cs:
19142           - PeekMessage: Now throws exception if flags which are not yet
19143             supported are passed
19144           - Implemented SetWindowStyle() method
19145           - Fixed SetZOrder to handle AfterHwnd properly
19146         * XplatUI.cs: Added SetWindowStyle() method
19147         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19148         * Control.cs:
19149           - Implemented UpdateStyles() method
19150           - Implemented UpdateZOrder() method
19151         * XplatUIOSX.cs: Added SetWindowStyle() stub
19152
19153 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19154
19155         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19156         button mouse).
19157
19158
19159 2005-01-11  Jackson Harper  <jackson@ximian.com>
19160
19161         * TreeView.cs: Still need to draw lines to siblings even if out of
19162         the current node is out of the clip.
19163
19164 2005-01-11  Jackson Harper  <jackson@ximian.com>
19165
19166         * TreeView.cs: When setting the hbar/vbar/grip position use
19167         SetBounds so that perform layout is only called once. Also suspend
19168         and resume layout so layout is only done once for all controls.
19169         - Removed some debug fluff
19170         * SizeGrip.cs: Call base implmentation in overriding methods.
19171         - When visibility is changed the drawing buffers are killed so we
19172         need to redraw.
19173
19174 2005-01-11  Jackson Harper  <jackson@ximian.com>
19175
19176         * TreeView.cs: Calculate the open node count while drawing. This
19177         saves us an entire tree traversal for every paint operation. Use
19178         a member var for the open node count so less vars are passed around.
19179
19180 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19181
19182         * MonthCalendar.cs:
19183         - fixed selection to use mousemove, not mouse polling on timer
19184         * ThemeWin32Classic.cs
19185         - removed redundant unused variable "no_more_content"
19186         
19187 2005-01-11  Peter Bartok  <pbartok@novell.com>
19188
19189         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19190           are pending, so it now calls PeekMessage instead of GetMessage;
19191           implemented a incomplete version of PeekMessage
19192         
19193 2005-01-11  Peter Bartok  <pbartok@novell.com>
19194
19195         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19196           I18n issues
19197         * TextBoxBase.cs: Added sending of TextChanged event
19198
19199 2005-01-10  Jackson Harper  <jackson@ximian.com>
19200
19201         * TreeView.cs: Try not to draw outside the clipping rectangle on
19202         each node element.
19203
19204 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19205
19206         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19207
19208 2005-01-10  Jackson Harper  <jackson@ximian.com>
19209
19210         * TreeView.cs:
19211         - Implement fast scrolling. Now only the newly
19212         exposed nodes are drawn and the old image is moved using the
19213         XplatUI::ScrollWindow method.
19214         - Factor in height of nodes when calculating whether or not the
19215         node is in the clipping rect.
19216
19217 2005-01-10  Jackson Harper  <jackson@ximian.com>
19218
19219         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19220
19221 2005-01-10  Peter Bartok  <pbartok@novell.com>
19222
19223         * Application.cs: Added temporary hack to resolve all our resize
19224           required issues on startup. This will get fixed properly at
19225           some point in the future
19226
19227 2005-01-10  Jackson Harper  <jackson@ximian.com>
19228
19229         * SizeGrip.cs: New internal class that is used as a sizing
19230         grip control...hence the name.
19231
19232 2005-01-10  Peter Bartok  <pbartok@novell.com>
19233
19234         * Control.cs: Implemented proper TabIndex handling, now assigning
19235           a tabindex when a control is added to a container
19236         * GroupBox.cs (ctor): Now sets the Container style bit, required
19237           for Control.GetNextControl()
19238
19239 2005-01-09  Jackson Harper  <jackson@ximian.com>
19240
19241         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19242
19243 2005-01-09  Peter Bartok <pbartok@novell.com>
19244
19245         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19246           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19247           an overload for ScrollWindow to allow only scrolling a rectangle
19248
19249 2005-01-09  Peter Bartok <pbartok@novell.com>
19250
19251         * Form.cs:
19252           - Implemented SetDesktopBounds method
19253           - Implemented SetDesktopLocation method
19254
19255 2005-01-08  Jackson Harper  <jackson@ximian.com>
19256
19257         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19258         the node count has changed, this removes to VScroll::Refresh calls
19259         when drawing.
19260
19261 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19262
19263         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19264
19265 2005-01-07  Jackson Harper  <jackson@ximian.com>
19266
19267         * TreeNode.cs: Just update the single node when it is
19268         checked. Don't refresh after toggling, the Expand/Collapse already
19269         handles this.
19270         * TreeView.cs: Respect clipping a little more when drawing. Try
19271         not to redraw things that don't need to be redrawn. Just hide the
19272         scrollbars when they are no longer needed instead of removing
19273         them, so they don't have to be created again and again.
19274         
19275 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19276
19277         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19278         coordinates to window space to place the caret properly, FIXED.
19279         Implement GetWindowState & SetWindowState
19280
19281 2005-01-06  Peter Bartok <pbartok@novell.com>
19282
19283         * Form.cs:
19284           - Implemented ClientSize property
19285           - Implemented DesktopBounds property
19286           - Implemented DesktopLocation property
19287           - Implemented IsRestrictedWindow property
19288           - Implemented Size property
19289           - Implemented TopLevel property
19290           - Implemented FormWindowState property
19291         * Control.cs:
19292           - Implemented GetTopLevel() method
19293           - Implemented SetTopLevel() method
19294         * X11Structs.cs (Atom):
19295           - Added AnyPropertyType definition
19296           - Added MapState definiton and updated XWindowAttribute struct
19297         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19298         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19299         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19300         * XplatUIWin32.cs:
19301           - Implemented GetWindowState() and SetWindowState() methods
19302           - Fixed Win32GetWindowLong return type
19303         * XplatUIX11.cs:
19304           - Introduced central function for sending NET_WM messages
19305           - Implemented GetWindowState() and SetWindowState() methods
19306         * TextBoxBase.cs (set_Lines):
19307           - Now uses Foreground color for text added via Text property (Duh!)
19308           - Added code to remember programmatically requested size (fixes
19309             behaviour when Multiline is set after Size)
19310           - Added AutoSize logic
19311
19312 2005-01-06  Jackson Harper  <jackson@ximian.com>
19313
19314         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19315
19316 2005-01-06  Jackson Harper  <jackson@ximian.com>
19317
19318         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19319         set to less then 0.
19320
19321 2005-01-06  Jackson Harper  <jackson@ximian.com>
19322
19323         * ScrollableControl.cs: Lazy init the scrollbars.
19324         
19325 2005-01-06  Jackson Harper  <jackson@ximian.com>
19326
19327         * Theme.cs: Speed up getting pens and solid brushes, by using
19328         their ARGB as a hash instead of tostring and not calling Contains.
19329
19330 2005-01-06  Peter Bartok <pbartok@novell.com>
19331
19332         * Form.cs:
19333           - Implemented OnActivated and OnDeactivate event trigger
19334           - Implemented Activate() method
19335           - Fixed ShowDialog() to activate the form that was active before
19336             the dialog was shown
19337         * XplatUIX11.cs:
19338           - Added global active_window var that tracks the currently active
19339             X11 window
19340           - Now always grabs Property changes from the root window to always
19341             catch changes on the active window property
19342           - Added code to PropertyNotify handler to send Active/Inactive
19343             messages when state changes. This puts X11 and Win32 en par on
19344             WM_ACTIVATE notifications (except for double notifications when
19345             the user clicks away from our modal window to another one of our
19346             windows)
19347
19348 2005-01-05  Jackson Harper  <jackson@ximian.com>
19349
19350         * ImageList.cs: Implment ctor
19351
19352 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19353
19354         * XplatUIOSX.cs: Implement Activate/SetTopmost
19355
19356 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19357
19358         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19359
19360 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19361
19362         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19363
19364 2005-01-05  Peter Bartok <pbartok@novell.com>
19365
19366         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19367           XplatUIOSX.cs: Added GetActive method to return the currently
19368           active window for the application (or null, if none is active)
19369         * Form.cs:
19370           - Implemented ActiveForm
19371           - Commented out owner assignment for modal dialogs (causes problems
19372             on Win32, since the owner will be disabled)
19373           - Reworked some Active/Focus handling (still incomplete)
19374         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19375           (causes problems on Win32, since the owner will be disabled)
19376         * IWin32Window: Added ComVisible attribute
19377
19378 2005-01-05  Peter Bartok <pbartok@novell.com>
19379
19380         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19381           required XplatUI functions.
19382
19383 2005-01-05  Peter Bartok <pbartok@novell.com>
19384
19385         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19386           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19387           to implement focus and activation handling; still incomplete and
19388           with debug output
19389
19390 2005-01-04  Peter Bartok <pbartok@novell.com>
19391
19392         * TextBoxBase.cs: Changed access level for Document property to
19393           match switch to internal for TextControl
19394
19395 2005-01-04  Peter Bartok <pbartok@novell.com>
19396
19397         * AccessibleObject: Added ComVisible attribute
19398
19399 2005-01-04  Jackson Harper  <jackson@ximian.com>
19400
19401         * X11Keyboard.cs: Remove unneeded var.
19402
19403 2005-01-04  Jackson Harper  <jackson@ximian.com>
19404
19405         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19406         but PAINT.
19407         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19408         ClientMessage. This makes apps exit cleanly (more often).
19409         
19410 2005-01-04  Jackson Harper  <jackson@ximian.com>
19411
19412         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19413         handling focus, return correct colors and fonts,
19414         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19415         handle selection, horizontal scrolling, and mouse interaction.
19416
19417 2005-01-04  Peter Bartok <pbartok@novell.com>
19418
19419         * ICommandExecutor.cs: Added
19420         * IDataGridColumnStyleEditingNotificationService.cs: Added
19421         * IFeatureSupport.cs: Added
19422         * IFileReaderService.cs: Added
19423         * IDataObject.cs: Added ComVisible attribute
19424         * AmbientProperties.cs: Added
19425         * BaseCollection.cs: Added missing attributes
19426         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19427         * BaseCollection.cs: Added missing attributes
19428         * Binding.cs: Added TypeConverter attribute
19429         * BindingContext.cs: Added DefaultEvent attribute
19430         * BindingsCollection.cs: Added DefaultEvent attribute
19431         * Button.cs: Added DefaultValue attribute
19432         * DragEventArgs.cs: Added ComVisible attribute
19433         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19434         * KeyEventArgs.cs: Added ComVisible attribute
19435         * KeyPressEventArgs.cs: Added ComVisible attribute
19436         * MouseEventArgs.cs: Added ComVisible attribute
19437         * NavigateEventArgs.cs: Added
19438         * NavigateEventHandler.cs: Added
19439         * FeatureSupport.cs: Added
19440         * OSFeature.cs: Added
19441         * Theme.cs: Added abstract Version property to support OSFeature
19442         * ThemeWin32Classic.cs: Added Version property to
19443           support OSFeature.Themes
19444         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19445           the proper styles to avoid background drawing are set, also doesn't
19446           match MS signature
19447         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19448         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19449         * ScrollEventArgs.cs: Added ComVisible attribute
19450         * SplitterEventArgs.cs: Added ComVisible attribute
19451         * AccessibleSelection.cs: Added Flags attribute
19452         * Appearance.cs: Added ComVisible attribute
19453         * Border3DSide.cs: Added ComVisible attribute
19454         * Border3DStyle.cs: Added ComVisible attribute
19455         * BorderStyle.cs: Added ComVisible attribute
19456         * DragAction.cs: Added ComVisible attribute
19457         * ErrorBlinkStyle.cs: Added
19458         * ScrollEventType.cs: Added ComVisible attribute
19459         * AnchorStyles.cs: Added Editor attribute
19460         * DockStyle.cs: Added Editor attribute
19461         * HorizontalAlignment.cs: Added ComVisible attribute
19462         * HelpEventArgs.cs: Added ComVisible attribute
19463         * PaintEventArgs.cs: Added IDisposable
19464
19465 2005-01-04  Peter Bartok <pbartok@novell.com>
19466
19467         * TextControl.cs: Switched Line, LineTag and Document classes to
19468           internal
19469
19470 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19471
19472         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19473         Simple mode, fixes, IntegralHeight, etc.
19474
19475 2005-01-04  Peter Bartok <pbartok@novell.com>
19476
19477         * TextBoxBase.cs: Using proper font variable now
19478
19479 2005-01-04  Peter Bartok <pbartok@novell.com>
19480
19481         * Form.cs (ShowDialog): Set parent to owner, if provided
19482         * GroupBox.cs: Removed unused vars
19483         * TextControl.cs:
19484           - Added GetHashCode() for Document and LineTag classes
19485           - Removed unused variables
19486           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19487             to allow translation between continuous char position and line/pos
19488         * CheckBox.cs: Removed vars that are provided by base class
19489         * RadioButton.cs: Removed vars that are provided by base class, added
19490           new keyword where required
19491         * LinkLabel.cs: Added new keyword where required
19492         * Control.cs (WndProc): Removed unused variable
19493         * TextBoxBase.cs:
19494           - Finished SelectionLength property
19495           - Implemented SelectionStart property
19496           - Implemented Text property
19497           - Removed unused vars
19498         * MessageBox.cs: Added new keyword where required
19499         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19500           WndProc signature
19501         * MenuAPI.cs: Added new keyword where required
19502         * ButtonBase.cs: Removed vars that are provided by base class, added
19503           new keyword where required
19504         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19505           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19506           into this)
19507         * Application.cs (Run): Now triggers the ThreadExit event
19508         * CommonDialog.cs: Added new keyword where required; now properly sets
19509           parent (owner) for dialog
19510         * XplatUIX11.cs: Commented out unused vars
19511         * StatusBar.cs: Fixed signature for Text property
19512         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19513
19514 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19515
19516         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19517         TrackBar.cs, MonthCalendar.cs: remove unused vars
19518
19519 2005-01-03  Jackson Harper  <jackson@ximian.com>
19520
19521         * ThemeWin32Classic.cs:
19522         * X11Keyboard.cs: Remove unused vars.
19523
19524 2005-01-03  Peter Bartok  <pbartok@novell.com>
19525
19526         * TextBox.cs:
19527           - set_Text: Tied into TextControl
19528           - set_TextAlignment: Tied into TextControl
19529         * TextControl.cs:
19530           - Added alignment properties and implemented alignment handling
19531             and drawing (still has a bug, not generating proper expose events)
19532           - Added new Line() constructor to allow passing the line alignment
19533           - Fixed selection setting, properly handling end<start now
19534           - Added aligment considerations to RecalculateDocument()
19535         * TextBoxBase.cs:
19536           - Now properly enforces control height for single line controls
19537           - Added support for CharacterCasing
19538           - Added IsInputKey override
19539           - Fixed Keys.Enter logic
19540           - Added SetBoundsCore override
19541           - Fixed mouse selection handling
19542
19543 2005-01-03  Jackson Harper  <jackson@ximian.com>
19544
19545         * TreeView.cs:
19546           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19547           - Checkboxes are always aligned to the bottom of the node,
19548           regardless of item height.
19549           - Use the node bounds to draw the text so we can center it when
19550           the item height is greater then the font height.
19551           - Node::Bounds are only the text part of the node.
19552         * TreeNode.cs: New method to combine collapsing and unchecking all
19553           nodes recursively.
19554
19555 2005-01-02  Jackson Harper  <jackson@ximian.com>
19556
19557         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19558         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19559         tree when a check is changed. TODO: Only refresh the checked node.
19560
19561 2004-12-30  Jackson Harper  <jackson@ximian.com>
19562
19563         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19564         * TreeNode.cs: When collapsing make sure to never collapse the
19565         root node.
19566
19567 2004-12-29  Jackson Harper  <jackson@ximian.com>
19568
19569         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19570         
19571 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19572
19573         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19574
19575 2004-12-28  Peter Bartok  <pbartok@novell.com>
19576
19577         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19578           not yet assigned
19579
19580 2004-12-28  Peter Bartok  <pbartok@novell.com>
19581
19582         * Control.cs (WndProc): Added WM_HELP handler, now generates
19583           HelpRequested event
19584         * Form.cs: Added HelpButton property and required support code
19585         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19586
19587 2004-12-28  Peter Bartok  <pbartok@novell.com>
19588
19589         * CommonDialog.cs:
19590           - Made DialogForm.owner variable internal
19591           - Added check to ensure owner form is set before setting
19592             owner properties in CreateParams
19593
19594 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19595
19596         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19597           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19598           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19599           system to support borderless/titleless windows (implements menus).
19600           Fix GetWindowPos.  Implement initial background color support for
19601           views.
19602
19603 2004-12-28  Peter Bartok  <pbartok@novell.com>
19604
19605         * Form.cs (get_CreateParams): Make sure we have an owner before using
19606           the owner variable. Implement proper default if no owner exists
19607
19608 2004-12-28  Peter Bartok  <pbartok@novell.com>
19609
19610         * In preparation for making Managed.Windows.Forms the default build target
19611           for System.Windows.Forms, the following stubbed files were added.
19612           Dialogs are currently being implemented by contributors and are only
19613           short-term place holders.
19614         * ColorDialog.cs: Initial check-in (minmal stub)
19615         * DataGrid.cs: Initial check-in (minimal stub)
19616         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19617         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19618         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19619         * FontDialog.cs: Initial check-in (minimal stub)
19620         * FileDialog.cs: Initial check-in (minimal stub)
19621         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19622         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19623         * OpenFileDialog: Initial check-in (minimal stub)
19624         * IComponentEditorPageSite.cs: Initial check-in
19625         * Splitter.cs: Initial check-in (for Jackson)
19626         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19627         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19628         * TextBox.cs: Initial check-in; still needs some wiring to
19629           TextControl backend
19630         * Form.cs: Implemented ControlBox property
19631         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19632         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19633         * TextControl.cs: Added selection functionality; added todo header
19634         * TextBoxBase.cs:
19635           - Implemented Lines property
19636           - Implemented TextHeight property
19637           - Implemented SelectedText property
19638           - Implemented SelectionLength property
19639           - Implemented SelectAll method
19640           - Implemented ToString method
19641           - Removed and cleaned up some debug code
19642           - Implemented (still buggy) mouse text selection
19643
19644 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19645
19646         * ComboBox.cs: Complete DropDownList implementation, fixes.
19647
19648 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19649
19650         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19651         * ComboBoxStyle.cs: ComboBoxStyle enum
19652         * ComboBox.cs: Initial work on ComboBox control
19653
19654 2004-12-21  Peter Bartok  <pbartok@novell.com>
19655
19656         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19657           forward so that anything that creates a window gets the default,
19658           also no longer uses Visible property in CreateParams to avoid
19659           walking up the parent chain and possibly get the wrong visible
19660           status. Fixed IsVisible to no longer walk up to the parent.
19661
19662 2004-12-21  Peter Bartok  <pbartok@novell.com>
19663
19664         * Form.cs (ShowDialog): Unset modality for the proper window
19665  
19666 2004-12-20  Peter Bartok  <pbartok@novell.com>
19667
19668         * CommonDialog.cs: Initial check-in
19669
19670 2004-12-20  Peter Bartok  <pbartok@novell.com>
19671
19672         * Control.cs (Visible): Now uses the parent window instead of the
19673           client area window for the property
19674
19675         * Form.cs
19676           - ShowDialog(): Now uses the proper window for modality
19677           - The default visibility state for the form parent is now false. This
19678             will prevent the user from seeing all the changes to the form and
19679             its controls before the application hits Application.Run()
19680           - Removed some stale commented out code
19681
19682         * NativeWindow.cs:
19683           - Added FindWindow() method to have a method to check for existence
19684             of a window handle
19685           - Added ability to override default exception handling (for example
19686             when debugging with VS.Net; to do this the ExternalExceptionHandler
19687             define must be set
19688           - Removed some useless debug output
19689
19690         * XplatUIX11.cs:
19691           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19692             not working as expected
19693           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19694             property to allow switching back to the modal window if focus is
19695             given to another one of our windows (Application Modal)
19696           - Now only sets override_redirect if we create a window
19697             without WS_CAPTION
19698           - Moved EventMask selection before mapping of newly created window
19699             so we can catch the map event as well
19700           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19701           - Added various Atom related DllImports
19702           - Implemented Exit() method
19703           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19704             in the CreateParams
19705
19706         * MessageBox.cs: Now properly deals with the FormParent window by
19707           providing an override the FormParent CreateParams property to
19708           set as POPUP instead of OVERLAPPED window.
19709
19710 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19711
19712         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19713         Minor code cleanup.
19714
19715 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19716         
19717         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19718
19719 2004-12-18  Peter Bartok  <pbartok@novell.com>
19720
19721         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19722           implementing SetModal() method
19723
19724 2004-12-18  Peter Bartok  <pbartok@novell.com>
19725
19726         * X11Structs.cs (XGCValues): Fixed type of function element
19727         * XplatUI.cs: Added ScrollWindow() method
19728         * XplatUIDriver.cs: Added ScrollWindow() abstract
19729         * XplatUIWin32.cs: Implemented ScrollWindow() method
19730         * XplatUIX11.cs: Implemented ScrollWindow() method
19731         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19732
19733 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19734
19735         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19736         Some more keyboard support (INCOMPLETE)
19737
19738 2004-12-17  Peter Bartok  <pbartok@novell.com>
19739
19740         * TextControl.cs:
19741         - Added color attribute to line tags.
19742         - Added color argument to all functions dealing with tags
19743         - Added color argument support to various functions
19744         - Fixed miss-calculation of baseline/shift in certain circumstances
19745
19746         * TextBoxBase.cs: Added new color option to test code
19747
19748 2004-12-17  Jackson Harper  <jackson@ximian.com>
19749
19750         * TreeNode.cs:
19751         * MonthCalendar.cs: Signature fixes
19752
19753 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19754
19755         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19756         keyboard event moved it.  Create a new graphics context for each paint resolves this
19757
19758 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19759
19760         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19761         Make caret exist and go blink blink.  Initial keyboard support.
19762         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19763         works.
19764
19765 2004-12-17  Jackson Harper  <jackson@ximian.com>
19766
19767         * XplatUIStructs.cs: Updated set of virtual keycodes.
19768         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19769
19770 2004-12-17  Jackson Harper  <jackson@ximian.com>
19771
19772         * XplatUIX11.cs: Prune old keyboard code.
19773
19774 2004-12-17  Jackson Harper  <jackson@ximian.com>
19775
19776         * XplatUIX11.cs: When generating mouse wparams get the modifier
19777         keys from the ModifierKeys property.
19778
19779 2004-12-17  Jackson Harper  <jackson@ximian.com>
19780
19781         * X11Keyboard.cs: Send up/down input when generating
19782         messages. Remove some unused vars.
19783
19784 2004-12-17  Jackson Harper  <jackson@ximian.com>
19785
19786         * TabControl.cs:
19787         * TreeView.cs: get rid of warnings.
19788
19789 2004-12-17  Jackson Harper  <jackson@ximian.com>
19790
19791         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19792
19793 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19794
19795         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19796           CheckedListBox.cs: Implementation
19797
19798 2004-12-17  Peter Bartok  <pbartok@novell.com>
19799
19800         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19801
19802 2004-12-16  Peter Bartok  <pbartok@novell.com>
19803
19804         * TextControl.cs:
19805           - InsertCharAtCaret(): Fixed start pos fixup
19806           - CaretLine_get: No longer derives the line from the tag, the tag
19807             could be stale if lines in the document have been added or deleted
19808           - RebalanceAfterDelete(): Fixed bug in balancing code
19809           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19810           - Line.Streamline(): Now can also elminate leading empty tags
19811           - DumpTree(): Added a few more tests and prevented exception on
19812             uninitialized data
19813           - Added Debug section for Combining lines
19814           - Delete(): Now copies all remaining properties of a line
19815           
19816         * TextBoxBase.cs:
19817           - Left mousebutton now sets the caret (and middle button still acts
19818             as formatting tester, which must go away soon)
19819           - Added Debug section for Deleting/Combining lines
19820           - Fixed calculations for UpdateView after Combining lines
19821
19822 2004-12-16  Peter Bartok  <pbartok@novell.com>
19823
19824         * TextControl.cs: Now properly aligns text on a baseline, using the
19825           new XplatUI.GetFontMetrics() method. Simplified several calculations
19826         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19827           defined
19828
19829 2004-12-16  Peter Bartok  <pbartok@novell.com>
19830
19831         * XplatUI.cs: Added GetFontMetrics() method
19832         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19833         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19834           into libgdiplus, our private GetFontMetrics function
19835         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19836         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19837
19838 2004-12-16  Jackson Harper  <jackson@ximain.com>
19839
19840         * XplatUIStruct.cs: Add enum for dead keys
19841         * X11Keyboard.cs: Map and unmap dead keys.
19842
19843 2004-12-16  Jackson Harper  <jackson@ximian.com>
19844
19845         * X11Keyboard.cs: Detect and use the num lock mask.
19846
19847 2004-12-16  Peter Bartok  <pbartok@novell.com>
19848
19849         * Control.cs (CreateGraphics): Added check to make sure the
19850           handle of the window exists before calling Graphics.FromHwnd()
19851
19852 2004-12-16  Peter Bartok  <pbartok@novell.com>
19853
19854         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19855           contains a lot of code that's not supposed to be there for the
19856           real thing, but required for developing/testing the textbox
19857           backend.
19858
19859 2004-12-16  Peter Bartok  <pbartok@novell.com>
19860
19861         * TextControl.cs:
19862         - Fixed Streamline method
19863         - Added FindTag method to Line
19864         - Added DumpTree method for debugging
19865         - Added DecrementLines() method for deleting lines
19866         - Fixed UpdateView to update the cursor to end-of-line on single-line
19867           updates
19868         - Added PositionCaret() method
19869         - Fixed MoveCaret(LineDown) to move into the last line, too
19870         - Added InsertChar overload
19871         - Fixed InsertChar tag offset calculations
19872         - Added DeleteChar() method
19873         - Added Combine() method for folding lines
19874         - Fixed Delete() method, no longer allocates wasted Line object and
19875           now copies all properties when swapping nodes
19876         - Delete() method now updates document line counter
19877
19878 2004-12-15  Jackson Harper  <jackson@ximian.com>
19879
19880         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19881         * X11Keyboard.cs: Expose the currently selected modifier keys
19882         through a property.
19883
19884 2004-12-15  Peter Bartok  <pbartok@novell.com>
19885
19886         * TextControl.cs: Initial check-in. Still incomplete
19887
19888 2004-12-15  Jackson Harper  <jackson@ximian.com>
19889
19890         * TreeNode.cs:
19891         * TreeView.cs: Fix build on csc (second time today ;-))
19892
19893 2004-12-15  Jackson Harper  <jackson@ximian.com>
19894
19895         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19896         is calculated and use this for click testing.
19897         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19898
19899 2004-12-15  Jackson Harper  <jackson@ximian.com>
19900
19901         * TreeView.cs: Pass the nodes image index to the image list when
19902         drawing that image.
19903
19904 2004-12-15  Jackson Harper  <jackson@ximian.com>
19905
19906         * X11Keyboard.cs: Set messages hwnd.
19907         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19908         post_message calls.
19909
19910 2004-12-15  Jackson Harper  <jackson@ximian.com>
19911
19912         * X11Keyboard.cs: Fix to compile with csc.
19913         
19914 2004-12-15  Jackson Harper  <jackson@ximian.com>
19915
19916         * X11Structs.cs: Add key mask values
19917         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19918         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19919         down/up foo into WM_CHAR foo
19920         * KeyboardLayouts.cs: Common keyboard layouts
19921         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19922         post messages into the main queue.
19923
19924 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19925
19926         * Button.cs: implement ProcessMnemonic
19927         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19928           brushes everytime
19929         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19930         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19931
19932 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19933         
19934         * MonthCalendar.cs: Implemented click-hold for next/previous month
19935           and date selection
19936           
19937 2004-12-11  Peter Bartok  <pbartok@novell.com>
19938
19939         * X11Structs.cs:
19940           - Added XKeyboardState (moved from XplatUIX11.cs)
19941           - Added XCreateGC related enums and structures
19942           - Added GXFunction for XSetFunction
19943
19944         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19945
19946         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19947           CaretVisible() calls
19948
19949         * ToolTip.cs: Added code to prevent stealing focus from app windows
19950
19951         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19952           DestroyCaret, SetCaretPos and CaretVisible)
19953
19954         * XplatUIX11.cs:
19955           - Added implementation for caret functions
19956           - Moved hover variables into a struct, to make it a bit easier
19957             on the eyes and to debug
19958           - Removed XKeyboardState (moved to XplatUIX11.cs)
19959           - Moved Keyboard properties into the properties region
19960
19961         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
19962           call to get a graphics context for our control
19963
19964         * XplatUIOSX.cs: Added empty overrides for the new caret functions
19965
19966         * TreeView.cs: Fixed bug. No matter what color was set it would always
19967           return SystemColors.Window
19968
19969         * XplatUIWin32.cs: Implemented caret overrides
19970
19971 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
19972
19973         * ListBox.cs: fire events, implement missing methods and properties,
19974         sorting.
19975
19976 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
19977
19978         * MonthCalendar.cs: invalidation bug fixing
19979         * ThemeWin32Classic.cs: paint fixing
19980
19981 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
19982
19983         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
19984         prepare the CGContextRef there now.
19985
19986 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
19987
19988         * MonthCalendar.cs:
19989           - optimisationL only invalidate areas that have changed
19990         * ThemeWin32Classic.cs:
19991           - only paint parts that intersect with clip_area
19992
19993 2004-12-09  Peter Bartok  <pbartok@novell.com>
19994
19995         * Application.cs: Undid changes from r37004 which cause problems
19996         on X11
19997
19998 2004-12-09  Ravindra  <rkumar@novell.com>
19999
20000         * ToolBar.cs: Added support for displaying ContextMenu
20001         attached to a button on ToolBar.
20002         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
20003         property.
20004
20005 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20006
20007         * Label.cs: autosize works in text change and removes unnecessary
20008         invalidate
20009
20010 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20011
20012         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
20013         remove warnings
20014
20015 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
20016
20017         * XplatUIOSX.cs: Added mouse move/click/grab support
20018         Remove some debugging WriteLines not needed anymore.
20019         Add window resizing/positioning.
20020         Fix visibility on reparenting.
20021
20022 2004-12-08  Peter Bartok  <pbartok@novell.com>
20023
20024         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
20025
20026 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
20027
20028         * XplatUIOSX.cs: Initial checkin
20029         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
20030
20031 2004-12-03  Ravindra <rkumar@novell.com>
20032
20033         * ListView.cs: Added some keybindings and fixed scrolling.
20034         ScrollBars listen to ValueChanged event instead of Scroll
20035         Event. This would let us take care of all changes being
20036         done in the scrollbars' values programmatically or manually.
20037         * ListView.cs (CanMultiselect): Added a check for shift key.
20038         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20039         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20040         of ListViewSubItemCollection as well.
20041
20042 2004-12-06  Peter Bartok <pbartok@novell.com>
20043
20044         * Control.cs (Parent): Added check and exception to prevent
20045         circular parenting
20046
20047 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20048
20049         * ListBox.cs: implemented clipping, selection single and multiple,
20050         bug fixing
20051
20052 2004-12-03  Ravindra <rkumar@novell.com>
20053
20054         * ListView.cs (ListView_KeyDown):
20055         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20056         when CTRL key is pressed.
20057         * ListViewItem.cs (Selected): Fixed setting the property.
20058
20059 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20060
20061         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20062
20063         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20064         MinimizeBox, ShowInTaskbar, TopMost properties.
20065
20066         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20067         will be implemented).
20068
20069 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20070
20071         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20072
20073         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20074         tests.
20075         
20076         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20077         
20078         * TreeView.cs: BackColor is Colors.Window.
20079
20080 2004-12-01  Jackson Harper  <jackson@ximian.com>
20081
20082         * TreeView.cs: When resizing the tree if the user is making it
20083         smaller we don't get expose events, so we need to handle adding
20084         the horizontal scrollbar in the size changed handler as well as
20085         the expose handler.
20086
20087 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20088
20089         * DrawItemState.cs: fixes wrong enum values
20090
20091 2004-12-01  Jackson Harper  <jackson@ximian.com>
20092
20093         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20094
20095 2004-12-01  Jackson Harper  <jackson@ximian.com>
20096
20097         * NodeLabelEditEventArgs.cs:
20098         * NodeLabelEditEventHandler.cs:
20099         * OpenTreeNodeEnumerator.cs:
20100         * TreeNode.cs:
20101         * TreeNodeCollection.cs:
20102         * TreeView.cs:
20103         * TreeViewAction.cs:
20104         * TreeViewCancelEventArgs.cs:
20105         * TreeViewCancelEventHandler.cs:
20106         * TreeViewEventArgs.cs:
20107         * TreeViewEventHandler.cs: Initial implementation.
20108
20109 2004-12-01  Ravindra <rkumar@novell.com>
20110
20111         * ListView.cs (CalculateListView): Fixed scrolling related
20112         calculations. Also, removed some debug statements from other
20113         places.
20114         * ListViewItem.cs: Changed access to 'selected' instance variable
20115         from private to internal.
20116         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20117
20118 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20119
20120         * ThemeWin32Classic.cs: remove cache of brush and pens for
20121         specific controls and use the global system, fixes scrollbutton
20122         bugs (for small sizes, disabled, etc)
20123         
20124         * ScrollBar.cs: does not show the thumb for very small controls
20125         (as MS) and allow smaller buttons that the regular size
20126
20127 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20128
20129         * UpDownBase.cs: Add abstract methods for the interface.
20130         Add new virtual methods (need to be hooked up to TextEntry when it
20131         exists).
20132         Add override methods for most features.
20133         Computes the size, forces the height of the text entry.
20134
20135         * NumericUpDown.cs: Put here the current testing code.
20136
20137         * Set eol-style property on all files that do not have mixed line
20138         endings, to minimize the future problems.  There are still a few
20139         files with mixed endings, and someone should choose whether they
20140         want to move it or not.
20141
20142 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20143
20144         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20145         System.Colors
20146         
20147 2004-11-30  Ravindra <rkumar@novell.com>
20148
20149         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20150         drawing and replaced use of SystemColors by theme colors.
20151         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20152         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20153         same ListViewItem is being added more than once.
20154
20155 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20156
20157         * MonthCalendar.cs:
20158           - ControlStyles love to make the control not flicker
20159           
20160 2004-11-30  Peter Bartok  <pbartok@novell.com>
20161
20162         * CharacterCasing.cs: Added
20163
20164 2004-11-29  Peter Bartok  <pbartok@novell.com>
20165
20166         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20167           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20168           I am removing these files as they conflict with already completed
20169           work. While it is fantastic to get contributions to MWF, I
20170           respectfully ask that everyone please coordinate their contributions
20171           through mono-winforms-list or #mono-winforms at this time. We're
20172           explicitly avoiding stubbing and don't want controls that don't have
20173           their basic functionality implemented in svn. Please also see
20174           http://www.mono-project.com/contributing/winforms.html
20175
20176
20177 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20178
20179         * Application.cs (ModalRun): Don't hang after exit.
20180
20181         * Theme.cs: New TreeViewDefaultSize property.
20182
20183         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20184         with less hardcoded SystemColors constant.
20185         Implemented TreeViewDefaultSize.
20186
20187         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20188         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20189
20190
20191 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20192
20193         * MonthCalendar.cs:
20194           - Fix NextMonthDate and PrevMonthDate click moving calendar
20195
20196 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20197
20198         * MonthCalendar.cs:
20199           - Fix usage of ScrollChange Property when scrolling months
20200
20201 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20202
20203         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20204          - Fixes menu destroying
20205          - Support adding and removing items on already created menus
20206
20207 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20208
20209         * MonthCalendar.cs:
20210           - Re-worked all bolded dates handling to match win32
20211         * ThemeWin32Classic.cs:
20212           - Fixed rendering with bolded dates
20213
20214 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20215
20216         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20217         - Horizontal scroolbar
20218         - Multicolumn
20219         - Fixes
20220
20221
20222 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20223
20224         * MonthCalendar.cs:
20225           - Fix Usage of MaxSelectionCount from SelectionRange
20226           - Fixed Shift + Cursor Selection
20227           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20228           - Fixed normal cursor selection to be compat with win32
20229           - Fixed Shift + Mouse Click selection
20230
20231 2004-11-24  Peter Bartok <pbartok@novell.com>
20232
20233         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20234         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20235         * XplatUIX11.cs:
20236           - CreatedKeyBoardMsg now updates keystate with Alt key
20237           - Added workaround for timer crash to CheckTimers, Jackson will
20238             develop a proper fix and check in later
20239           - Implemented DispatchMessage
20240           - Removed calling the native window proc from GetMessage (call
20241             now moved to DispatchMessage)
20242
20243         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20244           the keydata (Fixes bug #69831)
20245
20246         * XplatUIWin32.cs:
20247           - (DispatchMessage): Switched to return IntPtr
20248           - Added DllImport for SetFocus
20249
20250 2004-11-24  Ravindra <rkumar@novell.com>
20251
20252         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20253         background drawing.
20254         * ListViewItem.cs: Fixed various properties, calculations
20255         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20256         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20257         and some internal properties. Fixed MouseDown handler and Paint
20258         method.
20259
20260 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20261
20262         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20263
20264 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20265
20266         * ContainerControl.cs: correct accidental check in of local changes
20267
20268 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20269
20270         * ThemeWin32Classic.cs:
20271                 - Fixed Drawing Last month in grid (sometimes not showing)
20272         * MonthCalendar.cs:
20273                 - Fixed title width calculation bug (makeing title small)
20274
20275 2004-11-23  Peter Bartok <pbartok@novell.com>
20276
20277         * XplatUIX11.cs:
20278           - Added generation of WM_MOUSEHOVER event
20279           - Added missing assignment of async_method atom
20280           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20281
20282 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20283
20284         * ThemeWin32Classic.cs:
20285                 - Fixed Drawing of today circle when showtodaycircle not set
20286                 - fixed drawing of first and last month in the grid (gay dates)
20287         * MonthCalendar.cs:
20288                 - Fixed Drawing of today circle
20289                 - Fixed drawing of grady dates
20290                 - Fixed HitTest for today link when ShowToday set to false
20291                 - Fixed DefaultSize to obey ShowToday
20292
20293 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20294
20295         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20296         * System.Windows.Forms/Theme.cs
20297         * MonthCalendar.cs: added for MonthCalendar
20298         * SelectionRange.cs: added for MonthCalendar
20299         * Day.cs: added for MonthCalendar: added for MonthCalendar
20300         * DateRangeEventArgs.cs: added for MonthCalendar
20301         * DateRangeEventHandler.cs: added for MonthCalendar
20302
20303 2004-11-22  Ravindra <rkumar@novell.com>
20304
20305         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20306         property.
20307
20308 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20309
20310         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20311         event handler.
20312         
20313         * NumericUpDown.cs: Added new implementation.
20314         * UpDownBase.cs: Added new implementation.
20315
20316         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20317         implementations.
20318         
20319         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20320         implementations.
20321
20322         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20323         methods.
20324
20325 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20326
20327         * Timer.cs  (Dispose): Should call the base dispose when
20328         overriding.
20329
20330 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20331
20332         * ScrollBar.cs: updates thumb position when max, min or increment
20333         is changed
20334
20335 2004-11-21  Ravindra <rkumar@novell.com>
20336
20337         * ListView.cs: Implemented item selection, activation and
20338         column header style. Fixed properties to do a redraw, if
20339         required. Added support for MouseHover, DoubleClick, KeyDown
20340         and KeyUp event handling and some minor fixes.
20341         * ListViewItem.cs: Fixed constructor.
20342         * ThemeWin32Classic.cs: Improved drawing for ListView.
20343
20344 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20345
20346         * ThemeWin32Classic.cs: initial listbox drawing code
20347         * DrawMode.cs: new enumerator
20348         * ListControl.cs: stubbed class
20349         * ListBox.cs: initial implementation
20350         * Theme.cs: new methods definitions
20351         * SelectionMode.cs: new enumerator
20352
20353 2004-11-17  Peter Bartok  <pbartok@novell.com>
20354
20355         * XplatUIWin32.cs: Added double-click events to the class style
20356         * Control.cs (WndProc):
20357           - Added handling of click-count to MouseDown/ MouseUp events.
20358           - Added handling of middle and right mouse buttons
20359           - Removed old debug code
20360
20361 2004-11-17  Jackson Harper  <jackson@ximian.com>
20362
20363         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20364
20365 2004-11-17  Ravindra <rkumar@novell.com>
20366
20367         * ListView.cs: Added event handling for MouseMove/Up/Down.
20368         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20369         * ThemeWin32Classic.cs: We need to clear the graphics context and
20370         draw column header in a proper state.
20371
20372
20373 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20374
20375         *  Menu.cs: fixes signature
20376
20377 2004-11-16  Peter Bartok  <pbartok@novell.com>
20378
20379         * XplatUIX11.cs (GetMessage): Implemented generation of
20380           double click mouse messages
20381
20382 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20383
20384         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20385         not by menu
20386
20387 2004-11-11  Peter Bartok  <pbartok@novell.com>
20388
20389         * HandleData.cs: Added Visible property
20390         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20391           HandleData
20392         * XplatUIX11.cs: Removed old debug leftovers
20393         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20394         * Control.cs (WndProc): Removed old debug leftovers,
20395           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20396           needed WM_SIZE handling
20397
20398 2004-11-11  Jackson Harper  <jackson@ximian.com>
20399
20400         * OwnerDrawPropertyBag.cs:
20401         * TreeViewImageIndexConverter.cs: Initial implementation
20402
20403 2004-11-10  Jackson Harper  <jackson@ximian.com>
20404
20405         * ThemeWin32Classic.cs:
20406         * TabControl.cs: instead of moving tabs by the slider pos just
20407         start drawing at the tab that is offset by the slider. This way
20408         scrolling always moves by exactly one tab.
20409
20410 2004-11-10  Jackson Harper  <jackson@ximian.com>
20411
20412         * TabControl.cs: You can only scroll left when the slider has
20413         already ben moved right.
20414         
20415 2004-11-10  Jackson Harper  <jackson@ximian.com>
20416
20417         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20418         the clip area.
20419         
20420 2004-11-10  Jackson Harper  <jackson@ximian.com>
20421
20422         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20423         clip area.
20424         
20425 2004-11-09  Jackson Harper  <jackson@ximian.com>
20426
20427         * TabControl.cs (CalcXPos): New helper method so we can determine
20428         the proper place to start drawing vertical tabs.
20429         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20430         
20431 2004-11-09  Jackson Harper  <jackson@ximian.com>
20432
20433         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20434         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20435         and Bottom, left and right are illegal values for this and
20436         multiline is enabled when the alignment is set to left or right.
20437         (DrawTab): Each alignment block should draw the text itself now
20438         because Left requires special love. Also add rendering for Left
20439         aligned tabs.
20440         
20441 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20442
20443         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20444         does not destroy the windows, removes debugging messages
20445
20446 2004-11-09  jba  <jba-mono@optusnet.com.au>
20447
20448         * ThemeWin32Classic.cs
20449         (DrawButtonBase): Fix verticle text rect clipping in windows
20450         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20451         rendering and incorrect text rect clipping
20452         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20453         rendering and incorrect text rect clipping
20454         
20455 2004-11-08  Jackson Harper  <jackson@ximian.com>
20456
20457         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20458         bottom when they are bottom aligned so the bottoms of the tabs get
20459         displayed.
20460         * TabControl.cs (DropRow): Move rows up instead of down when the
20461         tab control is bottom aligned.
20462
20463 2004-11-08 13:59  pbartok
20464
20465         * XplatUIX11.cs:
20466           - Added handling for various window styles
20467           - Added handling for popup windows
20468           - Added SetTopmost handling
20469
20470 2004-11-08 13:55  pbartok
20471
20472         * XplatUIWin32.cs:
20473           - Added argument to SetTopmost method
20474           - Fixed broken ClientToScreen function
20475
20476 2004-11-08 13:53  pbartok
20477
20478         * XplatUIStructs.cs:
20479           - Added missing WS_EX styles
20480
20481 2004-11-08 13:53  pbartok
20482
20483         * XplatUI.cs, XplatUIDriver.cs:
20484           - Added argument to SetTopmost
20485
20486 2004-11-08 13:52  pbartok
20487
20488         * X11Structs.cs:
20489           - Added XSetWindowAttributes structure
20490           - Improved XWindowAttributes structure
20491           - Added SetWindowValuemask enum
20492           - Added window creation arguments enum
20493           - Added gravity enum
20494           - Added Motif hints structure
20495           - Added various Motif flags and enums
20496           - Added PropertyMode enum for property functions
20497
20498 2004-11-08 13:50  pbartok
20499
20500         * Form.cs:
20501           - Fixed arguments for updated SetTopmost method
20502
20503 2004-11-08 13:49  pbartok
20504
20505         * ToolTip.cs:
20506           - Fixed arguments for updated SetTopmost function
20507           - Fixed usage of PointToClient
20508
20509 2004-11-08 13:44  pbartok
20510
20511         * MenuAPI.cs:
20512           - Added Clipping of children and siblings
20513
20514 2004-11-08 13:41  pbartok
20515
20516         * MainMenu.cs:
20517           - Removed SetMenuBarWindow call. We do this in Form.cs
20518
20519 2004-11-08 13:40  jackson
20520
20521         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20522           scrolling jimmi in the correct location with bottom aligned tabs
20523
20524 2004-11-08 13:36  pbartok
20525
20526         * ContainerControl.cs:
20527           - Implemented BindingContext
20528           - Implemented ParentForm
20529
20530 2004-11-08 12:46  jackson
20531
20532         * TabControl.cs: Put bottom rendered tabs in the right location
20533
20534 2004-11-08 07:15  jordi
20535
20536         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20537           removes dead code
20538
20539 2004-11-05 17:30  jackson
20540
20541         * TabControl.cs: When selected tabs are expanded make sure they
20542           don't go beyond the edges of the tab control
20543
20544 2004-11-05 14:57  jackson
20545
20546         * TabControl.cs: Reset show_slider so if the control is resized to
20547           a size where it is no longer needed it's not displayed anymore
20548
20549 2004-11-05 13:16  jackson
20550
20551         * TabControl.cs: Make tab pages non visible when added to the
20552           control
20553
20554 2004-11-05 12:42  jackson
20555
20556         * TabControl.cs: Implement SizeMode.FillToRight
20557
20558 2004-11-05 12:16  jackson
20559
20560         * Control.cs: Do not call CreateHandle if the handle is already
20561           created
20562
20563 2004-11-05 11:46  jackson
20564
20565         * TabControl.cs: Remove superflous call to CalcTabRows
20566
20567 2004-11-05 09:07  jackson
20568
20569         * XplatUIX11.cs: Update for Mono.Posix changes
20570
20571 2004-11-05 07:00  ravindra
20572
20573         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20574           scrolling.
20575
20576 2004-11-04 22:47  jba
20577
20578         * ThemeWin32Classic.cs:
20579           - Fix Button rendering for FlatStyle = Flat or Popup
20580           - Fix RadioButton and CheckBox rendering when Appearance = Button
20581             (normal and flatstyle).
20582           - Correct outer rectangle color when drawing focus rectangle
20583           - Adjust button bounds to be 1 px smaller when focused
20584           - Make button not draw sunken 3d border when pushed (windows compat)
20585           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20586           - Offset the text in RadioButton and Checkbox when being rendered as
20587           a button.
20588           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20589           radiobuttons
20590           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20591           - Fixed disabled text rendering for normally rendered radiobuttons
20592
20593 2004-11-04 10:26  jackson
20594
20595         * TabControl.cs: Recalculate tab rows when resizing
20596
20597 2004-11-04 07:47  jordi
20598
20599         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20600           collection completion, drawing issues, missing features
20601
20602 2004-11-04 05:03  ravindra
20603
20604         * ScrollBar.cs:
20605                 - We need to recalculate the Thumb area when
20606                 LargeChange/maximum/minimum values are changed.
20607           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20608                 than minimum. This is required to handle the case if large_change is
20609                 more than max, and use LargeChange property instead of large_change
20610                 variable.
20611           - We return max+1 when large_change is more than max, like MS does.
20612
20613 2004-11-04 04:29  ravindra
20614
20615         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20616                 - Changed default value signatures (prefixed all with ListView).
20617                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20618                 ListView.
20619           - Fixed calculations for ListViewItem and implemented Clone()
20620           method.
20621
20622 2004-11-04 04:26  ravindra
20623
20624         * Theme.cs, ThemeWin32Classic.cs:
20625                 - Changed default ListView values signatures (prefixed all with
20626                 ListView).
20627           - Fixed default size values for VScrollBar and HScrollBar.
20628                 - Fixed DrawListViewItem method.
20629
20630 2004-11-04 04:05  ravindra
20631
20632         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20633
20634 2004-11-04 04:04  ravindra
20635
20636         * ImageList.cs: Implemented the missing overload for Draw method.
20637
20638 2004-11-03 19:29  jackson
20639
20640         * TabControl.cs: Handle dropping rows on selection properly
20641
20642 2004-11-03 11:59  jackson
20643
20644         * TabControl.cs: remove debug code
20645
20646 2004-11-03 11:52  jackson
20647
20648         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20649           the scrolly widgerywoo
20650
20651 2004-11-02 13:52  jackson
20652
20653         * TabControl.cs: Resize the tab pages and tabs when the tab control
20654           is resized
20655
20656 2004-11-02 13:40  jackson
20657
20658         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20659           selected tab to the bottom
20660
20661 2004-11-02 13:39  jackson
20662
20663         * TabPage.cs: Store the tab pages row
20664
20665 2004-11-02 12:33  jordi
20666
20667         * MenuItem.cs: fixes handle creation
20668
20669 2004-11-02 11:42  jackson
20670
20671         * TabControl.cs: signature fix
20672
20673 2004-11-02 08:56  jackson
20674
20675         * TabControl.cs: Calculate whether the tab is on an edge properly.
20676           Remove top secret debugging code
20677
20678 2004-11-01 19:57  jackson
20679
20680         * TabControl.cs: Add click handling, and proper sizing
20681
20682 2004-11-01 19:47  jackson
20683
20684         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20685           tab controls
20686
20687 2004-11-01 19:39  jackson
20688
20689         * TabPage.cs: add internal property to store the bounds of a tab
20690           page
20691
20692 2004-10-30 04:23  ravindra
20693
20694         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20695           values.
20696
20697 2004-10-30 04:21  ravindra
20698
20699         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20700           fixed calculations.
20701
20702 2004-10-30 03:06  pbartok
20703
20704         * XplatUIX11.cs:
20705           - Removed extension of DllImported libs
20706
20707 2004-10-29 09:55  jordi
20708
20709         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20710           navigation, itemcollection completion, menu fixes
20711
20712 2004-10-27 22:58  pbartok
20713
20714         * XplatUIX11.cs:
20715           - Now throws a nice error message when no X display could be opened
20716
20717 2004-10-26 13:51  jordi
20718
20719         * ListView.cs: removes warning
20720
20721 2004-10-26 03:55  ravindra
20722
20723         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20724           ThemeWin32Classic.cs: Some formatting for my last checkins.
20725
20726 2004-10-26 03:36  ravindra
20727
20728         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20729           control and default values.
20730
20731 2004-10-26 03:35  ravindra
20732
20733         * Theme.cs: Added some default values for ListView control.
20734
20735 2004-10-26 03:33  ravindra
20736
20737         * ToolBar.cs: ToolBar should use the user specified button size, if
20738           there is any. Added a size_specified flag for the same.
20739
20740 2004-10-26 03:33  ravindra
20741
20742         * ColumnHeader.cs: Added some internal members and calculations for
20743           ColumnHeader.
20744
20745 2004-10-26 03:32  ravindra
20746
20747         * ListViewItem.cs: Calculations for ListViewItem.
20748
20749 2004-10-26 03:31  ravindra
20750
20751         * ListView.cs: Added some internal members and calculations for
20752           ListView.
20753
20754 2004-10-22 13:31  jordi
20755
20756         * MenuAPI.cs: speedup menus drawing
20757
20758 2004-10-22 13:16  jackson
20759
20760         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20761           expose event
20762
20763 2004-10-22 11:49  jackson
20764
20765         * Control.cs: oops
20766
20767 2004-10-22 11:41  jackson
20768
20769         * Control.cs: Check to see if the window should have its background
20770           repainted by X when drawing.
20771
20772 2004-10-22 11:31  jackson
20773
20774         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20775           clear is true, this way we do not get flicker from X repainting the
20776           background
20777
20778 2004-10-22 11:28  jackson
20779
20780         * XEventQueue.cs: Queue properly
20781
20782 2004-10-21 09:38  jackson
20783
20784         * XEventQueue.cs: Fix access modifier
20785
20786 2004-10-21 09:36  jackson
20787
20788         * XEventQueue.cs: Don't loose messages
20789
20790 2004-10-21 09:22  jackson
20791
20792         * XEventQueue.cs: Don't loose messages
20793
20794 2004-10-20 04:15  jordi
20795
20796         * BootMode.cs: enum need it by SystemInfo
20797
20798 2004-10-19 21:58  pbartok
20799
20800         * XplatUIWin32.cs:
20801           - Small sanity check
20802
20803 2004-10-19 21:56  pbartok
20804
20805         * Form.cs:
20806           - Added private FormParentWindow class which acts as the container
20807             for our form and as the non-client area where menus are drawn
20808           - Added/Moved required tie-ins to Jordi's menus
20809           - Fixed/Implemented the FormStartPosition functionality
20810
20811 2004-10-19 21:52  pbartok
20812
20813         * Control.cs:
20814           - Removed unneeded locals
20815           - Added code to all size and location properties to understand and
20816             deal with the parent container of Form
20817
20818 2004-10-19 21:33  pbartok
20819
20820         * Application.cs:
20821           - Fixed to deal with new Form subclasses for menus
20822
20823 2004-10-19 17:48  jackson
20824
20825         * XEventQueue.cs: commit correct version of file
20826
20827 2004-10-19 16:50  jackson
20828
20829         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20830
20831 2004-10-19 16:15  jordi
20832
20833         * MenuAPI.cs: MenuBarCalcSize returns the height
20834
20835 2004-10-19 08:31  pbartok
20836
20837         * Control.cs:
20838           - Added missing call to PreProcessMessage before calling OnXXXKey
20839           methods
20840
20841 2004-10-19 00:04  ravindra
20842
20843         * ToolTip.cs: Fixed constructor.
20844
20845 2004-10-18 09:31  jordi
20846
20847         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20848
20849 2004-10-18 09:26  jordi
20850
20851         * MenuItem.cs: fixes MenuItem class signature
20852
20853 2004-10-18 08:56  jordi
20854
20855         * MenuAPI.cs: prevents windows from showing in the taskbar
20856
20857 2004-10-18 00:28  ravindra
20858
20859         * ToolTip.cs: Suppressed a warning message.
20860
20861 2004-10-18 00:27  ravindra
20862
20863         * Control.cs: Default value of visible property must be true.
20864
20865 2004-10-17 23:19  pbartok
20866
20867         * ToolTip.cs:
20868           - Complete implementation
20869
20870 2004-10-17 23:19  pbartok
20871
20872         * XplatUIX11.cs:
20873           - Added EnableWindow method
20874           - Added SetModal stub
20875           - Added generation of WM_ACTIVATE message (still needs testing)
20876           - Added SetTopMost stub
20877           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20878
20879 2004-10-17 23:17  pbartok
20880
20881         * XplatUIWin32.cs:
20882           - Removed VirtualKeys to XplatUIStructs
20883           - Implemented SetTopMost method
20884           - Implemented EnableWindow method
20885           - Bugfix in ScreenToClient()
20886           - Bugfixes in ClientToScreen()
20887
20888 2004-10-17 22:51  pbartok
20889
20890         * XplatUIStructs.cs:
20891           - Added WS_EX styles to WindowStyles enumeration
20892
20893 2004-10-17 22:50  pbartok
20894
20895         * XplatUI.cs, XplatUIDriver.cs:
20896           - Added method for enabling/disabling windows
20897           - Added method for setting window modality
20898           - Added method for setting topmost window
20899
20900 2004-10-17 22:49  pbartok
20901
20902         * ThemeWin32Classic.cs:
20903           - Added ToolTip drawing code
20904
20905 2004-10-17 22:49  pbartok
20906
20907         * Theme.cs:
20908           - Added ToolTip abstracts
20909
20910 2004-10-17 22:47  pbartok
20911
20912         * Form.cs:
20913           - Fixed Form.ControlCollection to handle owner relations
20914           - Added Owner/OwnedForms handling
20915           - Implemented Z-Ordering for owned forms
20916           - Removed unneeded private overload of ShowDialog
20917           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20918             so I hope)
20919           - Fixed Close(), had wrong default
20920           - Added firing of OnLoad event
20921           - Added some commented out debug code for Ownership handling
20922
20923 2004-10-17 22:16  pbartok
20924
20925         * Control.cs:
20926           - Fixed/implemented flat list of controls
20927
20928 2004-10-17 22:14  pbartok
20929
20930         * Application.cs:
20931           - Added code to simulate modal dialogs on Win32
20932
20933 2004-10-17 16:11  jordi
20934
20935         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20936           mouse event
20937
20938 2004-10-17 13:39  jordi
20939
20940         * MenuAPI.cs: menu drawing fixes
20941
20942 2004-10-15 09:10  ravindra
20943
20944         * StructFormat.cs: General Enum.
20945
20946 2004-10-15 09:09  ravindra
20947
20948         * SizeGripStyle.cs: Enum for Form.
20949
20950 2004-10-15 09:08  ravindra
20951
20952         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20953           in Theme for ListView.
20954
20955 2004-10-15 09:06  ravindra
20956
20957         * ColumnHeader.cs: Flushing some formatting changes.
20958
20959 2004-10-15 09:05  ravindra
20960
20961         * ListViewItem.cs: Implemented GetBounds method and fixed coding
20962           style.
20963
20964 2004-10-15 09:03  ravindra
20965
20966         * ListView.cs: Implemented Paint method and fixed coding style.
20967
20968 2004-10-15 07:34  jordi
20969
20970         * MenuAPI.cs: fix for X11
20971
20972 2004-10-15 07:32  ravindra
20973
20974         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
20975                 - Renamed Paint() method to Draw() for clarity. Also, moved
20976                 DrawImage() to OnPaint().
20977
20978 2004-10-15 07:25  ravindra
20979
20980         * CheckBox.cs, RadioButton.cs:
20981                 - Removed Redraw (), we get it from ButtonBase.
20982                 - Implemented Paint (), to do class specific painting.
20983
20984 2004-10-15 07:16  ravindra
20985
20986         * ButtonBase.cs:
20987                 - Redraw () is not virtual now.
20988                 - Added an internal virtual method Paint (), so that
20989                 derived classes can do their painting on their own.
20990                 - Modified OnPaint () to call Paint ().
20991
20992 2004-10-15 06:43  jordi
20993
20994         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
20995           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
20996
20997 2004-10-15 00:30  ravindra
20998
20999         * MessageBox.cs:
21000                 - MessageBox on windows does not have min/max buttons.
21001                 This change in CreateParams fixes this on Windows. We
21002                 still need to implement this windowstyle behavior in
21003                 our X11 driver.
21004
21005 2004-10-14 05:14  ravindra
21006
21007         * ToolBar.cs:
21008                 - Changed Redraw () to do a Refresh () always.
21009                 - Fixed the MouseMove event handling when mouse is pressed,
21010                 ie drag event handling.
21011                 - Replaced the usage of ToolBarButton.Pressed property to
21012                 ToolBarButton.pressed internal variable.
21013
21014 2004-10-14 05:10  ravindra
21015
21016         * ToolBarButton.cs:
21017                 - Added an internal member 'inside' to handle mouse move
21018                 with mouse pressed ie mouse drag event.
21019                 - Changed 'Pressed' property to return true only when
21020                 'inside' and 'pressed' are both true.
21021                 - Some coding style love.
21022
21023 2004-10-14 00:17  ravindra
21024
21025         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
21026           public method.
21027
21028 2004-10-14 00:15  ravindra
21029
21030         * ButtonBase.cs: Redraw () related improvements.
21031
21032 2004-10-14 00:14  ravindra
21033
21034         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21035           removed unnecessary calls to Button.Show () method.
21036
21037 2004-10-13 17:50  pbartok
21038
21039         * XplatUIX11.cs:
21040           - Formatting fix
21041           - Removed destroying of window until we solve the problem of X
21042             destroying the window before us on shutdown
21043
21044 2004-10-13 16:32  pbartok
21045
21046         * ButtonBase.cs:
21047           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21048
21049 2004-10-13 14:18  pbartok
21050
21051         * XplatUIX11.cs:
21052           - Added code to destroy the X window
21053
21054 2004-10-13 14:18  pbartok
21055
21056         * XplatUIWin32.cs:
21057           - Added code to destroy a window
21058
21059 2004-10-13 14:12  pbartok
21060
21061         * ButtonBase.cs:
21062           - Added the Redraw on Resize that got dropped in the last rev
21063
21064 2004-10-13 09:06  pbartok
21065
21066         * ThemeWin32Classic.cs:
21067           - Path from John BouAntoun:
21068             * Fix check rendering (centre correctly for normal style, offset
21069               correctly for FlatStyle).
21070             * Fix border color usage (use backcolor) for FlatStyle.Popup
21071             * Use checkbox.Capture instead of checkbox.is_pressed when
21072               rendering flatstyle states.
21073
21074 2004-10-12 21:48  pbartok
21075
21076         * ThemeWin32Classic.cs:
21077           - Removed all occurences of SystemColors and replaced them with the
21078             matching theme color
21079
21080 2004-10-12 21:41  pbartok
21081
21082         * ThemeWin32Classic.cs:
21083           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21084             him using the function for flatstyle drawing
21085           - Changed functions to use the new version of CPDrawBorder3D
21086
21087 2004-10-12 21:15  pbartok
21088
21089         * ControlPaint.cs:
21090           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21091             match MS documentation. They need to return defined colors if the
21092             passed color matches the configured control color. Thanks to John
21093             BouAntoun for pointing this out.
21094
21095 2004-10-12 20:57  pbartok
21096
21097         * Control.cs:
21098           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21099             color is changed
21100
21101 2004-10-12 20:46  pbartok
21102
21103         * CheckBox.cs:
21104           - Fix from John BouAntoun: Now properly sets the Appearance property
21105
21106 2004-10-12 20:45  pbartok
21107
21108         * ThemeWin32Classic.cs:
21109           - Fixes from John BouAntoun: now handles forecolors and backcolors
21110             for flatstyle rendered controls much better; It also fixes normal
21111             checkbox rendering when pushed or disabled.
21112
21113 2004-10-08 02:50  jordi
21114
21115         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21116           work
21117
21118 2004-10-07 08:56  jordi
21119
21120         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21121
21122 2004-10-06 03:59  jordi
21123
21124         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21125           XplatUIWin32.cs: removes warnings from compilation
21126
21127 2004-10-05 12:23  jackson
21128
21129         * RadioButton.cs: Fix ctor
21130
21131 2004-10-05 11:10  pbartok
21132
21133         * MessageBox.cs:
21134           - Partial implementation by Benjamin Dasnois
21135
21136 2004-10-05 10:15  jackson
21137
21138         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21139           by John BouAntoun
21140
21141 2004-10-05 03:07  ravindra
21142
21143         * ToolBar.cs:
21144                 - Removed a private method, Draw ().
21145                 - Fixed the ButtonDropDown event handling.
21146                 - Fixed MouseMove event handling.
21147
21148 2004-10-05 03:04  ravindra
21149
21150         * ThemeWin32Classic.cs:
21151                 - Added DrawListView method and ListViewDefaultSize property.
21152                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21153                 - Changed DOS style CRLF to Unix format (dos2unix).
21154
21155 2004-10-05 03:03  ravindra
21156
21157         * Theme.cs:
21158                 - Added DrawListView method and ListViewDefaultSize property.
21159
21160 2004-10-05 02:42  ravindra
21161
21162         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21163           clicks on DropDown arrow.
21164
21165 2004-10-04 22:56  jackson
21166
21167         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21168           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21169           Control handle the buffers, derived classes should not have to
21170           CreateBuffers themselves.
21171
21172 2004-10-04 21:20  jackson
21173
21174         * StatusBar.cs: The control handles resizing the buffers now.
21175
21176 2004-10-04 21:18  jackson
21177
21178         * Control.cs: When resizing the buffers should be invalidated. This
21179           should be handled in Control not in derived classes.
21180
21181 2004-10-04 14:45  jackson
21182
21183         * TabPage.cs: oops
21184
21185 2004-10-04 02:14  pbartok
21186
21187         * LeftRightAlignment.cs:
21188           - Initial check-in
21189
21190 2004-10-04 01:09  jordi
21191
21192         * ThemeWin32Classic.cs: fixes right button position causing right
21193           button not showing on horizontal scrollbars
21194
21195 2004-10-02 13:12  pbartok
21196
21197         * XplatUIX11.cs:
21198           - Simplified the Invalidate method by using an X call instead of
21199             generating the expose ourselves
21200           - Added an expose when the window background is changed
21201           - Implemented ClientToScreen method
21202
21203 2004-10-02 13:08  pbartok
21204
21205         * XplatUIWin32.cs:
21206           - Added Win32EnableWindow method (test for implementing modal
21207           dialogs)
21208           - Added ClientToScreen method and imports
21209
21210 2004-10-02 13:07  pbartok
21211
21212         * XplatUI.cs, XplatUIDriver.cs:
21213           - Added ClientToScreen coordinate translation method
21214
21215 2004-10-02 13:06  pbartok
21216
21217         * KeyPressEventArgs.cs:
21218           - Fixed access level for constructor
21219
21220 2004-10-02 13:06  pbartok
21221
21222         * NativeWindow.cs:
21223           - Changed access level for the window_collection hash table
21224
21225 2004-10-02 13:05  pbartok
21226
21227         * Form.cs:
21228           - Added KeyPreview property
21229           - Added Menu property (still incomplete, pending Jordi's menu work)
21230           - Implemented ProcessCmdKey
21231           - Implemented ProcessDialogKey
21232           - Implemented ProcessKeyPreview
21233
21234 2004-10-02 13:02  pbartok
21235
21236         * Control.cs:
21237           - Added private method to get the Control object from the window
21238           handle
21239           - Implemented ContextMenu property
21240           - Implemented PointToScreen
21241           - Implemented PreProcessMessage
21242           - Implemented IsInputChar
21243           - Implemented IsInputKey
21244           - Implemented ProcessCmdKey
21245           - Completed ProcessKeyEventArgs
21246           - Fixed message loop to call the proper chain of functions on key
21247           events
21248           - Implemented ProcessDialogChar
21249           - Implemented ProcessDialogKey
21250           - Implemented ProcessKeyMessage
21251           - Implemented ProcessKeyPreview
21252           - Added RaiseDragEvent stub (MS internal method)
21253           - Added RaiseKeyEvent stub (MS internal method)
21254           - Added RaiseMouseEvent stub (MS Internal method)
21255           - Added RaisePaintEvent stub (MS Internal method)
21256           - Added ResetMouseEventArgs stub (MS Internal method)
21257           - Implemented RtlTranslateAlignment
21258           - Implemented RtlTranslateContent
21259           - Implemented RtlTranslateHorizontal
21260           - Implemented RtlTranslateLeftRight
21261           - Added generation of KeyPress event
21262
21263 2004-10-02 05:57  ravindra
21264
21265         * ListViewItem.cs: Added attributes.
21266
21267 2004-10-02 05:32  ravindra
21268
21269         * ListView.cs: Added attributes.
21270
21271 2004-10-01 11:53  jackson
21272
21273         * Form.cs: Implement the Close method so work on MessageBox can
21274           continue.
21275
21276 2004-09-30 14:06  pbartok
21277
21278         * XplatUIX11.cs:
21279           - Bug fixes
21280
21281 2004-09-30 11:34  jackson
21282
21283         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21284
21285 2004-09-30 07:26  ravindra
21286
21287         * ListViewItemConverter.cs: Converter for ListViewItem.
21288
21289 2004-09-30 07:26  ravindra
21290
21291         * SortOrder.cs: Enum for ListView control.
21292
21293 2004-09-30 07:25  ravindra
21294
21295         * ColumnHeader.cs: Supporting class for ListView control.
21296
21297 2004-09-30 07:24  ravindra
21298
21299         * ListView.cs, ListViewItem.cs: Initial implementation.
21300
21301 2004-09-30 07:20  ravindra
21302
21303         * ItemActivation.cs: Enum for ListView Control.
21304
21305 2004-09-29 20:29  pbartok
21306
21307         * XplatUIX11.cs:
21308           - Added lookup of pixel value for background color; tries to get a
21309             color 'close' to the requested color, it avoids having to create a
21310             colormap.  Depending on the display this could mean the used color
21311             is slightly off the desired color. Might have to change it to a more
21312             resource intensive colormap approach, but it will work as a
21313           workaround to avoid red screens.
21314
21315 2004-09-29 14:27  jackson
21316
21317         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21318
21319 2004-09-28 12:44  pbartok
21320
21321         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21322           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21323           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21324           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21325           TrackBar.cs, VScrollBar.cs:
21326           - Streamlined Theme interfaces:
21327             * Each DrawXXX method for a control now is passed the object for
21328               the control to be drawn in order to allow accessing any state the
21329               theme might require
21330
21331             * ControlPaint methods for the theme now have a CP prefix to avoid
21332               name clashes with the Draw methods for controls
21333
21334             * Every control now retrieves it's DefaultSize from the current
21335             theme
21336
21337 2004-09-28 12:17  jackson
21338
21339         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21340           drawing
21341
21342 2004-09-24 14:57  jackson
21343
21344         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21345           Gives us a nice little performance boost.
21346
21347 2004-09-24 12:02  jackson
21348
21349         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21350           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21351           Control and supporting classes. Initial checkin
21352
21353 2004-09-23 13:08  jackson
21354
21355         * Form.cs: Temp build fixage
21356
21357 2004-09-23 01:39  ravindra
21358
21359         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21360           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21361           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21362           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21363           EventHandlers needed by ListView Control.
21364
21365 2004-09-22 14:12  pbartok
21366
21367         * ScrollableControl.cs:
21368           - Implemented DockPadding property
21369           - Implemented AutoScroll property
21370           - Implemented AutoScrollMargin property
21371           - Implemented AutoScrollMinSize property
21372           - Implemented AutoScrollPosition property
21373           - Implemented DisplayRectangle property (still incomplete)
21374           - Implemented CreateParams property
21375           - Implemented HScroll property
21376           - Implemented VScroll property
21377           - Implemented OnVisibleChanged property
21378
21379 2004-09-22 14:09  pbartok
21380
21381         * Form.cs:
21382           - Added Form.ControllCollection class
21383           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21384             RemoveOwnedForm (still incomplete, missing on-top and common
21385             minimize/maximize behaviour)
21386           - Added StartPosition property (still incomplete, does not use when
21387             creating the form)
21388           - Added ShowDialog() methods (still incomplete, missing forcing the
21389             dialog modal)
21390
21391 2004-09-22 14:05  pbartok
21392
21393         * Application.cs:
21394           - Added message loop for modal dialogs
21395
21396 2004-09-22 14:02  pbartok
21397
21398         * GroupBox.cs:
21399           - Fixed wrong types for events
21400
21401 2004-09-22 14:00  pbartok
21402
21403         * Shortcut.cs, FormWindowState.cs:
21404           - Fixed wrong values
21405
21406 2004-09-22 12:01  jackson
21407
21408         * Control.cs: Text is never null
21409
21410 2004-09-20 22:14  pbartok
21411
21412         * XplatUIWin32.cs:
21413           - Fixed accessibility level for Idle handler
21414
21415 2004-09-20 18:54  jackson
21416
21417         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21418           XplatUIX11.cs: New message loop that uses poll so we don't get a
21419           busy loop
21420
21421 2004-09-17 10:43  pbartok
21422
21423         * ScrollBar.cs:
21424           - Fixed behaviour of arrow buttons. Now properly behaves like
21425             Buttons (and like Microsoft's scrollbar arrow buttons)
21426
21427 2004-09-17 10:14  pbartok
21428
21429         * ScrollBar.cs:
21430           - Added missing release of keyboard/mouse capture
21431
21432 2004-09-17 06:18  jordi
21433
21434         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21435           Theme.cs: Very early menu support
21436
21437 2004-09-16 17:45  pbartok
21438
21439         * XplatUIWin32.cs:
21440           - Fixed sending a window to the front
21441           - Added overload for SetWindowPos to avoid casting
21442
21443 2004-09-16 17:44  pbartok
21444
21445         * Control.cs:
21446           - Added SendToBack and BringToFront methods
21447
21448 2004-09-16 07:00  ravindra
21449
21450         * Copyright: Added Novell URL.
21451
21452 2004-09-16 07:00  ravindra
21453
21454         * ToolBar.cs: Invalidate should be done before redrawing.
21455
21456 2004-09-15 21:19  ravindra
21457
21458         * ColumnHeaderStyle.cs: Enum for ListView Control.
21459
21460 2004-09-15 21:18  ravindra
21461
21462         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21463           ListView Control.
21464
21465 2004-09-13 18:26  jackson
21466
21467         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21468           properly
21469
21470 2004-09-13 18:13  jackson
21471
21472         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21473           a second thread and post messages into the main threads message
21474           queue. This makes timing much more consistent. Both win2K and XP
21475           have a minimum timer value of 15 milliseconds, so we now do this
21476           too.
21477
21478 2004-09-13 15:18  pbartok
21479
21480         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21481           XplatUIX11.cs:
21482           - Added Z-Ordering methods
21483
21484 2004-09-13 10:56  pbartok
21485
21486         * Form.cs:
21487           - Fixed #region names
21488           - Moved properties and methods into their proper #regions
21489
21490 2004-09-13 10:51  pbartok
21491
21492         * Form.cs:
21493           - Added Accept and CancelButton properties
21494           - Added ProcessDialogKey() method
21495
21496 2004-09-13 08:18  pbartok
21497
21498         * IWindowTarget.cs:
21499           - Initial check-in
21500
21501 2004-09-10 21:50  pbartok
21502
21503         * Control.cs:
21504           - Added DoDragDrop() [incomplete]
21505           - Properly implemented 'Visible' handling
21506           - Added SetVisibleCore()
21507           - Implemented FindChildAtPoint()
21508           - Implemented GetContainerControl()
21509           - Implemented Hide()
21510
21511 2004-09-10 19:28  pbartok
21512
21513         * Control.cs:
21514           - Moved methods into their appropriate #regions
21515           - Reordered methods within regions alphabetically
21516
21517 2004-09-10 18:57  pbartok
21518
21519         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21520           - Added method to retrieve text from window
21521
21522 2004-09-10 18:56  pbartok
21523
21524         * Control.cs:
21525           - Moved some internal functions into the internal region
21526           - Implemented FontHeight
21527           - Implemented RenderRightToLeft
21528           - Implemented ResizeRedraw
21529           - Implemented ShowFocusCues
21530           - Implemented ShowKeyboardCues
21531           - Implemented FromChildHandle
21532           - Implemented FromHandle
21533           - Implemented IsMnemonic
21534           - Implemented ReflectMessage
21535           - All public and protected Static Methods are now complete
21536
21537 2004-09-10 16:54  pbartok
21538
21539         * Control.cs:
21540           - Implemented remaining missing public instance properties
21541           - Alphabetized some out of order properties
21542
21543 2004-09-10 05:51  ravindra
21544
21545         * PictureBox.cs: Added a check for null image.
21546
21547 2004-09-10 00:59  jordi
21548
21549         * GroupBox.cs: remove cvs tag
21550
21551 2004-09-09 05:25  ravindra
21552
21553         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21554
21555 2004-09-09 05:23  ravindra
21556
21557         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21558           parent redraw.
21559
21560 2004-09-09 02:28  pbartok
21561
21562         * ThemeWin32Classic.cs:
21563           - Improve disabled string look
21564
21565 2004-09-09 01:15  jordi
21566
21567         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21568           args and handler
21569
21570 2004-09-08 23:56  ravindra
21571
21572         * ItemBoundsPortion.cs: It's enum, not a class!
21573
21574 2004-09-08 23:47  ravindra
21575
21576         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21577           Enums for Form.
21578
21579 2004-09-08 21:13  ravindra
21580
21581         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21582           ListView control.
21583
21584 2004-09-08 21:03  ravindra
21585
21586         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21587           avoid crash.
21588
21589 2004-09-08 21:01  ravindra
21590
21591         * ScrollableControl.cs: Removed unreachable code.
21592
21593 2004-09-08 06:45  jordi
21594
21595         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21596
21597 2004-09-08 01:00  jackson
21598
21599         * XplatUIX11.cs: Only run the timers when updating the message
21600           queue. This effectively gives X messages a higher priority then
21601           timer messages. Timers still need love though
21602
21603 2004-09-07 14:01  jackson
21604
21605         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21606           this for us and the handle is no longer valid.
21607
21608 2004-09-07 13:59  jackson
21609
21610         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21611           loop that manages to not crash. TODO: Add poll and cleanup timers
21612
21613 2004-09-07 11:12  jordi
21614
21615         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21616
21617 2004-09-07 03:40  jordi
21618
21619         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21620           fixes, methods, multiple links
21621
21622 2004-09-06 06:55  jordi
21623
21624         * Control.cs: Caches ClientRectangle rectangle value
21625
21626 2004-09-05 02:03  jordi
21627
21628         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21629           certain situations
21630
21631 2004-09-04 11:10  jordi
21632
21633         * Label.cs: Refresh when font changed
21634
21635 2004-09-02 16:24  pbartok
21636
21637         * Control.cs:
21638           - Added sanity check to creation of double buffer bitmap
21639
21640 2004-09-02 16:24  pbartok
21641
21642         * ButtonBase.cs:
21643           - Fixed selection of text color
21644           - Fixed handling of resize event; now properly recreates double
21645             buffering bitmap
21646           - Added missing assignment of TextAlignment
21647           - Added proper default for TextAlignment
21648
21649 2004-09-02 14:26  pbartok
21650
21651         * RadioButton.cs:
21652           - Added missing RadioButton.RadioButtonAccessibleObject class
21653
21654 2004-09-02 14:26  pbartok
21655
21656         * Control.cs:
21657           - Added missing Control.ControlAccessibleObject class
21658           - Started to implement Select()ion mechanisms, still very incomplete
21659
21660 2004-09-02 14:25  pbartok
21661
21662         * AccessibleObject.cs:
21663           - Added missing methods
21664
21665 2004-09-02 14:23  pbartok
21666
21667         * AccessibleNavigation.cs, AccessibleSelection.cs:
21668           - Initial check-in
21669
21670 2004-09-02 10:32  jordi
21671
21672         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21673           pool for pens, brushes, and hatchbruses
21674
21675 2004-09-01 15:30  jackson
21676
21677         * StatusBar.cs: Fix typo
21678
21679 2004-09-01 14:44  pbartok
21680
21681         * RadioButton.cs:
21682           - Fixed state
21683
21684 2004-09-01 14:39  pbartok
21685
21686         * Button.cs, RadioButton.cs:
21687           - Functional initial check-in
21688
21689 2004-09-01 14:01  pbartok
21690
21691         * CheckBox.cs:
21692           - Added missing default
21693           - Added missing region mark
21694
21695 2004-09-01 09:10  jordi
21696
21697         * Label.cs: fixes method signatures, new methods, events, fixes
21698           autosize
21699
21700 2004-09-01 07:19  jordi
21701
21702         * Control.cs: Init string variables with an empty object
21703
21704 2004-09-01 04:20  jordi
21705
21706         * Control.cs: fires OnFontChanged event
21707
21708 2004-08-31 20:07  pbartok
21709
21710         * ButtonBase.cs:
21711           - Enabled display of strings
21712
21713 2004-08-31 20:05  pbartok
21714
21715         * Form.cs:
21716           - Added (partial) implementation of DialogResult; rest needs to be
21717             implemented when the modal loop code is done
21718
21719 2004-08-31 19:55  pbartok
21720
21721         * CheckBox.cs:
21722           - Fixed to match the removal of the needs_redraw concept
21723
21724 2004-08-31 19:55  pbartok
21725
21726         * ButtonBase.cs:
21727           - Removed the rather odd split between 'needs redraw' and redrawing
21728           - Now handles the events that require regeneration (ambient
21729             properties and size)
21730
21731 2004-08-31 19:41  pbartok
21732
21733         * Control.cs:
21734           - Added firing of BackColorChanged event
21735           - Added TopLevelControl property
21736           - Fixed handling of WM_ERASEBKGRND message
21737
21738 2004-08-31 12:49  pbartok
21739
21740         * ButtonBase.cs:
21741           - Removed debug
21742           - Minor fixes
21743
21744 2004-08-31 12:48  pbartok
21745
21746         * CheckBox.cs:
21747           - Finished (famous last words)
21748
21749 2004-08-31 04:35  jordi
21750
21751         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21752           scrolling bugs, adds new methods
21753
21754 2004-08-30 14:42  pbartok
21755
21756         * CheckBox.cs:
21757           - Implemented CheckBox drawing code
21758
21759 2004-08-30 14:42  pbartok
21760
21761         * ButtonBase.cs:
21762           - Made Redraw() and CheckRedraw() virtual
21763           - Improved mouse up/down/move logic to properly track buttons
21764
21765 2004-08-30 09:44  pbartok
21766
21767         * CheckBox.cs:
21768           - Updated to fix broken build. Not complete yet.
21769
21770 2004-08-30 09:28  pbartok
21771
21772         * CheckState.cs:
21773           - Initial checkin
21774
21775 2004-08-30 09:17  pbartok
21776
21777         * Appearance.cs:
21778           - Initial check-in
21779
21780 2004-08-27 16:12  ravindra
21781
21782         * ToolBarButton.cs: Added TypeConverter attribute.
21783
21784 2004-08-27 16:07  ravindra
21785
21786         * ImageIndexConverter.cs: Implemented.
21787
21788 2004-08-27 14:17  pbartok
21789
21790         * Control.cs:
21791           - Removed unneeded stack vars
21792           - First attempt to fix sizing issues when layout is suspended
21793
21794 2004-08-25 15:35  jordi
21795
21796         * ScrollBar.cs: more fixes to scrollbar
21797
21798 2004-08-25 14:04  ravindra
21799
21800         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21801           Added the missing divider code and grip for ToolBar Control.
21802
21803 2004-08-25 13:20  pbartok
21804
21805         * Control.cs:
21806           - Control now properly passes the ambient background color to child
21807             controls
21808
21809 2004-08-25 13:20  jordi
21810
21811         * ScrollBar.cs: small bug fix regarding bar position
21812
21813 2004-08-25 12:33  pbartok
21814
21815         * Timer.cs:
21816           - Now only calls SetTimer or KillTimer if the enabled state has
21817           changed
21818
21819 2004-08-25 12:33  pbartok
21820
21821         * XplatUIWin32.cs:
21822           - Fixed timer handling, now seems to work
21823           - Improved error message for window creation
21824
21825 2004-08-25 12:32  pbartok
21826
21827         * Control.cs:
21828           - Fixed generation of MouseUp message
21829
21830 2004-08-25 12:29  jordi
21831
21832         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21833           and fixes for progressbar
21834
21835 2004-08-24 18:43  ravindra
21836
21837         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21838           in ToolBar control.
21839
21840 2004-08-24 17:15  pbartok
21841
21842         * Panel.cs:
21843           - Added #region
21844           - Added missing events
21845           - Alphabetized
21846
21847 2004-08-24 17:14  pbartok
21848
21849         * StatusBar.cs, PictureBox.cs:
21850           - Now uses Control's CreateParams
21851
21852 2004-08-24 16:36  pbartok
21853
21854         * XplatUIX11.cs:
21855           - Fixed background color handling
21856           - Fixed sending of enter/leave events on a grab
21857
21858 2004-08-24 16:35  pbartok
21859
21860         * X11Structs.cs:
21861           - Refined definitions for CrossingEvent
21862
21863 2004-08-24 12:37  jordi
21864
21865         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21866           formmating, methods signature, and adds missing events
21867
21868 2004-08-24 12:24  jordi
21869
21870         * Control.cs: fire OnEnabledChanged event
21871
21872 2004-08-24 11:17  pbartok
21873
21874         * XplatUIWin32.cs:
21875           - Implemented SetTimer() and KillTimer()
21876
21877 2004-08-24 11:16  pbartok
21878
21879         * XplatUIX11.cs:
21880           - Now uses Remove instead of Add to kill the timer
21881
21882 2004-08-24 10:16  jackson
21883
21884         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21885           picture boxes in the theme now. Draw picture box borders and obey
21886           sizing modes
21887
21888 2004-08-24 05:49  jackson
21889
21890         * Timer.cs: Remove top secret debugging code
21891
21892 2004-08-24 05:34  jackson
21893
21894         * PictureBox.cs: Temp hack to make picture boxes draw their full
21895           image
21896
21897 2004-08-24 05:29  jackson
21898
21899         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21900           XplatUIX11.cs: Move timers to the driver level. On X they are
21901           queued by the driver and checked on idle.
21902
21903 2004-08-24 01:07  jackson
21904
21905         * XplatUIX11.cs: Use a queue for async messages instead of passing
21906           them as ClientMessages since that was totally broken. Also simply
21907           check for events and return an idle message if none are found. This
21908           gives us an idle handler, and prevents deadlocking when no messages
21909           are in the queue.
21910
21911 2004-08-23 18:19  ravindra
21912
21913         * XplatUIWin32.cs: Removed the unwanted destructor.
21914
21915 2004-08-23 17:27  pbartok
21916
21917         * ButtonBase.cs:
21918           - Finishing touches. Works now, just needs some optimizations.
21919
21920 2004-08-23 16:53  jordi
21921
21922         * ScrollBar.cs: small fix
21923
21924 2004-08-23 16:45  pbartok
21925
21926         * Application.cs:
21927           - Removed debug output
21928           - Simplifications
21929
21930 2004-08-23 16:43  jordi
21931
21932         * ScrollBar.cs: [no log message]
21933
21934 2004-08-23 16:10  pbartok
21935
21936         * Form.cs:
21937           - Fixed handling of WM_CLOSE message
21938           - Removed debug output
21939
21940 2004-08-23 16:09  pbartok
21941
21942         * Application.cs:
21943           - Added handling of Idle event
21944           - Added handling of form closing
21945           - Fixed reporting of MessageLoop property
21946           - Removed some unneeded code, should provide a bit of a speedup
21947
21948 2004-08-23 15:22  pbartok
21949
21950         * Control.cs:
21951           - Added InitLayout() method
21952           - Added code to properly perform layout when Anchor or Dock property
21953             is changed
21954           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21955             LAMESPEC, tried to do it in a way that makes sense
21956
21957 2004-08-23 14:10  jordi
21958
21959         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21960           properties and methods
21961
21962 2004-08-23 13:55  pbartok
21963
21964         * Control.cs:
21965           - Properly fixed Jordi's last fix
21966           - Now uses Cursor's Position property instead of calling XplatUI
21967           directly
21968
21969 2004-08-23 13:44  jordi
21970
21971         * PaintEventHandler.cs: Adding missing attribute
21972
21973 2004-08-23 13:39  pbartok
21974
21975         * Cursor.cs:
21976           - Implemented Position property
21977
21978 2004-08-23 13:39  pbartok
21979
21980         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21981           - Added method to move mouse cursor
21982
21983 2004-08-23 13:39  pbartok
21984
21985         * XplatUIX11.cs:
21986           - Fixed setting of background color
21987           - Added method to move mouse cursor
21988
21989 2004-08-23 13:16  jordi
21990
21991         * Control.cs: avoids null exception
21992
21993 2004-08-22 17:46  jackson
21994
21995         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
21996           PictureBox
21997
21998 2004-08-22 17:40  jackson
21999
22000         * XplatUIX11.cs: Add some missing locks
22001
22002 2004-08-22 15:10  pbartok
22003
22004         * Control.cs, Form.cs:
22005           - Removed OverlappedWindow style from Control, instead it's default
22006             now is child
22007           - Made form windows OverlappedWindow by default
22008
22009 2004-08-22 13:34  jackson
22010
22011         * ScrollBar.cs: Update the position through the Value property so
22012           the OnValueChanged event is raised.
22013
22014 2004-08-22 12:04  pbartok
22015
22016         * SWF.csproj:
22017           - Added Cursor.cs and UserControl.cs
22018
22019 2004-08-22 12:03  pbartok
22020
22021         * Cursor.cs:
22022           - Started implementation, not usable yet
22023
22024 2004-08-22 12:00  pbartok
22025
22026         * UserControl.cs:
22027           - Implemented UserControl (complete)
22028
22029 2004-08-21 19:20  ravindra
22030
22031         * ToolBar.cs: Correcting the formatting mess of VS.NET.
22032
22033 2004-08-21 18:49  ravindra
22034
22035         * ToolBar.cs: Probably this completes the missing attributes in
22036           toolbar control.
22037
22038 2004-08-21 18:03  ravindra
22039
22040         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22041           Fixed toolbar control signatures.
22042
22043 2004-08-21 16:32  pbartok
22044
22045         * LinkLabel.cs:
22046           - Signature Fixes
22047
22048 2004-08-21 16:30  pbartok
22049
22050         * Label.cs:
22051           - Signature fixes
22052
22053 2004-08-21 16:19  pbartok
22054
22055         * Control.cs, Label.cs:
22056           - Signature fixes
22057
22058 2004-08-21 15:57  pbartok
22059
22060         * ButtonBase.cs:
22061           - Added loads of debug output for development
22062           - Fixed typo in method name
22063
22064 2004-08-21 15:52  pbartok
22065
22066         * ToolBarButtonClickEventArgs.cs:
22067           - Added missing base class
22068
22069 2004-08-21 14:53  pbartok
22070
22071         * Control.cs:
22072           - Updated to match new GrabWindow signature
22073
22074 2004-08-21 14:51  pbartok
22075
22076         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22077           - Added method to get default display size
22078
22079 2004-08-21 14:23  pbartok
22080
22081         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22082           - Added method to query current grab state
22083           - Added argument to allow confining a grab to a window
22084
22085 2004-08-21 14:22  pbartok
22086
22087         * Keys.cs:
22088           - Added [Flags] attribute so that modifiers can be used in bitwise
22089           ops
22090
22091 2004-08-21 14:21  pbartok
22092
22093         * TrackBar.cs, ScrollBar.cs:
22094           - Replaced direct XplatUI calls with their Control counterpart
22095
22096 2004-08-21 13:32  pbartok
22097
22098         * Control.cs:
22099           - Implemented Created property
22100
22101 2004-08-21 13:28  pbartok
22102
22103         * Control.cs:
22104           - Implemented ContainsFocus
22105
22106 2004-08-21 13:26  pbartok
22107
22108         * Control.cs:
22109           - Implemented CausesValidation
22110
22111 2004-08-21 13:21  pbartok
22112
22113         * Control.cs:
22114           - Implemented CanFocus
22115           - Implemented CanSelect
22116           - Implemented Capture
22117
22118 2004-08-21 12:35  pbartok
22119
22120         * XplatUIWin32.cs:
22121           - Fixed bug with Async message handling
22122           - Implemented getting the ModifierKeys
22123
22124 2004-08-21 12:32  jackson
22125
22126         * AsyncMethodResult.cs: Make sure we have the mutex before we
22127           release it. Fixes BeginInvoke on windows
22128
22129 2004-08-21 11:31  pbartok
22130
22131         * XplatUIWin32.cs, XplatUIX11.cs:
22132           - Drivers now return proper mouse state
22133
22134 2004-08-21 10:54  jackson
22135
22136         * Control.cs: Implement EndInvoke
22137
22138 2004-08-21 10:48  jackson
22139
22140         * Timer.cs: Remove unneeded finalizer
22141
22142 2004-08-20 19:52  ravindra
22143
22144         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22145           in mouse event handling in the ToolBar control.
22146
22147 2004-08-20 19:50  ravindra
22148
22149         * ImageList.cs: Changed draw method to use the arguments passed in
22150           to draw the image.
22151
22152 2004-08-20 18:58  pbartok
22153
22154         * XplatUIStructs.cs:
22155           - Added private message for async communication
22156
22157 2004-08-20 17:38  ravindra
22158
22159         * Control.cs: Made RightToLeft property virtual and removed a
22160           Console.WriteLine.
22161
22162 2004-08-20 14:39  jordi
22163
22164         * ThemeGtk.cs: use style_attach
22165
22166 2004-08-20 14:39  pbartok
22167
22168         * XplatUIWin32.cs:
22169           - Added jackson's Async code from X11 to Win32
22170
22171 2004-08-20 14:09  pbartok
22172
22173         * SWF.csproj:
22174           - Added all new files
22175
22176 2004-08-20 14:09  pbartok
22177
22178         * Control.cs:
22179           - Added call to set window background color
22180
22181 2004-08-20 14:03  pbartok
22182
22183         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22184           - Added method for setting the window background
22185
22186 2004-08-20 14:02  pbartok
22187
22188         * XplatUIWin32.cs:
22189           - Added method for setting the background color
22190           - Added handling for erasing the window background
22191
22192 2004-08-20 13:45  jordi
22193
22194         * TrackBar.cs: fixes timer, new properties and methods
22195
22196 2004-08-20 13:34  jackson
22197
22198         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22199           correct thread
22200
22201 2004-08-20 13:22  jackson
22202
22203         * Timer.cs: Timer Tick events are now handed through Controls Async
22204           mechanism so the callbacks are executed in the same thread as X
22205
22206 2004-08-20 13:19  jackson
22207
22208         * XplatUIDriver.cs: Expose functionality to send async messages
22209           through the driver
22210
22211 2004-08-20 13:18  jackson
22212
22213         * Control.cs: Implement Begininvoke
22214
22215 2004-08-20 13:14  jackson
22216
22217         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22218           messages through the driver
22219
22220 2004-08-20 13:12  jackson
22221
22222         * XplatUIX11.cs: Lock before all X operations. Also added Async
22223           method functionality through XSendEvent
22224
22225 2004-08-20 13:11  jackson
22226
22227         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22228           This will screw up on 64 bit systems)
22229
22230 2004-08-20 13:10  jackson
22231
22232         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22233           Async messages through X/Win32
22234
22235 2004-08-19 19:39  pbartok
22236
22237         * XplatUIX11.cs:
22238           - Updated code to match new HandleData.DeviceContext type
22239
22240 2004-08-19 19:38  pbartok
22241
22242         * HandleData.cs:
22243           - Made DeviceContext a generic object to allow usage from various
22244           drivers
22245           - Added support for queueing Windows messages
22246
22247 2004-08-19 19:37  pbartok
22248
22249         * XplatUIWin32.cs:
22250           - Added generation of MouseEnter, MouseLeave and MouseHover events
22251           - Added cleanup on EndPaint
22252
22253 2004-08-19 19:17  pbartok
22254
22255         * Control.cs:
22256           - Added handling of WM_MOUSEHOVER
22257           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22258           code
22259
22260 2004-08-19 18:55  jordi
22261
22262         * ThemeGtk.cs: fixes button order
22263
22264 2004-08-19 18:12  jordi
22265
22266         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22267
22268 2004-08-19 17:09  pbartok
22269
22270         * Control.cs:
22271           - Added Right property
22272           - Added RightToLeft property
22273
22274 2004-08-19 16:27  jordi
22275
22276         * ThemeGtk.cs: experimental GTK theme support
22277
22278 2004-08-19 16:26  jordi
22279
22280         * ITheme.cs, Theme.cs: move themes from an interface to a class
22281
22282 2004-08-19 16:25  jordi
22283
22284         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22285           theme enhancaments
22286
22287 2004-08-19 16:04  pbartok
22288
22289         * XplatUIX11.cs:
22290           - Added colormap basics
22291           - Added a way to re-initialize with a different display handle
22292           - Fixed setting of the window background color
22293           - Added various X11 imports related to colors and colormaps
22294
22295 2004-08-19 15:51  pbartok
22296
22297         * X11Structs.cs:
22298           - Removed packing hints (Paolo suggested this a while back)
22299           - fixed colormap type
22300           - Added default Atom types
22301           - Added Screen and color structs and enums
22302
22303 2004-08-19 15:39  pbartok
22304
22305         * ImageList.cs:
22306           - Added missing Draw() method
22307           - Added missing RecreateHandle event
22308
22309 2004-08-19 15:30  pbartok
22310
22311         * Form.cs:
22312           - Added handling of WM_CLOSE
22313
22314 2004-08-18 13:16  jordi
22315
22316         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22317           a table
22318
22319 2004-08-18 09:56  jordi
22320
22321         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22322
22323 2004-08-17 15:31  ravindra
22324
22325         * SWF.csproj: Updated project.
22326
22327 2004-08-17 15:25  pbartok
22328
22329         * Control.cs:
22330           - Drawing improvement; don't call UpdateBounds if we are not visible
22331             (or have been minimized)
22332
22333 2004-08-17 15:24  pbartok
22334
22335         * XplatUIWin32.cs:
22336           - Finished IsVisible
22337           - Added Win32GetWindowPlacement
22338
22339 2004-08-17 15:08  jackson
22340
22341         * Panel.cs: Initial checkin of the Panel
22342
22343 2004-08-17 14:25  pbartok
22344
22345         * Control.cs:
22346           - Fixed broken handling of default window sizes
22347
22348 2004-08-17 13:29  jackson
22349
22350         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22351           has a large startup time.
22352
22353 2004-08-17 10:25  jackson
22354
22355         * HandleData.cs: union areas properly
22356
22357 2004-08-17 10:12  jackson
22358
22359         * HandleData.cs: union areas properly
22360
22361 2004-08-16 20:00  ravindra
22362
22363         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22364
22365 2004-08-16 18:48  ravindra
22366
22367         * ToolBar.cs: Added attributes.
22368
22369 2004-08-16 17:17  ravindra
22370
22371         * SWF.csproj: Updated project.
22372
22373 2004-08-16 17:16  jackson
22374
22375         * XplatUIX11.cs: Check for more expose events before sending a
22376           WM_PAINT so they can all be grouped together. This makes dragging a
22377           window across another window redraw in a sane way.
22378
22379 2004-08-16 15:47  pbartok
22380
22381         * Control.cs:
22382           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22383             support OnMouseEnter/Leave()
22384           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22385             exposure handling
22386
22387 2004-08-16 15:46  pbartok
22388
22389         * XplatUIStructs.cs, XplatUIX11.cs:
22390           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22391           OnMouseEnter/Leave()
22392
22393 2004-08-16 15:34  jackson
22394
22395         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22396           sure messages get the message field set to WM_NULL if they are not
22397           handled.
22398
22399 2004-08-16 15:24  jackson
22400
22401         * HandleData.cs: HandleData is used for storing message information
22402           for window handles
22403
22404 2004-08-15 17:23  ravindra
22405
22406         * ColorDepth.cs: Added attribute.
22407
22408 2004-08-15 17:23  ravindra
22409
22410         * SWF.csproj: Updated project for ToolBar Control.
22411
22412 2004-08-15 17:20  ravindra
22413
22414         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22415           control and also dos2unix format.
22416
22417 2004-08-15 17:13  ravindra
22418
22419         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22420           ToolBarButtonClickEventArgs.cs,
22421           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22422           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22423
22424 2004-08-15 15:31  pbartok
22425
22426         * ButtonBase.cs:
22427           - First (mostly) working version
22428
22429 2004-08-13 16:15  pbartok
22430
22431         * Control.cs:
22432           - Fixed Anchor default
22433
22434 2004-08-13 15:43  pbartok
22435
22436         * Control.cs:
22437           - Changed GetCursorPos signature
22438
22439 2004-08-13 15:42  pbartok
22440
22441         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22442           - Changed signature for GetCursorPos
22443
22444 2004-08-13 15:25  pbartok
22445
22446         * XplatUIX11.cs:
22447           - Cleanup
22448           - Fixed resizing/exposure handling
22449
22450 2004-08-13 15:22  jordi
22451
22452         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22453           with tickposition
22454
22455 2004-08-13 14:55  jordi
22456
22457         * TrackBar.cs: change from wndproc to events
22458
22459 2004-08-13 13:00  jordi
22460
22461         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22462           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22463
22464 2004-08-13 12:53  pbartok
22465
22466         * XplatUIWin32.cs:
22467           - Changed GetWindowPos to also provide client area size
22468           - Fixed broken prototypes for several win32 functions
22469
22470 2004-08-13 12:53  pbartok
22471
22472         * XplatUI.cs, XplatUIDriver.cs:
22473           - Changed GetWindowPos to also provide client area size
22474
22475 2004-08-13 12:52  pbartok
22476
22477         * XplatUIX11.cs:
22478           - Added generation of WM_POSCHANGED
22479           - Changed GetWindowPos to also provide client area size
22480
22481 2004-08-13 12:52  pbartok
22482
22483         * Control.cs:
22484           - Added Dispose() and destructor
22485           - Fixed resizing and bounds calculation
22486           - Fixed Layout
22487           - Added memory savings for invisible windows
22488
22489 2004-08-13 12:46  jordi
22490
22491         * TrackBar.cs: adds timer and grap window
22492
22493 2004-08-13 10:25  jackson
22494
22495         * Timer.cs: SWF Timer
22496
22497 2004-08-12 16:59  pbartok
22498
22499         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22500           - Implemented method to get current mouse position
22501
22502 2004-08-12 14:29  jordi
22503
22504         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22505           enhancement, fix mouse problems, highli thumb, etc
22506
22507 2004-08-12 13:31  pbartok
22508
22509         * Control.cs:
22510           - Fixed Anchoring bugs
22511
22512 2004-08-12 13:01  jackson
22513
22514         * StatusBar.cs: Don't forget things
22515
22516 2004-08-12 12:54  jackson
22517
22518         * ThemeWin32Classic.cs: Handle owner draw status bars
22519
22520 2004-08-12 12:54  jackson
22521
22522         * StatusBar.cs: Implement missing properties, events, and methods.
22523           Handle mouse clicking
22524
22525 2004-08-12 10:19  jackson
22526
22527         * StatusBarPanelClickEventArgs.cs,
22528           StatusBarPanelClickEventHandler.cs: Classes for handling status
22529           bar panel click events
22530
22531 2004-08-12 10:10  jackson
22532
22533         * Control.cs: Add missing properties
22534
22535 2004-08-12 09:46  pbartok
22536
22537         * BindingsManagerBase.cs:
22538           - Name changed to BindingManagerBase.cs
22539
22540 2004-08-12 09:25  jordi
22541
22542         * ScrollableControl.cs: calls ctrlbase instead of exeception
22543
22544 2004-08-11 16:28  pbartok
22545
22546         * InputLanguageChangingEventArgs.cs:
22547           - Never check in before compiling. Fixes the last check-in
22548
22549 2004-08-11 16:26  pbartok
22550
22551         * InputLanguageChangingEventArgs.cs:
22552           - More signature fixes
22553
22554 2004-08-11 16:20  pbartok
22555
22556         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22557           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22558           ImageListStreamer.cs, InputLanguage.cs,
22559           InputLanguageChangedEventArgs.cs,
22560           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22561           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22562           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22563           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22564           - Signature fixes
22565
22566 2004-08-11 16:16  pbartok
22567
22568         * Application.cs:
22569           - Fixed Signature
22570           - Added .Net 1.1 method
22571
22572 2004-08-11 15:25  pbartok
22573
22574         * SWF.csproj:
22575           - Fixed BindingManagerBase.cs filename
22576
22577 2004-08-11 15:22  pbartok
22578
22579         * BindingManagerBase.cs:
22580           - Was checked in with wrong filename
22581
22582 2004-08-11 14:50  pbartok
22583
22584         * SWF.csproj:
22585           - Updated
22586
22587 2004-08-11 13:41  jordi
22588
22589         * XplatUIWin32.cs: Fixes ClientRect
22590
22591 2004-08-11 13:19  pbartok
22592
22593         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22594           XplatUIX11.cs:
22595           - We had SetWindowPos and MoveWindow to set window positions and
22596             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22597             keep SetWindowPos as matching counterpart
22598           - Added some X11 sanity checking
22599
22600 2004-08-11 12:59  pbartok
22601
22602         * Control.cs:
22603           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22604             (It seems that SetBounds is just a front for SetBoundsCore and
22605              SetBoundsCore updates the underlying window system and
22606              UpdateBounds is responsible for updating the variables associated
22607              with the Control and sending the events)
22608           - Major cleanup of Size handling; we now have two sizes, client_size
22609             and bounds. Bounds defines the window with decorations, client_size
22610             without them.
22611
22612 2004-08-11 12:55  pbartok
22613
22614         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22615           - Added method to calculate difference between decorated window and
22616             raw client area
22617
22618 2004-08-11 12:54  pbartok
22619
22620         * Label.cs:
22621           - Forcing redraw on resize
22622
22623 2004-08-11 11:43  pbartok
22624
22625         * ImageList.cs:
22626           - Removed disposing of the actual images when the list is disposed
22627
22628 2004-08-11 09:13  pbartok
22629
22630         * Control.cs:
22631           - Now properly reparents windows
22632
22633 2004-08-11 08:37  pbartok
22634
22635         * Control.cs:
22636           - Duh!
22637
22638 2004-08-11 07:47  pbartok
22639
22640         * Control.cs:
22641           - Rewrote the collection stuff. Might not be as fast now, not
22642             keeping the number of children around and accessible directly, but
22643             it's more straightforward
22644
22645 2004-08-11 07:44  pbartok
22646
22647         * AccessibleObject.cs:
22648           - Fixed to match ControlCollection rewrite
22649
22650 2004-08-11 07:43  pbartok
22651
22652         * ImageList.cs:
22653           - Added missing creation of the collection list
22654
22655 2004-08-10 20:08  jackson
22656
22657         * StatusBar.cs: Get the paint message from WndProc
22658
22659 2004-08-10 19:31  jackson
22660
22661         * ThemeWin32Classic.cs: Create Brushes as little as possible
22662
22663 2004-08-10 19:20  jackson
22664
22665         * UICues.cs: Add Flags attribute
22666
22667 2004-08-10 19:19  jackson
22668
22669         * StatusBarPanel.cs: Signature cleanup
22670
22671 2004-08-10 19:10  jackson
22672
22673         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22674           Initial implementation of status bar item drawing
22675
22676 2004-08-10 17:27  jordi
22677
22678         * TrackBar.cs: add missing methods, properties, and restructure to
22679           hide extra ones
22680
22681 2004-08-10 16:24  jackson
22682
22683         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22684           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22685           attribute
22686
22687 2004-08-10 13:21  jordi
22688
22689         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22690           enhancements and standarize on win colors defaults
22691
22692 2004-08-10 12:52  jackson
22693
22694         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22695           ThemeWin32Classic.cs: Implement DrawItem functionality
22696
22697 2004-08-10 12:47  jordi
22698
22699         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22700
22701 2004-08-10 12:32  jordi
22702
22703         * Control.cs: throw ontextchange event
22704
22705 2004-08-10 11:43  pbartok
22706
22707         * Control.cs:
22708           - Added more to the still unfinished Dock/Anchor layout code
22709
22710 2004-08-10 11:39  pbartok
22711
22712         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22713           - Added GetWindowPos method
22714
22715 2004-08-10 11:36  pbartok
22716
22717         * XplatUIWin32.cs:
22718           - Implemented several methods
22719
22720 2004-08-10 09:47  jackson
22721
22722         * TrackBar.cs: Allow control to handle buffering
22723
22724 2004-08-10 09:41  jackson
22725
22726         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22727
22728 2004-08-10 09:24  jackson
22729
22730         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22731
22732 2004-08-10 09:09  jackson
22733
22734         * StatusBar.cs: Let Control handle all the buffering.
22735
22736 2004-08-10 09:08  jackson
22737
22738         * Control.cs: Control will now handle the buffering code, so each
22739           control does not have to implement this.
22740
22741 2004-08-10 08:34  jackson
22742
22743         * XplatUIDriver.cs: Use default colors from the theme
22744
22745 2004-08-09 17:12  pbartok
22746
22747         * ImageList.cs:
22748           - Fixed several bugs Ravindra pointed out
22749
22750 2004-08-09 16:11  pbartok
22751
22752         * Control.cs:
22753           - Added incomplete dock layout code
22754           - Added support for mouse wheel
22755
22756 2004-08-09 16:09  pbartok
22757
22758         * XplatUIX11.cs:
22759           - Added handling for middle and right mousebutton
22760           - Added handling for mouse wheel
22761           - Added handling for key state and mouse state and position
22762           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22763           messages
22764
22765 2004-08-09 15:40  jackson
22766
22767         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22768           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22769           checkin
22770
22771 2004-08-09 15:37  jackson
22772
22773         * StatusBar.cs: Initial implementation of StatusBar
22774
22775 2004-08-09 15:36  jackson
22776
22777         * ITheme.cs: Add support for drawing status bar and getting status
22778           bar item sizes
22779
22780 2004-08-09 15:35  pbartok
22781
22782         * MouseButtons.cs:
22783           - Fixed values
22784
22785 2004-08-09 15:34  jackson
22786
22787         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22788           status bar item sizes
22789
22790 2004-08-09 15:21  jackson
22791
22792         * ThemeWin32Classic.cs: Use known colors for default control
22793           colours
22794
22795 2004-08-09 15:12  jackson
22796
22797         * ThemeWin32Classic.cs: Make the default font static, it is static
22798           in control so this doesn't change functionality and creating fonts
22799           is sloooooow.
22800
22801 2004-08-09 14:56  pbartok
22802
22803         * X11Structs.cs:
22804           - Added GrabMode enum
22805
22806 2004-08-09 14:55  pbartok
22807
22808         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22809           - Removed Run method, was only required for initial development
22810
22811 2004-08-09 14:51  pbartok
22812
22813         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22814           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22815           capture
22816
22817 2004-08-09 13:48  pbartok
22818
22819         * XplatUIX11.cs:
22820           - Fixed default sizing for child windows
22821
22822 2004-08-09 12:56  pbartok
22823
22824         * XplatUIX11.cs:
22825           - Added generation of WM_DESTROY message
22826           - Added handling of window manager induced shutdown
22827
22828 2004-08-09 11:31  jackson
22829
22830         * ThemeWin32Classic.cs: New names for control properties
22831
22832 2004-08-09 11:25  jackson
22833
22834         * Control.cs: Use new color names
22835
22836 2004-08-09 11:02  jackson
22837
22838         * XplatUI.cs: Get default window properties from the theme
22839
22840 2004-08-09 11:01  jackson
22841
22842         * ITheme.cs: The theme engine now controls default window
22843           properties
22844
22845 2004-08-09 11:00  jackson
22846
22847         * ThemeWin32Classic.cs: Add default window color properties
22848
22849 2004-08-09 10:17  jackson
22850
22851         * ThemeWin32Classic.cs: Use correct default back color
22852
22853 2004-08-09 10:05  jackson
22854
22855         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22856           the theme now.
22857
22858 2004-08-09 09:56  jackson
22859
22860         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22861
22862 2004-08-09 09:54  jackson
22863
22864         * Control.cs: Get default properties from the theme.
22865
22866 2004-08-09 09:53  jackson
22867
22868         * ITheme.cs: Themes now handle default control properties
22869
22870 2004-08-09 09:53  jackson
22871
22872         * ThemeWin32Classic.cs: Themes now handle default control
22873           properties so coloring will be consistent
22874
22875 2004-08-08 16:54  jordi
22876
22877         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22878
22879 2004-08-08 15:08  jordi
22880
22881         * XplatUIX11.cs: fixes keyboard crash
22882
22883 2004-08-08 13:47  jordi
22884
22885         * Label.cs: add cvs header info
22886
22887 2004-08-08 12:09  jackson
22888
22889         * ThemeWin32Classic.cs: Add pen_buttonface
22890
22891 2004-08-08 11:52  jordi
22892
22893         * Label.cs, LinkLabel.cs: [no log message]
22894
22895 2004-08-08 11:34  jordi
22896
22897         * ThemeWin32Classic.cs: Use Windows Standard Colours
22898
22899 2004-08-07 17:32  jordi
22900
22901         * TrackBar.cs: throw exceptions of invalid enums values
22902
22903 2004-08-07 17:31  jordi
22904
22905         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22906           draw method name
22907
22908 2004-08-07 16:56  jackson
22909
22910         * HorizontalAlignment.cs: Initial checkin
22911
22912 2004-08-07 13:16  jordi
22913
22914         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22915           methods
22916
22917 2004-08-07 13:05  jordi
22918
22919         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22920           GetSysColor defines
22921
22922 2004-08-06 18:01  pbartok
22923
22924         * ThemeWin32Classic.cs:
22925           - Fixed some rounding issues with float/int
22926
22927 2004-08-06 18:00  jackson
22928
22929         * DockStyle.cs, AnchorStyles.cs:
22930
22931                   Add flags and serializable attributes.
22932
22933 2004-08-06 17:46  pbartok
22934
22935         * XplatUIX11.cs:
22936           - Implemented GetParent
22937
22938 2004-08-06 17:18  pbartok
22939
22940         * TrackBar.cs:
22941           - Fixed some rounding issues with float/int
22942
22943 2004-08-06 17:17  pbartok
22944
22945         * X11Structs.cs, XplatUIX11.cs:
22946           - Fixed Refresh and Invalidate
22947
22948 2004-08-06 15:30  pbartok
22949
22950         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22951           - Fixed recursive loop when resizing
22952           - Improved/fixed redrawing on expose messages
22953
22954 2004-08-06 09:53  jordi
22955
22956         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22957           keyboard navigation
22958
22959 2004-08-06 08:02  pbartok
22960
22961         * X11Structs.cs, XplatUIX11.cs:
22962           - Fixed reparenting
22963           - Fixed window border creation
22964
22965 2004-08-05 15:38  pbartok
22966
22967         * XplatUIX11.cs:
22968           - Attempted fix for reparenting problems
22969
22970 2004-08-04 15:14  pbartok
22971
22972         * Control.cs:
22973           - Fixed Invalidation bug (calculated wrong client area)
22974           - Added ClientSize setter
22975
22976 2004-08-04 15:13  pbartok
22977
22978         * Form.cs:
22979           - Added AutoScale properties
22980
22981 2004-08-04 15:13  pbartok
22982
22983         * SWF.csproj:
22984           - Added latest files
22985
22986 2004-08-04 14:11  pbartok
22987
22988         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22989           XplatUIX11.cs:
22990           - Added Invalidate handling
22991
22992 2004-08-03 17:09  jordi
22993
22994         * XplatUIDriver.cs: fixes spelling mistake
22995
22996 2004-07-27 09:53  jordi
22997
22998         * TrackBar.cs: fixes trackbar events, def classname, methods
22999           signature
23000
23001 2004-07-27 09:29  jordi
23002
23003         * ScrollBar.cs: fixes scrollbar events
23004
23005 2004-07-27 04:38  jordi
23006
23007         * Control.cs: changes to be able to run winforms samples
23008
23009 2004-07-26 11:42  jordi
23010
23011         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
23012           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
23013
23014 2004-07-26 05:41  jordi
23015
23016         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
23017           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
23018           implementation
23019
23020 2004-07-22 09:22  jordi
23021
23022         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
23023           check link overlapping, implement events, and fixes
23024
23025 2004-07-21 10:28  jordi
23026
23027         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
23028
23029 2004-07-21 10:19  jordi
23030
23031         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
23032           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23033           LinkLabelLinkClickedEventArgs.cs,
23034           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23035           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23036           implementation
23037
23038 2004-07-19 13:09  jordi
23039
23040         * Control.cs, Label.cs: label control re-written: added missing
23041           functionlity, events, and properties
23042
23043 2004-07-19 10:49  jordi
23044
23045         * Control.cs: fixes SetBounds logic
23046
23047 2004-07-19 01:29  jordi
23048
23049         * Control.cs: Call RefreshWindow only if the window has created
23050
23051 2004-07-15 14:05  pbartok
23052
23053         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23054           - Implemented ImageList and ImageList.ImageCollection classes
23055           - Added ColorDepth enumeration
23056           - Updated SWF VS.Net project
23057
23058 2004-07-15 11:06  jordi
23059
23060         * XplatUIStructs.cs: added MsgButons enum
23061
23062 2004-07-15 11:03  jordi
23063
23064         * Control.cs: added basic mouse handeling events
23065
23066 2004-07-15 03:38  jordi
23067
23068         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23069           Vertical TrackBar control implementation
23070
23071 2004-07-13 09:33  jordi
23072
23073         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23074
23075 2004-07-13 09:31  jordi
23076
23077         * Control.cs, Form.cs: commit: new properties and fixes form size
23078           problems
23079
23080 2004-07-09 14:13  miguel
23081
23082         * ProgressBar.cs: Spelling
23083
23084 2004-07-09 11:25  pbartok
23085
23086         * ProgressBar.cs:
23087           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23088           faster
23089
23090 2004-07-09 11:17  miguel
23091
23092         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23093
23094                 * ProgressBar.cs: Fixed spelling for `block'
23095
23096                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23097                 style guidelines.
23098
23099                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23100
23101 2004-07-08 23:21  pbartok
23102
23103         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23104           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23105           BaseCollection.cs, Binding.cs, BindingContext.cs,
23106           BindingMemberInfo.cs, BindingsCollection.cs,
23107           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23108           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23109           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23110           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23111           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23112           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23113           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23114           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23115           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23116           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23117           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23118           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23119           InputLanguageChangedEventArgs.cs,
23120           InputLanguageChangedEventHandler.cs,
23121           InputLanguageChangingEventArgs.cs,
23122           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23123           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23124           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23125           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23126           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23127           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23128           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23129           QueryAccessibilityHelpEventArgs.cs,
23130           QueryAccessibilityHelpEventHandler.cs,
23131           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23132           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23133           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23134           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23135           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23136           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23137           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23138           XplatUIX11.cs, lang.cs:
23139           - Initial check-in
23140