2007-02-19 Everaldo Canuto <everaldo@simios.org>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
2
3         * XplatUIStructs.cs: MsgUIState structure added.
4
5 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
6
7         * FileDialog.cs: Removed need for separate fileName field. On 2.0
8         profile, do not check filename(s) for illegal character if filename(s)
9         were set non-interactively but always check on 1.0 profile. Fixed NRE
10          in DefaultExt and only strip off first leading dot. Improve exception
11         message when invalid Filter is set. Do not ignore InitialDirectory if
12         it does no exist. Store specified Title, and if empty use default
13         title (depending on type of dialog). Added an internal DialogTitle 
14         property for retrieving dialog title. Fixed logic of displayed dir to
15         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
16         string as its buggy.
17         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
18         FileName is a zero-length string (it can never be null). Override 
19         DialogTitle property to set default title of dialog box.
20         * SaveFileDialog.cs: Override DialogTitle property to set default
21         title of dialog box.
22
23 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
24
25         * FileDialog.cs: Modify default text of filename and filetype labels
26         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
27         after we've updated the SelectedIndex. Fixes part of bug #80887.
28         * SaveFileDialog.cs: Set text of filetype label.
29
30 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
31
32         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
33         label field. Needed by latest Jackson's fixes for ListView.
34
35 2007-02-16  Andreia Gaita  <avidigal@novell.com>
36
37         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
38         print preview images.
39
40 2007-02-16  Jackson Harper  <jackson@ximian.com>
41
42         * ListView.cs: Make AfterLabelEdit work correctly.
43         * FileDialog.cs: After changing the name of the folder, we have to
44         make sure that it is created, or that we pop up an error because
45         it already exists.
46
47 2007-02-16  Jackson Harper  <jackson@ximian.com>
48
49         * X11Dnd.cs: Implement aliases on mime handlers, so things like
50         System.String are mapped to text.
51         - Handle dataobjects, getting all the possible formats out of them
52         - We dont need the drag event args before we give feedback. This
53         allows feedback cursors to be immediate before selections have
54         been converted.
55
56 2007-02-16  Jackson Harper  <jackson@ximian.com>
57
58         * TextBoxBase.cs: Modified the method for inserting images to
59         taking a line and position instead of tag and position.
60         * RichTextBox.cs: Handle PngBlip data by inserting the png image
61         into the RTF file.
62         * TextControl.cs: Allow images to be inserted as the first tag of
63         a line.
64         - Fix some off by one issues when we assume the first tag is a
65         text tag, not an image tag.
66
67 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
68
69         * ListView.cs: Set focus to ListView when ItemControl gets a
70         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
71         Fixes part of #80467.
72
73 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
74
75         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
76           validate Text input (if null or empty string reset Value to default
77           value). Fixes #80830.
78
79 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
80
81         * ListView.cs: Set owner as null for columns and items when
82         Dispose is invoked. Fixes #80607.
83
84 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
85
86         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
87         showing DropDowns, don't show a Grip when doing Flow layout.
88         [This fixes the toolbox in PDN 2.72.]
89         * ToolStripItem.cs: Add Anchor property and some internal properties to
90         reduces needed changes to FlowLayout.
91         * ToolStripOverflow.cs: Remove unused variable.
92         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
93         use it in the layout calculations.
94
95 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
96
97         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
98         reported in #79640.
99         
100         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
101         size calculation.
102
103 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
104
105         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
106         MeasureString format, it can make button very large in some cases, it is
107         strange but is what win32 do.
108
109 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
110
111         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
112         size calculation.
113
114         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
115         rendering, the value is based on MenuAccessKeysUnderlined.
116
117 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
118
119         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
120         for most themes.
121         
122         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
123         
124         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
125         and use MenuAccessKeysUnderlined instead.
126
127 2007-02-13  Andreia Gaita  <avidigal@novell.com>
128
129         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
130         A selected control would not get a Focus call if:
131                 - the default active control of the container is the same as
132                   the one that was selected
133                 - we are switching from one container to another
134         Under these conditions, the container being selected already has
135         an active_control, which is the same as the one being activated, 
136         so set_ActiveControl would always return and not send the Focus
137         call. Fix to check if the currently active control of the container
138         is actually focused.
139
140 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
141
142         * StatusStrip.cs: Implement the spring layout.
143         * ToolStripControlHost.cs: Make sure the hosted control's visibility
144         always matches the host.
145         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
146         and TextAfterImage.
147
148 2007-02-13  Andreia Gaita  <avidigal@novell.com>
149
150         * Control.cs: Code reorganization only.
151           - Reorganize the WndProc cases so that each case has it's own handling method, 
152           to help with the no-line-numbering stack traces.
153           - Formatting changes (it's vstudio's fault, really :p)
154
155 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
156
157         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
158           Thread.CurrentUICulture to match DateTimePicker's (and MS)
159           behaviour.
160
161 2007-02-12  Jackson Harper  <jackson@ximian.com>
162
163         * RichTextBox.cs:
164         * TextBox.cs: By default we have a non multiline document
165         - use the multiline property instead of the internal variable
166         * TextBoxBase.cs: Treat multiline and non multiline the same in
167         most places.
168         - Use the documents multiline flag instead of tracking it ourself
169         * TextControl.cs: Attempt at getting multiline to match MS
170         behavior.  Lines now track an offset, which is either their X or Y
171         offset depending on whether or not we are in multiline mode.
172         - Update all the methods to understand that lines have an X value.
173         - Fix crash in Undo::Duplicate when empty lines are deleted.
174
175 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
176
177         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
178         code moved to properties PreferredHeight and PreferredWidth. It solve the
179         all problems when preferred sizes must be recalculated. Fixes #80801.
180
181 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
182
183         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
184         font height when compatible_text_rendering is false. Partially fix #80801.
185
186 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
187
188         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
189
190 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
191
192         * Form.cs: Improved exception messages in ShowDialog.
193
194 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
195
196         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
197         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
198         if not set. Fixes bug #80764. Avoid accessing current_settings field
199         directly.
200
201 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
202
203         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
204         false.
205
206         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
207         public in 2.0 and for easy maintenance and dont break compatibility it is 
208         internal in 1.1.
209         
210 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
211
212         * ToolStripItem.cs: Implement using images from ImageList.
213
214 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
215
216         * DateTimePicker.cs: Change default date-formatting culture from
217           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
218           seems to be the way MS does it.
219
220 2007-02-08  Andreia Gaita  <avidigal@novell.com>
221
222         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
223         (the 6 was cut off on the right side)
224
225 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
226
227         * Form.cs: Tell MenuStrips to close when the form is clicked.
228         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
229         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
230         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
231         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
232         support for Overflow, where items that do not fit are automatically
233         reparented to a drop down menu.
234         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
235         Also: fixes bug #80747.
236
237 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
238
239         * ComboBox.cs: Remove warning (unused code).
240         * ScrollableControl.cs: Remove warning for 1.1 profile.
241
242 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
243
244         * Form.cs: Remove a warning.
245
246 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
247
248         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
249           'g' specifier, not documented anywhere, but seems to always show up
250           as a single space (might have something to do with the DateTime 'g'
251           specifier, which is the era format, but since DateTimePicker can't
252           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
253           won't crash if the format has an unmatched quote. Now shows
254           single-character formats correctly. Fixes #80744.
255
256 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
257
258         * StatusStrip.cs: Stretch property needs to call base.Stretch,
259         not this.Stretch to fix stack overflow. [Fixes bug #80760]
260
261 2007-02-07  Chris Toshok  <toshok@ximian.com>
262
263         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
264         background color.  it overwrites the background image we've
265         already painted.  Fixes #80599.
266
267 2007-02-07  Chris Toshok  <toshok@ximian.com>
268
269         * DataGrid.cs: return immediately from Edit() when there are no
270         columns.  Fixes #80662.
271
272 2007-02-07  Chris Toshok  <toshok@ximian.com>
273
274         * MessageBox.cs: fix #80625.  don't always show the Help button in
275         2.0.  use the displayHelpButton parameter to determine if we
276         should show it. Also, make the internal show_help field private.
277
278 2007-02-07  Chris Toshok  <toshok@ximian.com>
279
280         * Control.cs (SetVisibleCore): check in the proposed patch for
281         80604, and set is_visible before calling CreateControl.
282
283 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
284
285         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
286         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
287         on it.
288
289 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
290
291         * MenuAPI.cs: hotkey_active internal field added, it is required because
292         we need to know when hotkeys must be draw, before this change a keystate
293         Navigating was used but we can have menu in navigating state without
294         hotkeys. Fixes #80694.
295         
296         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
297
298 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
299
300         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
301           corresponding events and methods to be internal for 1.1 profile and
302           public for 2.0 profile (required by SizeGrip).
303         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
304           implicit control list). Don't set the size nor the location of the
305           SizeGrip anymore as it's not needed.
306         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
307           draw directly on the captured control (fixes #80656). Removed
308           ShowGrip (it wasn't used anywhere), redraw (always true), added
309           GetDefaultSize and GetDefaultRectangle to calculate defaults.
310         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
311           be called from SizeGrip.
312
313 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
314
315         * Timer.cs: Throw ArgumentException if Interval <= 0.
316
317 2007-02-05  Jackson Harper  <jackson@ximian.com>
318
319         * TreeView.cs: We need to check scrollbar visibility when window
320         visibility is updated, because non visible trees don't ever add
321         scrollbars.
322         * Cursor.cs: We want the override cursor to be reset to NULL when
323         we set current cursor to the default cursor.
324
325 2007-02-05  Jackson Harper  <jackson@ximian.com>
326
327         * TextControl.cs: Don't have crlfs when we are non multiline.
328         - Consolidate the line position.
329
330 2007-02-05  Jackson Harper  <jackson@ximian.com>
331
332         * X11Keyboard.cs: BACK+CTRL gets a special char code.
333
334 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
335
336         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
337           handling LeaveNotify->NotifyUngrab in order to send
338           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
339           after calling XUngrabPointer, so we call WindowUngrabbed directly
340           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
341         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
342           MouseCaptureChanged correctly. Also create handles if changing
343           Capture (matches MS behaviour).
344
345 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
346
347         * SizeGrip.cs: Make the last change 2.0 only.
348
349 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
350
351         * SizeGrip.cs: If resizing and the capture is lost, revert any size
352           changes to initial size (fixes #80597).
353
354 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
355
356         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
357
358 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
359
360         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
361           background) and only allow dragging if enabled. This way the
362           sizegrip can be used to fill the open square that otherwise would
363           have been shown in the bottom right corner of ScrollableControl
364           when ScrollableControl is not suppose to support sizing.
365         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
366           sizegrip is shown and enabled, and hook up with necessary events.
367
368 2007-02-01  Chris Toshok  <toshok@ximian.com>
369
370         * DataGridTextBoxColumn.cs: clean up the
371         GetFormattedString/GetColumnValueAtRow combination of functions.
372         Also fix UpdateUI, and the initial state of
373         IsInEditOrNavigateMode.
374
375         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
376         aren't supposed to scroll the textbox here, we're supposed to
377         scroll the datagrid.
378
379 2007-02-01  Chris Toshok  <toshok@ximian.com>
380
381         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
382         setting the position.
383
384 2007-02-01  Chris Toshok  <toshok@ximian.com>
385
386         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
387         here, since the most recent focus fixes keep us from generating
388         the Leave event when our textbox gets focus.
389         (Edit): we should be passing null for the column style's
390         instantText parameter.
391         
392 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
393
394         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
395         raised.  Fixes menu text/icons not showing up in PDN.
396
397 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
398
399         * Control.cs: Remove code in constructor that makes every
400         control with WS_CHILD set have initial location -1, -1.
401
402 2007-01-31  Jackson Harper  <jackson@ximian.com>
403
404         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
405         XplatUIX11.
406         * XplatUIX11.cs: Give teh keyboard to teh dnd.
407
408 2007-01-31  Jackson Harper  <jackson@ximian.com>
409
410         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
411         - Remove some debug code.
412
413 2007-01-31  Jackson Harper  <jackson@ximian.com>
414
415         * XplatUIX11.cs: If you set the override cursor during a grab, it
416         should actually override the grab cursor.  This comes into play
417         when you are setting custom cursors in a DND feedback method.
418
419 2007-01-31  Jackson Harper  <jackson@ximian.com>
420
421         * X11Dnd.cs: Add support for handling the QueryContinue and
422         GiveFeedback events.
423         - Cancel drag and drop actions when the escape key is clicked.
424         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
425         can handle the ESCAPE key.
426         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
427         done when dnd events are continued after the button is released.
428         - Add a new helper method so that dnd can translate key events.
429
430 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
431
432         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
433         make it more obvious what is happening.
434
435 2007-01-30  Jackson Harper  <jackson@ximian.com>
436
437         * XplatUIX11.cs: Don't break when handling button release in drag
438         and drop operations. We need that BUTTONUP message to get through
439         so capture is released.
440         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
441         this is handled automatically when the mouse is down.
442
443 2007-01-30  Jackson Harper  <jackson@ximian.com>
444
445         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
446         is closed, so we need to make sure that we aren't changing the
447         dialog result when the OK (Open or Save) button has been clicked
448         and we are closing the window ourselves.  Note we don't need to
449         worry about the cache being written in this case, because it was
450         already done in the previous FilOk call.
451
452 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
453         
454         * DateTimePicker.cs: Remove a warning.
455         * ComboBox.cs: Remove a couple of warnings.
456
457 2007-01-29  Chris Toshok  <toshok@ximian.com>
458
459         * XplatUIX11.cs: don't crash, and remove the icon if the user has
460         set one, if SetIcon is passed a null icon.
461
462 2007-01-29  Andreia Gaita  <avidigal@novell.com>
463
464         * TextBox.cs: Redraw when the password characters changes
465         * TextControl.cs: Check if textbox has a password char and draw 
466         a line of password chars instead of the text in the line. LineTag gets 
467         an extra Draw() method which allows document.Draw to override the text 
468         that will be drawn. Removes 1024 char limitation on length of passworded 
469         lines.
470
471 2007-01-29  Jackson Harper  <jackson@ximian.com>
472
473         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
474         single chars is not.
475
476 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
477
478         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
479         one pixel.  Fix a StackOverflowException caused by an overload wrongly
480         calling itself.
481
482 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
483
484         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
485         also remove ProcessArrowKey and put the code inside ProcessKeys.
486
487 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
488
489         * PaddingConverter.cs: Added.
490
491 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
492         
493         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
494         ShowPanels is false (fixes #80600). Only draw up to 127 characters
495         of text (fixes #80601). For panels clip the text to draw to the
496         panel (fixes #80603).
497
498 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
499
500         * ComboBox.cs: Fixed implementation of ResetText.
501
502 2007-01-25  Jackson Harper  <jackson@ximian.com>
503
504         * TextControl.cs: For the last char of a line we need to use the
505         line size, not that chars width, since it won't actually be
506         computed since the right side of a char is based on the start of
507         the left side of the next char, and the next char does not exist.
508
509 2007-01-25  Chris Toshok  <toshok@ximian.com>
510
511         * Splitter.cs: fix the new unit tests, and reindent some switch
512         statements.
513
514 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
515
516         * ComboBox.cs: Implemented 2.0 methods and events.
517         * TextBoxBase.cs: Added OnTextUpdate, so that
518         ComboBox.ComboTextBox can inform ComboBox of it.
519
520 2007-01-25  Jackson Harper  <jackson@ximian.com>
521
522         * TextControl.cs: Respect ShowSelection when deciding whether or
523         not to display the caret, this allows comboboxes to have carets
524         when the combotextbox does not have focus.
525
526 2007-01-25  Jackson Harper  <jackson@ximian.com>
527
528         * TextControl.cs: Add a Suspend/Resume for updating, basically the
529         same as the Suspend/Resume for recalc, except this will do actual
530         Invalidates.
531         - New Undo manager, works much like the MS version.
532         - Implemented Redo
533         * TextBoxBase.cs: The Cut operation is undoable.
534
535 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
536         
537         * TextBoxBase.cs: Don't antialias text. Makes it look way better
538         on Windows (no difference on Linux).    
539
540 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
541
542         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
543         we don't want to activate any windows. Fixes #79433.
544
545 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
546
547         - ButtonBase.cs: Fix capitalization of parameter: disposing.
548         [Fixes bug #80609]
549
550 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
551
552         * FileDialog.cs:
553         - Move to using System.ComponentModel.EventHandlerList
554         - Replace Refresh with Invalidate
555         - Clear the mime filecache on closing
556         - Some other memory reducing work. After beeing closed FD now uses
557           only about 300 KB for the fdo mime stuff plus the memory of the
558           cached icons.
559         * Mime.cs: Changed coding style and removed unnecessary commented
560         code. Some more memory memory reducing work.
561
562 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
563
564         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
565         a few other missing 2.0 properties.
566         * Theme.cs: Added DrawFlatStyleComboBox.
567         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
568
569 2007-01-24  Chris Toshok  <toshok@ximian.com>
570
571         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
572         wake_waiting flag, not just when there's data to be read.  if we
573         don't, then future wakeup's won't reach us and we'll be doomed to
574         wait for the entire 1 second timeout forever (unless there are X
575         events to be had).
576
577 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
578
579         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
580         until you pass Items.Count, not Items.Count - 1 like 1.1.
581
582 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
583
584         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
585
586 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
587
588         * ToolStripContainer.cs: The recent Dock fix exposed that I was
589         adding the panels in the wrong order.
590
591 2007-01-24  Jackson Harper  <jackson@ximian.com>
592
593         * TextBoxBase.cs: When we move the caret we also need to move the
594         selection, this fixes some random crashing after doing select
595         text, unselect, delete a char, paste.
596
597 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
598
599         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
600
601 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
602
603         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
604         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
605         * ToolBar.cs: Force redraw in BackgroundImageChanged.
606
607 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
608
609         * ToolBar.cs:
610         - Implement support for vertical toolbars. Fixes #80539;
611         - Call LayoutToolBar when resize, it fix some other problems in layout.
612         - Rename requested_height to requested_size, as we can have width on it
613         when toolbar is vertical.
614         - Create a private property "Vertical" that uses Dock to verify when 
615         toolbar is vertical or not.
616         - Set ControlStyles when change Dock property.
617         - Refactory in LayoutToolBar to have better variables names and to support
618         vertical toolbars.
619         - Fixes default value for ButtonSize when button count is equal zero, size
620         must be (39, 36) test case writed.
621
622 2007-01-23  Chris Toshok  <toshok@ximian.com>
623
624         * Control.cs: fix the checks so that they work correctly for mdi
625         parents/children.
626
627 2007-01-23  Chris Toshok  <toshok@ximian.com>
628
629         * Control.cs: ControlCollection seems to have super-secret
630         abstraction breaking knowledge of Mdi containers.  allow MdiClient
631         to add toplevel controls.
632
633 2007-01-23  Chris Toshok  <toshok@ximian.com>
634
635         * Control.cs: throw an ArgumentException if a toplevel control is
636         added to our control collection from ControlCollection.Add, as
637         well as from ControlCollection.IList.Add.  This fixes the
638         ControlSetTopLevelTest.TestTopLevelAdd unit test.
639
640         Also, in ControlCollection.IList.Add, don't through an
641         ArgumentNullException, throw an ArgumentException, when value ==
642         null.  This matches MS.
643
644 2007-01-23  Chris Toshok  <toshok@ximian.com>
645
646         * BindingSource.cs: initial, incomplete, implementation of
647         BindingSource.
648
649 2007-01-23  Jackson Harper  <jackson@ximian.com>
650
651         * TextControl.cs:
652         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
653         that I can fix a broken unit test (TextBoxTest::ClearUndo)
654         
655 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
656
657         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
658
659 2007-01-23  Andreia Gaita  <avidigal@novell.com>
660
661         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
662         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
663         IndexOfKey() for 2.0
664
665 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
666
667         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
668         to prevent it from changing z-order.
669         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
670         leave UI updates in MdiWindowManager.
671         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
672         1 sized (NC handling goes weird on Linux otherwise).
673         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
674         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
675         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
676         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
677         and SetWindowState(s) to allow for changing the size of an activated child
678         before activating it (reduces a lot of flicker).
679
680 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
681
682         * Form.cs: Changing FormBorderStyle has different semantics based
683         on whether the Form is visible or not.  If not visible, don't change
684         the Size.  But InvalidateNC needs to be called to force the window
685         to pick up the changes and redraw itself.  [Fixes bug #80574]
686
687 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
688
689         [Moma work]
690         * ContainerControl.cs: ProcessCmdKey.
691         * ErrorProvider.cs: new constructor.
692         * Form.cs: fix AutoValidateEvent compiler warning.
693         * Label.cs: fix OnAutoSizeChanged compiler warning.
694         * MenuStrip.cs: fix CanOverflow compiler warning.
695         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
696         * TextBox.cs: Dispose.
697         * ToolStrip.cs: CanOverflow, re-enable double buffering.
698         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
699         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
700         * ToolStripItem.cs: Overflow, RightToLeft properties.
701
702 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
703
704         * Form.cs: Move the layout of the main form to MdiWindowManager.
705         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
706         do a layout of the main window to update MdiClient's client area to
707         the right area. Fixes #80533. Remove the calculation of nc size, 
708         it was just wrong and the correct one is the same as for 
709         InternalWindowManager. 
710
711 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
712
713         * Control.cs: Setting Anchor or Dock needs to reset the other
714         to its default.  [Fixes bug #80556]
715
716 2007-01-20  Chris Toshok  <toshok@ximian.com>
717
718         * CheckedListBox.cs: class status changes.
719
720         * ScrollableControl.cs: same.
721
722         * RichTextBox.cs: same.
723
724         * ContainerControl.cs: same.
725
726         * ListView.cs: same.
727
728         * NotifyIcon.cs: same.
729
730         * MenuStrip.cs: same.
731
732         * RadioButton.cs: same.
733
734         * CheckBox.cs: same.
735
736         * PrintPreviewDialog.cs: same.
737
738         * Form.cs: same.
739
740 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
741
742         * TreeNode.cs: Apply Alan's patch for Name property.
743
744 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
745         
746         * Form.cs: Implemented SizeGripStyle.
747         * SizeGrip.cs: Check for minimum and maximum size for the
748         control being resized and only resize if size has actually
749         changed.
750
751 2007-01-19  Chris Toshok  <toshok@ximian.com>
752
753         * DataGridColumnStyle.cs: stop setting _readonly in the
754         PropertyDescriptor setter.  fixes a unit test failure.
755
756         also, rename ParentReadOnly to TableStyleReadOnly, and have it
757         just consult our table style (if we have one).  We don't need to
758         consult the datagrid readonly attribute because that's passed in
759         as the _ro arg to Edit.  this simplifies things a little.
760         
761         * DataGrid.cs: use CurrentColumn instead of
762         current_cell.ColumnNumber just to simplify some of the code.
763
764         switch the order of some things in the CurrentCell setter to keep
765         the previous cell from getting a textbox again -
766         EnsureCellVisibility causes scrolling to happen, which calls Edit.
767         So we need to set the new cell before calling it.
768         
769         call Edit in OnEnter, as does Microsoft.
770         
771         also, make sure the current table style isn't the one we create
772         initially when checking to see if it's different than the one
773         we're setting it to in BindColumns (this fixes #80421).
774
775         * GridTableStylesCollection.cs: table styles can have "" for a
776         mapping name.  part of the fix for #80421.
777
778         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
779         Edit significantly.
780
781 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
782
783         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
784         and less GDI object leaky-er.
785
786 2007-01-18  Andreia Gaita  <avidigal@novell.com>
787
788         * LinkLabel.cs: Add opaque control style
789
790 2007-01-18  Jackson Harper  <jackson@ximian.com>
791
792         * TextControl.cs: Calculate width properly.
793         - Don't store the tag's X offset, this can be figured out very
794         easily.
795         - When getting the caret tag make sure to get the last empty tag.
796
797 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
798
799         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
800         [Fixes bug #79959]
801
802         * Control.cs: Color.Empty shouldn't count for previous transparent
803         redraw changes.
804
805 2007-01-18  Jackson Harper  <jackson@ximian.com>
806
807         * TextBox.cs:
808         * RichTextBox.cs:
809         * TextControl.cs: Starting to merge in some pieces of my older
810         undo work.  Basically just some slight cleanup of the undo API.
811
812 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
813
814         * TrackBar.cs: Fix signature of RightToLeftLayout.
815         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
816         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
817         * Application.cs: Implemented UseWaitCursor.
818
819 2007-01-18  Jackson Harper  <jackson@ximian.com>
820
821         * TextControl.cs: We can't skip tags if any part of the tag is
822         visible.
823
824 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
825
826         * ContainerControl.cs: Override OnLayout.
827
828 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
829
830         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
831
832         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
833         everything else.
834
835 2007-01-18  Chris Toshok  <toshok@ximian.com>
836
837         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
838         (leftover from the container_selected days, I'd wager).  fixes bug
839         #80546.
840
841 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
842
843         * Control.cs: Apply patch from George to fix the new testcase on
844         bug #80451.  We can't just check for Color.Transparent, we need 
845         to check if the back color's alpha channel is < 255.
846
847 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
848
849         * Form.cs: Move setting show_icon = true to before the constructor
850         so that the base constructor has that information when it calculates
851         the form's size.  Was causing forms to be (6, 6) bigger than they
852         were supposed to be.  Thanks for catching this Rolf!
853
854 2007-01-18  Jackson Harper  <jackson@ximian.com>
855
856         * TextControl.cs: When replacing a selection we need to invalidate
857         from the initial selection start, because selection start is moved
858         to the end of the replacement.
859
860 2007-01-18  Andreia Gaita  <avidigal@novell.com>
861
862         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
863
864 2007-01-18  Chris Toshok  <toshok@ximian.com>
865
866         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
867         I just added.
868
869 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
870
871         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
872         layout methods and properties from ToolBarButton must be available
873         into ToolBarButtonInfo.
874
875 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
876
877         * Control.cs: If the control has a transparent background, we
878         need to refresh it when it moves and when it's parent's background
879         image changes.  [Fixes bug #80451]
880
881 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
882
883         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
884
885 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
886
887         * XplatUIWin32.cs: Implement proper double buffering for Windows.
888         [Fixes bug #80447, and probably speeds up things as well]
889
890 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
891
892         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
893         * XplatUIWin32.cs: We need to recalculate NC size after changing 
894         window style to toolwindow (otherwise the client rectangle will be
895         3 pixels to small for some reason).
896         * MdiWindowManager.cs: Revert NC size calculations to match how
897         they are calculated only based on window styles (to match
898         Win32AdjustWindowRectEx, since otherwise when setting size or 
899         location, Control will call Win32AdjustWindowRectEx to update client 
900         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
901         calculate a different value of client size causing another paint 
902         (and flickering))
903         * InternalWindowManager.cs: When moving or resizing a window only
904         update size or location if they actually changed.
905         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
906         (seems to match Windows behaviour better). Cleaned up 
907         ManagedWindowDecorations to draw what's needed and nothing else
908         (was drawing borders and lines where they shouldn't be)
909         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
910         (style = 0xFFFF) and takes into account caption height when 
911         calculating window rectangle.   
912
913 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
914
915         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
916         can be added to toolbar multiple times, we need to maintain a list of 
917         button information for each positions.
918
919 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
920
921         * ToolBar.cs: Some small stetic changes.
922
923 2007-01-16  Jackson Harper  <jackson@ximian.com>
924
925         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
926         that allow us to have nested recalc = false blocks.
927         - Add paste support for images in the RichTextBox
928         * RichTextBox.cs: flush the text after the color is changed, so
929         the change takes effect.
930         - Use SuspendRecalc
931         - Some extra debugging info
932         * TextControl.cs: Tags no longer track their length, it is just
933         computed from the next tags length, this makes things a little
934         simpler and reduces places that we have to track length changes.
935         - Refactored the linetag class a little so we could make it
936         a base class for different kinds of tags
937         - Created a image tag, a tag that can have a single image inserted
938         into it
939         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
940         that we can call suspend multiple times.
941         - Add some debugging methods
942
943 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
944
945         * MdiClient.cs: Add ActivatePreviousChild for 
946         mdi child window navigation.
947         * Form.cs: Use MdiClient.ActivateNextChild/
948         ActivatePreviousChild instead of Form.SelectNextControl
949         to select the next/previous child since 
950         SelectNextControl doesn't do it in the same order
951         as mdi children should do it.
952
953 2007-01-16  Chris Toshok  <toshok@ximian.com>
954
955         * Control.cs: remove container_selected field.
956
957 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
958
959         * MdiClient.cs: Update main form's ActiveChild when
960         updating keyboard focus for the mdi child.
961
962 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
963
964         * Control.cs: PreferredSize fix.
965
966         * Form.cs: Add several 2.0 events, properties, and methods.
967
968 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
969
970         * Form.cs: Provide meaningful message when MdiParent is assigned a
971         Form that is not an MdiContainer.
972
973 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
974
975         * MdiClient.cs: Update main form's ActiveChild when
976         activating a mdi child.
977
978 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
979
980         * MdiWindowManager.cs: Fix NRE when merging menus and main form
981         doesn't have a menu.
982
983         * Form.cs: Request NCRecalc after creating a mdi child window.
984         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
985         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
986         
987         * MdiClient.cs: Add new method SendFocusToActiveChild that either
988         sends keyboard focus to the active child, or to the MdiClient
989         if there are no child forms.
990         
991 2007-01-15  Chris Toshok  <toshok@ximian.com>
992
993         * ListView.cs: drop the *Internal overrides, just do our work in
994         ItemControl's WndProc instead.
995
996         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
997         of the various controls, and forward the events properly (in the
998         same manner as MS) from the textbox to the UpDown.  Also the
999         ActiveControl of the UpDownBase gets set properly now.  Finally,
1000         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
1001
1002         * NumericUpDown.cs: set Text in the ctor.
1003
1004         * DomainUpDown.cs: call UpdateEditText in the ctor.
1005         
1006         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
1007         so even a Selectable = false textbox can be focused if you click
1008         in it.  Go figure.
1009
1010         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
1011         just add their handling in their respective WndProc's.  Also add
1012         an explicit FocusInternal method that doesn't consult CanFocus
1013         before calling Select(this).
1014
1015         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
1016         do our work in WndProc instead.
1017
1018         * TabControl.cs: same.
1019
1020         * ComboBox.cs: same.
1021
1022 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1023
1024         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
1025         Fixes #80006.
1026
1027 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
1028
1029         * ListViewItem.cs:
1030         * ThemeWin32Classic.cs: Don't draw the item text outside
1031         item bounds in Details view, as well as use trimming.
1032         Fixes bug #80376.
1033
1034 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1035
1036         * Form.cs: Implement Form.ShowIcon.
1037         
1038         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
1039         null, which when combined with the DlgModalFrame window style removes
1040         the icon from the title bar.
1041
1042 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1043
1044         * Control.cs: Call OnMouseClick after OnClick. (2.0)
1045
1046 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1047
1048         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
1049         menu when mdi child windows theres a menu, uses insert to get icon
1050         at first position. Partially fix #80006.
1051
1052 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1053
1054         * Clipboard.cs: Implement 2.0 methods.
1055
1056 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1057
1058         * Menu.cs: Implement Insert method of MenuItemCollection class
1059         to fix MenuMerge.
1060
1061 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1062
1063         * ListView.cs: Implement 2.0 FindItemWithText method.
1064
1065 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1066
1067         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
1068         to calculate menu bar size. Fixes #80290.
1069
1070 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1071
1072         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1073
1074 2007-01-11  Chris Toshok  <toshok@ximian.com>
1075
1076         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1077         initial form.
1078
1079 2007-01-11  Chris Toshok  <toshok@ximian.com>
1080
1081         * LinkLabel.cs: make sure to call base.Select in our Select method
1082         if it turns out we're going to be selected (i.e. if we have a link
1083         that is going to receive focus).  That way our container's
1084         ActiveControl is updated properly.
1085
1086 2007-01-11  Chris Toshok  <toshok@ximian.com>
1087
1088         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1089         they have 1 or more links.  this fixes the crash gert reported.
1090
1091 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1092
1093         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1094         anymore.
1095
1096         * Control.cs (Controls.Add): Check if control to be added to the collection
1097         is a top level control, and throw an ArgumentException if it is.
1098         Remove ContainerSelectedFlag, not needed anymore.
1099
1100         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1101         top most control doesn't activate the form. This fixes a problem in the
1102         MessageBox, where the default button wouldn't get focus because the form
1103         was activated before being Loaded - when the Owner is set, SetTopMost is
1104         called, and it would activate it.
1105
1106 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1107
1108         * Button.cs: When clicked and setting the parent form's DialogResult,
1109         use FindForm instead of Parent, since parent could be a container
1110         control and not the Form.  Fixes bug #80495.
1111
1112 2007-01-10  Chris Toshok  <toshok@ximian.com>
1113
1114         * Form.cs: move the call to SendControlFocus into the same
1115         is_loaded check.
1116
1117 2007-01-10  Chris Toshok  <toshok@ximian.com>
1118
1119         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1120         It breaks in the face of the new ActiveControl stuff, and should
1121         be unnecessary.
1122
1123         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1124         activecontrol's focus if it's not already set, after we set
1125         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1126         after the previous focus/active control fixes regressed it.
1127
1128         * Control.cs: reindent some code.
1129         
1130 2007-01-10  Chris Toshok  <toshok@ximian.com>
1131
1132         * Splitter.cs: clearing some outstanding changes from my tree.
1133         Replace all accesses (not writes) to the internal dock_style field
1134         with the Dock property.
1135
1136 2007-01-10  Chris Toshok  <toshok@ximian.com>
1137
1138         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1139         FireValidated virtual.
1140
1141         * Form.cs: override and don't chain up calls to FireEnter and
1142         FireLeave.
1143
1144 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1145
1146         * ListView.cs: Add more text padding space when using
1147         auto resize for columns (the previous value didn't work fine).
1148
1149         * ThemeWin32Classic.cs: Update text position inside columns,
1150         to match the appeareance of .Net.
1151
1152         * ColumnHeader.cs: When using auto resize, only the Width should
1153         depend on the sub items, not the Height. Also, set width after
1154         auto resizing (the value of Width should never remain as -1 or -2).
1155
1156 2007-01-10  Chris Toshok  <toshok@ximian.com>
1157
1158         * Application.cs: fix compilation errors when debug is enabled.
1159
1160 2007-01-10  Chris Toshok  <toshok@ximian.com>
1161
1162         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1163         add some nice ascii art pictures and explanation of the process).
1164         (GetMostDeeplyNestedActiveControl): new utility function we need
1165         because our ActiveControl can refer to a child container with its
1166         own ActiveControl.
1167
1168         * Form.cs (OnActivated): remove the call to SelectActiveControl
1169         from here, since you can override this method and not chain up,
1170         and winforms still sets the active control.
1171         (OnCreateControl): also remove the unnecessary SelectActiveControl
1172         call from here.
1173         (WndProc): it's actually called from the WM_ACTIVATE block, just
1174         before calling OnActivated.
1175
1176         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1177         inside the else.  the ActiveControl setter will end up setting
1178         focus on @control.  This keeps us from setting it again (and
1179         generating an extra LostFocus/GotFocus pair).
1180         (Select (bool, bool)): reindent.
1181
1182 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1183
1184         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1185         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1186         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1187         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1188         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1189         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1190         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1191         ToolStripTextBox.cs: Another wave of corcompare work.
1192
1193 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1194
1195         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1196         the Width property.
1197
1198         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1199         methods by callling Column.AutoResize method on columns.
1200
1201 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1202
1203         * Control.cs: Provide proper implementations of PreferredSize
1204         and GetPreferredSize (2.0).
1205
1206 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1207
1208         * Form.cs: Remove one character (!) to make my previous OnClosing
1209         stuff work for modal windows like MessageBox.
1210
1211 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1212
1213         * ListView.cs:
1214         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1215         ListView.Columns to get the last displayed column. Fixes #80452.
1216
1217 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1218
1219         * Label.cs, LinkLabel.cs: Source code identation fixes.
1220
1221 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1222
1223         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1224         we dont need to invalidate only borders because when we invalidate four
1225         border lines the invalidate's generates a complete redraw of button, 
1226         because it now invalidate a complete rect some other redraws operations
1227         are fixed. Fixes #80196.
1228         
1229         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1230         Remove ToolBarInvalidateEntireButton as it is not used.
1231
1232 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1233         
1234         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1235         called for 2.0 profile.
1236         * CloseReason.cs: Make class internal for 1.1.
1237
1238 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1239
1240         * ToolStripManager.cs: Implement FindToolStrip functionality.
1241         * ToolStrip.cs: Register and unregister with ToolStripManager.
1242
1243 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1244
1245         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1246         to ArrangedElementCollection.  Implemented this with as few #if's as 
1247         possible (which is still too many).
1248
1249 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1250
1251         * Control.cs: Implement SizeFromClientSize() [2.0].
1252
1253 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1254
1255         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1256         use Theme.BorderSize to calculate area instead of static value 1, 
1257         by the way use new BorderStaticSize instead     Border3DSize when 
1258         border_static is true. Fixes #79537.
1259         
1260         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1261         
1262         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1263         it is not needed.
1264
1265 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1266
1267         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1268
1269 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1270
1271         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1272         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1273         
1274         * Hwnd.cs: 
1275         - border_static field added, it will used to define when a control 
1276         theres 3D border but it must be static (thin).
1277         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1278         instead of static value 1, by the way use new BorderStaticSize instead
1279         Border3DSize when border_static is true.
1280
1281         * XplatUIX11.cs, XplatUIOSX.cs: 
1282         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1283         
1284         * Theme.cs: BorderStaticSize field added.
1285
1286 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1287
1288         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1289
1290 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1291
1292         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1293         mimic same behavior than win32 that set border only in CreateParams,
1294         it fix problems under CreateParams overrides. Fix #79442 and partial
1295         fix #79537.
1296         
1297         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1298         of thi control you must call recreate handle. 
1299         
1300         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1301         need to do anything as RecreateHangle will take care about borders.
1302
1303 2007-01-05  Mike Kestner  <mkestner@novell.com>
1304
1305         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1306         cycles between the ItemControl and parent.  Fixes #80388.
1307
1308 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1309
1310         * Control.cs: Lazy init layout engine. Do not directly use 
1311         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1312
1313 2007-01-05  Chris Toshok  <toshok@ximian.com>
1314
1315         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1316         unless our list manager has changed (i.e. unless we have reason to
1317         believe our columns have changed).  Fixes #80422.
1318         
1319         also, disable the call do BindColumns in
1320         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1321         1.1 the event isn't raised in response to a column addition on a
1322         table.)
1323
1324 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1325
1326         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1327         that inheritors can not call it if they choose.  Fixes bug #80456.
1328
1329 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1330
1331         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1332         doesn't blow up with a null exception on marshalling.
1333         
1334 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1335
1336         * Control.cs: Implement several 2.0 protected properties and methods.
1337         Ensure that all necessary events are being called when properties
1338         are set.
1339
1340 2007-01-05  Mike Kestner  <mkestner@novell.com>
1341
1342         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1343         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1344         instead of the parent control.  Fixes #80378.
1345
1346 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1347
1348         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1349           determine whether to use yard-pound or not (bug #78399).
1350
1351 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1352
1353         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1354         problems. So it is time to bring back the old popupbutton colors.
1355
1356 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1357
1358         * ColumnHeader.cs:
1359         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1360         property by using the internal information of the
1361         columns order in ListView.
1362
1363 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1364
1365         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1366         Add 2.0 Tag properties.
1367
1368         * LinkArea.cs: Add 2.0 ToString method.
1369
1370 2007-01-03  Chris Toshok  <toshok@ximian.com>
1371
1372         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1373         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1374         when we're editing, which fixes #80047.
1375
1376 2007-01-03  Chris Toshok  <toshok@ximian.com>
1377
1378         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1379         #80404.
1380
1381 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1382
1383         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1384         property and implementation.
1385
1386         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1387         for MdiWindowListItem property.
1388
1389         * ToolStripDropDown.cs: Don't consider hidden menu items while
1390         laying out the menu.
1391
1392 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1393
1394         * SendKeys.cs: window handle is not needed in win32, so just
1395         get the active window for X after parsing keys and don't use
1396         it when building the message; it is passed by parameter to the 
1397         Xplat method and used there to build the message instead. Also,
1398         wait for events to be processed on SendWait, as opposed to Send,
1399         which doesn't wait :) Playing with threads and Send() completely 
1400         hangs on ms.net, only SendWait() works.
1401         
1402         XplatUIX11.cs
1403         X11Display.cs: Check for valid window handle.
1404
1405 2007-01-03  Jackson Harper  <jackson@ximian.com>
1406
1407         * TextControl.cs: Need to prevent wrap calculations when replacing
1408         text (this was there before i removed it accidently).
1409         - Don't update the cursor during the positioning, just set it to
1410         selection_start at the end of the operaion.
1411
1412 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1413
1414         * Control.cs:
1415         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1416         
1417 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1418
1419         * MonthCalendar.cs: Added Click and DoubleClick events again,
1420         but this time they only hide Control's Click and DoubleClick.
1421         
1422 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1423
1424         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1425         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1426
1427 2007-01-02  Jackson Harper  <jackson@ximian.com>
1428
1429         * TextBoxBase.cs: We move the caret with the split now, so we
1430         don't need to explicitly move the caret after splitting.  This
1431         fixes the caret bumping down an extra line on Enter.
1432
1433 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1434
1435         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1436         2.72). 
1437
1438         * ScrollableControl.cs: Add Scroll event.
1439
1440 2007-01-02  Mike Kestner  <mkestner@novell.com>
1441
1442         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1443         to fix all hdr height padding codepaths.  Fixes #80207.
1444
1445 2007-01-02  Chris Toshok  <toshok@ximian.com>
1446
1447         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1448         setting it to the Control defaults anyway, and it being after the
1449         Dock set was screwing up layout.
1450         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1451         no need to call UpdateStatusBar here, as it'll be re-layed out if
1452         it needs to be.
1453
1454 2007-01-02  Mike Kestner  <mkestner@novell.com>
1455
1456         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1457         to header height for width == -1. Fixes the rest of #80207.
1458
1459 2007-01-02  Mike Kestner  <mkestner@novell.com>
1460
1461         * ListView.cs: rework the mouse event forwarding everaldo added
1462         to translate the coordinates to the parent control not
1463         raise the parent events until after we've done our work. Hover
1464         needs more work, in the case where HoverSelection is on, because
1465         the item control receives more than one MouseHover per Enter
1466         event, so we need to ensure only the "first" hover gets forwarded.
1467         Opening a minor bug for that.
1468
1469 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1470
1471         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1472         * ListControl.cs: Implemented AllowSelection property. Removed extra
1473         tabs.
1474         * ListBox.cs: Implemented AllowSelection property.
1475
1476 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1477
1478         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1479         SelectedItem, it prevent for errors when you must disable item
1480         before perform click. Fixes #80409.
1481
1482 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1483
1484         * MenuAPI.cs: Prevent second level and beyond submenus to close
1485         until first level when move out side of popup.
1486         
1487 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1488
1489         * MenuAPI.cs:
1490         - Down submenu positin in three pixels.
1491         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1492
1493 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1494
1495         * ThemeWin32Classic.cs:
1496         - Fix popup menu size adding one pixel on the top.
1497         - Down menu item border from two to one to mimic Win32.
1498         - Some source identation fixes. 
1499
1500 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1501
1502         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1503         position of menu arrows, it fix wrong arrow size.
1504
1505 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1506
1507         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1508         instead of line, it simplify draw operation and fix it using 3D
1509         borders to mimic Win32.
1510
1511 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1512
1513         * StatusStrip.cs: Add implementation of the sizing grip.
1514
1515         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1516         StatusStrip rendering.
1517
1518 2006-12-31  Chris Toshok  <toshok@ximian.com>
1519
1520         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1521         override the layout style (anchor/dock) of the control.  assign to
1522         Dock instead.  Fixes bug #80416.
1523
1524         * ToolStrip.cs: same.
1525
1526 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1527
1528         * ContainerControl.cs: Use ContainerSelected flag to check if 
1529         a Container is directly selected, or if Select is called on a 
1530         non-container. If a container is directly selected, focus events 
1531         should not be raised.
1532         Apply #80411 patch to throw exception on set_ActiveControl if 
1533         control is the same as the current one.
1534         
1535         * Control.cs: Use ContainerSelected flag (see above).
1536         Add invalidation check to raise event but not invalidate if 
1537         dimensions are 0.       
1538         Apply #80411 patch.
1539         
1540
1541 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1542
1543         * MenuAPI.cs: After click, dont close popup menu when menu is
1544         ContextMenu. Fixes #80399.
1545
1546 2006-12-30  Chris Toshok  <toshok@ximian.com>
1547
1548         * ContainerControl.cs: make sure we throw the exception if the
1549         container control doesn't contain the control we're setting
1550         ActiveControl to.
1551
1552 2006-12-30  Chris Toshok  <toshok@ximian.com>
1553
1554         * Control.cs (SetTopLevel): fix the exception raised by
1555         SetTopLevel for child controls.
1556         (set_Anchor): call UpdateDistances when setting the anchor type.
1557         This fixes bug #80336.
1558
1559 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1560
1561         * Theme.cs: For now, revert back to 8pt font.
1562
1563 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1564
1565         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1566         Fixes #80395.
1567
1568 2006-12-29  Chris Toshok  <toshok@ximian.com>
1569
1570         * Control.cs: reorder the code in OnResize to give the same event
1571         ordering as MS.
1572
1573 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1574
1575         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1576         TileHorizontally and TileVertically.
1577         
1578 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1579
1580         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1581         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1582         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1583         Corrected copyright and email adress.
1584
1585 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1586
1587         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1588         of Exception in FullPath property if no TreeView is associated with
1589         the TreeNode.
1590
1591 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1592
1593         * Theme.cs: Marked default_font as private, and initialize it in ctor
1594         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1595         on 2.0 profile.
1596         * ThemeGtk.cs: Removed default_font intialization.
1597         * ThemeWin32Classic.cs: Removed default_font initialization.
1598
1599 2006-12-28  Chris Toshok  <toshok@ximian.com>
1600
1601         * Control.cs: fix a couple of place where we were creating handles
1602         more aggressively than we should be.  Fixes ControlRefresh unit
1603         tests.
1604
1605 2006-12-28  Chris Toshok  <toshok@ximian.com>
1606
1607         * Control.cs: contrary to what the comment said, Control.Dock does
1608         not supercede Control.Anchor - the last one you assign to decides
1609         the layout behavior.  so we need to keep track of which was the
1610         last set.  Also, fix some of the affected property arguments in
1611         PerformLayout calls, and remove an redundant parent.PerformLayout
1612         call in OnResized.
1613
1614         Add a VisibleInternal property, which returns is_visible.  We
1615         can/should get rid of all the usage of this field elsewhere.
1616
1617 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1618         
1619         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1620         control style, not DoubleBuffer. Added UseDoubleBuffering property
1621         that indicates whether doublebuffering is enabled and supported.
1622         (comment from and code based on Gert Driesen's patch in #80324).
1623         Fixes #80324.
1624
1625 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1626         
1627         * Control.cs: Fixed a NRE.
1628
1629 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1630
1631         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1632         for 2.0.
1633
1634 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1635
1636         * Control.cs: Rewrote double buffering, now a seperate
1637         class handles all the buffering, no Graphics is disposed of
1638         until the painting is finished (earlier implementation 
1639         would crash if the control was resized in the OnPaint, 
1640         since it would cause the double buffer to be recreated
1641         and the old one disposed), a separate Graphics is 
1642         created for every paint (MS behaviour and anyways the state
1643         of the Graphics would have to be saved and restored otherwise)
1644         
1645         * XplatUIDriver.cs: 
1646         * XplatUIX11.cs:
1647         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1648         so that we can get the graphics for the back buffer without
1649         having to create a new one and remove the offscreen_dc parameter
1650         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1651         
1652 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1653
1654         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1655         Also make virtual all the key-related methods.
1656
1657         * ListViewItem.cs: Make virtual the key related methods for
1658         ListViewSubItemCollection.
1659
1660 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1661
1662         * ListView.cs:
1663         * ListViewItem.cs:
1664         * ThemeWin32Classic.cs:
1665         * Theme.cs: Initial support for Tile view in ListView,
1666         as well as the implementation of the required bits for it (Item
1667         and Subitem).
1668
1669 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1670
1671         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1672         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1673         Provide useful exception messages.
1674
1675 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1676
1677         * TrackBar.cs: Remove a warning.
1678         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1679         when used by DateTimePicker, fixes #80287. This also requires that 
1680         MonthCalendar implements it's own drawing for the yearly updown control,
1681         otherwise the Capture tracking would be too complicated. Removed the Click 
1682         and DoubleClick events (according to comments they were hiding the base class
1683         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1684         raise these events, not that they cannot be raised. It is possible to raise 
1685         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1686         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1687         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1688         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1689         event, no longer needed.
1690         
1691 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1692
1693         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1694         true if new value differs from current value.
1695
1696 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1697
1698         * Control.cs: ControlCollection.Count must be public. Fixed build of
1699         unit tests.
1700
1701 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1702
1703         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
1704
1705 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1706
1707         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
1708
1709 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1710
1711         * Control.cs: Invalidates control including when Width and Height is 
1712         equal zero or is not visible, only Paint event must be care about 
1713         this. Fixes #79913.
1714
1715 2006-12-26  Chris Toshok  <toshok@ximian.com>
1716
1717         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
1718         more corcompare work.
1719
1720         * DataGridView.cs: fix compiler warning.
1721
1722         * ColumnHeader.cs: some corcompare work, and also take the
1723         opportunity to make the internal fields private.
1724
1725         * ListView.cs: fix the fallout from the above field change.
1726
1727 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1728
1729         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
1730         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
1731         ToolStripTextBox.cs: Fixes to events and corcompare.
1732
1733 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
1734
1735         * ListView.cs: Call owner.OnMousexx event to propagate events from
1736         item to ListView. Fixes #80367.
1737
1738 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1739
1740         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
1741         if value is less than one. ItemHeight should not be set to a value
1742         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
1743         Removed extra tabs.
1744
1745 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
1746
1747         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
1748         * ToolStripStatusLabel.cs: Add Spring for Moma.
1749
1750 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1751
1752         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
1753         Fixed code formatting. Removed debug code.
1754         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
1755
1756 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
1757
1758         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
1759         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
1760         ArgumentOutOfRangeException if ColumnCount is negative. In 
1761         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
1762         less than 4 or higher than 32768.
1763         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
1764         Fixed FormatProvider to return CurrentCulture unless explicitly set.
1765         Fixed IsFormatProviderDefault to return true if FormatProvider has
1766         not been explicitly set.
1767
1768 2006-12-25  Chris Toshok  <toshok@ximian.com>
1769
1770         * Application.cs: add a couple of 2.0 events.
1771
1772 2006-12-25  Chris Toshok  <toshok@ximian.com>
1773
1774         * Control.cs: fix compiler warning.
1775
1776         * AxHost.cs: corcompare fixes.
1777
1778         * ApplicationContext.cs: corcompare fixes.
1779
1780 2006-12-25  Chris Toshok  <toshok@ximian.com>
1781
1782         * Control.cs: only update dist_right/dist_bottom if the
1783         width/height is > 0.  this fixes anchored controls being resized
1784         smaller until they disappear and then resized larger again.
1785
1786 2006-12-25  Chris Toshok  <toshok@ximian.com>
1787
1788         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
1789         since they're nothing more than X/Left and Y/Top, respectively.
1790
1791         Also, move back to a per-control Bitmap/Graphics for
1792         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
1793         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
1794         Height.
1795
1796 2006-12-25  Miguel de Icaza  <miguel@novell.com>
1797
1798         * MessageBox.cs: Implemented overload that takes a new "bool
1799         displayHelpButton" by adding a new internal field "show_help".
1800         When clicked this will raise the HelpRequested on the owner or the
1801         main form. 
1802
1803         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
1804         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
1805
1806         * ListView.cs: Add support ColumnWidthChanged and
1807         ColumnWidthChanging. 
1808
1809         Add support for ColumnReordered event.
1810         (ReorderColumn): Add NET_2_0 specific support for cancelling the
1811         reorder.
1812
1813         Very nice codebase!
1814
1815         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
1816
1817         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
1818
1819 2006-12-24  Chris Toshok  <toshok@ximian.com>
1820
1821         * GridTablesFactory.cs: 2.0 corcompare work.
1822
1823         * ToolStripContainer.cs: add "override" to
1824         ContextMenuStripChanged, and remove the local event object.
1825
1826         * ToolStripDropDown.cs: same with a couple properties.
1827
1828         * ToolStripPanel.cs: same with AutoSizeChanged event.
1829
1830         * TextBoxBase.cs: add "override" to AutoSizeChanged.
1831
1832         * Form.cs: add the remaining 2.0 events, and do some corcompare
1833         attribute work.
1834
1835         * DateTimePicker.cs: add "new" to padding.
1836
1837         * ButtonBase.cs: use Control's use_compatible_text_rendering.
1838
1839         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
1840
1841         * DataGridView.cs: PaddingChanged is overridden.
1842
1843 2006-12-24  Chris Toshok  <toshok@ximian.com>
1844
1845         * Control.cs: corecompare work here too.
1846
1847         * DataGridViewElement.cs, DataGridView.cs,
1848         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
1849         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
1850         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
1851         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
1852         work.
1853
1854 2006-12-24  Miguel de Icaza  <miguel@novell.com>
1855
1856         * Control.cs: Switched the error message on the console for a
1857         todo.  A review of the code will have to cope with this anyways
1858         (since its a large feature, it is in our radar) and it was
1859         producing too much output when running PDN.
1860
1861         * ToolStripComboBox.cs: Set the text when the SelectedIndex
1862         changes.  Applications depend on this (PDN 2.72)
1863
1864 2006-12-23  Chris Toshok  <toshok@ximian.com>
1865
1866         * TableLayoutSettings.cs: finish up the corcompare work for this
1867         class.
1868
1869 2006-12-23  Chris Toshok  <toshok@ximian.com>
1870
1871         * Control.cs: make SetImplicitBounds internal, do some futzing
1872         with LayoutEngine so that it's available in 1.1, and remove the
1873         entire duplicated code mess from PerformLayout.  Use
1874         System.Windows.Forms.Layout.DefaultLayout instead.
1875
1876         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
1877
1878 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1879
1880         * Form.cs: Add MainMenuStrip property.
1881
1882 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
1883
1884         * Control.cs: Add ContextMenuStrip property and implementation.
1885         Fix ContextMenu implementation to show menu centered on control when
1886         activated using the keyboard instead of showing at screen (0,0).
1887
1888         * ToolStripDropDown.cs: Fix needed overload of Show ().
1889
1890 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1891
1892         * Menu.cs: Name property added for 2.0 profile.
1893         
1894 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1895
1896         * Menu.cs: Update information about FindMenuItem, method to be
1897         implemented soon.
1898
1899 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1900
1901         * MenuAPI.cs: When deselect items deselect also selected subitems.
1902         
1903 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
1904
1905         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
1906         FindSubItemByCoord to found itens that is not active, also an
1907         cheking added to FindSubItemByCoord to search for items only 
1908         in visible popup windows. Fixes #80274.
1909
1910 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
1911
1912         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
1913         internal property, it be care about change ExStyle. 
1914
1915 2006-12-22  Andreia Gaita  <avidigal@novell.com>
1916
1917         * ContainerControl.cs: set activeControl for parent forms up the 
1918         tree when the new activecontrol is a container.
1919         When validating the active control, if it is a container, also
1920         raise up the validation for it's active control. Fixes #80280
1921         
1922         * Control.cs: Add internal property flag and check to prevent
1923         Focus events from getting raised when Select() is called for
1924         a ContainerControl. There are still too many focus events being
1925         raised at the moment though.
1926         Cleaned up the code a bit.
1927
1928 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1929
1930         * Control.cs: Added all missing 2.0 events.and
1931         fixed a couple of corcompare issues.
1932         * TrackBar.cs: Implemented missing 2.0 bits.
1933         * MonthCalendar.cs, 
1934         * DateTimePicker.cs, 
1935         * MdiClient.cs: Fixed some corcompare issues.
1936
1937 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1938
1939         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
1940         SplitterPanel.cs: corecompare work.
1941
1942 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1943
1944         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
1945         Clean up warnings for BackgroundImageChanged and PaddingChanged
1946         events now that they are implemented in Control.cs.
1947
1948 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
1949
1950         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
1951         
1952         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
1953         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
1954         of TableLayoutPanel and supporting cast.
1955
1956 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1957
1958         * XplatUIWin32.cs: 
1959         - GrabWindow now confines the mouse pointer to the confine window.
1960         - Added Win32ClipCursor and Win32GetClipCursor.
1961
1962         * Control.cs: 
1963         - Added CaptureWithConfine to be able to capture and confine 
1964         mouse pointer.
1965         
1966         * InternalWindowManager.cs: 
1967         - Call CaptureWithConfine instead of Capture if we're an
1968         MdiChild (fixes #79982).
1969
1970 2006-12-21  Chris Toshok  <toshok@ximian.com>
1971
1972         * DataGrid.cs: guard against the initial state of selection, where
1973         selection_start == -1.  make sure we only select from index >= 0.
1974         Fixes bug #80291.
1975
1976 2006-12-21  Chris Toshok  <toshok@ximian.com>
1977
1978         * Control.cs: we don't need to be so draconian with
1979         UpdateDistances, and we thusly don't need to call it before
1980         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
1981
1982 2006-12-21  Daniel Nauck  <dna@mono-project.de>
1983
1984         * ComboBox.cs,
1985         TextBox.cs: Implemented AutoComplete properties.
1986
1987 2006-12-20  Chris Toshok  <toshok@ximian.com>
1988
1989         * DataGridView*.cs: some corecompare work.
1990
1991 2006-12-20  Jackson Harper  <jackson@ximian.com>
1992
1993         * XplatUIX11.cs: We need to hide the caret when deleting it,
1994         otherwise you get carets left lying around everywhere.
1995         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
1996         prevents getting some weird half drawn caret tracers when
1997         scrolling.
1998         * TextControl.cs: Attempt to reduce the number of times we need to
1999         recreate the caret.
2000
2001 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
2002
2003         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
2004
2005 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2006
2007         * DateTimePicker.cs:
2008         - Implemented missing 2.0 bits.
2009         - Changed some default values to match MS.
2010         
2011 2006-12-20  Jackson Harper  <jackson@ximian.com>
2012
2013         * TextBoxBase.cs: When changing the font across the document we
2014         can't recalculate after changing each line, since that will cahnge
2015         the line count.
2016         - PreferredHeight is a little different than i thought.
2017         - When backspacing, move the caret before we do the actual char
2018         delete, because when that delete crosses a wrap boundary the
2019         positional information will change.
2020
2021 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2022
2023         * Control.cs: Added some missing 2.0 bits: 
2024         BackgroundImageLayout, BackgroundImageLayoutChanged, 
2025         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
2026         add IBindableComponent and IDropTarget implementation.
2027         
2028         * MonthCalendar.cs: 
2029         - Added all missing 2.0 features:
2030         BackgroundImageLayout, RightToLeftLayout, 
2031         OnHandleDestroyed, RightToLeftLayoutChanged, 
2032         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
2033         PaddingChanged.
2034         - Rewrote all the BoldDate code, it was completely broken.
2035         - Fixed all the tests (the tests can now be re-enabled, the
2036         problems were not with the tests, but with the control, it was
2037         mostly broken).
2038         
2039         * DateTimePicker.cs: Changed the location where the 
2040         MonthCalendar is shown.
2041         
2042 2006-12-19  Chris Toshok  <toshok@ximian.com>
2043
2044         * DataGridView.cs: add IDropTarget implementation.
2045
2046         * ToolStripPanel.cs: add IDropTarget implementation.
2047
2048 2006-12-19  Jackson Harper  <jackson@ximian.com>
2049
2050         * TextControl.cs: soft now means something different than what it
2051         used to mean, we want to move the caret regardless of whether or
2052         not this break was soft (would we really have wanted the caret
2053         to not move with the break in the old context?)
2054         * TreeView.cs: Make sure we factor in the vert scrollbar when
2055         calculating the horizontal scrollbar's maximum.
2056
2057 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2058
2059         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
2060         check for keywords in alternate casing, close bug #80049.
2061
2062 2006-12-19  Chris Toshok  <toshok@ximian.com>
2063
2064         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
2065         methods (which all do nothing).
2066
2067         * IDropTarget.cs: add the 4 missing methods.
2068
2069 2006-12-19  Chris Toshok  <toshok@ximian.com>
2070
2071         * TableLayoutRowStyleCollection.cs: corcompare work.
2072         
2073         * TableLayoutSettings.cs: same.
2074
2075         * TableLayoutStyle.cs: same.
2076
2077         * TableLayoutColumnStyleCollection.cs: same.
2078
2079 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2080
2081         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2082         TableLayoutPanel I've had in my local tree for way too long.
2083
2084 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2085
2086         * TableLayoutSettings.cs: Finish the public API (still needs all
2087         the logic to update on changes). 
2088
2089         * TableLayoutPanelCellPosition.cs: new file.
2090         
2091         * TableLayoutRowStyleCollection.cs,
2092         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2093         TableLayoutSettings.cs: Track the final 2.0 table api.
2094
2095 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2096
2097         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2098         and Image List 2.0 members for ColummnHeader.
2099         * ListView.cs: Add key-related 2.0 methods for
2100         ColumnHeaderCollection.
2101
2102 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2103
2104         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2105         ArgumentNullException if items argument is null. Ignore null item in
2106         arrays. Removed extra tabs.
2107
2108 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2109
2110         * MonthCalendar.cs: Fixed InvalidCastException.
2111
2112 2006-12-19  Jackson Harper  <jackson@ximian.com>
2113
2114         * TextControl.cs: Don't increment the position here.
2115         - When calculating char positions only add in the line break size
2116         for hard line breaks.
2117
2118 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2119
2120         * SendKeys.cs: Changed some things to match ms.net behaviour
2121         when parsing shifted capital letters.
2122         
2123         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2124         Add window handle as parameter to SendInput. X11 needs the 
2125         window handle, and the handle being passed      to it in the keys 
2126         queue is the active control handle (which windows needs), not 
2127         the window handle.
2128         
2129         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2130         to support SendKeys on X.       
2131         
2132         * X11Keyboard: Implement helper method to lookup a linux keycode
2133         given the virtual keycode. Added table of keycode-2-virtualkey
2134         values to support this.
2135
2136 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2137
2138         * ListView.cs: Add support for SelectedIndexCollection
2139         and SelectedItemCollection 2.0 methods. Implement support
2140         for ImageKey too.
2141         * ListViewItem.cs: Add support for ListViewSubItemCollection
2142         2.0 methods. Also, fix an incorrect behavior of AddRange method
2143         (it shouldn't call Clear).
2144         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2145
2146 2006-12-19  Jackson Harper  <jackson@ximian.com>
2147
2148         * RichTextBox.cs: 
2149         * TextBoxBase.cs: New args for FormatText
2150         * TextControl.cs: Rewrote the main drawing method, this version
2151         feels a little easier to understand and debug to me.  Hopefully it
2152         does to others also
2153         - Fix FormatText to OR in the new formating values.  Added
2154         FormatSpecified param, basically this works in the same way as
2155         BoundsSpecified in Control.
2156         - Set the caret properties when the caret is positioned.
2157         - When wrapping text make sure that we calculate the width of the
2158         last character
2159         - when calculating alignments we might have wrapped down to the
2160         next line, so don't search for an individual tag, search for the
2161         end of the line
2162         - We need to invalidate the selection area when we replace the
2163         selection.
2164         
2165 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2166
2167         * Application.cs: add Restart () 2.0 support
2168
2169 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2170
2171         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2172         property. Fixes #80268.
2173         
2174 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2175
2176         * MenuAPI.cs: Dont trigger select event when closes top menu
2177         item. Fixes #80270.
2178
2179 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2180
2181         * MenuAPI.cs: When you click on menuitem only trigger onselect
2182         event for top menu itens. Fixes #80271.
2183         
2184 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2185
2186         * MdiWindowManager.cs: Make IconicBounds depend on
2187         the bottom of MdiClient, not the top (fixes #80267)
2188         
2189 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2190
2191         * MdiClient.cs: Added missing 2.0 attribute
2192
2193 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2194
2195         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2196         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2197
2198 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2199
2200         * MenuAPI.cs: Fix click when menuitem is not popup,
2201         this regression was caused by last commit (#80272).
2202
2203 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2204
2205         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2206         fire click event or close menu. Fixes #80272.
2207
2208 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2209
2210         * ListViewHitTestInfo.cs: add
2211
2212 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2213
2214         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2215         * FlatButtonAppearance.cs: add
2216         * DockingAttribute.cs: add
2217
2218 2006-12-17  Chris Toshok  <toshok@ximian.com>
2219
2220         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2221         and rebind our columns when it does - this way, if you make
2222         changes to the DataTable (or set the Table attribute on a DataView
2223         after setting it as the DataGrid's DataSource, the changes are
2224         made visible.)  Fixes bug #80107.
2225
2226 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2227
2228         * ListViewGroup.cs: add internal Location property for layouting.
2229         * Theme.cs: add abstract ListViewGroupHeight function.
2230         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2231
2232 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2233
2234         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2235         Added reset of selected index to 0 when adding first tab page.
2236         Fixes #80264
2237         
2238         * NumericUpDown.cs: Fix NET_2_0 check
2239
2240 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2241
2242         * ListViewGroup.cs: fixed DefaultValueAttribute value
2243
2244 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2245
2246         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2247
2248 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2249
2250         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2251         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2252         ScrollableControl.cs: Add a handful of methods that are
2253         overwritten in 2.0 
2254
2255 2006-12-15  Chris Toshok  <toshok@ximian.com>
2256
2257         * XplatUIWin32.cs: initial implementation of the Reversible
2258         drawing functions.  there are some problems.  DrawReversibleFrame
2259         doesn't seem to work at all for Dashed FrameStyle, and in the
2260         Thick case there are drawing errors at the corners (we probably
2261         need to bind Rectangle instead of doing moveto/lineto's.)
2262
2263 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2264         
2265         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2266         to send blocks of key messages. Send accumulates keys to send with Flush, 
2267         while SendWait sends all keys immediately.
2268                 
2269         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2270         XplatUIX11.cs,  XplatUIX11-new.cs:
2271         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2272         to Win32 SendInput.
2273         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2274         
2275         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2276         testing for ms.net on this class is very tricky, as the tests run too fast 
2277         to allow the hook to release, essentially freezing the keyboard and the 
2278         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2279         category :p
2280
2281 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2282
2283         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2284                         added missing attributes.
2285  
2286 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2287
2288         * ListViewGroup.cs: Added missing attributes.
2289         * ListViewGroupCollection.cs: Added missing attributes.
2290
2291 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2292
2293         * ListViewItem.cs: fixed ListViewSubItem text property.
2294
2295 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2296         
2297         * Control.cs: Added missing 2.0 attributes
2298         
2299 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2300         
2301         * MdiClient.cs: Added missing 2.0 attribute.
2302         * MonthCalendar.cs: Added some missing 2.0 attributes 
2303         and properties.
2304         
2305 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2306
2307         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2308
2309 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2310
2311         * MainMenu.cs: Add the new 2.0 constructor to help out people
2312         using the MainMenu in VS2005.
2313
2314 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2315         
2316         * MdiChildContext.cs: Removed it, no longer used.
2317         * MdiClient.cs: Added missing 2.0 attributes.
2318         
2319 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2320         
2321         * InternalWindowManager.cs: Fix a NullRef with previous 
2322         changes for toolwindows.
2323         
2324 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2325
2326         * Control.cs: 
2327         - Added AfterTopMostControl to allow for certain controls 
2328         to always stay on top when normal controls are brought to 
2329         front.
2330         
2331         * XplatUIWin32.cs: 
2332         - (DrawInversibleRectangle): Get window rectangle from Win32 
2333         in stead of from control, since Win32 doesn't calculate
2334         screen coords correctly from control's Location if it 
2335         have docked siblings.
2336         
2337         * MdiWindowManager.cs:
2338         - Correct the control menu popup location when clicked on
2339         the maximized form icon. (fixes #80223.1)
2340         - Don't show moving rectangle if mouse hasn't moved from
2341         the original clicked point.
2342         - Removed FormGotFocus handler (not used).
2343         - Calculate the control buttons location from the main
2344         window's size and not client size (fixes #79770).
2345         - Form is now closed when the form icon is double-clicked
2346         (fixes #79775). 
2347         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2348         
2349         * InternalWindowManager.cs:
2350         - Moved some MDI-only methods to MdiWindowManager.
2351         - Removed unused properties and methods.
2352         - Unified method naming for methods handling wm messages.
2353         - Moved all message handling to seperate methods for
2354         each message.
2355         
2356         * ThemeWin32Classic.cs:
2357         - DrawManagedWindowDecorations now draws the title bar 
2358         with a gradient brush.
2359         - Add a CPDrawButtonInternal that allows us to specify
2360         light, normal and dark colors for the buttons (control 
2361         buttons for MDI children were drawn with the same light
2362         color as the background, therefore loosing the 3D effect).
2363         
2364         * SizeGrip.cs:
2365         - Add a CapturedControl property that is used to 
2366         determine the control to resize (defaults to parent). 
2367         Needed for MdiClient, since its SizeGrip's parent is
2368         MdiClient, but the control to resize is the main form.
2369         
2370         * MdiClient.cs:
2371         - Set SizeGrip's CapturedControl to the main form in order
2372         to resize the main form and not the MdiClient.
2373         - Override AfterTopMostControl to leave the scrollbars 
2374         always on top.
2375
2376 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2377
2378         * ListView.cs: fixed ListViewItemCollection AddRange and
2379                         implemented ListViewItemCollection AddRange 2.0 support.
2380
2381 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2382
2383         * ListViewGroup.cs: Add.
2384         * ListViewGroupCollection.cs: Add
2385         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2386         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2387                                 stub for ImageKey 2.0 support.
2388
2389 2006-12-14  Mike Kestner  <mkestner@novell.com>
2390
2391         * ListView.cs: add text padding to the autocalculation for columns
2392         of width -2.  Fixes #80207.
2393  
2394 2006-12-14  Mike Kestner  <mkestner@novell.com>
2395
2396         * ListView.cs: add some index guarding for partial row navigation 
2397         logic.  Fixes #80250.
2398
2399 2006-12-14  Mike Kestner  <mkestner@novell.com>
2400
2401         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2402         are added or inserted to the collection.  Fixes #81099.
2403
2404 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2405
2406         * MenuAPI.cs: Closes menu when right click out side of popup
2407         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2408
2409 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2410
2411         * ListViewItem.cs: Fix dumb error.
2412
2413         * ListView.cs: Add Find and ContainsKey methods in 
2414         ListViewItemCollection, and also return true for IsReadOnly
2415         and IsFixedSize (changes for 2.0). 
2416
2417 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2418
2419         * Control.cs: Allow Region to be set to null.
2420
2421 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2422
2423         * MdiWindowManager.cs: Remove unused (commented out) code.
2424         * Form.cs: When the MdiChild is maximized, the form needs 
2425         WM_NCMOUSELEAVE, so request it.
2426         * InternalWindowManager.cs: 
2427         - Added tooltips to control buttons.
2428         - Removed duplicated control button handling code.
2429         - Removed unused (commented out) code.
2430         
2431 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2432
2433         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2434         was used because we must set cursor without trigger ChangeCursor event
2435         and without change Cursor control property. Fixes #79963.
2436
2437 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2438         
2439         * Control.cs: Check if Region setter value is null, and ignore
2440
2441 2006-12-12  Jackson Harper  <jackson@ximian.com>
2442
2443         * TextControl.cs: We were almost always drawing one more line then
2444         needed, since the GetLineByPixel will return the last line found
2445         at that pixel. In most cases though, we were invalidating up to
2446         the junction between two lines.
2447         - Improve debug code.
2448
2449 2006-12-12  Chris Toshok  <toshok@ximian.com>
2450
2451         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2452         and FillReversibleRectangle.
2453
2454         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2455         and FillReversibleRectangle.
2456
2457         * XplatUIWin32.cs: add stubs which do nothing for
2458         DrawReversibleFrame, DrawReversibleLine, and
2459         FillReversibleRectangle.
2460
2461         * XplatUIOSX.cs: add stubs which raise NIE for
2462         DrawReversibleFrame, DrawReversibleLine, and
2463         FillReversibleRectangle.
2464
2465         * XplatUIX11.cs: add working implementation for
2466         DrawReversibleFrame, DrawReversibleLine, and
2467         FillReversibleRectangle.
2468         
2469         * ControlPaint.cs: implement DrawReversibleFrame,
2470         DrawReversibleLine, and FillReversibleRectangle, by calling into
2471         the appropriate XplatUI method.
2472
2473 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2474
2475         * Form.cs: Make MdiClient have the focus even if it's
2476         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2477         messages. Fixes #79907.
2478         
2479 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2480
2481         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2482         queried after the window is created.
2483         
2484         * XplatUIX11.cs: Added SendParentNotify to implement 
2485         WM_PARENTNOTIFY logic. Fixes #79965.
2486         
2487         * Control.cs: Added MakeParam.
2488         
2489 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2490
2491         * MdiClient.cs: Resume Layout before setting window
2492         states (fixes #80201).
2493
2494 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2495
2496         * MenuAPI.cs: Deselect a menu item after performing
2497         the click (fixes #80197).
2498
2499 2006-12-11  Jackson Harper  <jackson@ximian.com>
2500
2501         * TextBoxBase.cs: We need to cap this value, since Maximum -
2502         ViewPortHeight can be less than zero.
2503         - Only do selection with the left mouse button.
2504         * TextBox.cs: Don't tell the world that we have a context menu.
2505         * Control.cs: New method so that we can control whether or not the
2506         context menu is visible outside MWF.
2507
2508 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2509
2510         * ToolBarButton.cs: Fix text positon. 
2511
2512 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2513
2514         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2515
2516         * Control.cs (DoubleBuffered): Add implementation.
2517
2518         * Application.cs (OpenForms): Add.
2519
2520 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2521
2522         * Form.cs: Use opacity instead of Opactiy to determine if we need
2523         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2524
2525 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2526
2527         * Control.cs: Fix NRE if Control.Site was set to null.
2528
2529 2006-12-11  Chris Toshok  <toshok@ximian.com>
2530
2531         * Control.cs: ControlCollection.Remove should return if the arg is
2532         null, and ControlCollection.SetChildIndex should raise a ANE.
2533
2534 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2535
2536         * Control.cs: Verify value set for Dock property. Code formatting
2537         updates.
2538
2539 2006-12-11  Jackson Harper  <jackson@ximian.com>
2540
2541         * TextControl.cs: Draw the caret and the selection when a flag is
2542         set on the owner.
2543         * TextBoxBase.cs: We want to draw the caret and the selection for
2544         TextBox but not for TextBoxBase.
2545         - If the window is resized and scrolling is no longer needed (the
2546         whole doc is visible) set the scroll position to zero.
2547         - The default SelectWord (the one TextBox uses) should move the
2548         caret to the end of the word.
2549         - SelectAll moves the caret to the end of the selection.
2550         * TextBox.cs: We don't selectall on focus, we just do it when the
2551         control is created.
2552         
2553 2006-12-11  Mike Kestner  <mkestner@novell.com>
2554
2555         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2556
2557 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2558
2559         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2560         2.0 support.
2561         * ListViewItem.cs: Add Name 2.0 property.
2562
2563 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2564
2565         * TabControl.cs: Set visibility on selected or default tab 
2566         when tabcontrol handle is created, so that it's contents
2567         actually show up (duh). Fixes #80193
2568         Don't redraw the control if there is no handle created, as
2569         the selected index might be completely invalid. Added some tests
2570         to check for this.
2571
2572 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2573
2574         * ToolBar.cs: Uses maximun width and height of all buttons as 
2575         button rectangle when ButtonSize specified, it looks strange but
2576         is what happens in Win32. Fixes #80189.
2577
2578 2006-12-11  Jackson Harper  <jackson@ximian.com>
2579
2580         * TextControl.cs: Need to track undo levels ourself, since
2581         compound actions will mess them up.
2582
2583 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2584
2585         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2586         SelectedIndex value is changed (even if it's not valid).
2587         Reset SelectedIndex to 0 when the handle is created and if
2588         the current index is invalid.
2589         Fixes SelectdeIndex unit tests and #80128
2590
2591 2006-12-08  Chris Toshok  <toshok@ximian.com>
2592
2593         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2594         calls EndEdit, it needs to be called before we set current_cell to
2595         its new value.  Otherwise, we end up committing the value in the
2596         textbox to the new cell as well.  Fixes bug #80160.
2597
2598 2006-12-08  Chris Toshok  <toshok@ximian.com>
2599
2600         * Form.cs (set_CancelButton): if the button's DialogResult is
2601         None, set it to Cancel.  Fixes bug 80180.
2602
2603 2006-12-08  Jackson Harper  <jackson@ximian.com>
2604
2605         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2606         to watch ourselves when setting the canvas size and setting the
2607         scrollbar values.
2608
2609 2006-12-08  Chris Toshok  <toshok@ximian.com>
2610
2611         * DataGrid.cs: comment out the two MakeTransparent calls for the
2612         time being so people using trunk (and not 1.2.2) on windows can
2613         actually use the datagrid.  This deals with bug #80151.
2614
2615 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2616
2617         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2618         Graphics.DrawImage (image, int, int, int, int) overload instead
2619         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2620         the dpi difference and was blurring images it drew.
2621         [Fixes bug #79960]
2622
2623 2006-12-08  Chris Toshok  <toshok@ximian.com>
2624
2625         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2626         rowcnt is 0 (such as with an empty datasource), and make sure we
2627         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2628         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2629
2630 2006-12-08  Chris Toshok  <toshok@ximian.com>
2631
2632         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2633         grid.
2634
2635 2006-12-08  Chris Toshok  <toshok@ximian.com>
2636
2637         [ Fixes bug #80167 ]
2638         
2639         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2640         style is FlatStyle.System.
2641
2642         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2643         ButtonBase.flat_style private, and switch uses of it to the public
2644         property.
2645         
2646 2006-12-08  Chris Toshok  <toshok@ximian.com>
2647
2648         [ Fixes bug #80121 ]
2649         
2650         * ThemeWin32Classic.cs: center the caption text in the datagrid
2651         when we draw it.
2652
2653         * DataGrid.cs: lessen the amount we add to the caption height from
2654         6 to 2.  6 was making it huge.
2655
2656 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2657
2658         * UpDownBase: Handle MouseWheel call directly instead of capturing
2659         the inner textbox's OnMouseWheel. Fixes #80166
2660
2661 2006-12-08  Jackson Harper  <jackson@ximian.com>
2662
2663         * TextControl.cs: We need to invalidate the textbox when we empty
2664         it (how had this not been discovered before?)
2665
2666 2006-12-08  Jackson Harper  <jackson@ximian.com>
2667
2668         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2669         to behave like MS, we now ignore the eventargs.Click and just
2670         track state ourself, which we were already doing anyways.
2671         - Constrain the double click handler to the double click size.
2672         
2673 2006-12-08  Chris Toshok  <toshok@ximian.com>
2674
2675         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2676         direction if that scrollbar isn't shown.  fixes bug #80158.
2677
2678 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2679
2680         * NumericUpDown.cs: Update value on getter. Fixes #79950
2681
2682 2006-12-08  Chris Toshok  <toshok@ximian.com>
2683
2684         * MenuItem.cs: add back in the event cloning code.  I didn't know
2685         how to do it in the face of the EventHandlerList work i'd done
2686         last week.  Fixes bug #80183.
2687
2688 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2689
2690         * Control.cs: Add an invalidate to the BackgroundImage setter.
2691         [Fixes 80184]
2692
2693 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2694
2695         * ToolStrip*: Add some small properties reported by MoMA, fix event
2696         firing and default properties based off of unit tests, and add some
2697         attributes based off of the class status page.
2698
2699 2006-12-07  Jackson Harper  <jackson@ximian.com>
2700
2701         * TextBoxBase.cs: Take HideSelection into account when determining
2702         whether or not to show the selection.
2703         * RichTextBox.cs: After inserting the RTF into the document move
2704         the cursor to the beginning of the document.
2705
2706 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2707
2708         * Control.cs: Remove static ArrayList "controls" which maintained
2709         a reference to every control created.
2710         * Application.cs: Create a static FormCollection to maintain a reference
2711         to every form created.  Use it in places that formerly enumerated through
2712         the controls one looking for forms.
2713         * Form.cs: Add and remove self from above FormCollection.
2714
2715 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
2716
2717         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
2718           not libgdk (though it makes me wonder why I didn't have any
2719           problems)
2720
2721 2006-12-07  Chris Toshok  <toshok@ximian.com>
2722
2723         [ you had to know this was coming after that last commit...]
2724         
2725         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
2726         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
2727         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
2728         XCopyArea).
2729
2730 2006-12-07  Chris Toshok  <toshok@ximian.com>
2731
2732         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
2733         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
2734         all the behavior we need for double buffering.
2735
2736         * XplatUIDriver.cs: implement the 3 double buffer methods using a
2737         client side Bitmap, just like the old Control-based double buffer
2738         code did.  The methods are virtual, so each XplatUI driver
2739         subclass can replace the implementation to use a faster, platform
2740         specific approach.
2741
2742         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
2743         double buffer code, and clean things up a bit in the process.
2744
2745 2006-12-06  Chris Toshok  <toshok@ximian.com>
2746
2747         * Control.cs: reindent WndProc.
2748
2749 2006-12-06  Chris Toshok  <toshok@ximian.com>
2750
2751         [ I wanna be like BenM when I grow up ]
2752         
2753         * Hwnd.cs: create a single static Graphics object on the static
2754         Bitmap we create.  use this for our text measurements.
2755
2756         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
2757         This was causing us to allocate a backbuffer for every control,
2758         even when it wasn't flagged as double buffered.  Instead use the
2759         single graphics instance.  This might have implications for
2760         multithreaded applications.  If we run into problems we can switch
2761         to creating 1 Graphics per control, on the static Hwnd bitmap.
2762
2763         this change nets us a 7M savings in private dirty mappings when
2764         running FormsTest.exe.
2765
2766 2006-12-06  Chris Toshok  <toshok@ximian.com>
2767
2768         * ListView.cs: the BackgroundImage override is just to set
2769         attributes.  chain up to base.BackgroundImage.
2770
2771         * RichTextBox.cs: same.
2772
2773         * ToolBar.cs: same, but we need to also redraw the toolbar when it
2774         changes, so instead a handler for BackgroundImageChanged.
2775         
2776         * Control.cs: make background_image private.
2777
2778 2006-12-06  Chris Toshok  <toshok@ximian.com>
2779
2780         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
2781         sure we even need this assignment, but roll with it for now.
2782
2783         * Control.cs: make the cursor field private.
2784
2785 2006-12-06  Chris Toshok  <toshok@ximian.com>
2786
2787         * Form.cs: we don't need to explicitly set ImeMode to
2788         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
2789         behavior in the face of ImeMode.Inherit.
2790
2791         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
2792         change the ctor's assignment to use ImeMode instead of ime_mode.
2793
2794         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
2795         ImeModeInherit.  Only check for the parent's imemode (and return
2796         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
2797         This fixes the button unit test, which sets both ImeMode and
2798         DefaultImeMode to ImeMode.Disable.
2799
2800         also make the ime_mode field private.
2801
2802 2006-12-06  Chris Toshok  <toshok@ximian.com>
2803
2804         * Control.cs: make control_style private.
2805
2806         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
2807         setting the styles to true, then setting them to false instead of
2808         reverting to their previous values.
2809
2810         also, call SetStyle on the scrollbars instead of using
2811         control_style directly.
2812
2813 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
2814
2815         * FormCollection.cs: Implement. [2.0]
2816
2817 2006-12-06  Chris Toshok  <toshok@ximian.com>
2818
2819         * Control.cs: make tab_stop private.
2820
2821         * Label.cs: set TabStop, not tab_stop.  reformat some event
2822         add/remove methods to make them more compact.
2823
2824 2006-12-06  Chris Toshok  <toshok@ximian.com>
2825
2826         * RadioButton.cs: fix TabStop handling.
2827
2828 2006-12-06  Chris Toshok  <toshok@ximian.com>
2829
2830         * TextBox.cs: remove the explicit assignments to has_focus.
2831         Control does that.
2832
2833         * ButtonBase.cs: remove the assignment to has_focus.  Control will
2834         manage that.
2835         
2836 2006-12-06  Chris Toshok  <toshok@ximian.com>
2837
2838         * ButtonBase.cs: remove all uses of is_enabled from this code.
2839         it's always true when any of the code containing the checks is
2840         executed.
2841
2842 2006-12-06  Chris Toshok  <toshok@ximian.com>
2843
2844         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
2845         with different semantics (some are present in both 1.1 and 2.0
2846         profiles) so that we match MS's behavior in our unit tests.
2847
2848 2006-12-06  Jackson Harper  <jackson@ximian.com>
2849
2850         * TextControl.cs: Make this operation undoable.
2851         * TextBoxBase.cs: Factor the border width into the preferred
2852         height.
2853         - implement Modified as per the spec.
2854
2855 2006-12-06  Chris Toshok  <toshok@ximian.com>
2856
2857         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
2858
2859 2006-12-06  Chris Toshok  <toshok@ximian.com>
2860
2861         * Control.cs: make right_to_left and context_menu fields private.
2862
2863 2006-12-06  Chris Toshok  <toshok@ximian.com>
2864
2865         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
2866         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
2867         Control.child_controls private.  switch all uses over to
2868         Control.Controls.
2869
2870 2006-12-06  Chris Toshok  <toshok@ximian.com>
2871
2872         * System.Windows.Forms/GroupBox.cs,
2873         System.Windows.Forms/AccessibleObject.cs,
2874         System.Windows.Forms/ErrorProvider.cs,
2875         System.Windows.Forms/Control.cs,
2876         System.Windows.Forms/UpDownBase.cs,
2877         System.Windows.Forms/ScrollBar.cs,
2878         System.Windows.Forms/DateTimePicker.cs,
2879         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
2880         System.Windows.Forms/ToolTip.cs,
2881         System.Windows.Forms/RadioButton.cs,
2882         System.Windows.Forms/LinkLabel.cs,
2883         System.Windows.Forms/Splitter.cs,
2884         System.Windows.Forms/TextBoxBase.cs,
2885         System.Windows.Forms/ToolStripTextBox.cs,
2886         System.Windows.Forms/ContainerControl.cs,
2887         System.Windows.Forms/ThemeWin32Classic.cs,
2888         System.Windows.Forms/SizeGrip.cs,
2889         System.Windows.Forms/ToolStripDropDown.cs,
2890         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
2891         private.  switch all uses over to Control.Parent.
2892
2893 2006-12-06  Chris Toshok  <toshok@ximian.com>
2894
2895         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
2896         Control does this before calling emitting these events.
2897
2898         * TabControl.cs: same.
2899
2900         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
2901         Control.client_rect.
2902
2903         * ButtonBase.cs: use the ClientSize property instead of the
2904         client_size field.
2905
2906         * ScrollableControl.cs: same.
2907
2908         * Control.cs: another pass at making properties private.  also,
2909         move the initialization of tab_stop to the ctor.
2910
2911 2006-12-05  Andreia Gaita <avidigal@novell.com>
2912
2913         * TabControl.cs: Let the selected index be set freely if the 
2914         control handle is not yet created.
2915
2916 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2917
2918         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
2919         internal until I can rewrite DefaultLayout.
2920         * ToolStrip.cs: Fix build error and some general cleaning.
2921         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
2922         Fix build errors caused by making some of Control's fields private.
2923
2924 2006-12-05  Jackson Harper  <jackson@ximian.com>
2925
2926         * TextControl.cs: Redo Insert a little so that it use IndexOf
2927         instead of Split, this prevents it from messing up on things like
2928         \n\n\n. Also more effecient since the split array doesn't need to
2929         be created.
2930         * TextBoxBase.cs: AppendText doesnt handle multiline and non
2931         multiline text differently, this is the first of many fixes that
2932         will make multiline/non-multiline the same thing as far as the
2933         TextBoxBase is concerned.
2934         - Don't split the text and insert lines, this can lose some line
2935         endings (like is the last line a soft or hard break). Instead use
2936         the new Insert.
2937         - Fix an off by one when combining all the lines in the Text
2938         getter.
2939         - Remove separate multiline handling from the Text getter/setter.
2940
2941 2006-12-05  Chris Toshok  <toshok@ximian.com>
2942
2943         * ButtonBase.cs: a few changes:
2944
2945         - don't reinitialize internal Control fields in the ctor when they
2946         have the same values as Control sets them.
2947
2948         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
2949         this before calling those methods.
2950
2951         - we don't need to call Refresh for anything.  use Invalidate
2952         instead.
2953
2954         - OnEnabledChanged doesn't need to redraw at all - Control.cs
2955         calls Refresh in its OnEnabledChanged.
2956         
2957         - several of the events we were registered for in the ctor to
2958         redraw ourselves already include calls to Invalidate in the
2959         property setters that raise the events.  remove the extra
2960         invalidation.
2961
2962         - reformat a switch statement that was 83274658 columns wide.
2963         
2964 2006-12-05  Mike Kestner  <mkestner@novell.com>
2965
2966         * ComboBox.cs: fix a unit test regression from a TextBox
2967         SelectionLength return of -1 when there's no selection.  
2968
2969 2006-12-05  Chris Toshok  <toshok@ximian.com>
2970
2971         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
2972         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
2973         cleaning up some of the internal Control fields being used by
2974         subclasses.
2975
2976 2006-12-05  Mike Kestner  <mkestner@novell.com>
2977
2978         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
2979         listbox after AddImplicit calls since it defaults to hidden. Add a 
2980         hack to preserve requested heights across DropDownStyle changes.
2981
2982 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
2983
2984         * PropertyGrid.cs: Hide FindFirstItem method from public API.
2985
2986 2006-12-05  Chris Toshok  <toshok@ximian.com>
2987
2988         * DataGridView.cs: fix compiler warnings.
2989
2990         * PrintControllerWithStatusDialog.cs: same.
2991
2992         * ToolBar.cs: same.
2993
2994         * FolderBrowserDialog.cs: same.
2995
2996         * Splitter.cs: same.
2997
2998         * DataGridViewComboBoxCell.cs: same.
2999
3000         * XplatUIWin32.cs: same.
3001
3002         * PictureBox.cs: same.
3003
3004         * Win32DnD.cs: same.
3005
3006         * PageSetupDialog.cs: same.
3007
3008         * FileDialog.cs: same.
3009
3010         * PrintDialog.cs: same.
3011
3012         * DataGridTextBoxColumn.cs: same.
3013
3014         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
3015
3016 2006-12-05  Chris Toshok  <toshok@ximian.com>
3017
3018         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
3019         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
3020         System.ComponentModel.EventHandlerList work.
3021
3022 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
3023
3024         * DrawTreeNodeEventArgs.cs: Added.
3025
3026 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3027         
3028         * InternalWindowManager.cs: Remove an unused field.
3029         
3030 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3031
3032         * InternalWindowManager.cs:
3033         - Save the point where the title bar is clicked.
3034         
3035         * MdiWindowManager.cs:
3036         - Only allow moving of the window as long as the 
3037         clicked point on the title bar does not get out of
3038         MdiClient's rectangle. Fixes #79982.
3039         
3040         * MdiClient.cs:
3041         - Added Horizontal/VerticalScrollbarVisible.
3042         - Simplified the scrollbar sizing algorithm.
3043         - Cache the difference in scrolled value in
3044         H/VBarValueChanged and move the calculation out
3045         of the for loop.
3046
3047 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3048
3049         * Control.cs: Make the Console.WriteLine in WndProc 
3050         write more info.
3051
3052 2006-12-05  Chris Toshok  <toshok@ximian.com>
3053
3054         * ToolStripManager.cs, ToolStripButton.cs,
3055         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
3056         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
3057         ToolStripSplitButton.cs, ToolStripSeparator.cs,
3058         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
3059         ToolStripProgressBar.cs, ToolStripContainer.cs,
3060         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
3061         to using System.ComponentModel.EventHandlerList.
3062
3063 2006-12-04  Chris Toshok  <toshok@ximian.com>
3064
3065         * LinkLabel.cs: fix up compiler warnings.
3066
3067         * TableLayoutSettings.cs: same.
3068
3069         * TreeView.cs: same.
3070
3071         * ToolBar.cs: same.
3072
3073         * TabControl.cs: same.
3074
3075         * RichTextBox.cs: same.
3076
3077         * ListViewItem.cs: same.
3078
3079         * PropertyGrid.cs: same.
3080
3081         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3082
3083         * ToolTip.cs same.
3084
3085         * TextRenderer.cs: fix up compiler warnings.
3086
3087         * Label.cs: same.
3088
3089         * Form.cs: corcompare fixes.
3090
3091         * PictureBox.cs: fix up compiler warnings.
3092
3093         * ImageListStreamer.cs: same.
3094
3095         * TrackBar.cs: corcompare fix.
3096
3097         * Control.cs: fix up compiler warnings.
3098
3099         * SplitterPanel.cs: same.
3100
3101         * NumericTextBox.cs: same.
3102
3103         * ImageList.cs: same.
3104
3105         * StatusStrip.cs: same.
3106
3107         * ProgressBar.cs: corcompare fix.
3108
3109         * ToolStripButton.cs: fix up compiler warnings.
3110
3111         * ToolStripStatusLabel.cs: same.
3112
3113         * ToolStripSplitButton.cs: same.
3114
3115         * ToolStripSeparator.cs: same.
3116
3117         * ToolStripProgressBar.cs: same.
3118
3119         * ToolStripDropDownMenu.cs: same
3120
3121         * ToolStripDropDown.cs: same.
3122
3123         * ToolStripDropDownButton.cs: same.
3124
3125         * ToolStrip.cs: same.
3126
3127         * ToolStripControlHost.cs: same.
3128
3129         * ToolStripContentPanel.cs: same.
3130
3131         * ToolStripDropDown.cs: same.
3132
3133         * ToolStripContainer.cs: same.
3134
3135         * ToolStripPanel.cs: same, and add "new" where we need it to work
3136         with the new ArrangedElementCollection.
3137
3138         * ToolStripItemCollection.cs: add "new" where we need it to work
3139         with the new ArrangedElementCollection.
3140
3141 2006-12-04  Andreia Gaita <avidigal@novell.com>
3142
3143         * TabControl.cs: Fix default tab selection to after TabControl
3144         gets focus and not before. Fixes #80128
3145
3146 2006-12-04  Chris Toshok  <toshok@ximian.com>
3147
3148         * DataGridTableStyle.cs: remove the gross calling of
3149         datagrid.Refresh from here.  It's a broken idea and it doesn't
3150         work anyway.
3151
3152         * DataGrid.cs: instead, just register/unregister from the
3153         DataGridTableStyle events in CurrentTableStyle.  we play it
3154         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3155         even though some would most likely not require it.  Fixes bug
3156         #80115 (and one portion of #80117 as a side effect).
3157
3158 2006-12-04  Chris Toshok  <toshok@ximian.com>
3159
3160         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3161         so the textbox (if any) goes away.  Fixes bug #80117.
3162
3163 2006-12-04  Chris Toshok  <toshok@ximian.com>
3164
3165         * DataGridColumnStyle.cs: set the column's readonly property
3166         initially based on the property descriptor's IsReadOnly.  Fixes
3167         bug #80044.
3168
3169 2006-12-04  Chris Toshok  <toshok@ximian.com>
3170
3171         * ComboBox.cs: wrap the dropdown style changing work in
3172         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3173
3174 2006-12-04  Jackson Harper  <jackson@ximian.com>
3175
3176         * TextBoxBase.cs: Fix off by one, since these are one-based.
3177         * TextBox.cs: Select all the text when we get focus.  The TextBox
3178         does this but the RTB does not.
3179
3180 2006-12-04  Chris Toshok  <toshok@ximian.com>
3181
3182         * DataGridTextBoxColumn.cs: remove some spew.
3183
3184         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3185         but some part of me is saying "it shouldn't be here.."  At any
3186         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3187         setting the value.
3188
3189 2006-12-04  Chris Toshok  <toshok@ximian.com>
3190
3191         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3192         to reassign the propertydescriptor.
3193
3194 2006-12-04  Jackson Harper  <jackson@ximian.com>
3195
3196         * TextBoxBase.cs:
3197         * TextControl.cs: Remove some unused variables.  Maybe this will
3198         patch things up between mike and I.
3199         - don't split lines less then one char wide, if the viewport is
3200         that small text won't be visible anyways.
3201         
3202 2006-12-04  Jackson Harper  <jackson@ximian.com>
3203
3204         * TextBoxBase.cs: Default selection length is -1, need to do some
3205         more testing on windows to see when this is used for the property.
3206         - Redid the Lines [] property to that we properly remove soft line
3207         breaks
3208         - added support for preserving carriage returns
3209         -  CanUndo is not a variable like 'is undo enabled' it just returns
3210         true if there is undo operations available.
3211         - AppendText doesn't need to grab the last tag itself anymore,
3212         this happens automatically when we move the cursor.
3213         * TextControl.cs: Add CompoundActions to the undo class. This
3214         allows combining the other operations into one big option.  ie a
3215         paste will combine { delete old, insert new, move cursor }
3216         - Add InsertString undo operation
3217         - New method for deleting multiline text
3218         - Add carriage returns to lines. So we can preserve carriage
3219         returns when text is 'roundtripped'
3220
3221 2006-12-04  Chris Toshok  <toshok@ximian.com>
3222
3223         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3224         minimum 0.  Fixes the scrollbar exception in bug #80136.
3225
3226 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3227
3228         * MdiClient.cs: 
3229         * MdiWindowManager: Removed unused fields and methods.
3230         
3231 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3232         
3233         * StatusBar.cs: Update all panels when a AutoSize=Contents
3234         panel needs updating.
3235         
3236         * StatusBarPanel.cs: Remove twidth and only use initialize.
3237         Fixes #80031.
3238                 
3239 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3240
3241         * Form.cs: When a form's MdiParent is set add it directly
3242         on top of the z-order in stead of relying on MdiClient's
3243         ActivateChild to do it. Fixes #80135.
3244         
3245         * MdiClient.cs: 
3246         - Remove original_order, mdi_child_list is already doing
3247         the same thing.
3248         - Create mdi_child_list on construction in
3249         stead of first use (avoids a few null checks).
3250
3251         * MenuItem.cs: Use an already existing list of mdi children
3252         to get the correct order of children and remove the other
3253         redundant list.
3254
3255 2006-12-04  Chris Toshok  <toshok@ximian.com>
3256
3257         * PropertyGridView.cs: cached_splitter_location is only used in
3258         !DOUBLEBUFFER code.
3259
3260         * PropertyGrid.cs: implement the ComComponentNameChanged event
3261         using Events, hoping that would fix the warning.  Looks like a
3262         compiler bug instead (#80144).
3263
3264         * PropertyManager.cs: remove unused method.
3265
3266 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3267
3268         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3269         include parentesis to fix expression evaluation. Fixes #79634.
3270
3271 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3272         
3273         * MenuAPI.cs:
3274         - Changes to fix behavior in Menu control, some reported in #80097
3275         and other detected during behavior refactory like a select event
3276         problems.
3277         - Remove unneded "if's" conditions.
3278         - Created an internal to flag when popup is active in control, we need 
3279         it because in .NET you can have menu active but without popup active
3280         when you active menu using popup without visible items.
3281         - Mimic win32 behavior for Select and Popup events.  
3282         - Dont open popup menu when you dont have visible subitems.
3283         - Do nothing when click on disabled menu item.
3284         - Some small changes to follow the coding style guidelines.
3285         - Unselect menu only when another control gives focus. Fixes #80097.
3286         - Remove unused code.
3287         
3288         * MenuItem.cs: internal VisibleItems method to check if menu
3289         theres visible subitems, it will be usefull to fix some 
3290         behavior in Menu control.
3291         
3292 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3293         
3294         * Timer.cs: Tag property for 2.0 profile.
3295         
3296 2006-12-01  Chris Toshok  <toshok@ximian.com>
3297
3298         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3299         
3300         * Win32DnD.cs: comment out some unused fields.
3301
3302         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3303         some unused properties/methods.
3304
3305         * XplatUIX11.cs: fix MousePosition so we override the base class's
3306         property instead of conflicting with it.
3307
3308         * PictureBox.cs: comment out some unused fields
3309
3310         * OSXStructs.cs: make some struct fields public.
3311
3312         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3313         MousePosition so we override the base class's property instead of
3314         conflicting with it.
3315
3316         * X11Dnd.cs: comment out some unused fields
3317
3318         * X11DesktopColors.cs: fix some struct field visibility to quiet
3319         the compiler.
3320
3321         * X11Dnd.cs: remove some debug code.
3322
3323         * ThemeClearlooks.cs: comment out unused field.
3324
3325         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3326
3327         * ThemeGtk.cs: comment out some unused pinvokes.
3328
3329         * Timer.cs: remove some unused fields.
3330
3331         * ThemeClearlooks.cs: comment out unused field.
3332
3333         * UpDownBase.cs: comment out unused field.
3334
3335         * DataObject.cs: comment out unused field.
3336
3337         * DataGridBoolColumn.cs: reomve unused field.
3338
3339         * DataGrid.cs: remove unused field.
3340
3341         * Cursor.cs: remove old ToBitmap code.
3342
3343         * ControlPaint.cs: remove unused method.
3344
3345         * ScrollBar.cs: remove unused fields.
3346
3347         * ComboBox.cs: remove unused field, and chain up to
3348         AccessibleObject ctor.
3349
3350         * ListBox.cs: remove unused field.
3351
3352         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3353
3354         * GridEntry.cs: remove unused fields.
3355
3356         * Binding.cs: remove unused fields.
3357
3358         * AxHost.cs: remove unused method.
3359
3360         * ContainerControl.cs: remove unused field.
3361
3362         * ScrollableControl.cs: remove unused fields.
3363
3364 2006-12-01  Chris Toshok  <toshok@ximian.com>
3365
3366         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3367         the Where/WhereString stuff.  it's easy enough to CWL
3368         Environment.StackTrace.
3369
3370         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3371         unused private fields.
3372
3373 2006-12-01  Jackson Harper  <jackson@ximian.com>
3374
3375         * TextControl.cs: Do not update the view while inserting multiline
3376         text. If we update the view we might wrap lines, before entering
3377         the new lines, which causes the new line insertion calculations to
3378         be totally fubared.
3379         - Remove an old TODO
3380         - Make debug output a little nicer
3381         
3382 2006-12-01  Chris Toshok  <toshok@ximian.com>
3383
3384         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3385
3386 2006-12-01  Chris Toshok  <toshok@ximian.com>
3387
3388         [ fix the majority of the CS0108 warnings we've been suppressing ]
3389         
3390         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3391
3392         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3393         to "LayoutToolBar" to quiet mcs.
3394         
3395         * TabControl.cs: mark our ControlCollection class as 'new'.
3396
3397         * TextBoxBase.cs: mark some events as 'new'.
3398
3399         * Splitter.cs: TabStop is 'new'.
3400
3401         * ControlBindingsCollection.cs: mark a few methods as new since
3402         they change the visibility from protected to public.
3403
3404         * RadioButton.cs: DoubleClick -> base class, and remove unused
3405         HaveDoubleClick.
3406
3407         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3408         events as new.
3409
3410         * NumericUpDown.cs: TextChanged -> base class.
3411
3412         * CheckedListBox.cs: mark our ObjectCollection class as new to
3413         quiet mcs.
3414
3415         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3416         muck with the base class.
3417
3418         * StatusBar.cs: fix some mcs warnings about Update being the same
3419         name as a base class method.
3420
3421         * RichTextBox.cs: mark some events as new, and make them do things
3422         to the base class impl.
3423
3424         * UserControl.cs: mark TextChanged as new, and have it manipulate
3425         base.TextChanged.
3426
3427         * UpDownBase.cs: mark some things new.
3428
3429         * CheckBox.cs: mark DoubleClick "new", and add some text about
3430         what we need to look at.
3431
3432         * Panel.cs: make the events "new", and manipulate the base
3433         version.  these are just here for attributes.
3434
3435         * AccessibleObject.cs: make owner private.
3436
3437         * Control.cs: deal with AccessibleObject.owner being private.
3438         cache our own copy if we need it.
3439
3440         * Button.cs: add "new" to the DoubleClickEvent.
3441
3442         * ListBox.cs: no need to track our own has_focus here.  let
3443         Control.has_focus do it for us.  Also some other work to clear up
3444         warnings about not overriding base class methods of the same name.
3445         
3446         * ComboBox.cs: clear up some warnings about not override base
3447         class methods of the same name.
3448
3449 2006-12-01  Chris Toshok  <toshok@ximian.com>
3450
3451         * Form.cs: flag a few things as "new" to quiet some of the mcs
3452         warnings.
3453
3454         * AxHost.cs: same.
3455
3456         * PrintPreviewDialog.cs: same.
3457
3458         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3459         now DGV isn't so horrible on the class status page.  also, move
3460         all events to using System.ComponentModel.EventHandlerList.  my
3461         wrists hurt.
3462
3463 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3464
3465         * MdiWindowManager.cs:
3466         - Set form to active mdi child if shown,
3467         and update the active mdi child to the next 
3468         remaining child in the z-order if the form is hidden.
3469
3470         * Form.cs: 
3471         - Track if the form has been visible and if its 
3472         visibility is beeing changed, so that the MdiClient
3473         can properly decide the ActiveMdiChild. The MdiClient 
3474         cannot track this since the form can change visibility 
3475         before MdiClient is created.
3476
3477         * MdiClient.cs:
3478         - Don't activate anything of the parent form is changing
3479         its visibility.
3480         - Rework ActiveMdiChild to only return visible mdi 
3481         children and take into account several other corner 
3482         cases.
3483
3484 2006-12-01  Chris Toshok  <toshok@ximian.com>
3485
3486         * IBindableComponent.cs: new 2.0 interface.
3487
3488 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3489
3490         * DataGrid.cs: Font for caption area is bold by default.
3491
3492 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3493
3494         * Menu.cs: Tag property for 2.0.
3495         
3496 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3497
3498         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3499         
3500 2006-12-01  Chris Toshok  <toshok@ximian.com>
3501
3502         * TreeView.cs: doh, the Begin* events should be
3503         TreeViewCancelEventHandler.
3504
3505 2006-12-01  Chris Toshok  <toshok@ximian.com>
3506
3507         * Form.cs: Form.ControlCollection already stores off the
3508         form_owner field.  don't access the base class's internal "owner"
3509         field.
3510
3511         * Control.cs: make all the fields in Control.ControlCollection
3512         private.  there's no need for any internal fields here.
3513
3514 2006-12-01  Chris Toshok  <toshok@ximian.com>
3515
3516         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3517         OnHandleCreated.  Fixes bug #80109.
3518
3519 2006-12-01  Chris Toshok  <toshok@ximian.com>
3520
3521         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3522         SplitContainer.cs, Control.cs, StatusStrip.cs,
3523         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3524         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3525         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3526         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3527         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3528         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3529         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3530         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3531         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3532         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3533
3534         do most of the work to convert our code over to use
3535         System.ComponentModel.Component.Events for
3536         adding/removing/dispatching events.
3537
3538
3539 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3540
3541         * DataGridView.cs: Fix an ArgumentNullException reported 
3542         twice today in IRC.
3543
3544 2006-11-30  Mike Kestner  <mkestner@novell.com>
3545
3546         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3547         grabbed listbox.  Fixes #80036 and #80101.
3548
3549 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3550
3551         * Message.cs: Changed ToString() to match MS.
3552         
3553 2006-11-30  Jackson Harper  <jackson@ximian.com>
3554
3555         * TextBoxBase.cs: You can still change the selected text on a read
3556         only textbox.
3557         * TextControl.cs: Lower magic number for wrap calculations. This
3558         lets text get closer to the right (far) edge.
3559
3560 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3561
3562         * Control.cs: Tweak 2.0 layout properties.
3563         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3564         * TextRenderer.cs: Add a new overload.
3565         * ToolStrip*: Huge amount of changes and new features.
3566
3567 2006-11-30  Mike Kestner  <mkestner@novell.com>
3568
3569         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3570         scroll range correct.  Fixes #79994.
3571
3572 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3573
3574         * MdiWindowManager.cs: Update main form's text when
3575         a form is closed. (fixes #80038)
3576         
3577 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3578
3579         * ToolBar.cs:
3580         - Fix an regression in ButtonSize.
3581         - Get ImeMode default value change to "Disable".
3582         - Get ShowTooltips default value change to true, default value is 
3583         "false" but after make a test in .NET we get "true" result as default.
3584         
3585 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3586
3587         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3588
3589 2006-11-29  Chris Toshok  <toshok@ximian.com>
3590
3591         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3592         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3593         SetWindowTransparency hasn't been called.
3594
3595 2006-11-29  Chris Toshok  <toshok@ximian.com>
3596
3597         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3598         if it's supported.
3599         (set_AllowTransparency): reorder things a little so that the
3600         WS_EX_LAYERED style is removed properly.
3601
3602 2006-11-29  Chris Toshok  <toshok@ximian.com>
3603
3604         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3605         
3606         * Form.cs: only call the XplatUI transparency method (get/set) if
3607         SupportsTransparency says it's supported. Otherwise fallback to
3608         doing nothing (in the set case) or returning the instance field we
3609         cache (in the get case).
3610
3611         * XplatUIStructs.cs: add TransparencySupport flag enum.
3612         
3613         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3614         change to SupportsTransparency.
3615
3616         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3617         TransparencySupport.None from SupportsTransparency.
3618
3619         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3620         TransparencySupport.Set from SupportsTransparency.
3621
3622         * XplatUIWin32.cs: implement GetWindowTransparency calling
3623         GetLayeredWindowAttributes, and implement SupportsTransparency by
3624         checking whether or not both
3625         GetWindowTransparency/SetWindowTransparency are available
3626         entrypoints.  We need to do this since SetWindowTransparency is
3627         available as of win2k, but GetWindowTransparency requires winxp.
3628         yay win32 api.
3629
3630         * XplatUI.cs: Add GetWindowTransparency, and change
3631         SupportsTransparency to allow for either/both Get/Set.
3632
3633 2006-11-29  Chris Toshok  <toshok@ximian.com>
3634
3635         * DataGrid.cs: keep from going into an infinite loop redrawing a
3636         datagrid that has no datasource.  Fixes bug #80033.
3637
3638 2006-11-29  Chris Toshok  <toshok@ximian.com>
3639
3640         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3641         Invalidate) before the mainmenu has been assigned to a control.
3642
3643 2006-11-29  Chris Toshok  <toshok@ximian.com>
3644
3645         * DataGrid.cs: detect when we should be double the double click
3646         row/column autosize stuff, although that codepath has yet to be
3647         written.  part of the work for bug #79891.
3648
3649 2006-11-29  Chris Toshok  <toshok@ximian.com>
3650
3651         * Binding.cs (SetControl): fix unit test.
3652
3653 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3654
3655         * PageSetupDialog.cs: Validate the margins and set them in
3656         PageSettings. 
3657         * NumericTextBox.cs: New class to mimic the behavior of the
3658         textboxes used in the printing dialogs.
3659
3660 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3661         
3662         * Form.cs: Revert previous change (remove call UpdateBounds
3663         from form constructor), because it messes with the handle creation
3664         order, and that one needs lots and lots of love.
3665         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3666         for valid printer and throw InvalidPrinterException if document
3667         is set but printer not valid), adding a MonoTODO. Once 
3668         handle creation is done properly, we can put this back in.
3669
3670 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3671
3672         * MenuItem.cs: Create a invalidate method for menu item, to be
3673         calling from set text, it make text changes to imadiate update
3674         on screen. Fixes #80013. 
3675         
3676 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3677
3678         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3679         fixes bug #80070 and some other problem on toolbar buttons
3680         layout.
3681
3682 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3683
3684         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3685         with dotted brush.      Fixes #79564
3686         
3687 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3688
3689         * Form.cs: Removed call to UpdateBounds on Form
3690         constructor, it was causing a call to CreateHandle
3691         before it was supposed to.
3692         * PrintControllerWithStatusDialog: Applied patch
3693         by Chris Toshok to hide controller when there are
3694         no printers available.
3695         PrintDialog.cs: initialize printer settings to 
3696         null - correct DefaultValues test #5
3697         * PrintPreviewControl.cs: Move PrintController
3698         initialization to GeneratePreview
3699         * PrintPreviewDialog.cs: 
3700         - Remove Preview generation     from Document_set(). It is 
3701         called on OnPaint
3702         - Throw InvalidPrinterException on CreateHandle if
3703         a Document is set but there are no printers or 
3704         printer is not valid.
3705         * ThemeWin32Classic: don't paint PrintPreviewControl
3706         if there is nothing to paint    
3707
3708 2006-11-28  Miguel de Icaza  <miguel@novell.com>
3709
3710         * Form.cs: Add another popular method.
3711
3712         * TabPage.cs: ditto.
3713
3714 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3715
3716         * MenuItem.cs: Fixed a warning.
3717         * InternalWindowManager: Fixed a warning.
3718
3719 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3720
3721         * MenuItem.cs:
3722         - When cloning a menu also clone MdiList and clone the 
3723           window menu items properly (as the forms and menuitems
3724           are kept in an internal hashtable, these need updating 
3725           as well)
3726         - Rewrote the window menu code, menu items are added in the
3727           order the forms were added to their parent, and they are
3728           updated every time the window menu is shown (before the
3729           list was only generated once, in the current order of the
3730           forms, and would never be updated). A checkmark is shown
3731           next to the item corresponding to the active mdi child.
3732
3733 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3734
3735         * XplatUIStructs.cs: 
3736         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
3737         
3738         * XplatUIWin32.cs: 
3739         - Added TME_NONCLIENT to TMEFlags.
3740         - Handles WM_NCMOUSEMOVE in GetMessage to 
3741           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
3742
3743         * MdiWindowManager:
3744         - Now merges mdi child menu to parent menu when maximized.
3745         - Recalculate NC areas of both mdi child and mdi parent. 
3746           Fixes #79757 (4).
3747           on window state and size changes.Fixes #79844 (3).
3748         - Handle WM_NCCALCSIZE to properly calculate borders.
3749
3750         * Form.cs:
3751         - Add/remove to the mdi containers list of mdi children 
3752           in the order they are added.
3753         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
3754           to the maximized mdi child.
3755         
3756         * InternalWindowManager.cs:
3757         - Only execute a click on the control buttons on the mouse up,
3758           not on the mouse down. Show the state of the button 
3759           (was only showing Normal state, never Pressed state). The
3760           pressed button now follows the mouse (if you click the Close 
3761           button and move the mouse over the Maximize button, the 
3762           Maximize button will be shown as pressed). Since Win32 does
3763           not generate WM_NCLBUTTONUP if you release the button outside
3764           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
3765           it as a mouse up.
3766         
3767         * ThemeWin32Classic.cs:
3768         - Draw a missing border around mdi child forms. Fixes #79844 (2).
3769
3770         * MdiClient.cs:
3771         - Added a list of forms which contains the order the forms are
3772           added to the mdi parent.
3773         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
3774         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
3775         - If the active form changes set the scrollbars to the top
3776           of the Z order, otherwise the form could hide them.
3777         - Scrollbars are now sized according to ClientSize, not 
3778           to Size, and they take into account the other scrollbar
3779           to determine maximum.
3780         
3781 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
3782         
3783         * XplatUI.cs:
3784         * XplatUIDriver.cs:
3785         * XplatUIX11.cs:
3786         * XplatUIWin32.cs:
3787         * XplatUIOSX.cs:
3788         - Added RequestAdditionalWM_NCMessages for windows to 
3789           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
3790           Currently only implemented in XplatUIWin32.
3791
3792 2006-11-27  Chris Toshok  <toshok@ximian.com>
3793
3794         * Hwnd.cs: only add the hwnd to the windows hash in
3795         set_WholeWindow and set_ClientWindow if whole_window/client_window
3796         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
3797
3798 2006-11-27  Mike Kestner  <mkestner@novell.com>
3799
3800         * ComboBox.cs: remove redundant OnDropDown call.  It is called
3801         from the ComboListBox.ShowWindow code. Fixes #79969.
3802
3803 2006-11-27  Chris Toshok  <toshok@ximian.com>
3804
3805         * Hwnd.cs: remove the setters for ExposePending and
3806         NCExposePending - noone uses them.
3807
3808 2006-11-27  Jackson Harper  <jackson@ximian.com>
3809
3810         * TextControl.cs: new param for ReplaceSelection which determines
3811         whether we select the new selection, or set the cursor to the end
3812         of the new selection.
3813         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
3814         pasting, select the new text.
3815         * RichTextBox.cs: Use new param for ReplaceSelection.
3816
3817 2006-11-27  Jackson Harper  <jackson@ximian.com>
3818
3819         * TextBoxBase.cs: Set the selection to the caret after the caret
3820         is moved, otherwise they get out of sync.
3821
3822 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3823
3824         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
3825         it fixes #80015
3826
3827 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
3828
3829         * ThemeWin32Classic.cs: 
3830         - Fix toolbar drop down arrow position.
3831         - Fix drop down appearance when ToolBar.Appearance is normal,
3832         it fixes #80018.
3833         
3834 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
3835
3836         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
3837         * Control.cs: Same.
3838         * UpDownBase.cs: Same.
3839         * ButtonBase.cs: Same.
3840         * ScrollBar.cs: Same.
3841         * TrackBar.cs: Same.
3842         * PictureBox.cs: Same.
3843         * UserControl.cs: Same.
3844         * Label.cs: Same.
3845         * ListControl.cs: Same.
3846         * TextBoxBase.cs: Same.
3847         * ListView.cs: Same.
3848         * RichTextBox.cs: Same.
3849         * TreeView.cs: Same.
3850
3851 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
3852
3853         * PrintDialog.cs:
3854         - Text label for where 
3855         - Text label comment was not shown
3856
3857 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
3858
3859         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
3860
3861 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3862
3863         * InternalWindowManager.cs: 
3864         - Handle WM_PARENTNOTIFY to activate the form
3865         if any child control is clicked.
3866         - The form is only sizable if not minimized.
3867
3868         * MdiWindowManager.cs:
3869         - Save the IconicBounds if the form is moved.
3870         - Rework SetWindowState, now the window bounds 
3871         are stored only if the old window state is Normal.
3872         
3873         * MdiClient.cs:
3874         - In SetWindowStates store the old window state if 
3875         the window is maximized and restore window state if
3876         the window looses focus.
3877         - Don't handle any scrollbar value changes if 
3878         initializing the scroll bars. Fixes #79771.
3879         - Reworked ArrangeIconicWindows. Current algorithm
3880         tests bounds agains all other minimized windows, if
3881         any intersections create new bounds (going left to 
3882         right, bottom to top) and then test again. When 
3883         successful the bounds are saved and never computed
3884         again. Fixes #79774.
3885
3886 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3887
3888         * InternalWindowManager.cs: Added HandleTitleBarUp.
3889
3890 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3891
3892         * NumericUpDown.cs: In .NET 1.1, user entered text is still
3893         hexadecimal in ParseUserEdit.
3894
3895         
3896 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
3897
3898         * MdiWindowManager.cs: 
3899         - Handle a click on the form's icon to show the 
3900         system menu (when maximized). Fixes #79775.
3901         - Change the existing click handler for the form's
3902         icon when not maximized to show on MouseUp.
3903         Fixes #79776.
3904
3905         * Form.cs: In OnResize only layout the mdi child's
3906         parent if it actually has a parent. Might not if
3907         the window is closing.
3908
3909
3910 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3911
3912         * MdiClient.cs: Ignore active MDI client for text of parent, if
3913         child has no text set.
3914
3915 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
3916
3917         * ToolBar.cs: Fixed ToString to match MS.
3918
3919 2006-11-22  Andreia Gaita  <avidigal@novell.com>
3920
3921         * NumericUpDown: 
3922         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
3923         update inner values on set. Fixes #79966.
3924         - Override OnLostFocus to update value on NET 2. Fixes #79950.
3925         - Fix hexadecimal parsing.
3926         
3927         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
3928         parent. Fixes #79957
3929
3930 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3931
3932         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
3933         the actual size has to be queried, since if height /
3934         width is negative Win32 changes it to 0. 
3935         Fixes #79999 on Windows.
3936         
3937         * XplatUIX11.cs: Set height / width to 0 if negative
3938         in SetWindowPos. Fixes #79999 on Linux.
3939         
3940 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3941
3942         * ThemeWin32Classic.cs: Fix text redenring when button is
3943         pressed.
3944
3945 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
3946
3947         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
3948         and later navigate by mouse. Fixes #79528.
3949
3950 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3951
3952         * ToolBar.cs: Set default value for TabStop to false in
3953         constructor, it fixes remaining behavior of bug #79863.
3954
3955 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3956
3957         * MdiWindowManager.cs:
3958         * InternalWindowManager.cs:
3959         - Moved a few methods specific to Mdi from 
3960         InternalWindowManager to MdiWindowManager.
3961         Fixes #79996.
3962         
3963 2006-11-21  Chris Toshok  <toshok@ximian.com>
3964
3965         * XplatUIOSX.cs: stub out InvalidateNC.
3966
3967         * XplatUIWin32.cs: implement InvalidateNC using the call I found
3968         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
3969
3970         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
3971
3972         * XplatUIDriver.cs: add InvalidateNC abstract method.
3973
3974         * XplatUI.cs: add InvalidateNC.
3975
3976 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
3977
3978         * ToolBar.cs: Invalidate complete button area when pressed status 
3979         was changed.
3980         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
3981         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
3982         by 1 when button is pressed.
3983
3984 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
3985
3986         * ToolButton.cs: Invalidate middle of DropDown button when
3987         ToolBar theres DropDownArrows.
3988         * ThemeWin32Classic.cs: Change position of DropDown arrow and
3989         fix DropDown drawing operations.
3990
3991 2006-11-20  Chris Toshok  <toshok@ximian.com>
3992
3993         * NativeWindow.cs: fix the formatting of functions ('{' on the
3994         following line), and enable the thread exception dialog.
3995
3996         * Application.cs: remove the duplicate exception catching from
3997         here.
3998
3999 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4000
4001         * Toolbar.cs: Triggers button click event when click on icon
4002         of dropdown ToolBarButton. Fixes #79912.
4003         
4004 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4005
4006         * Theme.cs:
4007         * ThemeWin32Classic.cs:
4008         - Added a property WindowBorderFont to enable themeing
4009           of mdi child windows' Text.
4010           
4011 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4012
4013         * InternalWindowManager.cs:
4014         * Form.cs:
4015         * MdiClient.cs:
4016         * MdiWindowManager.cs: 
4017         - If mdi child is maximized, set mdi parent's
4018           text to "Parent - [Child]". Fixes #79770.
4019         - If there is any maximized mdi child windows, only the active 
4020           window (and any new windows) is maximized, the rest are normal.
4021         - On a WindowState change only save mdi child's window bounds 
4022           if the old window state was normal. Fixes #79774.
4023         - The scroll bars are now calculated on hopefully all
4024           necessary events. Fixed #79771 / #79844->6 / #79906.
4025         - MdiClient.SizeScrollBars() now takes into account docked 
4026           controls in the parent when calculating available space.
4027         - InternalWindowManager now always repaints the entire title
4028           area. Fixes #79844->1/4/5.
4029         - Added RequestNCRecalc on mdi child windowstate changes.
4030           Fixes #79772.
4031
4032 2006-11-20  Mike Kestner  <mkestner@novell.com>
4033
4034         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
4035         in the MouseUp handler of the listbox and move the return handling
4036         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
4037
4038 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4039
4040         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
4041
4042 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4043
4044         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
4045           working in 1.2.x anymore. So, updated.
4046
4047 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
4048
4049         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
4050         NumberGroupSeparator of current culture instead of assuming en-US.
4051         Fixed bug #79967.
4052
4053 2006-11-17  Mike Kestner  <mkestner@novell.com>
4054
4055         * Control.cs: Add the concept of implicit bounds setting so that
4056         dock/undock round trips preserve explicitly set size/locations.
4057         Fixes #79313.
4058
4059 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4060
4061         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
4062           can't handle those filters. (Fixes bug #79961)
4063
4064 2006-11-17  Chris Toshok  <toshok@ximian.com>
4065
4066         [ fixes the exit/crashes associated with #79835.  it's clearly
4067         suboptimal though, we need to figure out a better way to solve
4068         this. ]
4069         
4070         * PrintPreviewControl.cs: deal with the new invalid printer
4071         exceptions.
4072
4073         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4074         and return false (so CommonDialog.ShowDialog doesn't actually show
4075         the form.)
4076
4077         * PrintDialog.cs: enable/disable the Ok button depending on
4078         whether or not the printer is valid.
4079
4080         * CommonDialog.cs (ShowDialog): only actually show the form if
4081         RunDialog returns true.
4082
4083 2006-11-17  Jackson Harper  <jackson@ximian.com>
4084
4085         * TextControl.cs: When soft splitting a line, mark it as a soft
4086         split line. Also carry over the current line break to the next
4087         line.
4088
4089 2006-11-17  Chris Toshok  <toshok@ximian.com>
4090
4091         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4092         only want to shift the part of the invalid area that overlaps the
4093         area we're scrolling.  we also don't want to clear the invalid
4094         area unless the invalid area was entirely contained within the
4095         scrolling area.
4096
4097 2006-11-16  Chris Toshok  <toshok@ximian.com>
4098
4099         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4100         also make sure to free the memory returned by XGetWindowProperty
4101         in GetText().
4102
4103         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4104
4105 2006-11-16  Chris Toshok  <toshok@ximian.com>
4106
4107         * XplatUI.cs: add a new super secret way to get at the totally
4108         unsupported X11 backend.
4109
4110 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4111
4112         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4113
4114 2006-11-16  Jackson Harper  <jackson@ximian.com>
4115
4116         * TreeView.cs: Allow more explicit setting of top node position
4117         for scrollbars. Slower algo, but more accurate.
4118         - CollapseAll should maintain the current top node.
4119         * TextBoxBase.cs: When positioning the caret, use the line, pos
4120         method, since the x, y method does not grab the correct tag, and
4121         the caret height never gets set correctly. (Maybe I should just do
4122         away with the caret having its own height, and always use the
4123         carets current tag for height).
4124
4125 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4126
4127         [Fixes 79778, 79923]
4128
4129         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4130         Parent to the FosterParent instead.
4131
4132 2006-11-16  Jackson Harper  <jackson@ximian.com>
4133
4134         * TreeView.cs: Need to recalc the topnode when we expand or
4135         collapse. The scrolling methods can't handle this on their own,
4136         since they use differences between the last scroll position, and
4137         those difference get completely messed up since we are expanding
4138         nodes.  This problem should probably be fixed in the scrolling
4139         methods, so they can figure out exactly where they are, but this
4140         will slow things down a little.
4141         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4142         strings, makes nunit-gui look a lot nicer.
4143
4144 2006-11-16  Chris Toshok  <toshok@ximian.com>
4145
4146         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4147         the broken multithreaded event handling we have in here.  File
4148         this entry under "Why we should move to the new X11 backend".
4149
4150         Any thread can make it into UpdateMessageQueue, which gets events
4151         from the X socket - some of which could belong to hwnds being
4152         managed by a different thread.  We can also have multiple threads
4153         in UpdateMessageQueue at the same time, with each one reading from
4154         the X socket.  This leads to many problems, with the following
4155         solutions:
4156
4157         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4158         EnqueueLocked.
4159
4160         The MotionNotify compression we do can't work across threads
4161         (without locking the entire queue, perhaps) since we call
4162         hwnd.Queue.Peek, so we just punt and don't compress motion events
4163         unless the owning thread is the one which got the X event.
4164
4165         ConfigureNotify is another fun one, since it modifies the hwnd's
4166         bounds and then enqueues the event.  We add a lock to Hwnd which
4167         is held when setting configure_pending to true (and enqueuing the
4168         event).
4169
4170         There is a race wrt the wake socket.  we need to make sure that
4171         only 1 thread is waiting on that socket, or else a thread could
4172         sleep waiting for data that never comes.  It's difficult (but not
4173         impossible) to make happen, because it seems to require something
4174         like the following:
4175
4176             1. Thread 1 polls on wake_receive
4177         
4178             2. poll returns saying there's data to be read on
4179                wake_receive.
4180         
4181             3. Thread 2 polls on wake_receive and immediately returns
4182                saying there's data to be read.
4183
4184             4. Thread 2 reads the wakeup byte from wake_receive
4185
4186             5. Thread 1 attempts to read the wakeup byte from
4187                wake_receive.
4188
4189             6. Thread 2 exits (due to a form closing, perhaps).
4190
4191             7. Thread 1 blocks forever.
4192         
4193         Fun, eh?
4194
4195         Fixing the Expose handling isn't done yet, and the races inherent
4196         in that piece of code are responsible for the drawing mistakes you
4197         see when generating expose events in a MT app (like NPlot).  This
4198         one is the likely to be the hardest to bandaid, and it doesn't
4199         appear to cause anything but drawing problems.  The other issues
4200         caused apps to exit or hang.
4201
4202         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4203         called from a different thread than the one that should be calling
4204         these functions.
4205
4206         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4207
4208 2006-11-15  Chris Toshok  <toshok@ximian.com>
4209
4210         * Application.cs: null out the context's MainForm when we exit
4211         RunLoop.  Fixes a newly checked in unit test as well as the last
4212         ODE from bug #79933.
4213
4214 2006-11-15  Chris Toshok  <toshok@ximian.com>
4215
4216         * Form.cs (set_Owner): allow a null value so we can clear the
4217         form's owner.
4218         (Dispose): set all our owned_form's Owner properties to null, and
4219         clear the owned_forms collection.
4220         (WM_CLOSE): clean up this a little bit.. still not right though.
4221
4222         * ApplicationContext.cs: OnMainFormClosed should only call
4223         ExitThreadCore if the main form isn't recreating.  Fixes unit
4224         test.
4225
4226 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4227
4228         [Fixes 78346]
4229
4230         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4231
4232 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4233
4234         [Fixes 79433]
4235
4236         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4237         keep popup window types from stealing focus from the main form
4238         on Windows.
4239
4240         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4241
4242         * MenuAPI.cs: Set above flag to true.
4243
4244 2006-11-15  Chris Toshok  <toshok@ximian.com>
4245
4246         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4247         the button being released is not in wParam.
4248
4249 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4250
4251         * Form.cs: Add the released button to MouseEventArgs.Button
4252         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4253         on Win32.
4254
4255 2006-11-15  Chris Toshok  <toshok@ximian.com>
4256
4257         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4258         GetText().  untested because it's unused in our implementation.
4259         Control.Text always caches the text, even if
4260         ControlStyles.CacheText is not set.
4261
4262         fixes bug #79939.
4263
4264 2006-11-15  Chris Toshok  <toshok@ximian.com>
4265
4266         [ fixes #79933 ]
4267         
4268         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4269         message.  no hiding, no disposing.
4270
4271         in the WM_CLOSE handler, hide the form if it's modal.
4272
4273 2006-11-15  Chris Toshok  <toshok@ximian.com>
4274
4275         * XplatUIX11.cs: use AddExpose instead of sending a message.
4276         fixes textbox border drawing.
4277
4278 2006-11-15  Chris Toshok  <toshok@ximian.com>
4279
4280         * PropertyGridView.cs: keep from crashing on mouse move/down when
4281         the property grid is empty.
4282
4283 2006-11-14  Jackson Harper  <jackson@ximian.com>
4284
4285         * TextControl.cs: Make PageUp and PageDown more like the MS
4286         versions.
4287         * TextBoxBase.cs: When we set the text property position the
4288         cursor at the beginning of the document.
4289
4290 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4291
4292         * Form.cs: if a mdi child's WindowState has changed
4293         before it's creation, it would display wrong control
4294         buttons.
4295         
4296 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4297
4298         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4299           (Fixes bug #79927)
4300
4301 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4302
4303         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4304         the window gets to paint its borders even if the window is
4305         getting smaller.
4306         
4307         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4308         otherwise the old control buttons would still be painted 
4309         if the window gets bigger.
4310         
4311         * PaintEventArgs.cs: add an internal method so that the clip 
4312         rectangle can be changed.
4313         
4314 2006-11-13  Chris Toshok  <toshok@ximian.com>
4315
4316         [ fixes bug #79745 ]
4317         
4318         * NotifyIcon.cs: lots of cleanup.
4319
4320         * X11Structs.cs: add an enum for XEMBED messages.
4321
4322         * XplatUIX11.cs: reindent one of the giant switch statements, it
4323         was taking up an additional tab stop, and this file is already way
4324         too wide for my laptop's screen.
4325
4326         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4327         we get it, resize the hwnd to the WMNormalHints max_width/height.
4328
4329 2006-11-13  Jackson Harper  <jackson@ximian.com>
4330
4331         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4332         teh simple way.
4333
4334 2006-11-13  Chris Toshok  <toshok@ximian.com>
4335
4336         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4337         #79898.  force a reference to the Region to stick around so the
4338         unmanaged object isn't collected (rendering our handle in the MSG
4339         stale).
4340
4341 2006-11-13  Chris Toshok  <toshok@ximian.com>
4342
4343         * XplatUIX11.cs: fix #79917 for window managers which support
4344
4345         using XStoreName on the raw utf8, and we need to convert to
4346         COMPOUND_TEXT if it's non-latin1.
4347
4348 2006-11-13  Chris Toshok  <toshok@ximian.com>
4349
4350         * Form.cs (set_DialogResult): we need to set closing to false if
4351         we're setting our result to None.  fixes bug #79908.
4352
4353 2006-11-13  Jackson Harper  <jackson@ximian.com>
4354
4355         * TextControl.cs: When formatting text, compute the adjusted tag
4356         lengths correctly, using FindTag for the end tag instead of trying
4357         to figure it out outselves.
4358         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4359         the item, ItemHeight doesn't work, because trees with large
4360         imagelists use those for their height
4361         * TreeView.cs: ActualItemHeight factors in the image height
4362         - compute left edge of checkboxes correctly
4363         - when expanding/collapsing move the bottom down one pixel, so we
4364         aren't moving part of the node
4365
4366 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4367
4368         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4369         stack in PaintEventStart so that it won't get disposed by the gc
4370         before reaching PaintEventEnd.
4371
4372 2006-11-13  Jackson Harper  <jackson@ximian.com>
4373
4374         * TextBoxBase.cs: Don't select the word if we are on a line with
4375         no text.
4376         - We don't need to position the caret on mouse up, since the mouse
4377         move handler should be doing this
4378         - When double clicking a blank line, the caret is advanced to the
4379         next line.
4380
4381 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4382
4383         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4384
4385 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4386
4387         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4388         Fixes part of bug #79910.
4389
4390 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4391
4392         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4393           (bug #79903). Some minor string updates to match ms.
4394
4395 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4396
4397         * FileDialog.cs: Don't add an extension if the filename
4398           already ends with that extension.
4399
4400 2006-11-10  Jackson Harper  <jackson@ximian.com>
4401
4402         * TreeView.cs: Use the currently highlighted node for the
4403         BeforeSelect event.
4404         * TextBoxBase.cs: There is no need to expand selection on
4405         MouseMove.
4406         - CanUndo means 'is there any undo operations', not 'is undo
4407         allowed on this textcontrol. Fixed ClearUndo unit test.
4408
4409 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4410
4411         * Button.cs: only perform click when button is Selectable (so as 
4412         not to activate default buttons when they're disabled)
4413         
4414         * Control.cs: Rewrite of the SelectNextControl and related 
4415         methods. HandleClick now selects next control if the current one
4416         is being disabled.
4417         
4418         * Form.cs: OnActivated selects next active control only if Load 
4419         has already occurred. If Load hasn't run, there's no point in 
4420         selecting here, Load might change the state of controls.
4421         
4422         * FocusTest.cs: Tests marked as working again for these fixes
4423
4424 2006-11-10  Chris Toshok  <toshok@ximian.com>
4425
4426         * XplatUIX11.cs: a couple of fixes.
4427
4428         - use XInternAtoms with almost all the atoms we need to register,
4429         instead of many, many calls to XInternAtom.  should help a bit on
4430         startup time, at the expense of making the code look a little
4431         worse.
4432
4433         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4434         isn't reparented (which seems to be a clue that we're running fon
4435         compiz) and they have an Owner form.  This fixes the tool windows
4436         in paint.net when running under compiz.
4437
4438         - when setting the opacity of a window, support both the case
4439         where the window has been reparented and also when it hasn't been.
4440         Since compiz/beryl doesn't seem to reparent windows, and these are
4441         the only window managers which support translucency, I'm not sure
4442         why we need the hwnd.reparented case at all.. but leave it in.
4443         now we get translucent windows in paint.net under compiz/beryl.
4444
4445 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4446
4447         * FileDialog.cs: Always return the value for FilterIndex that
4448           was set. Internally convert it to values that make sense.
4449
4450 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4451         
4452         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4453
4454 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4455
4456         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4457         signature still using false to make it compatible with MS but the 
4458         initial value is true. Fixes #79855.
4459
4460 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4461
4462         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4463           only available on Linux.
4464
4465 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4466
4467         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4468         reduce number of calls to redraw method during toolbar creation.
4469
4470 2006-11-09  Mike Kestner  <mkestner@novell.com>
4471
4472         * ListView.cs : raise SelectedIndexChanged when an item is selected
4473         programmatically via the Item.Selected property.  Gert's nice 
4474         ListViewSelectedIndexChanged test fixture now runs clean.
4475
4476 2006-11-09  Mike Kestner  <mkestner@novell.com>
4477
4478         * ListView.cs : raise SelectedIndexChanged when a selected item is
4479         removed from the item collection using Remove or RemoveAt.
4480
4481 2006-11-09  Mike Kestner  <mkestner@novell.com>
4482
4483         * ListView.cs : raise SelectedIndexChanged once per selected item
4484         for compat with MS.  Fixes #79849+.
4485
4486 2006-11-09  Chris Toshok  <toshok@ximian.com>
4487
4488         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4489         we need to (if we have any tab pages).  Fixes unit test.
4490
4491 2006-11-09  Chris Toshok  <toshok@ximian.com>
4492
4493         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4494         width is 0, not 3.  Fixes a unit test.
4495
4496 2006-11-09  Mike Kestner  <mkestner@novell.com>
4497
4498         * ListView.cs : use Implicit scrollbars so that focus isn't 
4499         stolen from the listview when they are clicked. Fixes #79850.
4500
4501 2006-11-09  Chris Toshok  <toshok@ximian.com>
4502
4503         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4504         have a root item.  Fixes #79879.
4505
4506 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4507
4508         * FileDialog.cs:
4509           - Fix ToString ()
4510           - An ArgumentException is now thrown if a wrong filter
4511             is applied (matches ms). The previous filter doesn't change
4512             anymore if an exception is thrown.
4513           - Changing the FileName property also affects FileNames
4514         * ColorDialog.cs: The length of the CustomColors array is always
4515           16. It doesn't matter if we use a smaller array or null to update
4516           or change the custom colors property.
4517         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4518           for RootFolder if we get a undefined value.
4519
4520 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4521
4522         * StatusBarPanel.cs: 
4523         - Width is set to MinWidth if Width is smaller than
4524         MinWidth. Fixes #79842.
4525         - MinWidth now always overrides Width (MSDN says MinWidth
4526         is set to Width when AutoSize = None, but they do not 
4527         behave like that).
4528         - Style has now the the correct default value.
4529         
4530 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4531  
4532         * TrackBar.cs: 
4533         - The control is completely invalidated on 
4534         Got/LostFocus to draw the focus rectangle correctly.
4535         - When AutoSize then height is always 45 (width for 
4536         vertical controls).
4537         
4538         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4539         on the mouse when moved and it doesn't move when grabbed
4540         until the mouse moves as well. Also fixed some wrong 
4541         calculations when clicking on the thumb (control thought
4542         click was outside of thumb and didn't grab it).
4543         Fixes some of the issues in #79718.
4544
4545 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4546
4547         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4548
4549 2006-11-08  Chris Toshok  <toshok@ximian.com>
4550
4551         * PropertyGridView.cs: only call ToggleValue if the item is not
4552         readonly.
4553
4554 2006-11-08  Jackson Harper  <jackson@ximian.com>
4555
4556         * TextBoxBase.cs: The RichTextBox and textbox have very different
4557         word selection methods.  Implement the textbox's simple word
4558         selection here, and let the RichTextBox override and provide it's
4559         own.
4560         - Don't do extra selection on mouseup
4561         * RichTextBox.cs: Use the documents word selection algorithm, I
4562         think ideally, this function will be pulled into the
4563         RichTextBox.cs code someday.
4564
4565 2006-11-08  Chris Toshok  <toshok@ximian.com>
4566
4567         * RootGridEntry.cs: new class to represent GridItemType.Root.
4568
4569         * CategoryGridEntry.cs: reformat, and add boilerplate.
4570         
4571         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4572         returns the UI parent anyway, and we need special handling to
4573         implement the GetTarget method in the face of it.  Also, implement
4574         Select().
4575
4576         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4577         a root grid item, and use that instead of PropertyGrid.grid_items.
4578         Also, make use of TypeConverters (and add limitted support for
4579         ICustomTypeDescriptors) when initially populating the grid.
4580         Arrays now show up more or less properly.
4581
4582 2006-11-08  Chris Toshok  <toshok@ximian.com>
4583
4584         * Application.cs: set the modal dialog to non modal after we close
4585         it.  Fixes bug #79866.
4586
4587 2006-11-08  Jackson Harper  <jackson@ximian.com>
4588
4589         * TextControl.cs: When combining lines carry over the line end
4590         style from the end line.
4591         - Invalidate the selected area when setting it, if it is visible.
4592         * TextBoxBase.cs: Only rich text box can do full line selects.
4593         - Make sure to set the cursor position when there is a click,
4594         otherwise two clicks in separate areas could cause a large chunk
4595         to be selected.
4596
4597 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4598
4599         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4600         Fixes #79863.
4601
4602 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4603
4604         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4605         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4606
4607 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4608
4609         * MenuAPI.cs: Ignore right click for menu actions and fixes
4610         menu border when clicked.  Fixes #79846.
4611
4612 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4613
4614         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4615         MouseState after create wParam for message, this fixes mouse button 
4616         equal none in mouse up events.
4617         
4618 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4619
4620         * Control.cs : Focus() now calls Select to set the Container's
4621         Active Control and to give it focus. To avoid infinite recursion
4622         (because ActiveControl also calls Focus at one point), a check 
4623         is made in Focus with the help of a new internal variable
4624         is_focusing.
4625
4626 2006-11-07  Mike Kestner  <mkestner@novell.com>
4627
4628         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4629         if there's a selection.  Fixes #79849.
4630
4631 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4632
4633         * PropertyGrid.cs: Avoid fixed height of help description label.
4634         Fixes part of bug #79829.
4635
4636 2006-11-07  Chris Toshok  <toshok@ximian.com>
4637
4638         * XplatUIX11.cs: fix #79790 again, by using the
4639         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4640
4641 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4642
4643         * ToolBar.cs: Fix left click checking.
4644
4645 2006-11-07  Chris Toshok  <toshok@ximian.com>
4646
4647         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4648
4649 2006-11-07  Chris Toshok  <toshok@ximian.com>
4650
4651         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4652         PropertyManager unit tests.
4653
4654         * PropertyManager.cs: make property_name internal.
4655
4656 2006-11-07  Chris Toshok  <toshok@ximian.com>
4657
4658         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4659         pass a unit test.  Also, don't set image_index to anything in
4660         response to setting the ImageList property.
4661
4662 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4663
4664         * ToolBar.cs: Ignore click events when mouse button is not a
4665         left button, only accepts other button for dropdown menus.  
4666         Fixes #79854.
4667
4668 2006-11-07  Chris Toshok  <toshok@ximian.com>
4669
4670         * DataGrid.cs: make the back and parent row buttons a little less
4671         ugly.
4672
4673 2006-11-07  Jackson Harper  <jackson@ximian.com>
4674
4675         * TextBoxBase.cs: When converting to Text don't put line breaks in
4676         for soft line breaks.
4677         * TextControl.cs: There is an initial "fake" line in the document,
4678         this is now a soft break line, so that an extra line feed doesn't
4679         get added to the end of documents.
4680
4681 2006-11-07  Chris Toshok  <toshok@ximian.com>
4682
4683         [ fix bug #79778 ]
4684         
4685         * CurrencyManager.cs: if the list is readonly, don't bother
4686         checking if IBindingList.AllowNew is true.
4687
4688         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4689         for non-DataRowView datasources..  or rather, make it not crash.
4690         (DataGridPaintRelationRow): make sure we limit the row painting to
4691         the area not covered by the row header, and make our cell width at
4692         least large enough to cover the relation area.  This allows grids
4693         that have relations but no rows to render correctly.
4694         (DataGridPaintRowContents): same type of changes here.
4695         (SetDataSource): move back to always calling
4696         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4697         navigating back through relations.
4698         (HitTest): handle the case where we have no cells but have
4699         relations.  Right now we generate a hit in cell 0 of whatever the
4700         row is, not sure if this is strictly correct, but it works for our
4701         purposes.
4702         
4703         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
4704         bother doing anything.
4705
4706 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
4707
4708         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
4709         early version of StatusStrip.  Not responsible for eaten
4710         application or firstborn children.
4711
4712 2006-11-06  Chris Toshok  <toshok@ximian.com>
4713
4714         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
4715         call GetTabRect with a -1 index.  Fixes #79847.
4716
4717 2006-11-06  Jackson Harper  <jackson@ximian.com>
4718
4719         * TreeNodeCollection.cs: Update scrollbars after clearing.
4720
4721 2006-11-06  Chris Toshok  <toshok@ximian.com>
4722
4723         * NumericUpDown.cs: fix the ToString method for some unit test
4724         love.
4725
4726 2006-11-06  Chris Toshok  <toshok@ximian.com>
4727
4728         * PropertyGrid.cs:
4729         - set the initial SelectedGridItem if we can.
4730
4731         - Exclude non-mergable properties only if we're merging > 1
4732         object.  Merging 1 object isn't really merging, obviously.
4733
4734         - Handle PropertySort.NoSort just like Alphabetical, which is
4735         wrong of course, but at least gets things on the screen.
4736         
4737         * PropertyGridView.cs:
4738         - Add method "FindFirstItem" which finds the first property grid
4739         item, so we can select it by default.
4740
4741         - make use of GridEntry.CanResetValue.
4742
4743         - Don't call RedrawBelowItemOnExpansion here anymore, the
4744         individual GridEntry's will do that.
4745
4746         - Remove the ITypeDescriptorContextImpl internal class.
4747         
4748         * GridEntry.cs:
4749         - this class needs to implement ITypeDescriptorContext, as it's
4750         what MS's PropertyDescriptorGridEntry does, which means we can
4751         remove the ITypeDescriptorContextImpl internal class from
4752         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
4753
4754         - keep a reference to our PropertyGridView, and move the call to
4755         RedrawBelowItemOnExpansion here from PGV.  This means
4756         programmaticly setting Expanded actually does something visible.
4757
4758         - add a CanResetValue() function which takes into account our
4759         possibly multiple "selected_objects" in the merged case.  Shifting
4760         PropertyGridView to use this method fixes another unreported
4761         crasher found running the test for #79829.
4762
4763         - when Top or Bounds is updated, make sure the PropertyGridTextBox
4764         is updated to reflect this.
4765
4766         * CategoryGridEntry.cs: the ctor takes the PGV now.
4767         
4768 2006-11-06  Jackson Harper  <jackson@ximian.com>
4769
4770         * TextControl.cs: These are 1 based.
4771         * TextBoxBase.cs: When setting the selected text, don't change the
4772         selected text tags, this is done by ReplaceText, just position the
4773         cursor at the end of the new text.
4774
4775 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4776
4777         * ListView.cs: Allow label edit only when, when LabelEdit is
4778           set to true.
4779
4780 2006-11-06  Jackson Harper  <jackson@ximian.com>
4781
4782         * TextControl.cs: If a suitable wrapping position isn't found,
4783         just wrap right in the middle of a word.
4784
4785 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
4786
4787         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
4788           bug #79820.
4789
4790 2006-11-06  Jackson Harper  <jackson@ximian.com>
4791
4792         * TreeView.cs: Can't use the VisibleCount property when setting
4793         scrollbar heights, because this doesn't take into account whether
4794         or not the horz scrollbar just came visible.
4795
4796 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
4797
4798         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
4799         activated.  Fixes #79369, #79832.
4800
4801 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
4802
4803         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
4804           had to remove support for links that point to a directory. FileInfo
4805           returns no usefull information (means, the directory they point to)
4806           for such links. Replaced some empty string ("") with String.Empty.
4807
4808 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4809
4810         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
4811         NullReferenceException when attempting to remove node that is not in
4812         collection. Throw NullReferenceException when null is passed to 
4813         Remove. Allow first element of the collection to be removed. Fixes
4814         bug #79831.  In GetEnumerator ().Current return null if positioned 
4815         before the first element of the collection. In GetEnumerator ().Reset,
4816         position before first element of the collection.
4817
4818 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
4819
4820         * PropertyGrid.cs: To match MS, remove default title and description
4821         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
4822         buttons.
4823
4824 2006-11-04  Chris Toshok  <toshok@ximian.com>
4825
4826         * Theme.cs: add a Clamp method, just for kicks.
4827
4828         * ThemeWin32Classic.cs: clamp all color components to [0..255].
4829
4830 2006-11-04  Chris Toshok  <toshok@ximian.com>
4831
4832         * Form.cs: if the form isn't visible, Close() does nothing.
4833
4834 2006-11-03  Chris Toshok  <toshok@ximian.com>
4835
4836         * Form.cs (Close): if the form is modal, don't Dispose of it, only
4837         Hide it.
4838         (WndProc): don't Dispose after handling the WM_CLOSE message.
4839
4840         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
4841         them as such, instead of using casts from Control to Form.  Also,
4842         don't Dispose of the modal dialog when we fall out of the loop -
4843         Close() it instead.
4844
4845         fixes bug #79813.
4846
4847 2006-11-03  Chris Toshok  <toshok@ximian.com>
4848
4849         * Control.cs (Dispose): only go through the dispose thing if we're
4850         @disposing, and we haven't already been disposed.  Fixes bug
4851         #79814.
4852
4853         * Form.cs: no reason to call "base.Dispose()" here instead of
4854         "Dispose()".
4855
4856 2006-11-03  Mike Kestner  <mkestner@novell.com>
4857
4858         * ComboBox.cs : use ToString instead of casts in AddItem for
4859         sorting functionality.  Fixes #79812.
4860
4861 2006-11-03  Chris Toshok  <toshok@ximian.com>
4862
4863         * Application.cs: pave the way for actually using the thread
4864         exception dialog.  it's ifdefed out at the moment.
4865
4866 2006-11-03  Chris Toshok  <toshok@ximian.com>
4867
4868         * ThreadExceptionDialog.cs: until we get a better layout, actually
4869         hide the details textbox and label when we shouldn't see them.
4870
4871 2006-11-03  Jackson Harper  <jackson@ximian.com>
4872
4873         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
4874         multiline textboxes anymore.  This method also determines the
4875         width/height of a textboxes canvas area.
4876         - Sorta a revert of the last patch.  For multiline just position
4877         the controls, then bail.  This way the scrollbar width won't be
4878         altered.
4879
4880 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
4881
4882         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
4883         it dont need.  Fixes #79537.
4884
4885 2006-11-02  Jackson Harper  <jackson@ximian.com>
4886
4887         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
4888         send the status after firing the DndOver event.
4889
4890 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4891
4892         * TrackBar.cs: Now orientation only switches height / width if
4893         the control's handle is created (Win32 does it like this). Also 
4894         fixed a typo in ToString() for a test to pass, changed the 
4895         exception thrown in set_LargeChange and set_SmallChange to 
4896         match Win32 behaviour, and added TrackBar tests to the unit 
4897         tests.
4898
4899 2006-11-02  Chris Toshok  <toshok@ximian.com>
4900
4901         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
4902         not _NET_WM_STATE_NO_TASKBAR.
4903
4904 2006-11-02  Jackson Harper  <jackson@ximian.com>
4905
4906         * TextControl.cs: Increment count by one, since in the update view
4907         count - 1 is used.
4908
4909 2006-11-02  Jackson Harper  <jackson@ximian.com>
4910
4911         * TextBoxBase.cs: Use client rectangle not bounds for checking if
4912         the mouse is in the client rectangle (duh).
4913
4914 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4915         
4916         * TrackBar.cs: Fixed trackbar jumping around when clicking
4917         on it - the trackbar was not detecting correctly at which
4918         side of the thumb the click was done. (fixes #79718)
4919
4920 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
4921
4922         * ListBox.cs: scroll visible area when change SelectedIndex to
4923         a non visible area.  Fixes #79481.
4924
4925 2006-11-01  Jackson Harper  <jackson@ximian.com>
4926
4927         * TextControl.cs: When replacing the selection move the selection
4928         start/end/anchor to the end of the new text.
4929
4930 2006-11-01  Jackson Harper  <jackson@ximian.com>
4931
4932         * XplatUIWin32.cs: When setting the parent change the controls
4933         visibility to it's visibility flag, not to it's old parents
4934         visibility (.Visible walks the parent chain).
4935
4936 2006-11-01  Chris Toshok  <toshok@ximian.com>
4937
4938         * XplatUIX11.cs: revert the #79790 fix, as the simple.
4939         XSetTransientForHint fix breaks paint .net's tool windows.  more
4940         work needed for that one.
4941
4942 2006-11-01  Chris Toshok  <toshok@ximian.com>
4943
4944         * ScrollBar.cs: throw ArgumentException instead of Exception in
4945         LargeChange/SmallChange setters.  fixes unit tests.
4946
4947 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4948
4949         * ContainerControl.cs: reverted rev.67183 (which was itself
4950         a reversion of rev.66853... eh).
4951         
4952         * Control.cs: Fixes Reflector hang by changing Focus() call
4953         to what it was before rev.66643 (calling Select() here sets 
4954         ActiveControl, which in some situations calls back Focus and 
4955         eventually does a stack overflow). Temp fix.    
4956         Changes to GetNextControl() to not look for children to select when
4957         parent cannot be selectable (so it looks for siblings instead)  
4958         
4959 2006-10-31  Mike Kestner  <mkestner@novell.com>
4960
4961         * CheckedListBox.cs : off by one error in returned index from
4962         ObjectCollection.Add.  Fixes #79758.
4963
4964 2006-10-31  Chris Toshok  <toshok@ximian.com>
4965
4966         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
4967         calls for the textbox/spinner, to keep from recursing to the point
4968         where we crash.  Fixes #79760.
4969
4970 2006-10-31  Chris Toshok  <toshok@ximian.com>
4971
4972         * ListControl.cs (set_SelectedValue): don't throw exceptions on
4973         null/"" value, just return.  matches ms's behavior and fixes some
4974         failing tests.
4975
4976 2006-10-31  Chris Toshok  <toshok@ximian.com>
4977
4978         * Control.cs (set_Capture): make a logic a little easier to
4979         follow.
4980
4981         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
4982         if it's being destroyed.  A necessary fix surely, but a bandaid
4983         also, to fix the stuck capture problem in bug #78413.
4984
4985 2006-10-31  Chris Toshok  <toshok@ximian.com>
4986
4987         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
4988         convention of clearing hwnd.ClientRect when we set the
4989         width/height (so it'll be recalculated by Hwnd).
4990
4991 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
4992
4993         * ContainerControl.cs: reversed Contains check from
4994         ActiveControl due to hanging problems. This fix
4995         partly regresses #79667 (button does not have
4996         initial focus), so this might be a symptom for 
4997         a larger parenting problem (set_ActiveControl
4998         is being called but the child control does
4999         not have the parent set yet?)   
5000         
5001 2006-10-31  Mike Kestner  <mkestner@novell.com>
5002
5003         * MenuAPI.cs : fix keynav when menu is click activated.
5004
5005 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
5006
5007         * ToolStrip*: Version 0.2.
5008
5009         * MenuStrip.cs: Version 0.1.
5010
5011         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
5012
5013 2006-10-30  Chris Toshok  <toshok@ximian.com>
5014
5015         [ fixes the oversized notify icon issue in bug #79745 ]
5016         
5017         * NotifyIcon.cs: scale the icon down to the size we're given by
5018         the XplatUI layer (this would be faster if we did it once instead
5019         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
5020         since it's never invoked.
5021
5022         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
5023         pixels high by default, so let's hardcode our systray icon to that
5024         size.  The SYSTEM_TRAY protocol should really have a way for
5025         client apps to query for the correct icon size.. but oh well.  A
5026         couple of patches to deal with the screwy client_window ==
5027         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
5028         instance, and also make sure we don't XSelectInput twice).
5029
5030 2006-10-30  Chris Toshok  <toshok@ximian.com>
5031
5032         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
5033         recreating forms.  Control recreation is the bane of my existence.
5034         Fix it in a way that keeps everyone happy.
5035
5036 2006-10-30  Chris Toshok  <toshok@ximian.com>
5037
5038         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
5039         just non-CHILD ones.  otherwise sometimes scrollbars end up with
5040         client_windows not being resized to the proper size (ReportBuilder
5041         shows this extremely well).
5042
5043 2006-10-30  Chris Toshok  <toshok@ximian.com>
5044
5045         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
5046         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
5047         showing up in the gnome taskbar.  Fixes bug #79790.
5048
5049 2006-10-30  Chris Toshok  <toshok@ximian.com>
5050
5051         * ApplicationContext.cs: guard against a NRE.
5052
5053         * Application.cs: null out the old MainForm for the context, so we
5054         don't try to use it again once it's disposed.  Fixes bug #79783.
5055
5056 2006-10-30  Chris Toshok  <toshok@ximian.com>
5057
5058         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
5059         BindingContext, set the data source directly, otherwise do the
5060         lazy approach - the actual ListManager will be created when we get
5061         a BindingContext. Fixes bug #79700.
5062
5063 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5064
5065         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
5066           XplatUIX11.cs: Remove old 2 parameter SetVisible.
5067
5068         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
5069
5070 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5071
5072         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5073         of SetVisible that allows a window to be shown, but not activated.
5074         This is needed on Windows for MenuStrip, and can probably be used
5075         with MainMenu and ComboBox to fix the focus stealing issues on
5076         Windows.
5077
5078         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5079
5080 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5081
5082         * PictureBox.cs: Fix the output of the ToString method.
5083
5084 2006-10-29  Chris Toshok  <toshok@ximian.com>
5085
5086         * Control.cs (get_TopLevelControl): fix bug #79781.
5087
5088 2006-10-29  Chris Toshok  <toshok@ximian.com>
5089
5090         * ListControl.cs (set_DataSource): throw Exception here, not
5091         ArgumentException, to match MS behavior.
5092
5093 2006-10-29  Chris Toshok  <toshok@ximian.com>
5094
5095         * Form.cs: remove the try-catch's around calls to GetWindowState.
5096         We can just check the return value.
5097
5098         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5099         Instead return -1.
5100
5101         * XplatUI.cs: Add note about additional return value for
5102         GetWindowState.
5103
5104 2006-10-29  Chris Toshok  <toshok@ximian.com>
5105
5106         * Control.cs (CreateHandle): when we create our handle, we also
5107         create the handles of our child controls.  Fixes one of the
5108         Control unit tests (CH11).
5109
5110 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5111
5112         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5113
5114 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5115
5116         * ThemeClearlooks.cs: A little speedup.
5117
5118 2006-10-27  Chris Toshok  <toshok@ximian.com>
5119
5120         * Control.cs: implement Control.FromChildHandle in a way that
5121         matches the docs (and fixes the failed test.)
5122
5123 2006-10-27  Chris Toshok  <toshok@ximian.com>
5124
5125         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5126         comments).
5127
5128         * DataGrid.cs: implement ResetForeColor such that the tests
5129         succeed.
5130         
5131 2006-10-27  Chris Toshok  <toshok@ximian.com>
5132
5133         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5134         being set to "".  Fixes bug #79759.
5135
5136 2006-10-27  Jackson Harper  <jackson@ximian.com>
5137
5138         * TextControl.cs: We need to clear the entire selection area when
5139         setting the start, otherwise multiline selections are still
5140         visible.
5141
5142 2006-10-26  Chris Toshok  <toshok@ximian.com>
5143
5144         * PropertyGridView.cs: 
5145
5146         - ifdef all the code specific to the double
5147         buffer case, and provide some alternatives in the non-doublebuffer
5148         code, which makes heavy use of XplatUI.ScrollWindow to move things
5149         around without having to invalidate (and cause flicker).  There
5150         are still some drawing problems in the non-doublebuffered case, so
5151         DOUBLEBUFFER is defined by default.
5152
5153         - Fix the way dropdowns are handled.  now we explicitly watch for
5154         the events which might cause the dropdown to close, and break out
5155         of the nested event loop there.  This gets rid of all Capture
5156         code, at the expense of the Msg special casing.  Seems to work,
5157         though, and fixes bug #79743.
5158
5159 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5160         * Control.cs: SetIsRecreating now recreates implicitly added
5161         child controls as well. Finally fixes #79629. The flag passed to 
5162         SetIsRecreating has also been removed since it wasn't used.
5163         
5164 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5165
5166         * PageSetupDialog.cs: Clean some code, fix some bits, 
5167         add some checks, and add a printer sub-dialog.
5168
5169 2006-10-26  Chris Toshok  <toshok@ximian.com>
5170
5171         * PropertyGrid.cs: make set_SelectedObject call
5172         set_SelectedObjects, and move the duplicate logic to the
5173         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5174
5175         * PropertyGridView.cs: hide the textbox when we get a
5176         SelectedObjectsChanged event.
5177
5178         Fixes bug #79748.
5179
5180 2006-10-26  Chris Toshok  <toshok@ximian.com>
5181
5182         * PropertyGridView.cs: deal with the type converter not supporting
5183         GetStandardValues() or GetStandardValues() returning null, which
5184         is does in the default case.  Fixes #79742.
5185
5186 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5187
5188         * CheckedListBox.cs: nunit no longer crashes when selecting 
5189         Project/Edit menu option
5190         
5191 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5192
5193         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5194         is no menu selected. fixes #79739
5195
5196 2006-10-25  Chris Toshok  <toshok@ximian.com>
5197
5198         * PropertyGridView.cs: factor out the splitter invalidation code
5199         into the SplitterPercent setter, and for kicks implement the
5200         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5201         amount in either direction.
5202
5203 2006-10-25  Chris Toshok  <toshok@ximian.com>
5204
5205         * PropertyGridView.cs: do some cleanup of the brush used to draw
5206         text - read only fields should be grayed out.  not sure how to do
5207         this with the textbox, though.  but the textbox's should also be
5208         readonly now at least.  Also, hide/show the textbox when resizing
5209         the control.
5210         
5211         * CursorConverter.cs: use System.Reflection when getting the
5212         properties of Cursors, as TypeDescriptor.GetProperties isn't
5213         returning static properties.
5214
5215 2006-10-25  Chris Toshok  <toshok@ximian.com>
5216
5217         * PropertyGridView.cs: factor out the up/down handling, and reuse
5218         it for page up/down.  also add End/Home support.
5219
5220 2006-10-25  Chris Toshok  <toshok@ximian.com>
5221
5222         * PropertyGridView.cs:
5223
5224         - ensure the selected grid item is visible in the scrolled area,
5225         fixes bug #79572.
5226
5227         - fix Keys.Down handling when you're on the last item in the
5228         propertygrid.
5229
5230 2006-10-25  Mike Kestner  <mkestner@novell.com>
5231
5232         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5233         clicks too.  Fixes #79725.
5234
5235 2006-10-24  Chris Toshok  <toshok@ximian.com>
5236
5237         * PropertyGrid.cs: use property.Converter instead of
5238         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5239         TypeConverters declared on the property as well as on the
5240         PropertyType.  Fixes bug #79678.
5241
5242 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5243
5244         * MimeIcon.cs, Mime.cs:
5245           Fallback to the default platform handler if no shared mime info
5246           stuff exists (fixes #79693).
5247
5248 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5249         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5250         from previous fix (duh).
5251
5252 2006-10-20  Chris Toshok  <toshok@ximian.com>
5253
5254         * PropertyGridView.cs: the dropdown should be MIN(number of items
5255         in list, 15).  Fixes #79551.
5256
5257 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5258         Fixes #79384, #79394, #79652, #79667
5259         * Application.cs: 
5260         
5261         - Modal windows are now destroyed in the proper order for windows
5262         
5263         * ContainerControl.cs:
5264         
5265         - ActiveControl setter has more conditions on when to return:
5266                 - if we're reselecting the active control, but it actually
5267                 didn't have focus (window hidden or some such), it runs
5268                 - if the active control being selected doesn't actually 
5269                 exist in the container, it returns
5270         
5271         * Form.cs
5272         
5273         - The ShowDialog now gets the current form as the owner when
5274         invoking without parameters, and correctly activates the owner 
5275         when returning
5276         
5277         * MessageBox.cs
5278         
5279         - MessageBox now catches the Escape key to exit
5280
5281 2006-10-20  Chris Toshok  <toshok@ximian.com>
5282
5283         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5284         most of bug #79676):
5285
5286         - you can navigate around the property grid with the arrow keys.
5287
5288         - the dropdown is sized properly when the pg has a vertical
5289         scrollbar.
5290
5291         - fix the indentation for subentries, and properly select the
5292         entire label rect.
5293
5294         - fix the gray bar's drawing (only draw it to the last element,
5295         not for the height of the control.  Also make sure we draw that
5296         last horizontal grid line.
5297
5298         - use the same mechanism the datagrid uses wrt the editing textbox
5299         when scrolling/resizing/etc.  Namely, we hide it first, do the
5300         operation, then show it again (if it's still visible).
5301         
5302         - aggressively remove a lot of unnecessary refreshes (and also
5303         calls to Invalidate(). call more limited variants, and only redraw
5304         what we need.)
5305         
5306         * PropertyGrid.cs:
5307
5308         - when we're populating the merged collection, fill in the UI
5309         parent with either the passed in item, or the category item we
5310         create.
5311
5312         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5313
5314         * GridItem.cs: drop some fully qualified names.
5315         
5316         * GridEntry.cs: add a "UIParent", which is basically the parent
5317         treenode.
5318
5319         * GridItemCollection.cs: add an IndexOf method.
5320
5321 2006-10-20  Mike Kestner  <mkestner@novell.com>
5322
5323         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5324         a working win32 NC invalidation mechanism, we can't invalidate
5325         menus.  [Fixes #79705]
5326
5327 2006-10-20  Mike Kestner  <mkestner@novell.com>
5328
5329         * ListBox.cs : don't update the VScrollbar if the list is empty,
5330         just hide it.  [Fixes #79692]
5331
5332 2006-10-20  Jackson Harper  <jackson@ximian.com>
5333
5334         * RichTextBox.cs: Handle some special chars better, and don't skip
5335         the entire group when we encounter a special char that we don't
5336         handle correctly.
5337
5338 2006-10-18  Chris Toshok  <toshok@ximian.com>
5339
5340         * PropertyGridView.cs: address a number of issues from bug #79676,
5341         mostly of the cosmetic variety.
5342
5343         - The highlight rectangle for indented items not extends all the
5344         way to the left.
5345
5346         - Indented items aren't indented so much.
5347
5348         - the dropdown is properly sized width-wise if the pg has a
5349         vertical scrollbar.
5350
5351 2006-10-18  Chris Toshok  <toshok@ximian.com>
5352
5353         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5354         systray stuff is rather convoluted to begin with.
5355
5356         systray icons are a single window for some reason (that I haven't
5357         figured out yet), and for them, client_window == whole_window.
5358         Given the way the tests are structured elsewhere to determine
5359         which paints are pending (client vs. nc), that situation will
5360         always yield PAINT, not NCPAINT.  So, if we have a pending
5361         nc_expose and no pending expose, remove the hwnd from the paint
5362         queue, and also set nc_expose_pending to false, to keep us from
5363         blocking further expose's adding the hwnd to the paint queue.
5364
5365         phew.  like i said, a rather convoluted change.  Fixes the
5366         notifyicon repaint issues in bug #79645.
5367
5368 2006-10-18  Chris Toshok  <toshok@ximian.com>
5369
5370         * Form.cs: when getting the backcolor of the form, don't get
5371         base.BackColor, as this allows parents to influence the background
5372         color.  This breaks mdi forms.  Instead, if the background_color
5373         is empty, return the default.
5374
5375 2006-10-18  Chris Toshok  <toshok@ximian.com>
5376
5377         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5378         to being private instead of internal static.
5379
5380         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5381         crap, it wasn't working for more deeply nested controls anyway,
5382         and we already have the is_recreating flag - use that instead.
5383         Before calling DestroyHandle in RecreateHandle, recurse through
5384         the control tree setting it to true.  this returns the recreate
5385         code to much of its original simplicity, while now guaranteeing we
5386         actually recreate everything we're supposed to.  This change gets
5387         fyireporting actually showing mdi children.
5388
5389 2006-10-17  Chris Toshok  <toshok@ximian.com>
5390
5391         * Form.cs: remove some debug spew, and collapse some duplicate
5392         code at the end of SetClientSizeCore.
5393
5394         * XplatUIX11.cs: 
5395         - add some more debug spew here too wrt Destroy handling.
5396         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5397         in Control's handling of WM_DESTROY.
5398         - Remove the handling of zombie window DestroyNotifies from the
5399         event loop - we don't need it.  Now the only DestroyNotifies we
5400         actually handle are ones generated by X.
5401         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5402         match gtk's (functioning) handling of this. This keep metacity
5403         from leaving droppings in the form of wm borders with no window
5404         contents all over the place.
5405
5406         * Control.cs:
5407         - add a bunch of debug spew wrt control recreation.
5408         - fix a bug where we weren't tracking Visible properly on
5409         recreated hwnds.
5410         - fixed the WM_PAINT double buffer handling to support re-entrant
5411         calls (yes, i know it's gross, but it's happening to us).
5412
5413 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5414         * ThemeWin32Classic.cs: changed drawing of selected days
5415         to make them look better.
5416
5417 2006-10-16  Chris Toshok  <toshok@ximian.com>
5418
5419         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5420         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5421
5422         * XplatUIX11.cs: move away from using hwnd.client_dc and
5423         hwnd.non_client_dc and on to a stack of dc's (and in window's
5424         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5425         without puking or not disposing of Graphics objects.
5426
5427         * XplatUIOSX.cs: same.
5428
5429         * XplatUIWin32.cs: same.
5430
5431 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5432
5433         * FileDialog.cs: Don't call on_directory_changed inside
5434           OnSelectedIndexChanged (it changes the SelectedIndex too).
5435           Instead move it to OnSelectionChangeCommitted.
5436
5437 2006-10-13  Chris Toshok  <toshok@ximian.com>
5438
5439         * XplatUIX11.cs: more Destroy work.  the current code does the
5440         following things, in order:
5441
5442         1. Enumerates all handles of all controls at or below the one
5443         being destroyed, in pre-order.  As it is doing this, it marks the
5444         handles as zombie and clears all references to them.
5445         
5446         2. calls XDestroyWindow on the window passed in.
5447
5448         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5449         list.
5450
5451 2006-10-13  Chris Toshok  <toshok@ximian.com>
5452
5453         * XplatUIX11.cs: set hwnd.zombie to true before calling
5454         SendMessage (WM_DESTROY).  this keeps us from marking the new
5455         window a zombie, and also keeps us from calling sendmessage at
5456         all.
5457
5458 2006-10-13  Jackson Harper  <jackson@ximian.com>
5459
5460         * TextControl.cs: Do not show the caret and selection at the same
5461         time.  Reduces ugliness by 35%.
5462
5463 2006-10-13  Chris Toshok  <toshok@ximian.com>
5464
5465         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5466         zombie after we do the recursive call, so we actually do call
5467         SendMessage on the children controls.
5468         (GetMessage): if we find a pending paint event for a zombie hwnd,
5469         remove the hwnd from the paint queue, or else it will always be
5470         there (and we'll effectively loop infinitely)
5471
5472 2006-10-13  Mike Kestner  <mkestner@novell.com>
5473
5474         * MenuItem.cs : add Selected format under keynav too.
5475         Fixes #79528.
5476
5477 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5478
5479         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5480         implementation and that of MS.
5481
5482 2006-10-13  Chris Toshok  <toshok@ximian.com>
5483
5484         * Control.cs (OnInvalidated) only futz with the invalid_region if
5485         the control is double buffered.  this fixes the apparent hang in
5486         the ListView unit tests.  Someone needs to make the
5487         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5488
5489 2006-10-13  Chris Toshok  <toshok@ximian.com>
5490
5491         * PropertyGridView.cs:
5492
5493         - do a little refactoring so that only one place calls
5494         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5495         else call that.  Also make it Refresh, since there are redraw bugs
5496         otherwise (we should take a look at that...)
5497
5498         - do a little more refactoring work to share the body of code
5499         involved with the drop down.  it was duplicated in the code
5500         dealing with the listbox handling and in the code dealing with the
5501         UITypeEditors.
5502
5503         - add a Capture to the dropdown form's control once it's
5504         displayed, and add a MouseDown handler that checks to make sure
5505         the position is inside the control.  If it's not, close the
5506         dropdown.  This fixes #78190.
5507
5508         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5509         if the value is different than the initial value.
5510         
5511 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5512
5513         * Control.cs: see #78650
5514         - Fixed GetNextControl for several cases:
5515                 - Changed FindFlatForward to return 
5516                 correct sibling control when more than one
5517                 control has same TabIndex as the currently 
5518                 focused one.
5519                 - Changed FindFlatBackward to loop children
5520                 from last to first and apply same logic as in
5521                 FindFlatForward
5522                 - Changed FindControlForward to search for
5523                 children when control is not a container
5524                 but has children, or search for siblings if
5525                 control is a container...
5526                 - Changed FindControlBackward   to continue
5527                 searching for child controls when hitting 
5528                 Panel-like parents
5529                 
5530         - Fixed Focus method to update ActiveControl
5531         (FocusTest.FocusSetsActive failure)
5532         
5533         * TabControl.cs:
5534         - Focus rectangle now refreshes when gaining
5535         or losing focus
5536         - Removed grab for Tab key on IsInputKey that 
5537         was keeping tab navigation from working (#78650)
5538
5539 2006-10-13  Chris Toshok  <toshok@ximian.com>
5540
5541         * PropertyGridView.cs:
5542         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5543         SelectedObjects.
5544
5545         - Deal with GridItem.Value == null a few places.
5546
5547         * PropertyGrid.cs: 
5548         - replace the PopulateGridItemCollection with a pair of methods
5549         which compute the intersection of all the properties in the
5550         SelectedObjects array.  Fixes #79615.
5551
5552         - Throw ArgumentException from set_SelectedObjects if there's a
5553         null in the array.
5554
5555         - Add GetTarget method which can be used to traverse up the
5556         GridItem.Parent chain.  It depends on the assumption that
5557         selected_objects for different GridEntries are always in the same
5558         order (a safe assumption).  Use this method and loop over all the
5559         selected objects in the entry when calling RemoveValueChanged and
5560         AddValueChanged.
5561         
5562         * GridEntry.cs: Make this handle multiple selected objects.
5563         .Value returns null if not all the selected objects share the same
5564         value.
5565
5566 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5567         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5568           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5569           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5570           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5571           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5572         add additional functionality.
5573
5574 2006-10-12  Mike Kestner  <mkestner@novell.com>
5575
5576         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5577         * HelpProvider.cs : new ToolTipWindow ctor sig.
5578         * ToolTip.cs : remove ToolTip param from Window sig since it is
5579         not used.
5580         * ToolBar.cs : add tooltip support.  Fixes #79565.
5581
5582 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5583
5584         * ComboBox.cs: move the events in set_SelectedIndex to 
5585         after the call to HighlightIndex in order to avoid 
5586         possible recursion and subsequent problems with the call
5587         to HighlightIndex and include a range check in 
5588         set_HighlightIndex. Fixes #79588
5589         
5590 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5591
5592         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5593         to ui thread's settings instead of sunday. 
5594         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5595
5596 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5597
5598         * DateTimePicker.cs
5599         * MonthCalendar.cs
5600         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5601         and implement missing functionality (selecting different parts 
5602         of the date and edit them individually with the keyboard).
5603         
5604 2006-10-11  Chris Toshok  <toshok@ximian.com>
5605
5606         * Control.cs (OnInvalidated): fix NRE relating to last change.
5607
5608 2006-10-11  Chris Toshok  <toshok@ximian.com>
5609
5610         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5611         atoms in _NET_WM_STATE here if the window is maximized.  We need
5612         to do this because we're *replacing* the existing _NET_WM_STATE
5613         property, so those atoms will be lost otherwise, and any further
5614         call to GetWindowState will return Normal for a window which is
5615         actually maximized.  Fixes #79338.
5616
5617 2006-10-11  Jackson Harper  <jackson@ximian.com>
5618
5619         * TextControl.cs: Special case for setting selection end to
5620         selection start, we basically kill the anchor.
5621         - some todo comments.
5622
5623 2006-10-11  Chris Toshok  <toshok@ximian.com>
5624
5625         * Control.cs: switch to using an "invalid_region" to track which
5626         parts of the image buffer need updating.  This is more code than
5627         the simple fix from r66532.  That version just attempted to always
5628         fill the entire buffer on redraw, which turns out to be
5629         inefficient when invalidating small rectangles.  This version
5630         simply adds the invalid rectangle to the invalid region.  When we
5631         get any WM_PAINT message we see if it can be filled using the
5632         image buffer, and if it can't (if the paint event's clip rectangle
5633         is visible in the invalid region) we first fill the image buffer.
5634         So, the image buffer is still a cache, we just fill it lazily.
5635
5636         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5637         need it any longer.
5638
5639 2006-10-11  Chris Toshok  <toshok@ximian.com>
5640
5641         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5642         well as size after calling XMoveResizeWindow.  This keeps us from
5643         ignoring future SetWindowPos calls.  Fixes the disappearing
5644         DateTimePicker in the ToolBarDockExample from bug #72499.
5645
5646 2006-10-11  Chris Toshok  <toshok@ximian.com>
5647
5648         * TextBoxBase.cs: reorder things a bit when it comes to
5649         resizing-causing-recalculation.  we were recalculating the
5650         document when our position was changed, which shouldn't happen.
5651         We only care about size changes.  Clear up some more redundant
5652         recalculation calls while I'm at it.  This makes the toolbar dock
5653         example snappy when you're just dragging toolbars around (since it
5654         causes a relayout whenever you move one.)
5655
5656 2006-10-11  Chris Toshok  <toshok@ximian.com>
5657
5658         * ToolBarButton.cs (get_Rectangle): this only returns
5659         Rectangle.Empty if Visible == false, or Parent == null.
5660         Parent.Visible doesn't matter.
5661
5662 2006-10-10  Chris Toshok  <toshok@ximian.com>
5663
5664         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5665         by .net 1.1, so switch to an internal method instead.
5666
5667 2006-10-10  Chris Toshok  <toshok@ximian.com>
5668
5669         * Control.cs (WM_PAINT): when a control is double buffered we draw
5670         initially to the ImageBuffer and then copy from there.  But when a
5671         parent control which has child controls is double buffered, the
5672         initial drawing doesn't encompass the entire ClientRectangle of
5673         the parent control, so we end up with uninitialized bits (this is
5674         easily seen by dragging the top toolbar in
5675         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5676         manually set the ClipRectangle of the paint_event (only the one we
5677         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5678         of the nastiness in bug #72499.
5679
5680         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5681         which we use in Control.cs's WM_PAINT handling.
5682
5683 2006-10-10  Jackson Harper  <jackson@ximian.com>
5684
5685         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5686
5687 2006-10-10  Chris Toshok  <toshok@ximian.com>
5688
5689         * Cursor.cs: Apply a slightly different patch to the one suggested
5690         in #79609.
5691
5692 2006-10-10  Jackson Harper  <jackson@ximian.com>
5693
5694         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5695         not the parent form.
5696         * TextControl.cs: use difference in old line count vs new count to
5697         calculate how many lines were added, this takes into account soft
5698         line breaks properly.
5699
5700 2006-10-10  Chris Toshok  <toshok@ximian.com>
5701
5702         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5703         rectangle located at 0,0 and the size of the text.  Use
5704         ClientRectangle instead.  This fixes rendering of non-left aligned
5705         link labels.
5706
5707 2006-10-10  Jackson Harper  <jackson@ximian.com>
5708
5709         * TextBoxBase.cs: When we set the selection start position the
5710         caret.
5711         * TextControl.cs: Need to update the caret when we decrement it to
5712         zero.
5713         - Make sure that the selection_visible flag gets reset to false if
5714         the selection isn't visible.  Before this you could get it set to
5715         visible by changing the selection start, then changing the end to
5716         equal the start.
5717
5718 2006-10-09  Jackson Harper  <jackson@ximian.com>
5719
5720         * TreeView.cs: Don't update scrollbars when we aren't visible.
5721         * TreeNodeCollection.cs: Only need to update scrollbars if being
5722         added to an expanded visible node or the root node.
5723
5724 2006-10-09  Chris Toshok  <toshok@ximian.com>
5725
5726         * XplatUIX11.cs (SendMessage): fix NRE.
5727
5728 2006-10-09  Jackson Harper  <jackson@ximian.com>
5729
5730         * TextBoxBase.cs: Implement horizontal autoscrolling.
5731         * TextControl.cs: Add a movement types that allows moving forward
5732         and backwards without wrapping.
5733
5734 2006-10-09  Mike Kestner  <mkestner@novell.com>
5735
5736         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
5737         with focus "expansion" of labels.  Fixes #79532 and then some.
5738         * ThemeWin32Classic.cs : add LineLimit to ListView label format
5739         when wrapping.
5740
5741 2006-10-09  Jackson Harper  <jackson@ximian.com>
5742
5743         * TextBoxBase.cs: Set the default max values to MaxValue since
5744         we use the scrollbar for autoscrolling and the default value is
5745         100.  If we don't do this the caret won't keep up with typing
5746         after about 18 characters.
5747         * TextControl.cs: Make sure the selection is offset by the
5748         viewport x.  This fixes selection when using auto scrolling.
5749
5750 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
5751         
5752         * Form.cs: The active control should be selected after the 
5753         OnLoad so that any child control initialization that affects
5754         the selection is done. Fixes #79406
5755
5756 2006-10-06  Chris Toshok  <toshok@ximian.com>
5757
5758         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
5759         to have no evil effects.
5760
5761         - Stop selecting StructureNotifyMask on non-toplevel windows.
5762
5763           The only way children should be resized is by using the SWF api,
5764           and we already send WM_WINDOWPOSCHANGED messages in those cases.
5765           Toplevel windows can be interacted with via the window manager,
5766           and so we keep the input mask there.
5767
5768           The other event StructureNotifyMask gives us (that we care
5769           about) is DestroyNotify.  The code is already structured such
5770           that it assumes we won't be getting a DestroyNotify event for
5771           the window we pass to XDestroyWindow (which is what
5772           StructureNotifyMask is supposed to guarantee.)  So, that code
5773           shouldn't be affected by this either.
5774
5775         - Stop selecting VisibilityChangeMask altogether.
5776
5777           We weren't doing anything with the resulting events anyway.
5778         
5779         This vastly reduces the number of X requests and events we see
5780         when resizing/laying out a large ui.
5781
5782 2006-10-06  Chris Toshok  <toshok@ximian.com>
5783
5784         * ScrollableControl.cs (DisplayRectangle): we need to take into
5785         account the DockPadding regardless of whether or not auto_scroll
5786         == true.  rework this slightly to this effect, and fix bug #79606,
5787         and part of #72499 (you can now see the drag handles and drag
5788         toolbars around).
5789
5790 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
5791
5792         * ListViewItem.cs: Collections of selected and checked items are now
5793         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
5794         we mark the collection "dirty".
5795         * ListView.cs: Marked collections readonly. Modified UpdateSelection
5796         to only clear SelectedItems when a new item is selected and MultiSelect
5797         is enabled. CheckedItems and SelectedItems now subscribe to Changed
5798         event of ListViewItemCollection, and mark its list dirty whenever
5799         that event is fire. This allows us to return selected/checked items 
5800         in the same order as they are in the Items collection. This matches
5801         the MS behavior.
5802
5803 2006-10-06  Chris Toshok  <toshok@ximian.com>
5804
5805         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
5806         right mouse clicks.  Fixes bug #79593.
5807
5808 2006-10-06  Chris Toshok  <toshok@ximian.com>
5809
5810         * Splitter.cs: doh, fix splitters that don't want to cancel the
5811         movement when you drag them.  Also, impose the limits on the
5812         values we send to the SplitterMovingEvent.  Fixes #79598.
5813
5814 2006-10-06  Jackson Harper  <jackson@ximian.com>
5815
5816         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
5817         since we use this for auto scrolling also.
5818
5819 2006-10-05  Chris Toshok  <toshok@ximian.com>
5820
5821         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
5822         beginning to think that most datagrid column types don't need this
5823         method.  Fixes bug #79392.
5824
5825 2006-10-05  Chris Toshok  <toshok@ximian.com>
5826
5827         * DataGrid.cs: move back to a more lazy scheme for creating the
5828         CurrencyManager, so we aren't updating it every time you set
5829         either DataSource or DataMember.  Also, don't call
5830         RecreateDataGridRows if the currency manager hasn't changed.
5831
5832 2006-10-05  Chris Toshok  <toshok@ximian.com>
5833
5834         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
5835         emitted, SelectedIndex should already be updated.  Fixes bug
5836         #78929.
5837
5838 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
5839
5840         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
5841           ToolStripTextBox.cs: Initial commit.
5842         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
5843
5844 2006-10-05  Jackson Harper  <jackson@ximian.com>
5845
5846         * TabControl.cs: We need to invalidate the tab control area when
5847         new ones are added (duh).
5848
5849 2006-10-03  Chris Toshok  <toshok@ximian.com>
5850
5851         * Form.cs (ProcessDialogKey): if the focused control is in this
5852         form and is a button, call its PerformClick method here.  Fixes
5853         #79534.
5854
5855 2006-10-04  Jackson Harper  <jackson@ximian.com>
5856
5857         * TabPage.cs: Ignore setting of Visible, and add an internal
5858         method for setting the controls visibility.  TabPage's Visible
5859         property is a little strange on MS, this seems to make us
5860         compatible, and fixes cases where people set all the tab pages to
5861         visible.
5862         * TabControl.cs: Use the new internal setting on tab pages
5863         visibility.
5864
5865 2006-10-03  Mike Kestner  <mkestner@novell.com>
5866
5867         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
5868
5869 2006-10-03  Mike Kestner  <mkestner@novell.com>
5870
5871         * ListView.cs : use is_visible instead of Visible to check if 
5872         scrollbars should be placed/sized.  Also some max_wrap_width
5873         love for LargeIcon view.  [Fixes #79533]
5874
5875 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
5876
5877         * TextControl.cs :
5878           Make set_TextAlign() do actually update the align. Fixed #78403.
5879
5880 2006-10-03  Chris Toshok  <toshok@ximian.com>
5881
5882         * DataGrid.cs: fix a crash when switching datasources if the
5883         vertical scrollbar is at someplace other than Value = 0.  Also,
5884         reduce the number of recalculation passes we do in SetDataSource
5885         from 2 to 1.
5886
5887 2006-10-03  Jackson Harper  <jackson@ximian.com>
5888
5889         * TextBoxBase.cs: Move the if value the same bail check up, we
5890         don't want to empty the document if it is already empty, this
5891         seems to severly mess up the caret.  TODO: I should probably fix
5892         the empty statement to update teh caret somehow.
5893
5894 2006-10-03  Chris Toshok  <toshok@ximian.com>
5895
5896         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
5897         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
5898         reflection, an internal row type, properties on said type, etc.)
5899         will work with our datagrid.  Fixes #79531.
5900
5901 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5902
5903         * FileDialog.cs: Don't crash if a path is not accessible
5904           (System.UnauthorizedAccessException). Fixes #79569.
5905         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
5906           a ':' too. Return unknown icon for those paths/files.
5907
5908 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
5909
5910         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
5911         GetContainerControl returns null.
5912
5913 2006-10-02  Chris Toshok  <toshok@ximian.com>
5914
5915         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
5916         call to XGetWindowAttributes instead of "handle".  fixes an X
5917         error using notifyicon after the NotifyIconWindow to Form base
5918         class switch.
5919
5920 2006-10-02  Chris Toshok  <toshok@ximian.com>
5921
5922         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
5923         server grab and looping we need to do to get down to the most
5924         deeply nested child window.
5925         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
5926         QueryPointer again after the WarpPointer so we can generate a
5927         proper (fake) MotionNotify event to be enqueued in the destination
5928         window's queue.
5929         (GetCursorPos): call QueryPointer.
5930
5931         Fixes #79556.
5932
5933 2006-10-02  Jackson Harper  <jackson@ximian.com>
5934
5935         * NotifyIcon.cs: Derive the notify icon from a form, so things
5936         like FindForm work on it.
5937         - Swallow the WM_CONTEXTMENU message, since that is generated on
5938         mouse down, and context menu is a mouse up kinda guy.  I believe
5939         the correct fix here is probably to make the notify icon entirely
5940         NC area, but this seems to work fine for anyone not manipulating
5941         WndProc.
5942
5943 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
5944
5945         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
5946           ToolStripItemCollection.cs, ToolStripLabel.cs,
5947           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
5948           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
5949           Initial implementation.
5950         * TextRenderer.cs: Provide padding to MeasureText.
5951
5952 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
5953
5954         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
5955         of ButtonBaseAccessibleObject. Fix bug #79552.
5956
5957 2006-10-02  Jackson Harper  <jackson@ximian.com>
5958
5959         * MdiWindowManager.cs: When maximizing use the containers client
5960         rect, not it's bounds, so nc area is accounted correctly.
5961         - Use the parent form's size for the menu position, since the
5962         client isn't always the full form size.
5963
5964 2006-10-01  Chris Toshok  <toshok@ximian.com>
5965
5966         * ScrollableControl.cs: make sure neither right_edge or
5967         bottom_edge are < 0, since they're used as LargeChange for the
5968         horiz/vert scrollbars respectively.  Fixes #79539.
5969
5970 2006-10-01  Chris Toshok  <toshok@ximian.com>
5971
5972         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
5973         the xplatuix11 code can cause us to destroy/recreate our handle.
5974
5975         * XplatUIX11.cs
5976         (SystrayAdd):
5977         - this code can be invoked many times for the same Hwnd.  Make
5978           sure we only destroy the client window once (the first time this
5979           method is called).  This fixes bug #79544.
5980         - Remove the call to the improperly bound XSync.  why we had two
5981           bindings to this, I will never know, but this call resulted in
5982           events being discarded from the queue(!).
5983         - correct a misunderstanding of _XEMBED_INFO - the second atom is
5984           not our current state but the state we wish to be in.  So, 0 if
5985           we don't want to be mapped.  Change it to 1.
5986         (SystrayRemove): The XEMBED spec makes mention of the fact that
5987         gtk doesn't support the reparent of client windows away from the
5988         embedder.  Looking at gtksocket-x11.c seems to agree with this.
5989         The only avenue we have for removing systray icons is to destroy
5990         them.  We don't want the handle to go away for good, though, so
5991         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
5992         #79545.
5993         
5994 2006-10-01  Chris Toshok  <toshok@ximian.com>
5995
5996         * Form.cs (WndProc): inline the native_enabled variable usage into
5997         the cases in which it's used.  Fixes #79536.
5998
5999 2006-09-29  Mike Kestner  <mkestner@novell.com>
6000
6001         * ListView.cs : toggle the selection state for ctrl clicks in 
6002         multiselect mode. [Fixes #79417]
6003
6004 2006-09-29  Mike Kestner  <mkestner@novell.com>
6005
6006         * ListView.cs : kill CanMultiSelect and refactor the selection
6007         code to support multiselection in the absence of mod keys. Steal
6008         arrow/home/end keys by overriding InternalPreProcessMessage to
6009         restore regressed keynav behavior.
6010         [Fixes #79416]
6011
6012 2006-09-29  Jackson Harper  <jackson@ximian.com>
6013
6014         * MdiClient.cs: Repaint the titlebars when the active window is
6015         changed.
6016
6017 2006-09-29  Chris Toshok  <toshok@ximian.com>
6018
6019         * Application.cs: when entering a runloop with a modal, make sure
6020         the hwnd is enabled.  Fixes #79480.
6021
6022 2006-09-29  Chris Toshok  <toshok@ximian.com>
6023
6024         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
6025         when ListManager.CanAddRows == false, bump us back one.
6026
6027         * DataGridColumnStyle.cs (ParentReadOnly): remove the
6028         listmanager.CanAddRows check.  This makes ArrayLists uneditable
6029         using a datagrid, which is not right.
6030         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
6031         is an IEditable, but call property_descriptor.SetValue regardless.
6032         fixes #79435.
6033
6034 2006-09-29  Chris Toshok  <toshok@ximian.com>
6035
6036         * DataGridBoolColumn.cs: we need to test equality in the face of
6037         possible null values (as is the case with the default NullValue).
6038         This patch keeps us from crashing in that case.
6039
6040 2006-09-29  Jackson Harper  <jackson@ximian.com>
6041
6042         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
6043         here, since it will get called for every node collection in the
6044         tree. This is now done in the treeview once the sorting is
6045         finished.
6046         * TreeView.cs: Recalculate the visible order, and update the
6047         scrollbars after sorting, set the top nope to the root so that the
6048         recalc actually works.
6049
6050 2006-09-29  Chris Toshok  <toshok@ximian.com>
6051
6052         * LinkLabel.cs: more handling of the default link collection in
6053         the face of LinkArea manipulation.  The default link collection
6054         contains 1 element (start=0,length=-1).  If the user sets LinkArea
6055         to anything and the links collection is the default, clear it.
6056         Then only add the link if its nonempty.  Fixes #79518.
6057
6058 2006-09-29  Chris Toshok  <toshok@ximian.com>
6059
6060         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
6061         piece correctly when we hit a '\n'.  Fixes #79517.
6062
6063 2006-09-29  Chris Toshok  <toshok@ximian.com>
6064
6065         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
6066         change the binding of gdk_init_check to take two IntPtr's, and
6067         pass IntPtr.Zero for both of them.  Fixes #79520.
6068
6069 2006-09-29  Mike Kestner  <mkestner@novell.com>
6070
6071         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6072         [Fixes #78779]
6073
6074 2006-09-28  Jackson Harper  <jackson@ximian.com>
6075
6076         * XplatUIX11.cs: When translating NC messages make sure we go from
6077         whole window to screen, not client window to screen.
6078         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6079         method doesn't exist
6080         - Skip over controls that aren't forms when arranging.
6081
6082 2006-09-28  Jackson Harper  <jackson@ximian.com>
6083
6084         * XplatUIWin32.cs: Clip the rect to the parent window.
6085         * XplatUIStructs.cs: Add clipping modes struct.
6086         * InternalWindowManager.cs: New private method that factors title
6087         bar heights in when calculating the pos of an NC mouse message.
6088         - Use SendMessage to force a paint when the form's size is changed
6089         instead of painting the decorations immediately.
6090         - Don't let the NC button click messages get to DefWndProc,
6091         because they will attempt to handle windowing themself, and this
6092         messes up z-order (it will put them in front of the scrollbars).
6093         * XplatUIX11.cs: Make sure that we don't reset window managers if
6094         we already have one (ie the window is an MDI window).
6095
6096 2006-09-28  Chris Toshok  <toshok@ximian.com>
6097
6098         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6099         menu code really needs going over.
6100
6101 2006-09-27  Chris Toshok  <toshok@ximian.com>
6102
6103         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6104         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6105         window is maximizable.  So, we need to make sure that even if we
6106         clear the border/wm frame of those functions, they're still
6107         available (basically, we remove the decoration without removing
6108         the function).  Half the fix for #79338.
6109
6110 2006-09-27  Chris Toshok  <toshok@ximian.com>
6111
6112         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6113         Fixes bug #79515.
6114
6115 2006-09-27  Chris Toshok  <toshok@ximian.com>
6116
6117         * Splitter.cs: reorder things a bit so that we don't actually
6118         draw/move the splitter until after calling OnSplitterMoving.  This
6119         lets users cancel/disallow the movement by explicitly setting
6120         event.SplitX/SplitY.  Fixes #79372.
6121
6122 2006-09-27  Jackson Harper  <jackson@ximian.com>
6123
6124         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6125         because it is most likely on a window being destroyed, and that
6126         will give us an X11 error.
6127
6128 2006-09-27  Chris Toshok  <toshok@ximian.com>
6129
6130         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6131         the dropdown button now toggles between showing and hiding the
6132         dropdown.  Also, get rid of dropdown_form_showing and just use
6133         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6134         that part to someone who has handled Capture-fu before.
6135
6136 2006-09-27  Chris Toshok  <toshok@ximian.com>
6137
6138         * DataGrid.cs: return false if alt isn't pressed when '0' is
6139         pressed.  this keeps the '0' key from being swallowed, and fixes
6140         bug #79350.
6141
6142 2006-09-27  Chris Toshok  <toshok@ximian.com>
6143
6144         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6145         Calling Refresh (in response to a scrollbar event) screws up the
6146         scrollbar painting.  Fixes bug #78923.
6147
6148 2006-09-27  Chris Toshok  <toshok@ximian.com>
6149
6150         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6151         then insert into hashtable" blocks threadsafe.
6152
6153 2006-09-27  Chris Toshok  <toshok@ximian.com>
6154
6155         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6156         baseclass's, since otherwise the
6157         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6158         effect.  This gets the close button back in messageboxes.
6159
6160 2006-09-27  Chris Toshok  <toshok@ximian.com>
6161
6162         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6163         flag, not just != 0.  this makes flags that are actually multiple
6164         bits (like WS_CAPTION) work.  fixes bug #79508.
6165
6166 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6167
6168         * PageSetupDialog.cs: add support for getting and settings the 
6169         paper size, source and orientation.
6170
6171 2006-09-26  Chris Toshok  <toshok@ximian.com>
6172
6173         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6174         and caption == "", we need to remove the resize handles as well as
6175         the title bar.
6176
6177         * Control.cs (set_Text): turns out that setting Text on a form
6178         should change the WM styles on the window, since if ControlBox ==
6179         false, the only way to get a window border is to have a non-""
6180         Text property.  check winforms/forms/text.cs for an example.  so,
6181         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6182         update both window styles and title.  This fixes a lot of dialogs
6183         (including the preferences dialog in MonoCalendar.)
6184
6185 2006-09-26  Chris Toshok  <toshok@ximian.com>
6186
6187         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6188         control isn't a Form), call Win32ShowWindow to hide the window,
6189         but don't update the control Visible property.  When we reparent
6190         back to a parent control, call SetVisible in order for the
6191         window's visibility to be reinstated.
6192
6193         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6194         the FosterParent.
6195
6196         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6197         call for good, since it breaks MonoCalendar (and other things I'm
6198         sure.) Also, set all_controls to null *after* the owner calls,
6199         which end up regenerating it.
6200         (ChangeParent): allow new_parent to be == null, passing
6201         IntPtr.Zero down to XplatUI.
6202
6203         this fixes #79294 the right way.
6204
6205 2006-09-26  Mike Kestner  <mkestner@novell.com>
6206
6207         * GridEntry.cs : internal SetParent method.
6208         * PropertyGrid.cs : attach to property changed on the proper
6209         target if we have a hierarchical grid with subobjects. Setup
6210         GridItem.Parent for hierarchical items.
6211         * PropertyGridView.cs : Set value on the correct target for
6212         hierarchical grids. [Fixes #78903]
6213
6214 2006-09-26  Chris Toshok  <toshok@ximian.com>
6215
6216         * Control.cs (ChildNeedsRecreating): this should return true if
6217         either we're being recreated and the child is in our list, or our
6218         parent is waiting for our recreation.
6219
6220 2006-09-26  Chris Toshok  <toshok@ximian.com>
6221
6222         * Control.cs (ControlCollection.Remove): reinstate the
6223         value.Hide() call as suggested in bug #79294.
6224
6225 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6226
6227         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6228         coordinates (versus a relative move).
6229
6230 2006-09-26  Chris Toshok  <toshok@ximian.com>
6231
6232         * Control.cs: rework child recreation a little bit.  It turns out
6233         that we race between the DestroyNotify the WM_DESTROY message.  If
6234         the parent gets its DestroyNotify before the child gets the
6235         WM_DESTROY message, the child ends up not recreating (since the
6236         parent finishes its recreation on DestroyNotify, and the child
6237         checks ParentIsRecreating.)
6238
6239         So, instead we store off a list of all the child controls which
6240         need to be recreated when the parent control starts to recreate
6241         itself.  Then, when child controls get their WM_DESTROY message we
6242         check to see if they're in the parent's pending recreation list,
6243         and if so, we recreate.  This removes all dependency on ordering
6244         from the code and fixes the initial MonoCalendar upgrade dialog.
6245         
6246 2006-09-26  Jackson Harper  <jackson@ximian.com>
6247
6248         * TextControl.cs: Use the Line to get the length of the line,
6249         since soft line breaks can change the end line.
6250
6251 2006-09-26  Chris Toshok  <toshok@ximian.com>
6252
6253         * Control.cs (ControlCollection.AddImplicit): don't add the
6254         control again if it's already in one of our lists.  This keeps us
6255         from adding controls over and over again for comboboxes when their
6256         handle gets recreated (as the combobox adds implicit controls in
6257         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6258
6259 2006-09-26  Jackson Harper  <jackson@ximian.com>
6260
6261         * TextControl.cs: When deleting characters make sure that any
6262         orphaned zero lengthed tags get deleted.
6263         - Fix ToString for zero lengthed tags.
6264
6265 2006-09-25  Jackson Harper  <jackson@ximian.com>
6266
6267         * TextControl.cs: When getting a tag at the location there can be
6268         multiple tags at the same spot, these are 0-lengthed tags that
6269         appear when extra formatting has been stuck in a location.  We
6270         need to pull out the last of these 0 lengthed tags.
6271
6272 2006-09-25  Jackson Harper  <jackson@ximian.com>
6273
6274         * TextControl.cs: Fix print out in debug method.
6275         * TextBoxBase.cs: When text is set bail if we are setting to the
6276         previous value.
6277         
6278 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6279
6280         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6281           It is now possible to change the selected index in a FontXXXListBox
6282           with the up and down arrow keys from the FontXXXTextBoxes.
6283           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6284           FontXXXListBoxes to match ms.
6285
6286 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6287
6288         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6289         anyone can dispose it, anytime. All other properties returns enums, 
6290         structs or basic types so they don't need such tricks.
6291
6292 2006-09-22  Jackson Harper  <jackson@ximian.com>
6293
6294         * XplatUI.cs:
6295         * XplatUIWin32.cs:
6296         * Clipboard.cs:
6297         * DataFormats.cs:
6298         * XplatUIOSX.cs:
6299         * XplatUIDriver.cs: Update interface to add a primary selection
6300         flag, so the driver can use the primary selection buffer if
6301         needed.
6302         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6303
6304         * RichTextBox.cs: We need to supply the data object to paste now
6305         (so we can choose to supply CLIPBOARD or PRIMARY).
6306         * TextBoxBase.cs: Supply data object to paste (see above).
6307         - Middle click uses the primary selection data object.
6308         
6309 2006-09-21  Chris Toshok  <toshok@ximian.com>
6310
6311         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6312         of SetWMStyles.  It's still a rat's nest and is largely
6313         order-dependent which I dislike immensely.  This also fixes the X
6314         button disappearing from toplevel forms.
6315
6316 2006-09-21  Mike Kestner <mkestner@novell.com>
6317
6318         * ListBox.cs: move Jordi's click/dblclick raising code to the
6319         mouse up handler.
6320
6321 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6322
6323         * ListBox.cs: Fixes 79450
6324
6325 2006-09-21  Mike Kestner <mkestner@novell.com>
6326
6327         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6328         to deal with people updating the TreeNodeCollection after the tree
6329         is disposed.  "Fixes" 79330.
6330
6331 2006-09-20  Jackson Harper <jackson@ximian.com>
6332
6333         * TextControl.cs: Push the cursor record onto the undo stack
6334         before the delete action. This fixes 78651.
6335
6336 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6337
6338         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6339         CreateParams. Fixes 79329.
6340
6341 2006-09-19  Chris Toshok  <toshok@ximian.com>
6342
6343         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6344         things up a bit.  First, get rid of the NetAtoms array (and the NA
6345         enum), and just embed the atoms as static fields.  Also, add a
6346         couple of functions (StyleSet and ExStyleSet) to clean up all the
6347         bitmask testing of styles.
6348
6349         * X11Structs.cs: remove the NA enum, not needed anymore.
6350         
6351 2006-09-19  Chris Toshok  <toshok@ximian.com>
6352
6353         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6354         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6355         added cleanup to get MessageBox titles appearing again, which were
6356         broken by my earlier fix for caption-less/ControlBox-less windows.
6357
6358 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6359
6360         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6361           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6362           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6363           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6364           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6365           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6366           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6367           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6368           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6369           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6370           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6371             Inital import.
6372         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6373           ToolStripButton.cs: Stubs needed for above.
6374         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6375
6376 2006-09-15  Chris Toshok  <toshok@ximian.com>
6377
6378         * XplatUIX11.cs:
6379         - make the MessageQueues hashtable Synchronized.
6380         
6381         - SendMessage: if the Hwnd is owned by a different thread, use the
6382         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6383         thread.  Fixes bug #79201.
6384
6385 2006-09-15  Chris Toshok  <toshok@ximian.com>
6386
6387         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6388         ControlBox == false, we disallow maximize/minimize/close.  If the
6389         form Caption is "" we also disallow move (and get rid of the Title
6390         decoration).  Unfortunately, regardless of how things are set,
6391         we're stuck with the Title and WM menu.
6392
6393 2006-09-15  Chris Toshok  <toshok@ximian.com>
6394
6395         * Application.cs: add locking around the static message_filters
6396         ArrayList, part of #79196.
6397
6398 2006-09-15  Chris Toshok  <toshok@ximian.com>
6399
6400         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6401         Form.ControlBox == false, the window has no titlebar nor resize
6402         handles.  fixes bug #79368.
6403
6404 2006-09-15  Chris Toshok  <toshok@ximian.com>
6405
6406         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6407         >= 0.  Fixes bug #79370.
6408
6409 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6410         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6411         * Control.cs:
6412             Add properties: LayoutEngine, Margin, DefaultMargin.
6413             Add method: GetPreferredSize.
6414             Move layout logic from PerformLayout to layout engines. 
6415
6416 2006-09-13  Chris Toshok  <toshok@ximian.com>
6417
6418         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6419         fix for #79326 broke #78718, so this change addresses that.
6420
6421         - in SendWMDestroyMessages remove the call to
6422         CleanupCachedWindows, since we might be recreating the control and
6423         need to maintain the references to right Hwnd handles.  Also, set
6424         the zombie flag to true for each of the children in the hierarchy
6425         instead of calling hwnd.Dispose.  This will cause GetMessage to
6426         ignore all events for the window except for DestroyNotify.
6427
6428         - In GetMessage, ignore messages except for DestroyNotify for
6429         zombie hwnds.
6430         
6431         * Control.cs: revert the is_recreating fix from the last
6432         ChangeLog.  It's definitely "right", but it breaks switching from
6433         an MDI form to a non-MDI form.  Will need to revisit that.
6434
6435         * Hwnd.cs: add a zombie flag, which means "the
6436         client_window/whole_window handles are invalid, but we're waiting
6437         for the DestroyNotify event to come in for them".  Set the flag to
6438         false explicitly if setting WholeWindow/ClientWindow, and also
6439         when Disposing.
6440         
6441 2006-09-13  Chris Toshok  <toshok@ximian.com>
6442
6443         * XplatUIX11.cs: rework window destruction slightly.
6444
6445         - when destroying the windows associated with a control, we don't
6446         need 2 separate XDestroyWindow calls.  Just the one for the
6447         whole_window (or for client_window if whole_window is somehow
6448         IntPtr.Zero -- can this happen?) is enough.
6449
6450         - reworked SendWMDestroyMessages slightly, so we always dispose
6451         the child control hwnd's after sending the messages.
6452         
6453         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6454         the two places it was used (one was even using hwnd.Handle and the
6455         other hwnd.client_window.  ugh), adding another call in
6456         SendWMDestroyMessages.  We need this new call because now the
6457         DestroyNotify events in the queue will be ignored for the child
6458         controls (as their hwnd's were disposed, and the window id's
6459         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6460
6461         - this fixes bug #79326.
6462
6463 2006-09-13  Chris Toshok  <toshok@ximian.com>
6464
6465         * Control.cs: don't always set is_recreating to false at the end
6466         of RecreateHandle, since sometimes we're not done (and won't be
6467         until WndProc handles the WM_DESTROY message).  Also, set
6468         is_recreating to false in the WM_DESTROY handling code.  Part of
6469         the fix for bug #79326.
6470
6471 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6472
6473         * X11DesktopColors.cs: Start the droppage of debugging messages.
6474
6475         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6476
6477 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6478
6479         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6480
6481 2006-09-12  Chris Toshok  <toshok@ximian.com>
6482
6483         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6484         to create it using SetDataSource.  Fixes bug #79151.
6485
6486 2006-09-11  Chris Toshok  <toshok@ximian.com>
6487
6488         * XEventQueue.cs: add a DispatchIdle property.
6489
6490         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6491         either the queue is null, or the queue has DispatchIdle set to
6492         true.
6493         (DoEvents): set queue.DispatchIdle to false around the
6494         peek/translate/dispatch message loop in this method.  This keeps
6495         Application.Doevents from emitting idle events.  Part of the fix
6496         for #78823.
6497
6498 2006-09-11  Chris Toshok  <toshok@ximian.com>
6499
6500         * DataGrid.cs (set_DataSource): make this work for both the
6501         winforms/datagrid test and ReportBuilder.  It seems as though when
6502         we've created a ListManager (or maybe it's if we have a
6503         BindingContext?), when we set the DataSource it clears the
6504         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6505         #79333.
6506
6507 2006-09-11  Chris Toshok  <toshok@ximian.com>
6508
6509         * XplatUIX11.cs: deal with queue being null, which happens in all
6510         the Clipboard functions.  Fixes one of the two problems mentioned
6511         in #78612.
6512
6513 2006-09-11  Chris Toshok  <toshok@ximian.com>
6514
6515         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6516         button on various spots (including outside the menu) works closer
6517         to MS, and doesn't crash.  Fixes #79343.
6518
6519 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6520
6521         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6522         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6523         and the internal comparer is set. When a new ListViewItemSorter is set,
6524         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6525         was specified. No further processing is necessary if SortOrder is set
6526         to it's current value. If Sorting is modified to None, and View is
6527         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6528         (either custom or our internal ItemComparer) to null, on 1.0 profile
6529         only set item_sorter to null if its our internal IComparer. If Sorting
6530         is modified to Ascending or Descending, then use our internal IComparer
6531         if none is set, and if the current IComparer is our internal one then:
6532         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6533         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6534         Enum.IsDefined to verify whether a valid View value is specified in
6535         its setter. Automatically sort listview items when listview is
6536         created. In Sort, do nothing if ListView is not yet created, or if
6537         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6538         to None or ListViewItemSorter was set to null). Added Sort overload
6539         taking a bool to indicate whether the ListView should be redrawn when
6540         items are sorted (we use this in ListViewItemCollection to avoid double
6541         redraws). Modified our internal IComparer to take the sort order into
6542         account. In Add and AddRange methods of ListViewItemCollection, also
6543         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6544         view), but use overload with noredraw option to avoid double redraw.
6545         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6546         true when View is Tile, and do the same when attempting to set View to
6547         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6548         for selected/checked indices, as it involves overhead when sorting is
6549         done while these collections are not used all that often. Instead
6550         we'll build the indices on demand. Modified IList implementation of
6551         CheckedIndexCollection to use public methods if object is int.
6552         Modified CheckedListViewItemCollection to hide checked items if
6553         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6554         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6555         IList implementation in SelectedIndexCollection to use public methods
6556         if object is int. Modified SelectedListViewItemCollection to hide
6557         selected items if listview is not yet created.
6558         * ListViewItem.cs: CheckedIndices list no longer needs to be
6559         maintained separately (see ListView changes). Also clone font, fixes
6560         test failure.
6561
6562 2006-09-11  Mike Kestner  <mkestner@novell.com>
6563
6564         * ComboBox.cs: if we are updating the contents of the currently
6565         selected index, refresh the control or the textbox selection.
6566         [Fixes #79066]
6567
6568 2006-09-11  Mike Kestner  <mkestner@novell.com>
6569
6570         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6571         the 'specified' logic has been moved there.  This seems like a bug 
6572         in Control.cs, since our current SetBoundsCore completely ignores 
6573         the specified parameter.  Peter's commit seems to indicate that is 
6574         the way the MS control implementation works.  [Fixes #79325]
6575
6576 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6577
6578         * XplatUI.cs: Set default_class_name to be composed
6579         of current domain id. This allows MWF to be loaded in multiple
6580         domains on Win32.
6581
6582 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6583
6584         * X11Keyboard.cs: If we are unable to obtain the input method, do
6585         not call CreateXic to create the input context.   Should fix
6586         #78944/79276.
6587
6588 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6589
6590         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6591           Simplified gnome support by adding more pinvokes to get the
6592           icon for a file or mime type.
6593
6594 2006-09-08  Jackson Harper  <jackson@ximian.com>
6595
6596         * MenuAPI.cs: Deslect popup context menu items before closing the
6597         window, so that you don't see the previously selected item
6598         selected when you reopen the menu.
6599         * TextControl.cs: Update the cursor position even if we don't have
6600         focus.  This fixes typing in things like the ComboBox.  I'm not
6601         totally sure we should always set the visibility if we don't have
6602         focus, but couldn't find any corner cases where the cursor showed
6603         up when it shouldn't.
6604
6605 2006-09-08  Chris Toshok  <toshok@ximian.com>
6606
6607         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6608         our arrays are length 256.  & 0xff before indexing.  Fixes the
6609         crash in bug #78077.
6610         
6611 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6612
6613         * ThemeWin32Classic.cs: 
6614         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6615         is true. Handle that check box too.
6616
6617 2006-09-07  Chris Toshok  <toshok@ximian.com>
6618
6619         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6620         79244.
6621
6622 2006-09-07  Chris Toshok  <toshok@ximian.com>
6623
6624         * Control.cs: in set_BackColor only do the work if
6625         background_color != value.
6626
6627         * XplatUIX11.cs: move the clearing of invalid areas (both client
6628         and nc) to the same block of code where we set (nc_)expose_pending
6629         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6630         so things that cause invalidates from within OnPaint will trigger
6631         another call to OnPaint.  Fixes bug #79262.
6632
6633 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6634
6635         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6636         * FileDialog.cs: Fix typo
6637
6638 2006-09-07  Jackson Harper  <jackson@ximian.com>
6639
6640         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6641         for tab pages if they have any.
6642
6643 2006-09-06  Mike Kestner  <mkestner@novell.com>
6644
6645         * Splitter.cs: use the "current" rect when finishing drag handle
6646         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6647
6648 2006-09-06  Mike Kestner  <mkestner@novell.com>
6649
6650         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6651         support offset splitters. [Fixes #79298]
6652
6653 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6654
6655         * Mime.cs: Fixed a bug that could override the global mime type
6656           result.
6657
6658 2006-09-05  Jackson Harper  <jackson@ximian.com>
6659
6660         * TabControl.cs: Better calculation method for setting the slider
6661         pos. Prevents crashes on really wide tabs.
6662         - Draw Image on tab pages if an image list is used.
6663
6664 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6665
6666         * MonthCalendar.cs: When Font changes, the Size should be
6667         updated to fit the new font's space requirements.
6668
6669 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6670
6671         * ListBox.cs: If the items are cleared with Items.Clear set
6672           top_index to 0.
6673
6674 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6675
6676         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6677         fire DateChanged event instead of DateSelected event when
6678         the date was changed by keyboard interaction.
6679
6680 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6681
6682         * DateTimePicker.cs: Handle DateChanged for the associated
6683         month_calendar control, and set month_calendar.Font from 
6684         OnFontChanged method, as well as resize the height of the
6685         control when needed. Make PreferredHeight proportional.
6686
6687 2006-09-01  Chris Toshok  <toshok@ximian.com>
6688
6689         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6690         properties.
6691
6692         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6693
6694 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6695
6696         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6697           for decorations (Fixes #79219)
6698
6699 2006-09-01  Mike Kestner  <mkestner@novell.com>
6700
6701         * ComboBox.cs: first stab at sorting plus some selection handling
6702         fixes to bring us more in line with MS behavior.  Also switches back
6703         to index based selection.  Alternative patches for index-based 
6704         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
6705         and latency@gmx.de on bug 78848.  I assume they were similar to this
6706         code I've had simmering in my tree forever.
6707         [Fixes #78848]
6708
6709 2006-09-01  Chris Toshok  <toshok@ximian.com>
6710
6711         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
6712         when setting list position guard against ending up with a -1 index
6713         (the other part of the fix for #78812).  Should probably make sure
6714         we don't need the analogous fix in the ItemDeleted case.
6715
6716         * DataGrid.cs:
6717         - in SetDataSource, work around the fact that the way
6718         OnBindingContextChanged is invoked will cause us to re-enter this
6719         method.  I'll remove the hack once I investigate
6720         OnBindingContextChanged.
6721
6722         - fix the logic in set_DataSource and set_DataMember (basically
6723         what to do if the other of the two is null.)
6724         
6725         - in OnListManagerItemChanged, we need to take into account the
6726         edit row when deciding whether or not to call RecreateDataGridRows
6727         (part of the fix for #78812).
6728
6729 2006-09-01  Jackson Harper  <jackson@ximian.com>
6730
6731         * Splitter.cs: Don't do anything if there is no control to affect
6732         (prevents us from crashing in weird tet cases).
6733         * TreeView.cs: Bounding box for the mouse movement reverting
6734         focus/selection back to previously selected node.  This matches
6735         MS, and makes the tree a lot more useable.
6736         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
6737         use clipping so they are not drawn.  This fixes when the control
6738         is set to have a transparent background, or if it was over an
6739         image.
6740
6741 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
6742
6743         * MimeIcon.cs: Improved handling for reading default icons when
6744           using gnome (2.16 made it necessary). Check and read svg icons
6745           first, then 48x48 and then 32x32 icons.
6746
6747 2006-08-31  Chris Toshok  <toshok@ximian.com>
6748
6749         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
6750         visible.
6751
6752         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
6753         ProcessKeyPreview.  Fixes part of #77806.
6754
6755         * DataGrid.cs: big patch.
6756
6757         - revert the queueing up of DataSource/DataMember if inside
6758         BeginInit/EndInit calls.  That's not the way the datagrid achieves
6759         its delayed databinding.  Instead, call SetDataSource in
6760         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
6761         #78811.
6762
6763         - Also, it wasn't mentioned in #78811, but the test case exhibits
6764         behavior that was lacking in our datagrid implementation - Columns
6765         that have mapping names that don't exist in the datasource's
6766         properties aren't shown.  Yuck.  To fix this I added the bound
6767         field to the column style, and basically any calculation to figure
6768         out anything about columns uses a loop to find the bound columns.
6769         still need to investigate if I can cache an array of the bound
6770         columns or if the indices must be the same.
6771
6772         - When setting CurrentCell, we no longer abort if the cell being
6773         edited was in the add row.  This fixes the other part of #77806.
6774
6775         - The new code also fixes #78807.
6776         
6777         * ThemeWin32Classic.cs: perpetrate the same disgusting
6778         column.bound field hack, and only render bound fields.
6779
6780 2006-08-31  Chris Toshok  <toshok@ximian.com>
6781
6782         * DataGridColumnStyle.cs: add bound field.  this field is true if
6783         the datasource has a property corresponding to the mapping name.
6784
6785         * DataGridTableStyle.cs: set the bound field on the column styles
6786         depending on whether or not we have a column for that property.
6787
6788 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
6789
6790         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
6791           splitter control (fixes #79228)
6792
6793 2006-08-31  Chris Toshok  <toshok@ximian.com>
6794
6795         * DataGridColumnStyle.cs: we need to delay the assignment of
6796         property descriptor until the last possible moment due to the lazy
6797         databinding stuff in the datagrid.  Also, fix the exceptions
6798         thrown by CheckValidDataSource to match MS.
6799
6800 2006-08-31  Jackson Harper  <jackson@ximian.com>
6801
6802         * Form.cs: When activated select the active control, if there is
6803         no active control, we select the first control.
6804         * XplatUIX11.cs: If there is no focus control when we get a
6805         FocusIn event, find the toplevel form and activate it.  This
6806         occurs when you popup a window, it becomes the focus window, then
6807         you close that window, giving focus back to the main window.
6808
6809 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6810
6811         * MonthCalendar.cs: 
6812         * ThemeWin32Classic.cs: Cache Font in bold style, as well
6813         as StringFormat with Center alignments in MonthCalendar,
6814         instead of creating new ones when drawing the control. 
6815         Also, draw the month name in bold style.
6816
6817 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
6818
6819         * Control.cs:
6820           - PerformLayout(): It would seem MS performs the fill even if the 
6821             control is not visible (part of #79218 fix)
6822           - ResetBackColor(): Use the setter to reset the color, to allow
6823             overriders to catch the change.
6824         * Form.cs:
6825           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
6826           - CreateHandle(): dito (part of $79218 fix)
6827           - Don't set an icon if we have a dialog
6828         * ScrollableControl.cs:
6829           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
6830           - ScrollIntoView(): No need to scroll if control is already visible
6831             (resolves fixme and fixes #79218)
6832
6833 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6834
6835         * MonthCalendar.cs: Change proportions in SingleMonthSize
6836         to match the aspect of the original control.
6837
6838 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
6839
6840         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
6841           get updated when they get maximized.
6842
6843 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
6844
6845         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
6846
6847 2006-08-29  Chris Toshok  <toshok@ximian.com>
6848
6849         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
6850
6851 2006-08-29  Jackson Harper  <jackson@ximian.com>
6852
6853         * TreeView.cs: Need to track selected node and highlighted node,
6854         they aren't always the same thing, when the mouse is down on a
6855         node it is hilighted, but not selected yet.
6856         - Do the HideSelection stuff right
6857         - Need to focus on rbutton mouse down. And redraw selection when
6858         right click is mouse upped.
6859
6860 2006-08-29  Mike Kestner  <mkestner@novell.com>
6861
6862         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
6863         when SubItems.Count < Columns.Count.  [Fixes #79167]
6864
6865 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
6866
6867         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
6868
6869 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
6870
6871         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
6872           from X. Only send based on ConfigureNotify if we don't have the
6873           correct location in hwnd (if the window manager moved us)
6874
6875 2006-08-28  Mike Kestner  <mkestner@novell.com>
6876
6877         * ListView.cs: remove a TODO. 
6878         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
6879         [Fixes ListView part of #79166]
6880
6881 2006-08-28  Mike Kestner  <mkestner@novell.com>
6882
6883         * ListView.cs: move wheel handler to parent since it is focused
6884         instead of the item_control now.  [Fixes #79177]
6885
6886 2006-08-28  Mike Kestner  <mkestner@novell.com>
6887
6888         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
6889         when the control is focused. [Fixes #79171]
6890
6891 2006-08-28  Mike Kestner  <mkestner@novell.com>
6892
6893         * ListView.cs: size the item and header controls for empty and
6894         unscrollable views.
6895         * ThemeWin32Classic.cs: draw disabled backgrounds.
6896         [Fixes #79187]
6897
6898 2006-08-28  Chris Toshok  <toshok@ximian.com>
6899
6900         * Form.cs: remove unused "active_form" static field.
6901
6902         * Hwnd.cs: lock around accesses to static windows collection.
6903
6904         * Application.cs: lock threads in Exit ().
6905
6906 2006-08-28  Chris Toshok  <toshok@ximian.com>
6907
6908         * NativeWindow.cs: lock around accesses to window_collection.
6909         
6910 2006-08-28  Chris Toshok  <toshok@ximian.com>
6911
6912         * Control.cs: err, fix this the right way, by locking on controls
6913         when using it.  not by making it synchronized.
6914
6915 2006-08-28  Chris Toshok  <toshok@ximian.com>
6916
6917         * Control.cs: make the static "controls" field synchronized, as it
6918         gets updated from multiple threads.
6919
6920 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6921
6922         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
6923           Prevent other threads from exiting when calling thread sets quit state.
6924         * XEventQueue.cs: Added PostQuitState property
6925
6926 2006-08-27  Chris Toshok  <toshok@ximian.com>
6927
6928         * AsyncMethodData.cs: add a slot for the window handle.
6929
6930         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
6931         window (the destination control's window, not the foster window).
6932
6933         * Control.cs (BeginInvokeInternal): store the window's handle in
6934         the AsyncMethodData.
6935         
6936
6937 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
6938
6939         * XplatUIX11.cs:
6940           - PostQuitMessage: Removed resetting S.D display handle, we might have
6941             another loop started after calling PostQuitMessage (Fixes #79119)
6942           - Created destructor to reset S.D handle
6943
6944 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
6945
6946         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
6947
6948 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6949
6950         * TextControl.cs (Insert): Update the caret position even if we don't
6951           have a handle yet, just don't call the driver in that case.
6952         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
6953           to the end of the new selection text (Fixes #79184)
6954
6955 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6956
6957         * Form.cs (Activate): Only activate if the handle is created)
6958         * Control.c:
6959           - Mark window as invisible when it's disposed
6960           - Check if window handle is created when setting window visible, 
6961             instead of relying just on the is_created variable
6962           - Check if object is disposed when creating the control (Fixes #79155)
6963
6964 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6965
6966         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
6967           when allowing layout again. Otherwise we re-generate the anchoring 
6968           distance to the border again and actually alter what the user wanted
6969           This is ugly, it'd be better if we used DisplayRectangle instead of
6970           ClientRectangle for Control.UpdateDistances, but that causes us to
6971           have other problems (initial anchoring positons would be wrong)
6972           (Fixes #78835)
6973
6974 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
6975
6976         * Control.cs:
6977           - The size and location setters shouldn't go directly to 
6978             SetBoundsCore, but to SetBounds, which triggers layout on the
6979             parent, then calls SetBoundsCore. (Related to fix for #78835)
6980           - SetBounds: Moved actual location update code into this function
6981             from SetBoundsCore, to match MS. Added call to PerformLayout if
6982             we have a parent (to trigger resizing of anchored parents if the 
6983             child size has changed (see testcase for #78835) 
6984         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
6985           new control code
6986         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
6987
6988 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
6989
6990         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
6991           System.Drawing when a toplevel window gets closed; there might
6992           be other toplevel windows belonging to the same app (Fixes #78052)
6993
6994 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
6995
6996         * FileDialog.cs: After reading FileDialog settings from mwf_config
6997           use Desktop prefix only if a real folder doesn't exist anymore.
6998         * FontDialog.cs: Added char sets.
6999           It is now possible to select the font, size or style with the
7000           textboxes.
7001
7002 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
7003
7004         * PrintPreviewDialog.cs: Use assembly name constants.
7005
7006 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7007
7008         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
7009           scrollbar from whacking it's buttons)
7010
7011 2006-08-24  Chris Toshok  <toshok@ximian.com>
7012
7013         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
7014         in this patch (aggregating setting Left/Top/Width/Height to
7015         setting Bounds on the scrollbars), but the crux of the fix is in
7016         Recalculate, where we scroll by the remaining scroll_position if
7017         we're hiding a scrollbar.  The 2*$5 reward in the comment is
7018         serious.
7019
7020 2006-08-24  Jackson Harper  <jackson@ximian.com>
7021
7022         * MdiClient.cs:
7023         * MdiWindowManager.cs: If the form is made a non-mdi window we
7024         need to remove the form closed event so that closing forms works
7025         correctly.
7026
7027 2006-08-24  Jackson Harper  <jackson@ximian.com>
7028
7029         * Control.cs: Make IsRecreating internal so that the driver can
7030         check it
7031         - Temporarily remove the Hide when controls are removed, its
7032         making a whole bunch of things not work because visibility isn't
7033         getting reset elsewhere correctly
7034         * Form.cs: Need to do a full handle recreation when the mdi parent
7035         is set.
7036         * XplatUIX11.cs: If we are recreating handles don't dispose the
7037         HWNDs.  What was happening is the handles were being recreated in
7038         SendWMDestroyMessages, but then flow continued on in that method
7039         and destroyed the new handles.
7040
7041 2006-08-23  Jackson Harper  <jackson@ximian.com>
7042
7043         * Form.cs: MdiClient is always at the back of the bus
7044         * Control.cs: When the order of items in the collection is changed
7045         we need to reset the all_controls array
7046         - do the same sorta setup thats done when adding a control when a
7047         control is set on the collection.
7048
7049 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7050
7051         * TextBoxBase.cs (get_Text): Return an empty array if our document
7052           is empty (fixes #79052)
7053
7054 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7055
7056         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
7057           on WM_SYSCHAR messages (fixes #79053)
7058
7059 2006-08-23  Chris Toshok  <toshok@ximian.com>
7060
7061         * DataGrid.cs: fix flickering when scrolling vertically.
7062
7063 2006-08-23  Chris Toshok  <toshok@ximian.com>
7064
7065         * DataGrid.cs (EndEdit): only invalidate the row header when we
7066         need to.
7067
7068 2006-08-23  Chris Toshok  <toshok@ximian.com>
7069
7070         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
7071         methods.  fixes the flicker when scrolling around.
7072
7073 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7074
7075         * FileDialog.cs: Making sure the control is created before we get a 
7076           chance to use it with BeginInvoke (Fixes #79096)
7077
7078 2006-08-23  Chris Toshok  <toshok@ximian.com>
7079
7080         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7081         width to use when painting the rows.
7082
7083 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7084
7085         * TextBoxBase.cs:
7086           - Throw ArgumentException if a negative value is passed to SelectionLength
7087           - Update the selection end if start is moved. end needs to be always
7088             after start. (Fixes #79095)
7089           - Track selection length; MS keeps the selection length even if start
7090             is changed; reset on all other operations affection selection
7091
7092 2006-08-22  Jackson Harper  <jackson@ximian.com>
7093
7094         * TreeView.cs: Make sure both scrollbars get displayed and sized
7095         correctly when the other bar is visible.
7096         - Use the original clip rectangle for checking if the area between
7097         the two scrollbars is visible, not the viewport adjusted clipping
7098         rectangle.
7099
7100 2006-08-22  Jackson Harper  <jackson@ximian.com>
7101
7102         * Binding.cs: We don't use IsBinding because it requires the
7103         control to be created, which really shouldn't be necessary just to
7104         set a property on the control.
7105
7106 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7107
7108         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7109         ArgumentNullReferenceException when the argument is null.
7110
7111 2006-08-21  Jackson Harper  <jackson@ximian.com>
7112
7113         * Timer.cs: Track the thread that the timer is started in (NOT
7114         CREATED), this way messages for it will only be triggered on its
7115         queue.
7116         * XEventQueue.cs: Track the timers here, this makes timers per
7117         thread, like MS.
7118         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7119
7120 2006-08-19  Chris Toshok  <toshok@ximian.com>
7121
7122         * XplatUIX11.cs: after further communication with pdb, we get the
7123         best of both worlds.  SetZOrder working for un-Mapped windows, and
7124         no X errors for un-mapped windows.
7125
7126 2006-08-19  Chris Toshok  <toshok@ximian.com>
7127
7128         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7129         as it was causing pdn toolbars to not have the correct stacking.
7130
7131 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7132
7133         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7134         calculation.  Not sure why control should ever be setting a negative
7135         width though.  Fixes #78931.
7136
7137 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7138
7139         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7140         null items in ObjectCollection class.
7141         * ListBox.cs.: Likewise.
7142
7143 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7144
7145         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7146           as the base method in ThemeWin32Classic should work fine.
7147           Fixed bug #78607.
7148
7149 2006-08-18  Jackson Harper  <jackson@ximian.com>
7150
7151         * Binding.cs: When validating if the value entered doesn't convert
7152         properly reset to the old value.
7153         * RadioButton.cs: Don't fire click when we get focus.
7154
7155 2006-08-18  Jackson Harper  <jackson@ximian.com>
7156
7157         * FileDialog.cs: Paint the selection on the directory combobox the
7158         same way as on MS. 
7159
7160 2006-08-17  Jackson Harper  <jackson@ximian.com>
7161
7162         * ErrorProvider.cs: Don't allow the error control to be selected.
7163         * Control.cs: Don't send the SetFocus messages, the control
7164         activation will do this, and if we do it blindly here validation
7165         does not work.
7166
7167 2006-08-17  Jackson Harper  <jackson@ximian.com>
7168
7169         * Control.cs:
7170         * ContainerControl.cs: Make validation events fire in the correct
7171         order.  TODO: For some reason the first validation event is not
7172         getting fired.
7173
7174 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7175
7176         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7177
7178 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7179
7180         * ComboBox.cs : implement scroll wheel support for popped-down
7181         state. Fixes #78945. 
7182
7183 2006-08-17  Jackson Harper  <jackson@ximian.com>
7184
7185         * TreeView.cs: Specify treeview actions (old patch that didn't get
7186         committed for some reason).
7187         - Don't let the mouse wheel scroll us too far.  Just want to make
7188         the bottom node visible, not scroll it all the ways to the top.
7189
7190 2006-08-17  Jackson Harper  <jackson@ximian.com>
7191
7192         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7193
7194 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7195
7196         * ComboBox.cs : don't do mouseover selection in simple mode.
7197
7198 2006-08-16  Jackson Harper  <jackson@ximian.com>
7199
7200         * Form.cs: Fire the closing events for all the mdi child windows
7201         when a window is closed.  If the cancel args are set to true, the
7202         main window still gets the event fired, but it doesn't not close.
7203         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7204         handler, instead of when the button is clicked, so cancelling the
7205         close works correctly.
7206         * ComboBox.cs: Send the mouse down to the scrollbar.
7207
7208 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7209
7210         * ListBox.cs: When passing 'null' to SelectedItem,
7211         set SelectedIndex to -1, to unselect items. This is the
7212         observed behaviour in .Net.
7213
7214 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7215
7216         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7217           MS flags saying there won't be any. (fixes #78800)
7218         * Control.cs (HandleClick): Made virtual
7219
7220 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7221
7222         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7223           cultures. Fixed bug #78399.
7224
7225 2006-08-16  Jackson Harper  <jackson@ximian.com>
7226
7227         * Form.cs: Use the MdiClients MdiChildren property to access
7228         MdiChildren instead of creating the array from the child controls.
7229         * MdiClient.cs: Maintain a separate array of the mdi children, so
7230         that insertion order is maintained when the Z-order is changed.
7231
7232 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7233
7234         * ListView.cs : add an ItemComparer and default to it for sorting.
7235         Fixes #79076, but sorting needs a complete overhaul to be compat with
7236         MS.
7237
7238 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7239
7240         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7241
7242 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7243
7244         * Hwnd.cs (Mapped): Properly traverse the tree
7245
7246 2006-08-15  Chris Toshok  <toshok@ximian.com>
7247
7248         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7249         pass manager.Current.GetType() to ParseData.  It has to be the
7250         property type.  So, hold off doing the ParseData until we're in
7251         SetPropertyValue where we know the type.  This fixes the crash in
7252         #78821 but the textbox is still empty.
7253
7254 2006-08-15  Chris Toshok  <toshok@ximian.com>
7255
7256         * DataGrid.cs:
7257         - when we're scrolling, only call Edit() again if the
7258         current cell is still unobscured. Fixes bug #78927.
7259         - when handling mousedown on a cell, ensure the cell is visible
7260         before calling Edit.
7261         - remove the properties from DataGridRow, and remove the
7262         DataGridParentRow class altogether.
7263         
7264
7265 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7266
7267         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7268           fire OnTextChanged by ourselves. There's no point calling base,
7269           we don't set the base value anywhere else. Fixes #78773.
7270
7271 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7272
7273         * ListBox.cs: Call CollectionChanged when modifying
7274         an item from Items indexer, to update the actual items
7275         in the list box.
7276
7277 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7278
7279         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7280         to match .Net behaviour.
7281
7282 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7283
7284         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7285
7286 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7287
7288         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7289
7290 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7291
7292         * MessageBox.cs: Prevent potential NRE exception.
7293         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7294
7295 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7296
7297         * MessageBox.cs: Calculate the owner of a messagebox, also make
7298           it topmost. Fixes #78753
7299
7300 2006-08-14  Chris Toshok  <toshok@ximian.com>
7301
7302         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7303         programmatically move windows.  first, set the PPosition hint as
7304         well as the USPosition hint.  Second include some code from pdb
7305         that sets the window type to NORMAL when we set the transient for
7306         hint.  This is because, in the absence of a window type, metacity
7307         thinks any window with TransientFor set is a dialog, and refuses
7308         to let us move it programmatically.  fascists.
7309
7310 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7311
7312         * XplatUIX11.cs: When setting normal hints, take into consideration
7313           an different hints previously set so we don't delete them (fixes #78866)
7314
7315 2006-08-12  Chris Toshok  <toshok@ximian.com>
7316
7317         * ToolBarButton.cs: make Layout return a boolean, if something to
7318         do with the button's layout changed.
7319
7320         * ToolBar.cs:
7321         - add another parameter to Redraw, @force, which all existing
7322           calls set to true.
7323         - make the Layout function return a boolean which is true if the
7324           layout has actually changed.  Redraw now uses this (and @force)
7325           to determine when to invalidate.  At present the only place
7326           where @force can be false is the call from OnResize, when
7327           background_image == null.  So, resizing a toolbar when the
7328           layout doesn't change results in no drawing.
7329
7330 2006-08-12  Chris Toshok  <toshok@ximian.com>
7331
7332         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7333         the VScrollBar and HScrollbar reversed.  oops.
7334
7335         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7336         scrollbars.  we were assigning them twice (once in
7337         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7338         therefore causing two scrollbar resizes (and redraws?) to happen
7339         per grid resize.
7340
7341 2006-08-12  Chris Toshok  <toshok@ximian.com>
7342
7343         * ToolBarButton.cs: redraw the entire button if the theme tells us
7344         to.
7345
7346         * Theme.cs: add ToolBarInvalidateEntireButton.
7347
7348         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7349         buttons, just the border.
7350
7351         * ThemeNice.cs: redraw the entire toolbar button since we need to
7352         draw the highlight image.
7353
7354         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7355         we need to redraw the entire button (not just the border).
7356
7357 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7358
7359         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7360           for vertical bars. Fixes the mismatches shown by #78513
7361
7362 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7363
7364         * FileDialog.cs: If a saved/remembered path doesn't exist
7365           anymore, fall back to "Desktop".
7366
7367 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7368
7369         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7370           parent. It's apparently legal to not have one
7371         * XplatUIX11.cs:
7372           - SetZOrder: Don't try to set Z-Order on an unmapped window
7373           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7374             it unless the coordinates are negative
7375
7376 2006-08-10  Mike Kestner  <mkestner@novell.com>
7377
7378         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7379         when setting to null per msdn docs.  Fixes #78854.
7380
7381 2006-08-10  Chris Toshok  <toshok@ximian.com>
7382
7383         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7384         flickering by setting a clip rectangle on the Graphics when we
7385         need to redraw just a particular menuitem.  Also, rename "OnClick"
7386         to "OnMouseDown" to reflect what it actually is.
7387         
7388         * Form.cs: track the OnMouseDown change.
7389
7390 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7391
7392         * CommonDialog.cs: Properly inherit the CreateParams from the form
7393           and only change what we need. Fixes #78865
7394
7395 2006-08-10  Chris Toshok  <toshok@ximian.com>
7396
7397         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7398         flickering in flat mode (and most of the flickering in general) by
7399         only invalidating the button border (and not the entire rectangle)
7400         when the state changes.  A couple of cases still flicker:
7401         ToggleButtons, and the dropdown arrow case when the user mouse
7402         ups.
7403
7404 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7405
7406         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7407           for german keyboards. Numlock state shouldn't affect the behaviour
7408           of the Del key. Fixes bug #78291.
7409
7410 2006-08-10  Chris Toshok  <toshok@ximian.com>
7411
7412         * ListControl.cs: remove the items.Clear line from BindDataItems,
7413         as this is the first thing done by both subclasses in their
7414         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7415         passed -1, refresh the list.  This gets databinding working when
7416         the datasource is set on the list before the datasource is
7417         populated (as in wf-apps/ReportBuilder.)
7418
7419         * ComboBox.cs: remove the argument to BindDataItems.  This call
7420         should really go away, and be initiated by the ListControl code.
7421
7422         * ListBox.cs: same.
7423
7424 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7425
7426         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7427           if no data is in the document when the control is displayed
7428
7429 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7430
7431         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7432           yes (fixes #78806)
7433         * TextControl.cs: 
7434           - PositionCaret: Allow positioning of caret but don't call methods 
7435             requiring a handle if the window isn't created yet
7436           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7437           - owner_HandleCreated: Don't position the caret, just update it's 
7438             location. User might have already set a different position
7439
7440 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7441
7442         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7443           windows. Screws up the returned coordinates for child windows. 
7444           Fixes #78825. I'm hoping this doesn't break something, since the
7445           code was explicitly put in 8 months ago, but no bug was attached.
7446           Menus still seem to work properly.
7447
7448 2006-08-08  Chris Toshok  <toshok@ximian.com>
7449
7450         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7451         supposed to do - delay data binding until the EndInit call.  Also,
7452         make the table style collection's CollectionChangeAction.Refresh
7453         work properly.
7454
7455         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7456         (with action = Refresh) when a consituent table's MappingName is
7457         changed.
7458
7459 2006-08-08  Chris Toshok  <toshok@ximian.com>
7460
7461         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7462         Invalidate, since changing the text can change the size of the all
7463         toolbar buttons.
7464
7465 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7466
7467         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7468           we don't have it yet
7469
7470 2006-08-08  Chris Toshok  <toshok@ximian.com>
7471
7472         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7473         dialog, as this causes X errors later on, since we actually
7474         destroy the window.  Instead, .Hide() it.
7475
7476 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7477
7478         * ComboBox.cs: Added focus reflection for popup window
7479         * XplatUIX11.cs: 
7480           - Removed transient setting for non-app windows for now, not sure it
7481             was needed
7482           - Fixed logic checking if we have captions when deciding 
7483             override_redirect, WS_CAPTION is two bits and a 0 check was not
7484             sufficient
7485           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7486             complicated
7487         * Form.cs: 
7488           - AddOwnedForm: Don't just add the form to the list, call the property
7489             to ensure the driver is informed about the ownership as well
7490           - CreateHandle: Set the TopMost status in the driver if we have an owner
7491         * XplatUI.cs: Fixed debug statement
7492
7493 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7494         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7495           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7496           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7497           TrackBarRenderer.cs: Make constructor private.
7498         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7499         * ProfessionalColorTable.cs: Make properties virtual.
7500
7501 2006-08-06  Duncan Mak  <duncan@novell.com>
7502
7503         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7504         is not changing.
7505
7506 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7507         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7508           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7509           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7510           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7511           Initial import of new 2.0 classes.
7512
7513 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7514         * Application.cs: Add 2.0 VisualStyles properties.
7515
7516 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7517         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7518           XplatUIX11.cs: Create property to allow access to existing private
7519           variable "themes_enabled"
7520
7521 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7522
7523         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7524         file size, as otherwise our class libraries fail using windows. Fixes
7525         bug #78759.
7526
7527 2006-08-04  Jackson Harper  <jackson@ximian.com>
7528
7529         * Form.cs:
7530         * XplatUIX11.cs: Move the toolwindow window manager creation into
7531         the X11 driver, this way on win32 we can let windows create/handle
7532         the toolwindows.
7533
7534 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7535
7536         * PrintDialog.cs: Remove some redundant checks, add some others,
7537         clean some code, and move the focus to the text boxes when the
7538         values are incorrect.
7539
7540 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7541
7542         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7543
7544 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7545
7546         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7547           handled correctly. Fixes bug #79001.
7548
7549 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7550
7551         * PrintDialog.cs: The "Copies" numeric up down must have
7552         set the Minimum property to 1; only if the value is bigger
7553         than 1, activate "Collate" check box. This is the behaviour of .Net.
7554         Also modify the Document elements only if it is not null.
7555
7556 2006-08-03  Jackson Harper  <jackson@ximian.com>
7557
7558         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7559         length. (We have a larger array then actual node count).
7560                 
7561 2006-08-03  Jackson Harper  <jackson@ximian.com>
7562
7563         * ComboBox.cs: Don't show selection by default.
7564         - The SelectAll isn't needed here, since the focus code should do
7565         that
7566         - DDL style lists to manual selection drawing, so when they
7567         get/lose focus they have to invalidate.
7568
7569 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7570
7571         * TextBoxBase.cs: Don't always show all selections by default.
7572
7573 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7574         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7575           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7576           Fixed various typos.
7577
7578 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7579
7580         * Control.cs: Removing the controls in a ControlCollection with
7581           Clear now hides the controls as expected. Fixes bug #78804. 
7582
7583 2006-08-03  Jackson Harper  <jackson@ximian.com>
7584
7585         * Control.cs: Revert previous focus patch, it breaks reflector.
7586
7587 2006-08-03  Jackson Harper  <jackson@ximian.com>
7588
7589         * ComboBox.cs: Cleanup selection and focus with the combobox.
7590         This also eliminates some duplicated keyboard code, since now
7591         everything is handled by the main class.
7592         - Make list selection work on mouse up instead of down, to match
7593         MS.
7594
7595 2006-08-02  Jackson Harper  <jackson@ximian.com>
7596
7597         * Control.cs: Setting focus needs to go through the whole
7598         selection mechanism.
7599
7600 2006-08-02  Chris Toshok  <toshok@ximian.com>
7601
7602         * PrintPreviewDialog.cs: change MinimumSize to use
7603         base.MinimumSize so it works.
7604
7605 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7606
7607         * TextControl.cs:
7608           - UpdateCaret: Added sanity check in case caret isn't defined yet
7609           - Line.Delete: Now updating selection and caret markers if we're
7610             transfering a node (Properly fixes #78323)
7611           - SetSelectionEnd: Added sanity check
7612         * TextBoxBase.cs: Removed broken attempt to fix #78323
7613
7614 2006-08-01  Chris Toshok  <toshok@ximian.com>
7615
7616         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7617         Close() call is handled in Form, not here.
7618
7619 2006-08-01  Chris Toshok  <toshok@ximian.com>
7620
7621         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7622         layout/rendering.
7623
7624         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7625         for sizes < 100% zoom.  The code now aggressively attempts to keep
7626         from calling document.Print (), and tries not to use the scaling
7627         g.DrawImage whenever possible (it still does if you scale to >
7628         100%, since usually that involves huge images).
7629
7630         * PrintPreviewControl.cs: hook up the close button.
7631
7632 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7633         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7634           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7635           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7636           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7637           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7638           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7639           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7640           Removed [Serializable] for 2.0 Event Handlers.
7641
7642 2006-07-31  Jackson Harper  <jackson@ximian.com>
7643
7644         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7645         * TextControl.cs: Uncomment out the body of this method.
7646
7647 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7648
7649         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7650           standard cursors.
7651
7652 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7653
7654         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7655           that embed TextBox and need selections visible even if textbox is not
7656           focused to enforce that behaviour.
7657         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7658           selection drawing
7659
7660 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7661
7662         * TextControl.cs:
7663           - Added new SetSelectionStart/SetSelectionEnd overloads
7664           - Fixed viewport width assignment to be accurate
7665           - Adjusted alignment line shift calculations to allow cursor on right
7666             aligned lines to be always visible at the right border (like MS)
7667         * TextBoxBase.cs:
7668           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7669           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7670           - CalculateScrollBars: Use ViewPort size instead of window size, to
7671             properly consider space occupied by the border and scrollbars 
7672             (Fixes #78661)
7673           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7674             calculations; no longer leaves artifacts
7675           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7676             calculation bugs (Still missing right/center align calculations)
7677
7678 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7679
7680         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7681           use of both scroll rect and clip rect, as they do the same.
7682
7683 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7684
7685         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7686           in the event handler (fixes #78912)
7687
7688 2006-07-31  Chris Toshok  <toshok@ximian.com>
7689
7690         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7691         grid.ListManager.Count, since grid.ListManager might be null.
7692         This of course begs the question "why are we drawing rows for a
7693         grid with no list manager (and therefor no rows)?"  Fixes the
7694         crash in bug #78929.
7695
7696 2006-07-31  Chris Toshok  <toshok@ximian.com>
7697
7698         * RelatedPropertyManager.cs: Don't always chain up to the parent
7699         ctor.  instead, call SetDataSource if the parent's position is !=
7700         -1.  Fixes the crash in #78822.
7701
7702 2006-07-31  Chris Toshok  <toshok@ximian.com>
7703
7704         * DataGrid.cs (get_ListManager): use field instead of property
7705         accessors for datasource and datamember.
7706         (RowsCount): make internal again.
7707         (OnMouseDown): end edits before resizing columns/rows.
7708         (OnMouseUp): restart edits after resizing columns/rows.
7709
7710 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
7711
7712         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
7713           This fixes the situation where the last set cursor is displayed
7714           whenever the mouse is over scrollbars.
7715
7716 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7717
7718         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
7719         Document properties, as well as initial values.
7720
7721 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
7722
7723         * XplatUIWin32.cs (SetBorderStyle): Setting both border
7724           and ClientEdge results in a 3-pixel border, which is
7725           wrong.
7726
7727 2006-07-28  Jackson Harper  <jackson@ximian.com>
7728
7729         * TreeNodeCollection.cs: Fix the clear method.
7730         - Fix the Shrink also
7731
7732 2006-07-27  Jackson Harper  <jackson@ximian.com>
7733
7734         * TreeView.cs: Make sure the visible order is computed when we
7735         attempt to size the scrollbars (for trees that mess with the
7736         scrolling when they shouldn't.
7737         - Make sure to give the scrollbars valid values.
7738
7739 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7740
7741         * XplatUIX11.cs: Move motion compression code to where it
7742           has less performance impact
7743
7744 2006-07-26  Jackson Harper  <jackson@ximian.com>
7745
7746         * UpDownBase.cs: When the control is selected make the child
7747         controls non selectable, so that a click on them won't do a
7748         focus/unfocus cycle.
7749         - Don't give focus to the text box when the spinner is selected.
7750         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
7751
7752 2006-07-26  Chris Toshok  <toshok@ximian.com>
7753
7754         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
7755         satisfied with this solution.  If the bitmaps are small, we should
7756         just cache them in the PrintPreviewDialog and draw them here.
7757         Also, the layout is broken for the 2-up and 3-up cases.
7758
7759         * Theme.cs: add PrintPReviewControlPaint.
7760
7761         * PrintPreviewDialog.cs: first pass implementation.
7762
7763         * PrintPreviewControl.cs: first pass implementation.  No
7764         scrollbars yet.
7765
7766         * PrintDialog.cs: only validate fields if that particular portion
7767         of the UI is enabled.  Also, set the document's controller to a
7768         PrintControllerWithStatusDialog wrapping the document's print
7769         controller.
7770
7771         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
7772         bring up a SaveFileDialog (i hope we don't want to match the
7773         behavior of the crappy windows file entry) and set the
7774         PrinterSettings.PrintFileName accordingly.
7775
7776 2006-07-26  Jackson Harper  <jackson@ximian.com>
7777
7778         * ContainerControl.cs: Add a field that disables auto selecting
7779         the next control in a container when the container is activated.
7780         * UpDownBase.cs: Don't select the text box when the up down is
7781         selected.
7782
7783 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
7784
7785         * XEventQueue.cs: Added methods for peeking (used for compression
7786           of successive events)
7787         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
7788           mouse move events (fixes #78732)
7789
7790 2006-07-25  Jackson Harper  <jackson@ximian.com>
7791
7792         * UpDownBase.cs: Use an internal class for the textbox so that we
7793         can control focus.  the updown control should always have focus,
7794         if either the text area or the buttons are clicked.
7795         - Send the key messages to the textbox, since it never actually
7796         has focus
7797         - Activate and decativate the textbox caret.
7798
7799 2006-07-24  Jackson Harper  <jackson@ximian.com>
7800
7801         * Control.cs: Use the directed select when selecting a control,
7802         this way the container controls override will get called and the
7803         whole ActiveControl chain will get triggered.  TODO: probably need
7804         to make sure this gets done everywhere instead of the old
7805         Select(Control).
7806         * ContainerControl.cs: Implement the directed Select method to
7807         find and activate the correct child control.    
7808         
7809 2006-07-22  Mike Kestner  <mkestner@novell.com>
7810
7811         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
7812         menu handling code so that clicks without a grab work too.
7813         [Fixes #78914]
7814
7815 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
7816
7817         * FileDialog.cs: Enable the BackButton when dirstack has one element.
7818           Added some small optimizations.
7819
7820 2006-07-21  Matt Hargett  <matt@use.net>
7821
7822         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
7823
7824 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
7825
7826         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
7827           tests pass and match MS in some strange border cases.
7828
7829 2006-07-21  Chris Toshok  <toshok@ximian.com>
7830
7831         * ThemeWin32Classic.cs: handle drawing of the relation links and
7832         parent row buttons.
7833
7834         * Theme.cs: change args to DataGridPaintParentRow.
7835
7836         * DataGrid.cs: Don't use controls for the relation links and
7837         parent buttons, so we have to handle all their interactions in
7838         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
7839         when we're navigating through child tables, so we can reinstate
7840         selection, expanded state, current cell, etc.
7841
7842 2006-07-20  Chris Toshok  <toshok@ximian.com>
7843
7844         * ToolBar.cs: When we redraw a button, for whatever reason,
7845         there's no reason to redraw the entire toolbar.  Also, don't call
7846         Control.Refresh from within Redraw, as it's much heavier than
7847         Invalidate (which is really what we want).
7848
7849 2006-07-20  Chris Toshok  <toshok@ximian.com>
7850
7851         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
7852         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
7853         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
7854         traces from within a debug IBindingList datasource
7855         (in mono/winforms/datagrid) for *days*, I've finally gotten things
7856         to work in a similar fashion.
7857
7858 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7859
7860         * ListBox.cs: Don't call Sort () when setting 
7861         the Sorted property to false (avoid an unnecessary sort).
7862
7863 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7864
7865         * ListControl.cs: DataSource should throw an ArgumentException
7866         instead of a normal exception when the argument is not of the 
7867         correct type.
7868
7869 2006-07-20  Mike Kestner  <mkestner@novell.com>
7870
7871         * Control.cs: add InternalPreProcessMessage to allow us to steal
7872         key events before MWF gets its paws on them.  Adapted from a
7873         suggestion by eno.
7874         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
7875         up/down/left/right navigation. Override the new internal control
7876         method to steal the events since they never make it to WndProc.
7877         * ToolBarButton.cs: don't worry about pushed when setting hilight
7878         since the drawing code prefers pushed to hilight. Invalidate on 
7879         Hilight changes. Fixes #78547 and #78525.
7880
7881 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7882
7883         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
7884           the canvas size. Fixes #78868
7885
7886 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
7887
7888         * Splitter.cs: Track requested split position until first layout
7889           is performed. Fixes #78871
7890
7891 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
7892
7893         * Application.cs: Removed code that forces 1.x for the version
7894           number if the version started with 0. Not sure why that code was
7895           there and I couldn't find any bugs that indicated we needed it.
7896           Fixes #78869
7897
7898 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
7899
7900         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
7901           ResetDefaults(), just write some output to the console until it's
7902           implemented. Fixes bug #78907 for now. Eliminated two warnings.
7903
7904 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
7905
7906         * PropertyGridView.cs: set StartPosition of drop down forms
7907         so they appear in correct initial spot.  Fixes #78190.
7908
7909 2006-07-19  Mike Kestner  <mkestner@novell.com>
7910
7911         * ThemeWin32Classic.cs: use parent background color when drawing
7912         flat toolbars.  Restructure the conditionals to make sure non-flat
7913         non-Divider toolbars are filled too.  Fixes #78837.
7914
7915 2006-07-19  Mike Kestner  <mkestner@novell.com>
7916
7917         * ListBox.cs: Sort on collection changes even if the handle
7918         isn't created yet.  Fixes #78813.
7919
7920 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7921
7922         * ListControl.cs: DisplayMember should never be null,
7923         and now we assign String.Empty when null is passed to it (this
7924         is the .Net way).
7925
7926 2006-07-17  Mike Kestner  <mkestner@novell.com>
7927
7928         * ListViewItem.cs: restructure Font and subitem Font handling 
7929         to hold a specific font and refer back to owner on null.
7930         Fixes #78761.
7931
7932 2006-07-17  Mike Kestner  <mkestner@novell.com>
7933
7934         * ToolBar.cs: bandaid for side-effect of previous patch which was
7935         discarding explicit heights for non-AutoSize toolbars.  Need to
7936         extend my format tester to deal with AutoSize=false. Fixes #78864.
7937
7938 2006-07-15  Jackson Harper  <jackson@ximian.com>
7939
7940         * LabelEditTextBox.cs:
7941         * TreeView.cs: Use a new LabelEdit class for node editing, this
7942         class automatically 'closes' itself when it gets the enter key or
7943         loses focus.
7944         - Use the client rectangle when setting the trees scrollbars, so
7945         border style is taken into account.
7946         
7947 2006-07-14  Jackson Harper  <jackson@ximian.com>
7948
7949         * TreeNode.cs:
7950         * TreeView.cs: Make the editing work similar to MSs, firing the
7951         events correctly and ending edits correctly.
7952
7953 2006-07-14  Mike Kestner  <mkestner@novell.com>
7954
7955         * ToolBarButton.cs:
7956         * ToolBar.cs: layout restructuring and redraw enhancements to support
7957         formatting changes gracefully, like setting TextAlign, ImageList, 
7958         ButtonSize, and Appearance.  Handles explicit button sizing quirks
7959         of the MS controls.  Things like flat toolbars ignoring button size
7960         but becoming constant sized at the largest button's size.  Normal
7961         toolbars with an image set cannot be shrunk smaller than the image,
7962         but text can be clipped/ignored.
7963         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
7964         is zero.  Seems like DrawString should be smart enough to not put
7965         anything on screen though. Also trim labels and ellipsize at the char
7966         boundary, not word.
7967         Fixes #78711 and #78483.
7968
7969 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7970
7971         * FolderBrowserDialog.cs: Disable "New Folder" button and
7972           "New Folder" contextmenu menuitem if a folder like "My Computer"
7973           is selected.
7974
7975 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7976
7977         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
7978         * FolderBrowserDialog.cs:
7979           - Use MWFConfig to store and read size and position settings
7980           - Added code to create a new folder (button or context menu).
7981             Use TreeView labeledit to change the name of the new folder.
7982
7983 2006-07-14  Jackson Harper  <jackson@ximian.com>
7984
7985         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
7986         when the tree is scrolled we end editing.
7987
7988 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
7989
7990         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
7991           Down arrows
7992
7993 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
7994
7995         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
7996         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
7997         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
7998         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
7999         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
8000         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
8001         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
8002         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
8003         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
8004         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
8005         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
8006         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
8007         ListViewItemSelectionChangedEventHandler.cs,
8008         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
8009         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
8010         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
8011         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
8012         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
8013         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
8014         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
8015         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
8016         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
8017         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
8018         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
8019         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
8020         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
8021         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
8022         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
8023         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
8024         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
8025         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
8026         WebBrowserNavigatingEventHandler.cs, 
8027         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
8028
8029 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
8030
8031         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
8032         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
8033         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
8034         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
8035         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
8036         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
8037         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
8038         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
8039         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
8040         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
8041         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
8042         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
8043         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
8044         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
8045         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
8046         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
8047         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
8048         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
8049         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
8050         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
8051         ListViewItemStates.cs, MaskFormat.cs: Added
8052
8053 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
8054
8055         * PropertyGridView.cs: Fix keyboard navigation of drop down.
8056         Patch from eno for bug 78558.
8057         
8058 2006-07-13  Jackson Harper  <jackson@ximian.com>
8059
8060         * TreeView.cs: When an edit is finished make sure that the
8061         selected node is visible.
8062         - When setting the top/bottom use the scrollbars is_visible, so
8063         everything will be set correctly even if the tree isn't visible
8064         yet.
8065
8066 2006-07-13  Jackson Harper  <jackson@ximian.com>
8067
8068         * ComboBox.cs: Revert the item->index part of my previous patch.
8069         * TreeView.cs: Use LostFocus instead of Leave for detecting when
8070         the edit box has lost focus (duh).
8071         - Just make the edit box not visible when we get return, that will
8072         take the focus, which will call EndEdit
8073         * TreeNode.cs When we start editing, notify the treeview.
8074
8075 2006-07-12  Jackson Harper  <jackson@ximian.com>
8076
8077         * ComboBox.cs: Clear out old items before setting the item list.
8078         This prevents databound controls from having their items added
8079         twice.
8080         - Switch the combobox to use indices whereever possible instead of
8081         using Item's.  This allows usto navigate through lists that have
8082         more then one item with the same string value (ie a, b, b, a).
8083         - Scroll the listboxes scrollbar when a non visible item is
8084         highlighted
8085         - Allow keypress to cycle through all the possible values. For
8086         example if you have b1, b2, b3 and hold down the B key all the
8087         values will be cycled through.
8088         
8089 2006-07-12  Jackson Harper  <jackson@ximian.com>
8090
8091         * TextBoxBase.cs:
8092         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8093         this using the internal methods.
8094         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8095         controls to "override" OnGotFocus and change focus behavior if
8096         needed.
8097         - Same thing for LostFocus
8098         * ComboBox.cs: Pass off focus to the text control properly.
8099
8100 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8101
8102         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8103         * FolderBrowserDialog.cs: Almost a complete rewrite.
8104           - Better support for Environment.Specialfolders
8105           - Added support for MWFVFS
8106           - Made setting SelectedPath work
8107
8108 2006-07-12  Jackson Harper  <jackson@ximian.com>
8109
8110         * Control.cs: Optimze getting all the controls.
8111
8112 2006-07-11  Jackson Harper  <jackson@ximian.com>
8113
8114         * ContainerControl.cs: Override SETFOCUS in the container control,
8115         so that it is not selected on mouse click.
8116
8117 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8118
8119         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8120           Hopefully we will have a better way once all of focus is complete.
8121
8122 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8123
8124         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8125           a compile error with csc.
8126
8127 2006-07-11  Jackson Harper  <jackson@ximian.com>
8128
8129         * Control.cs: When hiding a control only select the next control
8130         if the current control was focused.
8131         - Don't handle enter/leave when setting/killing focus, this is
8132         done by the container control.
8133         - Remove is_selected, it's not needed anymore.
8134         - Add utility methods for selecting a child control, and for
8135         firing the Enter/Leave events.
8136         * ContainerControl.cs: When a control is activated fire the
8137         enter/leave events.
8138         - Don't wrap when processing the tab key, so that focus can be
8139         moved outside of the container.
8140         - Use the correct active control
8141
8142 2006-07-11  Jackson Harper  <jackson@ximian.com>
8143
8144         * ComboBox.cs: Remove some debug code that was blinding me.
8145         * UpDownBase.cs: These controls actually aren't implicit, they are
8146         visible to the user.
8147
8148 2006-07-10  Chris Toshok  <toshok@ximian.com>
8149
8150         * DataGrid.cs: move back to the is_adding boolean field.  god i
8151         hate this is_editing/is_adding/is_changing stuff.
8152
8153 2006-07-10  Chris Toshok  <toshok@ximian.com>
8154
8155         * DataGridTableStyle.cs: just check if the property type is bool.
8156         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8157         Don't use CanRenderType.
8158
8159         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8160         if our text == NullText.  Remove CanRenderType.
8161
8162         * DataGridBoolColumn.cs: nuke CanRenderType.
8163
8164         * DataGrid.cs: reenable some code to end the current edit inside
8165         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8166         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8167         Also, remove the visible_row_count arg from CalcRowHeaders, since
8168         we don't need to worry about the actual height of the area.
8169
8170 2006-07-10  Chris Toshok  <toshok@ximian.com>
8171
8172         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8173         mode, just return.
8174
8175         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8176         the real sense of the IsInEditOrNavigateMode property (true =
8177         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8178
8179         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8180         column style exists, we still need to set its property descriptor
8181         to match up with our list manager.
8182
8183 2006-07-10  Chris Toshok  <toshok@ximian.com>
8184
8185         * ThemeWin32Classic.cs: implement the new row/header painting
8186         approach.  The parent row painting will likely go away and
8187         replaced with label controls, but the rest seems to work ok (and
8188         efficiently).
8189
8190         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8191         the row headers as a block now.  Instead we draw them in the
8192         normal draw-row loop.  Add some calls for drawing parent rows and
8193         relation rows.
8194
8195         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8196         a default table style.  Set the defaults from ThemeEngine.Current,
8197         not SystemColors.  Fix lots of misc issues with property setters.
8198
8199         * DataGrid.cs: move loads of style information out of this class
8200         as it's being duplicated with DataGridTableStyle.  keep track of a
8201         special DataGridTableStyle for the properties we used to mirror
8202         here.  Switch all the style properties to access this table style
8203         instead of instance fields of this class.  Also add a internal
8204         class to represent parent rows (more needs to be stored here, like
8205         the selection state from the parent table, as well as the
8206         expansion state.)  Also, for datasources with relations, do the
8207         right thing for collapse/expand, and add support for the
8208         navigation/parent row buttons.
8209
8210         Lastly, fix the crash in the 1.1.16 build.
8211
8212         * GridTableStylesCollection.cs: make the explicit interface
8213         implementations call the class's methods as opposed to duplicating
8214         them.
8215
8216         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8217         0 so the text doesn't jump around when we move the cursor.
8218
8219 2006-07-10  Jackson Harper  <jackson@ximian.com>
8220
8221         * TextBoxBase.cs:
8222         * ListBox.cs: Match MS's ToString (this makes debugging focus
8223         stuff infinitely easier).
8224
8225 2006-07-10  Jackson Harper  <jackson@ximian.com>
8226
8227         * Control.cs (SelectNextControl): When checking the control's
8228         parent use this instead of ctrl.parent so that null can be passed
8229         to SelectNextControl. (I have unit tests for this).
8230         - Remove unused var.
8231
8232 2006-07-10  Chris Toshok  <toshok@ximian.com>
8233
8234         * CurrencyManager.cs: correct one regression, the removal of the
8235         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8236         Refresh() correctly, and fix some event emission in
8237         ListChangedHandler.
8238
8239 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8240
8241         * FileDialog.cs: Don't use brackets for new folders if they exist
8242           under *nix. Instead use -(number of existing folders +1).
8243
8244 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8245
8246         * FileDialog.cs:
8247           - Fixed really nasty bug #78771
8248           - Don't block the whole GUI when reading directories with a lot of
8249             entries. Use an other thread instead and call BeginInvoke to
8250             update the ListView in MWFFileView
8251
8252 2006-07-07  Chris Toshok  <toshok@ximian.com>
8253
8254         * Control.cs (Dispose): release any Capture when disposing.
8255
8256 2006-07-07  Chris Toshok  <toshok@ximian.com>
8257
8258         * LinkLabel.cs (Select): if we chain up to the parent, set
8259         focused_index to -1 so we'll search for the first available link
8260         the next time the user tabs into us.  Also, if the direction is
8261         backward and focused_index == -1, start the search from the last
8262         element.
8263
8264 2006-07-07  Chris Toshok  <toshok@ximian.com>
8265
8266         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8267         is beyond the end of the text, don't do anything.
8268         (CreateLinkPieces): set our ControlStyles.Selectable based on
8269         whether or not we have any links.
8270         (Link.Invalidate): use a loop instead of foreach.
8271         (Link.set_Start): null out owner.sorted_links so it'll be
8272         recreated by CreateLinkPieces.
8273
8274 2006-07-06  Chris Toshok  <toshok@ximian.com>
8275
8276         * LinkLabel.cs: revert the SetStyle change.
8277
8278 2006-07-06  Chris Toshok  <toshok@ximian.com>
8279
8280         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8281         (OnEnableChanged): s/Refresh/Invalidate
8282         (OnGotFocus): if we have a focused index already, refocus it (so
8283         if we mouse out/in to the window it'll focus the right link).
8284         (OnKeyDown): move the tab handling out of here.
8285         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8286         when we lose focus.
8287         (OnMouseDown): don't Capture here - Control handles it.  Also,
8288         focus the active link.
8289         (OnMouseUp): don't deal with Capture.
8290         (OnPaintBackgroundInternal): remove.
8291         (OnTextAlignChanged): CreateLinkPieces before calling the
8292         superclass's method.
8293         (OnTextChanged): call CreateLinkPieces before calling superclass's
8294         method.
8295         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8296         move around.
8297         (Select): implement this, moving the selection between different
8298         links, and call parent.SelectNextControl if we don't have another
8299         link to focus in the given direction.
8300         (CreateLinkPieces): call Invalidate instead of Refresh.
8301         
8302 2006-07-06  Chris Toshok  <toshok@ximian.com>
8303
8304         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8305         new LinkLabel internals.
8306
8307         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8308         over pieces looking for active/focused/etc links.  also, deal with
8309         runs of text (and links) with embedded \n's in them, and use
8310         MeasureCharacterRanges instead of MeasureString to figure out the
8311         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8312         two-step.
8313
8314 2006-07-04  Jackson Harper  <jackson@ximian.com>
8315
8316         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8317         XKB or key auto repeat, do it manually.  Without key auto repeat,
8318         when a key is held down we get key press, key release, key press,
8319         key release, ... with auto repeat we get key press, key press, key
8320         press ..., and then a release when the key is actually released.
8321
8322 2006-07-03  Jackson Harper  <jackson@ximian.com>
8323
8324         * TabControl.cs:
8325         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8326         rules, they are always control color regardless of the background
8327         color.
8328
8329 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8330
8331         * FileDialog.cs: Added internal class MWFConfig.
8332           Removed Registry support and replaced it with support for the new
8333           MWFConfig class. See MWFConfig comments for more information.
8334
8335 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8336
8337         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8338           rectangle. Added some patches from eno from bug #78490 and fixed
8339           the arrow position for small up and down CPDrawScrollButtons.
8340
8341 2006-06-30  Jackson Harper  <jackson@ximian.com>
8342
8343         * InternalWindowManager.cs: Remove some debug code.
8344         * Form.cs: When an MdiParent is set to null, the window is
8345         "detatched" and becomes a normal window.
8346         * MdiClient.cs: Don't bring the new child form to the front until
8347         it is activated (setting it as active does this), this makes the
8348         previously active forms titlebar get redrawn as inactive.
8349
8350 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8351
8352         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8353           with later controls
8354
8355 2006-06-29  Mike Kestner  <mkestner@novell.com>
8356
8357         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8358         arrow in keynav state.  Fixes #78682.
8359
8360 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8361
8362         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8363           order (fixes #78393)
8364
8365 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8366
8367         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8368           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8369           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8370           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8371           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8372           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8373           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8374           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8375           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8376           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8377           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8378           values)
8379
8380 2006-06-28  Mike Kestner  <mkestner@novell.com>
8381
8382         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8383
8384 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8385
8386         * PropertyGrid.cs,
8387           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8388           item lines from other area (It also makes BackColor consistent and
8389           compatible with .NET). Fixed bug #78564.
8390
8391 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8392
8393         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8394         Patch from Eno for #78555.
8395
8396 2006-06-27  Chris Toshok  <toshok@ximian.com>
8397
8398         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8399
8400         * DataGridColumnStyle.cs: same.
8401
8402         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8403         
8404         * DataGridDrawingLogic.cs: nuke.
8405
8406 2006-06-27  Chris Toshok  <toshok@ximian.com>
8407
8408         * DataGridTableStyle.cs: clean up the constructors, and build the
8409         list of child relations for this table.  I have no idea if this is
8410         where we should be doing it (it probably isn't), but since we're
8411         already iterating over the properties..
8412
8413         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8414         struct and array for keeping track of row information, similar to
8415         what's shown in a hack on
8416         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8417
8418         * Theme.cs: be consistent about the naming of DataGrid methods,
8419         prefering ColumnWidths and RowHeights over columnsWidths and
8420         RowsHeights.
8421
8422         * ThemeWin32Classic.cs: same, and also add support for variable
8423         sized rows (and the +/- expansion icons for related rows).
8424
8425 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8426
8427         * TextBoxBase.cs: Applied Eno's patch from #78660
8428
8429 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8430
8431         * Form.cs (ScaleCore): We don't want to scale our form if it's
8432           state is minimized or maximized, but we still need to scale our
8433           child windows. Also, added try/finally block to ensure layout
8434           gets reset (Fixes #78697)
8435
8436 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8437
8438         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8439
8440 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8441
8442         * Form.cs: Fixed c+p error and added check to resize form if minimum
8443           size is bigger than current size (Fixes #78709)
8444
8445 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8446
8447         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8448
8449 2006-06-26  Mike Kestner  <mkestner@novell.com>
8450
8451         * ComboBox.cs: only do Keypress handling in the combo when there  
8452         are items in the collection. Fixes #78710.
8453
8454 2006-06-26  Chris Toshok  <toshok@ximian.com>
8455
8456         * Binding.cs: make this work bi-directionally.  also, clear up
8457         other mixups between Push/Pull Data (e.g. we're supposed to pull
8458         data when validating).
8459
8460         * BindingManagerBase.cs: trim some fully qualified collection
8461         types.
8462
8463         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8464
8465 2006-06-23  Chris Toshok  <toshok@ximian.com>
8466
8467         * PropertyManager.cs: It appears (according to the unit tests)
8468         that PropertyManager doesn't use
8469         PropertyDescriptor.AddValueChanged to track propery value changes
8470         in its datasource, but uses the same scheme as Binding, where it
8471         looks for a <Property>Changed event and binds to it.
8472
8473         Also, according to the docs, IsSuspended always returns false for
8474         a property manager with a non-null datasource.
8475
8476 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8477
8478         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8479           need to update the actual DialogResult. (Fixes #78613)
8480
8481 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8482
8483         * Form.cs (ShowDialog): Release any captures before running the
8484           new message pump (fixes #78680)
8485
8486 2006-06-22  Mike Kestner  <mkestner@novell.com>
8487
8488         * ListView.cs: Layout column widths properly in details mode even 
8489         if HeaderStyle.None is set.  Fixes #78691.
8490
8491 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8492
8493         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8494
8495 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8496
8497         * Control.cs (ContainsFocus): Using new driver method to get focused
8498           window, instead of trying to use internal tracking var, which can
8499           recursion issues (Fixes #78685)
8500         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8501           XplatUIWin32.cs: Added GetFocus method to return focused window
8502
8503 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8504
8505         * ColorDialog.cs: when the mouse button is pressed inside the color
8506         matrix, don't let the cursor move out of it until the button is
8507         released, which is the behavior on windows. Changed 'colours' by
8508         'colors' to use the same word consistently.
8509
8510 2006-06-21  Chris Toshok  <toshok@ximian.com>
8511
8512         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8513         child relation and back, using a stack).  Also, remove
8514         GetDataSource and the code that calls it - it's not needed.  Also,
8515         track CurrencyManager.ListName's removal.
8516
8517 2006-06-21  Chris Toshok  <toshok@ximian.com>
8518
8519         * CurrencyManager.cs: push some of the original type checking from
8520         BindingContext.CreateBindingManager to here, and remove some of
8521         the finalType stuff.  Need more tests to make sure I've got the
8522         ListName part right, and we might need more in SetDataSource.
8523
8524         * PropertyManager.cs: add a ctor that takes just the datasource,
8525         and no property name.  Make SetDataSource work with a null
8526         property_name, and make Current return the data_source if the
8527         property descriptor is null.  this makes 'string foo = "hi";
8528         BindingContext[foo].Current' return "hi" as it should.
8529
8530         * RelatedCurrencyManager.cs: make this code more generic - there's
8531         no reason the parent manager has to be CurrencyManager, and
8532         there's no reason to pass the DataRelation.  It suffices to use a
8533         BindingManagerBase and PropetyDescriptor.
8534
8535         * RelatedPropertyManager.cs: make a similar change here.
8536         
8537         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8538         flower I knew it could be.
8539
8540 2006-06-20  Chris Toshok  <toshok@ximian.com>
8541
8542         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8543         data in the source has changed and we need to update the control,
8544         so s/PullData/PushData.
8545
8546         * CurrencyManager.cs: Refresh is meant to update the control from
8547         data in the datasource.  So, s/PullData/PushData.
8548
8549         * BindingContext.cs: add more ugliness (we weren't handling the
8550         case where data_source = DataTable and data_member = column_name).
8551
8552         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8553         from the perspective of the datasource.  PullData pulls from the
8554         control, PushData pushes to the control.
8555
8556 2006-06-20  Chris Toshok  <toshok@ximian.com>
8557
8558         * BindingContext.cs: rewrite the CreateBindingManager code to
8559         handle navigation paths more or less properly.  This could
8560         definitely stand some more work, in particular to push the
8561         recursion up to the toplevel.  But that relies on fixes in other
8562         places (System.Data comes to mind).
8563
8564         Also, move to a flat hashtable (and encode the twolevel nature of
8565         the dictionary into the hash key).  This lets us implement the
8566         IEnumerable.GetEnumerator method.
8567
8568         * RelatedCurrencyManager.cs: new class.  Update our view based on
8569         our relation and our parent CurrencyManager's position.
8570
8571         * CurrencyManager.cs: split out some logic from the ctor into
8572         SetView, so it can be called from the new RelatedCurrencyManager
8573         subclass.
8574
8575         * RelatedPropertyManager.cs: new class.  Update our datasource
8576         based on the position of our parent CurrencyManager.
8577
8578         * PropertyManager.cs: split out some logic from the ctor into
8579         SetDataSource, so it can be called from the new RelatedDataSource
8580         subclass.  Also, make the Current getter return the value
8581         of the PropertyDescriptor, not the data_source.
8582
8583         * Binding.cs: no need to duplicate the string splitting code here.
8584
8585 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8586
8587         * Control.cs:
8588           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8589             of the control is not altered, even though  we might be changing the
8590             internal state of the control (#78458)
8591           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8592             OnEnabledChanged, to allow easy altering of any child window state
8593           - OnEnabledChanged: Added code to enable/disable driver window state
8594           - OnParentEnabledChanged: Instead of firing the event, call 
8595             OnEnabledChanged, which will fire the event and also a) set driver
8596             window state and pass the enabled state to any grandchildren (#78458)
8597
8598 2006-06-19  Jackson Harper  <jackson@ximian.com>
8599
8600         * InternalWindowManager.cs: We don't set the cursor explicitly
8601         thats done via the response to NCHITTESTs.
8602         - Don't need to adjust for titlebar heights anymore, the
8603         coordinates are coming in the correct coordinates now (see peters
8604         last patch).
8605
8606
8607 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8608
8609         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8610           being translated relative to whole window, instead of client window.
8611           That caused broken offsets on mouseclick (and caused gas for our
8612           InternalWindowManager)
8613
8614 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8615
8616         * TextControl.cs:
8617           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8618           - Undo(): Added replay of cursor move on DeleteChars action; added
8619             calling Undo() again if a recorded cursor move is invalid (to
8620             ensure that some action is performed on Undo)
8621         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8622
8623 2006-06-16  Jackson Harper  <jackson@ximian.com>
8624
8625         * MdiClient.cs: Instead of just sizing maximized windows when
8626         there is a resize we also have to adjust the Y of minimized
8627         windows, so they stay pinned to the bottom of the mdi container.
8628         - Eliminate separate tracking of the active control, we can just
8629         get this from the controls collection.
8630         - Paint the decorations for the newly activated titlebar so we get
8631         a pretty blue bar.
8632         * InternalWindowManager.cs:
8633         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8634         even if they are a tool window.
8635         
8636 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8637
8638         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8639           undo buffer, these can happen when text was deleted and the cursor
8640           was recorded first. Since we will also have a recorded cursor
8641           after the delete this is not an issue. (Fixes #78651)
8642
8643 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8644
8645         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8646           instead properly track control states internally (allows us to
8647           remove is_selected from Control)
8648
8649 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8650
8651         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8652         whose width is not a multiple of 8.
8653
8654 2006-06-13  Jackson Harper  <jackson@ximian.com>
8655
8656         * MdiClient.cs:  Only maximize the next child if the current one
8657         is maximized.
8658
8659 2006-06-13  Chris Toshok  <toshok@ximian.com>
8660
8661         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8662         modified.  Also, guard against grid or grid_drawing being null in
8663         Invalidate.
8664
8665         * DataGrid.cs: Reformat tons of getters/setters.  In the
8666         DataMember setter, just call SetNewDataSource instead of
8667         duplicating some of its functionality.  In SetNewDataSource, don't
8668         check ListManager for null, since the property getter creates the
8669         object if needed.
8670
8671         * DataGridTableStyle.cs: don't set TableStyle or call
8672         SetDataGridInternal on the column here, it's done in
8673         GridColumnStylesCollection.Add.
8674
8675         * GridColumnStylesCollection.cs: fix all the explicit interface
8676         implementations to just call our methods.  Nuke AddInternal() and
8677         move the body of it to Add().  Also, add a call to
8678         column.SetDataGridInternal to Add().
8679
8680         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8681         base()+duplicate code.  Also, use the Format property instead of
8682         format to generate an Invalidate ala MS.  Lastly, create the
8683         textbox here, unconditionally.
8684         (set_Format): call Invalidate.
8685         (get_TextBox): no need to call EnsureTextBox.
8686         (Commit): remove the message box.
8687         (Edit) remove the call to EnsureTextBox.
8688         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8689         (EnterNullValue): no need to check textbox for null.
8690         (HideEditBox): no need to check textbox for null.
8691         (SetDataGridInColumn): add the textbox to the grid's controls.
8692         (EnsureTextBox): nuke.
8693         
8694 2006-06-13  Jackson Harper  <jackson@ximian.com>
8695
8696         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8697         and redraw the buttons when needed. Unhook when the window is
8698         unmaximized.
8699         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8700         needs this so that it can redraw its buttons when the menu is
8701         repainted.
8702         * InternalWindowManager.cs:
8703         * Form.cs: The method order has changed for DrawMaximizedButtons,
8704         so that it can be a PaintEventHandler.
8705         
8706 2006-06-13  Jackson Harper  <jackson@ximian.com>
8707
8708         * MdiClient.cs: When we close a maximized mdi window, the next mdi
8709         window is activated and maximized, even if it wasn't before.
8710         - When  a new window is activated repaint the decorations of the
8711         old one, so that it no longer has the Active "look" (the blue
8712         titlebar).
8713         * InternalWindowManager.cs: Open up CreateButtons to base classes
8714         so they can recreate the buttons on state changes.
8715         - If a window is maximized give it all three buttons
8716         * MdiWindowManager.cs: Create the titlebar buttons when the state
8717         is changed, this is needed because a toolwindow will not have all
8718         three buttons until it is maximized.
8719
8720 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
8721
8722         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
8723           Fixed bug #78609.
8724
8725 2006-06-12  Jackson Harper  <jackson@ximian.com>
8726
8727         * KeysConverter.cs: Make sure we handle the Ctrl special case
8728         if its the only key.
8729         
8730 2006-06-12  Jackson Harper  <jackson@ximian.com>
8731
8732         * Theme.cs: Add a method to get the size of a managed window
8733         toolbar button.
8734         * InternalWindowManager.cs: Remove the ButtonSize property, this
8735         should be retrieved from the theme.
8736         * MdiWindowManager.cs: Get the button size from the theme
8737         * ThemeWin32Classic.cs: Make the method to get the managed window
8738         titlebar button size public.
8739         - Handle the different button sizes of maximized toolwindows
8740         (should match any maximized window).
8741         - Get the titlebar height from the theme, not the WM (which gets
8742         it from the theme).
8743
8744 2006-06-12  Jackson Harper  <jackson@ximian.com>
8745
8746         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
8747         event down to the mdi window manager.
8748         - Expose some extra stuff to base classes
8749         - Make sure to end the Capture on an NC Mouse up, so that we can
8750         get double clicks properly, and the sizing doens't stick.
8751         - When doing PointToClient contain it in the workable desktop
8752         area, this prevents windows from changing size when the cursor is
8753         pulled outside of the working area while sizing.
8754         * MdiWindowManager.cs: When we get a double click maximize the
8755         window.
8756         - Reset the cursor after handling mode changes.
8757
8758 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
8759
8760         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
8761           current desktop, instead of just assuming a 0, 0 origin. This
8762           is needed for our internal window manager, to know the top
8763           margin of the desktop
8764
8765 2006-06-12  Chris Toshok  <toshok@ximian.com>
8766
8767         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
8768         we need this to get rid of the selected background in the bool
8769         column.
8770         (CancelEditing): move the ConcedeFocus call to above the Abort
8771         call.  Also, set is_changing to false and invalidate the row
8772         header if we were changing before.
8773         (ProcessKeyPreviewInternal): remove, since noone outside this
8774         class calls it anymore.  Roll the code into ProcessKeyPreview.
8775         (EndEdit): remove the internal version.
8776         (InvalidateCurrentRowHeader): make private.
8777
8778         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
8779         Keys.Escape handling (and with it the last call to
8780         DataGrid.EndEdit from outside the class.)
8781
8782
8783 2006-06-12  Chris Toshok  <toshok@ximian.com>
8784
8785         * DataGridTextBox.cs (.ctor): isedit defaults to false.
8786         (OnKeyPress): set isedit to true.
8787         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
8788         already handled by the grid.
8789
8790         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
8791         right.  ugh.
8792         (set_DataSource): SetDataSource always returns true, so stop
8793         putting it in an if statement.
8794         (EndEdit): get rid of some {}'s
8795         (ProcessGridKey): return true in case Keys.Escape.
8796         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
8797         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
8798         PositionChanged, stopped connecting to CurrentChanged.
8799         (GetDataSource): simplify this a bunch.
8800         (SetDataSource): change return type from bool to void.
8801         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
8802         to this, and make sure we don't set ListManager.Position inside
8803         set_CurrentCell.
8804         (OnListManagerItemChanged): if we're passed an actual index,
8805         redraw that row.
8806
8807         * CurrencyManager.cs (set_Position): don't call PullData here.
8808
8809 2006-06-09  Jackson Harper  <jackson@ximian.com>
8810
8811         * TreeNode.cs:  Recalculate the visible order before doing the
8812         Expand/Collapse Below calls, because those calls generate an
8813         expose.
8814         - Reduce calls to the TreeView property, which is mildly expensive
8815         by using a local var.
8816         * Form.cs: Layout the MDI child windows when creating the parent
8817         form.
8818         - Don't use the internal constructor anymore
8819         * MdiClient.cs: use the parent form width/height (if available)
8820         when laying out the child windows, we do this because the
8821         mdiclient isn't docked yet when the initial layout is done.
8822         - Don't need an internal constructor anymore.
8823
8824 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8825
8826         * FileDialog.cs: handle access errors when trying to create a folder
8827         or changing to a directory. No need to initialize out parameters.
8828
8829 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8830
8831         * FileDialog.cs: Append a number when creating a new folder if the
8832           folder already exists (use parenthesis instead of square brackets)
8833
8834 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8835
8836         * FileDialog.cs:
8837           - Disabled registry support for windows and added better registry
8838             error checking for other systems (need to investigate why it
8839             works perfectly on my system)
8840           - If a folder already exist show an error MessageBox instead of
8841             trying to create an indexed name.
8842           - Fixed a non intentional typo.
8843
8844 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8845
8846         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
8847
8848 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8849
8850         * FileDialog.cs: When creating a new folder don't crash if the
8851           folder already exists.
8852
8853 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8854
8855         * FileDialog.cs: Allmost a complete rewrite.
8856           - added a "virtual" file system that handles the differences
8857             between unix and windows file systems (especially the directory
8858             structure). Moved most of the directory and file handling code
8859             into the vfs.
8860             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
8861             UnixFileSystem and FSEntry.
8862           - Recently used folder/directory, size, location and used file names
8863             (file name ComboBox) are now stored in the registry and get read
8864             before the dialog shows up (fixes part 6 of bug #78446).
8865           - Creation of new folders/directories is now possible (context menu
8866             or ToolBar). Added TextEntryDialog for this that fills in the gap
8867             until ListView.LabelEdit works.
8868           - Fixed cursor handling (bug #78527) and focus handling for
8869             PopupButtonPanel
8870           - Various "Search in" ComboBox enhancements. The content of the
8871             dropdown listbox now almost matches ms.
8872           - Changed the behaviour when the user switches to SpecialFolder
8873             Recent to show the ListView in View.Details.
8874           - Beside using the ToolBar to change the View property of the
8875             file ListView it is now possible to use the context menu too.
8876
8877 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
8878
8879         * ComboBox.cs: Don't create a new ObjectCollection when an item
8880           gets inserted. Just insert the item in the existing object_items
8881           ArrayList.
8882
8883 2006-06-08  Jackson Harper  <jackson@ximian.com>
8884
8885         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
8886         that the treeview and root node checks are done also, this fixes a
8887         regression i caused in the unit tests.
8888
8889 2006-06-07  Wade Berrier <wberrier@novell.com> 
8890
8891         * RichTextBox.cs: More ISO8859-1 -> unicode
8892
8893 2006-06-07  Mike Kestner  <mkestner@novell.com>
8894
8895         * ComboBox.cs : use items to hold highlight/selection so that
8896         collection insertions don't require synchronization.
8897
8898 2006-06-07  Jackson Harper  <jackson@ximian.com>
8899
8900         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
8901         routine.  We now always keep the sized edge at the cursor instead
8902         of computing movement and adjusting rects.  There is one buglet
8903         with this method though when the cursor is moved over area that
8904         the window can not expand too (such as the toolbars on the desktop).
8905
8906 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8907
8908         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
8909         here. Fixes crash on startup in AlbumSurfer.
8910
8911 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
8912
8913         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
8914           values
8915
8916 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8917
8918         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
8919         statement to avoid calling XNextEvent which will block if another thread
8920         took the event that we were expecting. Fixes bug #78605.
8921
8922 2006-06-07  Mike Kestner  <mkestner@novell.com>
8923
8924         * ListView.cs : isolated checkbox clicking from the selection logic.
8925         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
8926
8927 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8928
8929         * Form.cs: Check that the value passed to Form.DialogResult
8930         is a valid enum value.
8931
8932 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8933
8934         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
8935         Computer'. Clicking it in the network view goes to 'My Computer'.
8936         Added CIFS filesystem type. Display the mount point of filesystems.
8937         Avoid duplicate mount points (happens for me with CIFS);
8938
8939 2006-06-06  Jackson Harper  <jackson@ximian.com>
8940
8941         * InternalWindowManager.cs: Draw the maximized windows buttons
8942         when resizing.
8943
8944 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8945
8946         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
8947         all other dialogs. Fixes bug #78585.
8948
8949 2006-06-06  Mike Kestner  <mkestner@novell.com>
8950
8951         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
8952         Only invalidate checkbox on checkstate changes to avoid flicker.
8953         * ListBox.cs : avoid unselect/select when clicking selected item.
8954         avoid reselection flicker for already multiselected items.
8955         Fixes #78382.
8956
8957 2006-06-06  Jackson Harper  <jackson@ximian.com>
8958
8959         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
8960         the parent form so that the menu is removed if needed.
8961
8962 2006-06-06  Mike Kestner  <mkestner@novell.com>
8963
8964         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
8965         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
8966
8967 2006-06-06  Mike Kestner  <mkestner@novell.com>
8968
8969         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
8970
8971
8972 2006-06-06  Jackson Harper  <jackson@ximian.com>
8973
8974         * Control.cs: Use the property (instead of the field) to get the
8975         default cursor so it is instantiated correctly.
8976         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
8977         resizes so we need to manually repaint the window decorations here.
8978         - Set the titlebar button locations as soon as they are created,
8979         otherwise they are not set correctly on win32.
8980         
8981 2006-06-06  Chris Toshok  <toshok@ximian.com>
8982
8983         * CurrencyManager.cs (set_Position): call PullData before
8984         OnCurrentChanged.
8985         (AddNew): after calling IBindingList.AddNew, update our
8986         listposition, and call OnCurrentChanged/OnPositionChanged (without
8987         calling PullData).
8988         (OnCurrentChanged): remove the call to PullData from here.
8989         (OnItemChanged): remove the call to PushData from here.
8990         (OnPositionChanged): change the test from == null to != null to
8991         match the other methods.
8992         (ListChangedHandler): the grossest part of the patch.  Implement
8993         this such that it passes the unit tests in CurrencyManagerTest and
8994         the output more or less matches that of MS's implementation.
8995  
8996 2006-06-06  Mike Kestner  <mkestner@novell.com>
8997
8998         * ListView.cs : only update check state on single click.
8999         * ThemeWin32Classic.cs : fix focus drawing for details view without
9000         fullrowselect.  Fixes #78454.
9001         * XplatUIX11.cs : fix for double click emission.
9002
9003 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9004
9005         * PropertyGridView.cs : Applied Atsushi's patch to fix
9006         font dialog bug  (#78197).
9007
9008 2006-06-05  Jackson Harper  <jackson@ximian.com>
9009
9010         * TreeNode.cs: Compute the next node for expanding/collapsing
9011         correctly. We now factor in nodes without a NextNode
9012         correctly. (Fixes somes cases in nunit-gui).
9013         * InternalWindowManager.cs: Set the bounds when updating the
9014         virtual position of a tool window.
9015         
9016 2006-06-05  Chris Toshok  <toshok@ximian.com>
9017
9018         * DataGrid.cs: rename cached_currencymgr to list_manager.
9019         (set_CurrentCell): move SetCurrentCell code here, and clean it up
9020         some.
9021         (CurrentRow, CurrentColumn): single accessors so we can make the
9022         cursor movement code a lot easier to understand.
9023         (CurrentRowIndex): implement this in terms of CurrentRow.
9024         (BeginEdit): clean this up a bit.
9025         (CancelEditing): sort out the is_editing/is_changing/is_adding
9026         stuff a little.
9027         (EndEdit): minor changes.
9028         (OnKeyDown): add a comment about a (most likely) unnecessary
9029         check.
9030         (OnMouseDown): cancel editing when we click on a row header.  And
9031         use the CurrentRow setter, not CurrentCell.
9032         (ProcessDialogKey): directly call ProcessGridKey.
9033         (UpdateSelectionAfterCursorMove): factor out this common block of
9034         code (it's used everywhere that we move the cursor by updating row
9035         or column).
9036         (ProcessGridKey): pretty substantial overhaul.  Use the
9037         CurrentRow/CurrentColumn properties to make the code a lot more
9038         readable.  Only use the CurrentCell property when we have to
9039         modify both row and column at once.  Tab behavior is still broken,
9040         and Delete is untested.
9041         (Select): if we have no selected rows, set selection_start to
9042         @row.
9043         (EditCurrentCell): rename EditCell this.  It was only ever invoked
9044         with CurrentCell as the arg, so drop the arg and rename it.
9045
9046         * DataGridColumnStyle.cs: clean up the constructors a little, and
9047         drop CommonConstructor().
9048
9049         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
9050         actually get notified when the user hits it.
9051         (ProcessKeyMessage): *substantially* simplify this method.
9052         There's no reason (that I can see) for the textbox to be making
9053         calls into the datagrid at all.  Remove all of them but the ones
9054         for Enter handling.  those will take some more work.
9055
9056         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
9057         calling HideEditBox.
9058         (HideEditBox): if we have an active textbox, render it invisible
9059         without causing a re-layout of the datagrid.
9060
9061 2006-06-05  Mike Kestner  <mkestner@novell.com>
9062
9063         * ListView.cs : fix NRE crasher when focuseditem is cleared by
9064         collection changes by resetting it to Items[0].  Fixes #78587.
9065
9066 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9067
9068         * MessageBox.cs: if the height of the text is larger than the icon_size,
9069         use that. Fixes bug #78575.
9070
9071 2006-06-05  Jackson Harper  <jackson@ximian.com>
9072
9073         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9074         node is basically responsible for drawing its entire horizontal
9075         area.  When drawing a node it draws its parent node lines if
9076         needed.
9077         - Adjust the clip area to the viewport rectangle
9078         - Fix Left/Right key handling to match MS. (It expand/collapses
9079         and moves to parents/first child but does not move selection to
9080         sibling nodes).
9081         - Fix SetTop to work with new bound calculation code
9082         - When scrollbars are no longer needed we need to reset scrolling
9083         vars and recalculate the visible order so the redraw is correct
9084         * TreeNode.cs: We can't expand/collapse nodes with no children.
9085
9086 2006-06-03  John Luke  <john.luke@gmail.com> 
9087
9088         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9089         so the colors work without dev packages
9090         
9091 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9092
9093         * Control.cs 
9094           - Select: Implemented to just use activate. Seems to match MS 
9095             behaviour closest. Documented to only do actual control walking 
9096             based on it's parameters if in a container control so I moved 
9097             the code there.
9098           - Removed selection check logic from our internal Select() method
9099         * ContainerControl.cs:
9100           - Select: Moved selection logic from Control here, since MS documents
9101             that containers obey the bool arguments. No longer calling base
9102
9103 2006-06-02  Jackson Harper  <jackson@ximian.com>
9104
9105         * TreeView.cs: If the selected node isn't changed when we get
9106         focus update the previously selected node so that we see the
9107         selection box.
9108
9109 2006-06-02  Mike Kestner  <mkestner@novell.com>
9110
9111         * ComboBox.cs: restructure grab and general mouse event handling.
9112         Make the composite control raise mouse events like it was a single
9113         control for leaves/enters/motion/up/down events.  fix dropdown list
9114         coordinate mangling and refactor it into the scrollbar subclass to
9115         reduce code duplication.  Fixes #78282 #78361 and #78457.
9116
9117 2006-06-02  Mike Kestner  <mkestner@novell.com>
9118
9119         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9120         automatically in the Control.WndProc.
9121
9122 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9123
9124         * FileDialog.cs: fix crash when running SharpChess, which sets the
9125         FilterIndex to 2 with only one Filter.
9126
9127 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9128
9129         * ToolBar.cs: add SizeSpecified property.
9130         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9131         try to figure out our real size, otherwise fallback to what the
9132         container says.
9133
9134 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9135
9136         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9137         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9138           up the event
9139
9140 2006-06-01  Mike Kestner  <mkestner@novell.com>
9141
9142         * ListView.cs: revamp the focus management in ListView.  It still
9143         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9144         better than not handling focus at all.  Will revisit when pdb feels
9145         the general focus handling is solid.  Fixes #78526.
9146
9147 2006-06-01  Jackson Harper  <jackson@ximian.com>
9148
9149         * TreeView.cs: Set the default border style in the constructor.
9150         - Move painting to use OnPaintInternal instead of capturing
9151         WM_PAINT, this is the correct way of doing things
9152         - UpdateBelow shouldn't invalidate the scrollbar area
9153         - Cap the top on update below in case the node was above the top
9154         of the viewport rectangle.
9155         - ExpandBelow and Collapse below need to obey Begin/End Update.
9156         * TreeNode.cs: Make is_expanded internal so the treenode
9157         collection can change it without firing the whole event chain.
9158         * TreeNodeCollection.cs: When clearing all the child nodes make
9159         sure to recalc the visible order.
9160         - Improve algo for remove the top node
9161
9162 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9163
9164         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9165           SendMessage directly calling window procedures, which in turn might
9166           call SetFocus()
9167
9168 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9169
9170         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9171           has focus (works around X11 sending a FocusIn after our SetFocus)
9172         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9173
9174 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9175
9176         * Mime.cs: Fix for the NET_2_0 build.
9177           NameValueCollection needs StringComparer now.
9178
9179 2006-05-31  Chris Toshok  <toshok@ximian.com>
9180
9181         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9182         return (via an out parameter) the starting X of the column.
9183         (UpdateVisibleColumn): track change to FromPixelToColumn.
9184         (HitTest): add a ColumnResize case here.
9185         (DrawResizeLine): new function, probably poorly named.
9186
9187         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9188         only need to keep one reference.
9189         (set_ListManager): same.
9190         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9191         Also, add support for HitTestType.ColumnResize.
9192         (OnMouseMove): add column resize behavior here, and change the
9193         cursor to the correct one as we move around the datagrid.
9194         (OnMouseUp): terminate the column resize if we're resizing.
9195         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9196         for the current cell.
9197         (ConnectListManagerEvents): use cached_currencymgr.
9198         (DisconnectListManagerEvents): fill this in, using
9199         cached_currencymgr.
9200         (SetCurrentCell): remove cached_currencymgr_events handling.
9201         (SetDataMember): only call DisconnectListManagerEvents if
9202         cached_currencymgr is != null.
9203         (SetDataSource): same.
9204         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9205         cached_currencymgr.
9206
9207 2006-05-31  Jackson Harper  <jackson@ximian.com>
9208
9209         * BindingManagerBase.cs: Remove somedebug code that creeped into
9210         SVN.
9211         * TreeNode.cs: We get the indent level dynamically right now, so
9212         don't track it as a member.
9213         * TreeNodeCollection.cs: Make sure all nodes added to the list
9214         have parents, treeviews/topnodes setup properly.
9215         - Don't attempt to track indent level.
9216
9217 2006-05-30  Jackson Harper  <jackson@ximian.com>
9218
9219         * BindingContext.cs: Create the currency manager tables here.
9220         This allows us to more easily create null tables (when bad data
9221         members are used), and more easily create related currency
9222         managers.
9223         * CurrencyManager.cs: All the table creation stuff is done by the
9224         binding context now.
9225         - Current should throw an exception if listposition is -1.
9226         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9227         been bound yet.
9228
9229 2006-05-30  Mike Kestner  <mkestner@novell.com>
9230
9231         * ListView.cs: allow reexpansion of zero-width column headers.
9232         Fixes #78528.
9233
9234 2006-05-28  Chris Toshok  <toshok@ximian.com>
9235
9236         * CurrencyManager.cs (get_Current): after the late binding
9237         listposition = -1 fix, we need to guard against it here and return
9238         null, otherwise we raise an exception (which is swallowed
9239         elsewhere, and breaks datagrid databinding.)
9240
9241 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9242
9243         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9244           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9245
9246 2006-05-26  Jackson Harper  <jackson@ximian.com>
9247
9248         * ControlPaint.cs:
9249         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9250         values, it's faster and it's all we care about (we don't care if
9251         the names aren't equal).
9252         * KeyboardLayouts.cs: Eliminate some dead code.
9253         - Lazy init things
9254         * X11Keyboard.cs: Lazy init keyboard detection.
9255         - Cleanup access modifiers a little.
9256
9257 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9258
9259         * XplatUIX11.cs: Once again, attempting to get layout just right.
9260
9261 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9262
9263         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9264           the sizes of each link section, that will result in sizes that
9265           match DrawString's layout (Fixes #78391)
9266
9267 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9268
9269         * FileDialog.cs: If AddExtension property is true autocomplete the
9270           extensions in SaveFileDialog correctly. Fixes bug #78453.
9271           Set MyNetwork and MyComputer to "C:\" for windows. This should
9272           fix part 8 of bug #78446 for now.
9273
9274 2006-05-26  Chris Toshok  <toshok@ximian.com>
9275
9276         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9277         invalidate the current row header if we need to, but presumably
9278         we'll invalidate the row corrsponding to the bounds or
9279         editingControl.
9280         (GridHScrolled): switch back to this method, as it's part of the
9281         public api.  *sigh*.
9282         (GridVScrolled): same.
9283         (OnMouseWheel): hack up something that more or less works.  Call
9284         GridHScrolled/GridVScrolled directly, instead of duplicating much
9285         of their code here.
9286         (EnsureCellVisibility): reinstate a bunch of this code, since we
9287         can't just set the scrollbar Value and expect to do all the work
9288         in the ValueChanged handler.  Also, Call Update() after scrolling
9289         in one direction so the other XplatX11.ScrollWindow call has the
9290         proper stuff in the proper places.
9291         (EditCell): set is_editing to true before calling .Edit.
9292
9293         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9294         don't bother comparing first.
9295         (OnKeyPress): call grid.ColumnStartedEditing before calling
9296         base.OnKeyPress.  this will set is_changing and invalidate the row
9297         header if necessary.
9298         (ProcessKeyMessage): for WM_CHAR messages, call
9299         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9300         and WM_KEYDOWN.
9301         
9302         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9303         it's done in the DataGrid.
9304         (NextState): call grid.ColumnStartedEditing, which takes care of
9305         invalidating the row header (and setting is_changing).
9306
9307         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9308         here.  it's done in the DataGrid.
9309
9310 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9311
9312         * Control.cs: allow changing the cursor when the mouse position is
9313         out of bounds but Capture is set.
9314         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9315         linklabel but released somewhere else.
9316
9317 2006-05-25  Jackson Harper  <jackson@ximian.com>
9318
9319         * TreeView.cs: When we get focus if there is no selected node make
9320         it the top node
9321         - Remove some uneeded setup code from Draw.
9322         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9323         a new node is inserted make the new node the top.
9324         * XplatUIX11.cs:
9325         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9326         be used (should be faster).
9327         
9328 2006-05-25  Chris Toshok  <toshok@ximian.com>
9329
9330         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9331         problem with the last commit.
9332
9333 2006-05-25  Chris Toshok  <toshok@ximian.com>
9334
9335         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9336         need the invalidate call here, while scrolling right-to-left via
9337         the left arrow key (i.e. moving the editing cell while scrolling).
9338
9339         * DataGrid.cs (.ctor): remove the initialization of
9340         ctrl_pressed/shift_pressed.  We no longer track them using key
9341         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9342         to using ValueChanged handlers on the scrollbars instead of
9343         Scrolled event handlers.  This simplifies a bunch of the scrolling
9344         code.
9345         (GridHValueChanged): rename from GridHScrolled, and change it to
9346         work with the new event args.
9347         (GridVValueChanged): same.
9348         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9349         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9350         selected cell.
9351         (ProcessGridKey): correct all the keyboard navigation stuff I
9352         could find.  Ctrl up/down/left/right/home/end work now.
9353         (EnsureCellVisibility): correct method name spelling.  Also,
9354         simplify this a touch by not explicitly calling the
9355         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9356         scrollbar value.
9357         (OnKeyUpDG): no need for this method now.
9358         
9359 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9360
9361         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9362         Fixes bug #78392.
9363
9364 2006-05-25  Chris Toshok  <toshok@ximian.com>
9365
9366         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9367         r61019.
9368
9369 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9370
9371         * Application.cs: Moved setting of is_modal and closing to before
9372           we create the control, to allow the event handlers called as a
9373           result of creation affect closing. Also removed Gonzalo's previous
9374           change to setting DialogResult, the behaviour has been moved to 
9375           Form.ShowDialog()
9376         * Form.cs: 
9377           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9378             handle it instead
9379           - ShowDialog(): If no dialog result is set, we need to return Cancel
9380           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9381             the close is cancelled
9382
9383 2006-05-25  Jackson Harper  <jackson@ximian.com>
9384
9385         * StatusBar.cs: We only need to update the sizes of the other
9386         panels when we have auto size contents.  Also we are only updating
9387         the contents of the panel, not the borders, so compensate for the
9388         border width (TODO: get this width from the theme somehow).
9389         * TreeView.cs: Scrollable is true by default
9390         - Use invalidate instead of refresh where needed
9391         - Factor the scrollable value into scrollbar updating
9392         - Update the scrollbars if the Scrollable property is altered
9393         - Update the selected node if its ImageIndex is changed
9394         - Handle null nodes in UpdateNode (mainly so we don't have to
9395         check if selected is null when updating it
9396         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9397         are factored into the visible count
9398         - Use VisibleCount for clarity in the code
9399         - When the font is changed we need to recurse through all the
9400         nodes and invalidate their sizes
9401         
9402 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9403
9404         * Application.cs: set the DialogResult to fixed when the main form is
9405         hidden or destroyed while being modal.
9406
9407 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9408
9409         * Theme.cs: Use Tangoified messagebox icons. 
9410
9411         (GetSizedResourceImage): Also cope with width = 0 and do not
9412         trigger a warning in that case (0 means "give me your icon from
9413         the resouce, no special size needed).
9414
9415 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9416
9417         * Application.cs: Leave runloop if the the main modal form is 
9418           hidden (fixes #78484)
9419
9420 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9421
9422         * BindingContext.cs : reject null datasource in Contains() and
9423           Item[].
9424         * CurrencyManager.cs : check data_member validity when data_source
9425           is dataset. When it is late binding, the initial position is -1.
9426
9427 2006-05-24  Jackson Harper  <jackson@ximian.com>
9428
9429         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9430         inserted nodes that aren't visible.  This changes the
9431         max_visible_order which confuses scrollbar settings.
9432         - Use the enumerator to get the prev node instead of duplicating
9433         code.
9434         * TreeView.cs: Use new method for setting scrollbar values
9435         - Don't set the bounds every time the scrollbar is updated
9436         - When updating below the root node use an invalidate instead of a
9437         refresh to prevent the child controls (scrollbars) from being
9438         refreshed. (UpdateBelow still needs to be reworked anyways).
9439         - Reenable SetBottom now that visible orders are set correctly,
9440         added some debug code incase we ever get bad values there again.
9441         - Set the scrollbar max to 2 less then the max value, this
9442         compensates for the max value being one above the node count, and
9443         for scrollbars adding one extra "notch".
9444         - When drawing image nodes if there is an imagelist we draw the
9445         first image in the list if the supplied image index is out of the
9446         image list's bounds.
9447         
9448 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9449
9450         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9451           we receive a size change from the WM (Fixes #78503)
9452
9453 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9454
9455         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9456           rectangle (Fixes #78501)
9457
9458 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9459
9460         * ButtonBase.cs: 
9461           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9462             as a bitfield.
9463           - Fixed MouseMove to no longer switch pressed state unless the left
9464             mouse button is pressed. Atsushi provided the original patch (#78485)
9465           
9466 2006-05-24  Jackson Harper  <jackson@ximian.com>
9467
9468         * ScrollBar.cs: New internal methods that allow us to change a
9469         couple values on the scrollbar (the most common case is maximum
9470         and large change) without getting multiple invalidates.
9471
9472 2006-05-24  Chris Toshok  <toshok@ximian.com>
9473
9474         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9475         (Edit): save off the original state in oldState, and set
9476         grid.is_editing to true.
9477         (OnKeyDown): abort editing if escape is pressed.  also, call
9478         NextState if space is pressed.
9479         (OnMouseDown): call NextState.
9480         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9481         here.  Also, only invalidate the row header once (on the initial
9482         is_changing switch) to save on redraws.
9483
9484 2006-05-24  Chris Toshok  <toshok@ximian.com>
9485
9486         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9487         if the value in the cell is different than it was before.  This
9488         keeps us from triggering a layout when we move around a datarid
9489         with a highlighted cell.
9490         (Edit): suspend layout when creating/positining the text box, and
9491         resume passing false so we don't ever actually re-layout.
9492         (ReleaseHostedControl): same.
9493         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9494
9495         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9496         control-key sequences should go to the datagrid - remove that
9497         lock.  Also, modify the conditions under which we move between
9498         cells when moving the cursor within a cell, and remove the "this"
9499         and "base" from field accesses.  We weren't even consistent, given
9500         they all were in the base class.
9501
9502 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9503
9504         * Binding.cs : (.ctor)
9505           An obvious NRE fix for BindingTest.CtorNullTest().
9506
9507 2006-05-23  Chris Toshok  <toshok@ximian.com>
9508
9509         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9510         them between lines.  This fixes some quirks editing cells in the
9511         datagrid.
9512
9513 2006-05-23  Jackson Harper  <jackson@ximian.com>
9514
9515         * TreeView.cs: Use begin/end update when doing expand/collapse all
9516         so that we don't get flicker on the scrollbar.
9517
9518 2006-05-23  Jackson Harper  <jackson@ximian.com>
9519
9520         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9521         treenode calculations to be independant of the painting code. To
9522         do this nodes track a visible order which is calculated by the
9523         treeview.
9524         - Call new methods for expanding/collapsing nodes.  These methods
9525         use scrollwindow so we don't have to update everything below the
9526         node.
9527         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9528         need to update nodes when drawing anymore or calculate scrollbar
9529         stuff.
9530         - Added new methods for expanding/collapsing nodes. These methods
9531         use ScrollWindow so as to not have to redraw all the nodes below.
9532         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9533         we add/remove nodes or sort.
9534         - Handle removing the selected and the top node properly.
9535
9536 2006-05-23  Chris Toshok  <toshok@ximian.com>
9537
9538         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9539         maybe this should actually happen in the datagrid code?
9540         (EndEdit): no need to invalidate anything, given that
9541         ReleaseHostedControl causes the datagrid to relayout, which
9542         invalidates everything anyway.
9543
9544         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9545         in SetCurrentCell).
9546         (set_SelectionBackColor): call InvalidateSelection instead of
9547         Refresh.
9548         (set_SelectionForeColor): same.
9549         (BeginEdit): Flesh this out a bit.
9550         (CancelEditing): only do any of this if we're editing/adding.
9551         (EndEdit): same.
9552         (OnMouseDown): there's no need to cancel editing here, it's done
9553         in SetCurrentCell.
9554         (SetCurrentCell): only invalidate the current row header if it's a
9555         different row than the new one.
9556         (ShiftSelection): fix this to work like MS does.
9557         (ResetSelection): factor out the invalidation of selected_rows to
9558         InvalidateSelection.
9559         (SetDataSource): cancel any editing that's going on.
9560
9561         * DataGridColumnStyle.cs
9562         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9563         call the non-interface version.
9564
9565         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9566         header rectangle with the clip rectangle so we don't redraw the
9567         entire header for just a small area.  Gets rid of the last flicker
9568         when horizontally scrolling.
9569         (DataGridPaintRow): same.
9570
9571 2006-05-23  Mike Kestner  <mkestner@novell.com>
9572
9573         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9574         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9575         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9576         Critical bug report.
9577
9578 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9579
9580         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9581           and this fixes #78493
9582
9583 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9584
9585         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9586         size is not found.  
9587         
9588         * FileDialog.cs: Do not change the background for the side bar as
9589         it wont work nicely with the theme, and also reduces the artifacts
9590         in rendering the icons (which I want to fix too).
9591
9592         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9593         resources, not resgen resources. 
9594
9595         (PlatformDefaultHandler): Pull images using the new API.
9596
9597 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9598
9599         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9600           a reference to the hwnd and will not remove it unless there are
9601           no pending exposures (fixes #78341)
9602         * XplatUI.cs: Improved debug
9603
9604 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9605
9606         * MenuAPI.cs : don't handle OnClick event when it was not the left
9607           button. Fixed bug #78487.
9608
9609 2006-05-23  Mike Kestner  <mkestner@novell.com>
9610
9611         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9612         prefer submenus to the top menu for item lookup, to avoid popping down
9613         top-row items.
9614
9615 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9616
9617         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9618           Graphics.FillRectangle as the visual results are really bad (even
9619           on win). We now draw perfect arrows (and perfect shadows when the
9620           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9621           Pen.DashPattern to draw the dots of each line.
9622
9623 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9624
9625         * FileDialog.cs: Update the filename combobox when navigating through
9626           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9627
9628 2006-05-22  Mike Kestner  <mkestner@novell.com>
9629
9630         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9631         Fixes #78463.
9632
9633 2006-05-22  Mike Kestner  <mkestner@novell.com>
9634
9635         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9636         requests. Fix a misspelled parameter and a copy paste exception error
9637         in Select.
9638
9639 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9640
9641         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9642           to get the same width/height (5/13) on X11 as the default font has on
9643           win32. This means that our DefaultFont emSize is smaller than the 
9644           the MS SWF equivalent (even thought the width/height stays the same)
9645
9646 2006-05-20  Jackson Harper  <jackson@ximian.com>
9647
9648         * MdiClient.cs:
9649         * MdiWindowManager.cs:
9650         * InternalWindowManager.cs: Make sure to use the border width from
9651         the theme.
9652
9653 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9654
9655         * PrintDialog.cs: Implements printer details
9656
9657 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9658
9659         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9660           Fixes part 1 and 2 of bug #78446
9661
9662 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9663
9664         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9665           instead of sticking to the first ever calculated value
9666
9667 2006-05-19  Mike Kestner  <mkestner@novell.com>
9668
9669         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9670         PointToClient, since Capture is set. Fixes #78344.
9671
9672 2006-05-19  Mike Kestner  <mkestner@novell.com>
9673
9674         * ListView.cs: match MS behavior in Details view where items are not
9675         drawn if Columns.Count == 0. 
9676         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9677         Use a separate pen to draw the check, since changing the width affects
9678         the box as well.  Fixes #78454.
9679
9680 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9681
9682         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9683         exception should throw the name of the invalid argument.
9684
9685         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9686         there are no files listed. 
9687
9688 2006-05-18  Jackson Harper  <jackson@ximian.com>
9689
9690         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9691         up.
9692
9693 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9694
9695         * Control.cs: Brought back our old UpdateZOrder method as a private
9696           function and switched our calls from UpdateZOrder to the new one.
9697           This fixes the Paint.Net canvas disappearing bug.
9698
9699 2006-05-18  Jackson Harper  <jackson@ximian.com>
9700
9701         * Theme.cs:
9702         * ThemeWin32Classic.cs:
9703         * InternalWindowManager.cs: Move the drawing into the theme,
9704         expose everything the theme should need from the window manager.
9705
9706 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9707
9708         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
9709           from the call to NativeWindow to avoid walking up the parent chain
9710           further than needed (speeds up setting cursors and avoids setting
9711           the wrong cursor if a parent has another cursor defined)
9712         * Cursor.cs: When loading an icon as cursor, MS uses the center of
9713           the icon as hotspot, not what's contained as hotspot in the icon
9714           file. This fixes the perceived drawing offset seen with Paint.Net
9715         
9716 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9717
9718         * XplatUIX11.cs: 
9719           - Store the calculated rectangle in Hwnd object and use it when 
9720             setting the client size
9721           - Force Toolwindows to always be type Dock, to ensure they're on top
9722
9723 2006-05-18  Mike Kestner  <mkestner@novell.com>
9724
9725         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
9726         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
9727         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
9728         Substantial refactoring to remove confusing nested classes. Coding
9729         standard and Get+Set->property refactorings.  Shift to index based
9730         highlighting in ComboListBox instead of constantly using IndexOf and
9731         Items[]. Add invalidations on resize for DropDownList to fix ugliness
9732         in FileDialog growth.  Draw borders manually since Simple mode needs
9733         to look like two independent controls.  Make listbox border
9734         conditional to DropDownStyle.  Improved OwnerDraw support.
9735
9736 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
9737
9738         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
9739         Don't set the disposed graphics to null, so we can throw the "right"
9740         exception if the graphics is reused later (added a flag to avoid 
9741         double disposing). Some behaviours are different under 2.0 and are
9742         filled under bug #78448.
9743
9744 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
9745
9746         * Control.cs: When double-buffering is enabled, we need to reset
9747           our graphics context between paint calls. Otherwise, any 
9748           transformations and other alterations on the context will 
9749           become cumulative (#77734)
9750
9751 2006-05-18  Mike Kestner  <mkestner@novell.com>
9752
9753         * ListView.cs: do focused item selection like MS on clicks. 
9754         Rework focus handling for ItemControl so LostFocus invalidates as
9755         well.
9756         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
9757         the ListView ItemControl has focus.
9758
9759 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
9760
9761         * XplatUIX11.cs: If client_window ends up being width or height zero
9762           due to border settings, move it off window inside whole_window (#78433)
9763
9764 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9765
9766         * Mime.cs: Shrink the mime file cache correctly.
9767
9768 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
9769
9770         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
9771
9772 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9773
9774         * XplatUIX11.cs (AddExpose): More sanity checks
9775
9776 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9777
9778         * XplatUIX11.cs:
9779           - AddExpose: Don't add expose ranges outside the size of our
9780             window
9781           - Cast opacity values to Int32 to avoid crashes with certain
9782             values
9783           - Added disabled code paths that protect against illegal cross-
9784             thread painting (Developers.exe)
9785
9786 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9787
9788         * ProgressBar.cs: Invalidate the control when it's resized
9789           since block size is based on control size. (#78388)
9790
9791 2006-05-16  Miguel de Icaza  <miguel@novell.com>
9792
9793         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
9794         of setting the incoming argument to the "reset" value, we set the
9795         this.datamember to string.empty (before we were invalidating the
9796         incoming data).   
9797
9798         Fixes 78420
9799
9800 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9801
9802         * Form.cs: Only apply transparency settings after the form
9803           is created. (Fixes #77800)
9804
9805 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
9806
9807         * ApplicationContext.cs: Grab the HandleDestroyed event so
9808           we know when to fire OnMainFormClosed 
9809
9810 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9811
9812         * Application.cs: Introduced sub-class to allow tracking of
9813           threads and centralized triggering of the event mess for
9814           ThreadExit, AppExit, etc..  (#76156)
9815
9816 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
9817
9818         * MimeIcon.cs:
9819           - Do not return a null icon index value for a mime subclass.
9820             Instead try the main mime type class too.
9821           - Seems that some newer distributions don't have a link to some
9822             gnome default icons anymore. So check the default gnome dir too.
9823           
9824
9825 2006-05-16  Jackson Harper  <jackson@ximian.com>
9826
9827         * MdiClient.cs: Don't paint the parent background image if we have
9828         our own background image.
9829
9830 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
9831
9832         * Control.cs:
9833           - PerformLayout: Do not shrink space filled by DockStyle.Fill
9834             controls, all filled controls are supposed to overlap (#78080)
9835           - UpdateZOrder is supposed to update the control's z-order in the
9836             parent's z-order chain. Fixed to behave like that
9837           - BringToFront: Removed obsolete code
9838           - SendToBack: Simplyfied
9839           - SetChildIndex: Trigger layout calculations when Z-order changes
9840             since layout is done by z-order
9841
9842 2006-05-16  Chris Toshok  <toshok@ximian.com>
9843
9844         [ fixes bug #78410 ]
9845         * DataGrid.cs (set_AlternatingBackColor): use
9846         grid_drawing.InvalidateCells instead of Refresh().
9847         (set_BackColor): call grid_drawing.InvalidateCells.
9848         (set_BackgroundColor): use Invalidate instead of Refresh.
9849
9850         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
9851         invalidate the cell area.
9852
9853 2006-05-15  Chris Toshok  <toshok@ximian.com>
9854
9855         [ fixes bug #78011 ]
9856         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
9857         on to DataGridPaintRow.
9858         (DataGridPaintRow): take a clip argument, and only draw the cells
9859         which intersect it.  same with the not_usedarea.
9860
9861         * Theme.cs (DataGridPaintRow) add @clip parameter.
9862
9863         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
9864         XplatUI.ScrollWindow.
9865         (ScrollToRow): same.
9866
9867         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
9868         with last column which was causing a gray swath to appear with the
9869         XplatUI.ScrollWindow code.
9870
9871 2006-05-15  Chris Toshok  <toshok@ximian.com>
9872
9873         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
9874         use XplatUI.ScrollWindow.
9875         (VerticalScrollEvent): use XplatUI.ScrollWindow.
9876
9877 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
9878
9879         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
9880
9881 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9882
9883         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
9884           file since there are no equivalent X11 cursors
9885
9886 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9887
9888         * MonthCalendar.cs : DateTimePicker should reflect selected date
9889           on mouse*up*, not mouse*down*. Fixed originally reported part of
9890           bug #76474.
9891
9892 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
9893
9894         * TabControl.cs : When argument index is equal or more than tab
9895           count, just ignore. Fixed bug #78395.
9896
9897 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
9898
9899         * Control.cs: Dispose all child controls when control is diposed (#78394)
9900
9901 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9902
9903         * ColorDialog.cs: Finally it is possible to select the color with
9904           the text boxes
9905
9906 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9907
9908         * PrintDialog.cs: Fix typo
9909
9910 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
9911
9912         * PrintDialog.cs: PrintDialog is not resizable
9913         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
9914           color. Made some ToolBar drawing methods protected virtual.
9915
9916 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
9917
9918         * PrintDialog.cs: Implementation of the PrintDialog
9919
9920 2006-05-12  Chris Toshok  <toshok@ximian.com>
9921
9922         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
9923         thumb, instead use MoveThumb.  This has the side effect of making
9924         most of the other thumb moving machinery use MoveThumb as well.
9925         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
9926         need to actually invalidate the rectangle where the new thumb will
9927         go.
9928         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
9929         We force an Update() after, so it's not as fast as it could be,
9930         but at least there's zero flicker and no droppings.
9931         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
9932         (UpdateThumbPos): add another argument (dirty), which says whether
9933         or not to calculate/add dirty regions which we later invalidate.
9934         For cases where we know we're going to use MoveThumb, we pass
9935         false for this.  Otherwise, pass true.
9936
9937 2006-05-12  Jackson Harper  <jackson@ximian.com>
9938
9939         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
9940         the status bar.
9941         
9942 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
9943
9944         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
9945           and GetClipRegion methods and UserClipWontExposeParent property.
9946         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
9947           overriding UserClipWontExposeParent property, setting to false, since
9948           Win32 handles the required expose messages to draw our clipped parent
9949           areas internally
9950         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
9951           PaintEventStart to set the user clip region if set.
9952         * Control.cs: 
9953           - Now internally tracking the Region for the control since we need to
9954             store it if the handle is not yet created and only set it when it
9955             becomes created. Before setting the region forced handle creation
9956           - Added code to draw the parents underneath a user-clipped region
9957         * Hwnd.cs: Added UserClip property
9958
9959 2006-05-12  Chris Toshok  <toshok@ximian.com>
9960
9961         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
9962         (set_Maximum): same.
9963         (set_Minimum): same.
9964         (set_SmallChange): same.
9965         (OnMouseUpSB): remove the call to refresh when releasing the
9966         thumb.  We shouldn't need it.
9967         
9968 2006-05-12  Miguel de Icaza  <miguel@novell.com>
9969
9970         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
9971         AutoSize set to None, we do not need to relayout everything, we
9972         just need to invalidate the current region.
9973
9974         (Draw): Do not draw the entire ClientArea, just redraw the
9975         clip area being passed.
9976
9977         * MdiClient.cs: Make MdiClient constructor with the Form argument
9978         internal. 
9979
9980 2006-05-12  Jackson Harper  <jackson@ximian.com>
9981
9982         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
9983         parents background image,  but strangely not their own.
9984         - (DrawStatusBarPanel): Take into account horizontal alignment
9985         when drawing the strings and icons.
9986
9987 2006-05-12  Mike Kestner  <mkestner@novell.com>
9988
9989         * ListBox.cs: avoid invalidations for focus when the collection is
9990         empty. 
9991
9992 2006-05-12  Chris Toshok  <toshok@ximian.com>
9993
9994         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
9995         invalidate the entire thumb area.  Call InvalidateDirty which
9996         limits the redraw to the thumb itself and surrounding pixels.
9997
9998         * XplatUIX11.cs (ScrollWindow): optimize copying.
9999         
10000 2006-05-12  Chris Toshok  <toshok@ximian.com>
10001
10002         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
10003         Figure out the positioning/layout in a single pass instead of
10004         multiple recursive invocations.  Speeds up the initial display of
10005         the data grid.  Also, make many things private that were
10006         originally public but unused outside this class.
10007
10008 2006-05-11  Jackson Harper  <jackson@ximian.com>
10009
10010         * MdiClient.cs: Improved layout code.
10011
10012 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
10013
10014         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
10015           not SelectedObject.
10016
10017 2006-05-11  Chris Toshok  <toshok@ximian.com>
10018
10019         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
10020         union of that will always be {0,0,width,height}.
10021
10022 2006-05-11  Jackson Harper  <jackson@ximian.com>
10023
10024         * Form.cs: Match MS's DefaultSize for forms (they must have
10025         changed the size in sp2).
10026
10027 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10028
10029         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
10030
10031 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10032
10033         * TextControl.cs : Fixed bug #78109. This incorrect position
10034           comparison caused crash on automatic line split.
10035         * TextBoxBase.cs : reduce duplicate code.
10036
10037 2006-05-10  Jackson Harper  <jackson@ximian.com>
10038
10039         * MdiClient.cs: Active form is only sent to the back when using
10040         the Next form functionality, when a form is clicked the current
10041         active shouldn't be sent to the back.
10042         - Layout the mdi windows when the container is first made visible.
10043         * Form.cs: Give the MdiClient a ref to the containing form when we
10044         create it.
10045         
10046 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10047
10048         * LinkLabel.cs : link_font could be uninitialized, so populate one
10049           before actual use. Fixed bug #78340.
10050
10051 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10052
10053         * XplatUIX11.cs : clipboard format native value is IntPtr.
10054           Fixed bug #78283.
10055
10056 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10057
10058         * Control.cs: 
10059           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
10060             which is passed up the parent chain by DefWndProc
10061           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
10062             to DefWndProc (#77956)
10063         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
10064
10065 2006-05-10  Jackson Harper  <jackson@ximian.com>
10066
10067         * MdiClient.cs: We need to remove the controls from the mdi
10068         collection, when we close the window.
10069         * MdiWindowManager.cs: Special handling of closing mdi windows.
10070         * InternalWindowManager.cs: Make the close method virtual so the
10071         mdi window manager can handle it specially.
10072
10073 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10074
10075         * DataGrid.cs:
10076           - Recalculate grid when the data source has changed
10077           - Matches styles provided by user from all data sources types
10078         * DataGridTableStyle.cs: For columns that provided by the user set the
10079         with the preferred value is there was unassigned.
10080         * CurrencyManager.cs: throw OnItemChanged event
10081
10082 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10083
10084         * PictureBox.cs: Don't animate until handle is created. Start animation
10085           when handle is created.
10086
10087 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10088
10089         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10090           current codebase.
10091         * XEventQueue.cs: We don't need to provide the extra info
10092
10093 2006-05-10  Jackson Harper  <jackson@ximian.com>
10094
10095         * MdiClient.cs: If the mdi clients parent form has a background
10096         image set, we draw that background image for the mdi area's
10097         background.
10098
10099 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10100
10101         * TextBoxBase.cs: Set IBeam cursor (#78347)
10102
10103 2006-05-10  Mike Kestner  <mkestner@novell.com>
10104
10105         * ToolBar.cs: fix some text padding issues with ButtonSize
10106         calculation. Update the default size to match MS documentation.
10107         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10108         button size. Fixes #78296.
10109
10110 2006-05-10  Mike Kestner  <mkestner@novell.com>
10111
10112         * ListBox.cs: use is_visible for scrollbar positioning in case the
10113         control isn't on screen yet.  Fix off by one with Right vs Width
10114         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10115         
10116 2006-05-10  Jackson Harper  <jackson@ximian.com>
10117
10118         * X11Dnd.cs: Drop to a control with another control on top of it.
10119         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10120         be modified in click handlers. TODO: Look for similar problems in
10121         other controls.
10122
10123 2006-05-09  Jackson Harper  <jackson@ximian.com>
10124
10125         * Form.cs: Window managers need the old window state when setting
10126         window state now.
10127         * InternalWindowManager.cs: Allow the base mdi window manager to
10128         handle more of the MDI only stuff (like maximize buttons).
10129         * MdiWindowManager.cs: Fix some snafus in changing the window
10130         state.  Add all the menu functionality, for both popup and
10131         maximized menus.
10132         * MdiClient.cs: When a new form is selected the currently
10133         activated form is sent to the back, this matches MS.
10134         - Implement a new method to activate the next mdi child window.
10135
10136 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10137
10138         * Control.cs: 
10139           - Added new InternalCapture method to allow controls to prevent
10140             the capture behaviour on the click handlers
10141           - Switched to use InternalCapture
10142         * ComboBox.cs:
10143           - Using InternalCapture to prevent mouse captures from being released
10144             on mouse button release (Fixes #78100)
10145         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10146           returns Form borders if a caption is present. (Fixes #78310)
10147
10148 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10149
10150         * TreeNode.cs: Changed serialization .ctor to not require every field
10151           to be present. (#78265)
10152         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10153
10154 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10155
10156         * MimeIcon.cs: for is faster than foreach for strings.
10157
10158 2006-05-05  Mike Kestner  <mkestner@novell.com>
10159
10160         * CheckedListBox.cs: update check handling code to not use selected.
10161         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10162         behavior for visual feedback, motion response, shift/ctrl handling,
10163         and properly deal with all 4 selection modes. Updates to bounds
10164         handling logic.  Add scroll wheel support. [Fixes #77842]
10165
10166 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10167
10168         * ListView.cs:
10169           - Moved adding of Implicit controls into .ctor. That way, subsequent
10170             creation of the controls will not cause them to think they are 
10171             toplevel windows (fixes #78200 header problem)
10172           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10173           - Switched visibility setting of header control to use internal field
10174             to avoid triggering handle creation
10175           - Now checking if handle is created before causing a refresh when items
10176             are added (This makes us now match handle creation time with MS)
10177         * Splitter.cs: Removed loading of private splitter cursor, switched to
10178           Cursors version now that that is loading the right ones
10179         * Cursors.cs: Load proper splitter cursors from resources
10180         * Cursor.cs: Added second method of loading resource cursors for the 
10181           VS.Net users amongst us
10182
10183 2006-05-05  Mike Kestner  <mkestner@novell.com>
10184
10185         * ListView.cs: give header_control a minimum size based on the
10186         ListView size.
10187
10188 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10189
10190         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10191           window seems to do that with metacity, so set that type. (#78120)
10192
10193 2006-05-05  Mike Kestner  <mkestner@novell.com>
10194
10195         * ListViewItem.cs: fix Details mode checkbox layout bug.
10196         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10197         at the end of the header, if it exists. [Fixes for #78200]
10198
10199 2006-05-04  Jackson Harper  <jackson@ximian.com>
10200
10201         * MdiClient.cs: Add a helper property to get the container form.
10202         * MdiWindowManager.cs: We have to make sure to use the menu origin
10203         when drawing the icons and buttons, this fixes maximized window
10204         icons/buttons on win32.
10205         * InternalWindowManager.cs: Reset the restore captions when a
10206         window goes from Maximized to Minimized and vice versa. Move the
10207         DrawMaximizedButtons into the MdiWindowManager source, tool
10208         windows can't be maximized. NOTE: This could use a little
10209         refactoring if time ever permits.
10210         
10211 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10212
10213         * TextBox.cs: Add MWFCategoryAttributes
10214         * TextBoxBase.cs: Add MWFCategoryAttributes
10215         * Form.cs: Add MWFCategoryAttributes
10216
10217 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10218
10219         * Control.cs: Add MWFCategoryAttributes
10220         * ScrollableControl.cs: Add MWFCategoryAttributes
10221
10222 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10223
10224         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10225           Divider is true. Fix a little glitch in PropertyToolBar
10226           drawing code
10227
10228 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10229
10230         * Control.cs:
10231           - Dispose: Call base.Dispose, this causes the disposed event
10232             to be fired (and probably other, more important stuff)
10233           - SetVisibleCore: Set is_visible to true after creating the
10234             window so that the window still gets created invisible (if
10235             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10236             to generate a WM_ACTIVE message
10237         * Form.cs: Call Dispose when we want to destroy the window, instead of
10238           just destroying the handle (Dispose will do that for us)
10239         * XplatUIX11.cs:
10240           - RootWindow also needs a queue, so we can properly process the
10241             property change events from RootWindow (like Activate)
10242           - Generatic synthetic WM_ACTIVE message when the active window is
10243             being destroyed
10244
10245 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10246
10247         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10248           bounds are changed
10249
10250 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10251
10252         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10253           for determining width and height (image might not be assigned if
10254           we're drawing an imagelist)
10255
10256 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10257
10258         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10259         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10260           height from system
10261         * Theme.cs: No longer returns hardcoded menu height, instead calls
10262           new driver method
10263         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10264           on MS (# 78257)
10265
10266 2006-05-01  Mike Kestner  <mkestner@novell.com>
10267
10268         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10269
10270 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10271
10272         * TextBoxBase.cs: Removed Fixme
10273         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10274
10275 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10276
10277         * XplatUIX11.cs:
10278           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10279             the rectangle relative to the parent, considering borders. We
10280             don't really want that.
10281           - ScrollWindow: Fixed warning to be more understandable
10282         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10283           scrollbars and scroll only the visible area
10284         * RichTextBox.cs: Removed debug output
10285
10286 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10287
10288         * NumericUpDown.cs (Text): Just use base
10289         * UpDownBase.cs: Ensure txtView is created before using it
10290
10291 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10292
10293         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10294           casting to IntPtr to avoid 64bit overflow errors
10295
10296 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10297
10298         * Control.cs:
10299           - AllowDrop: Don't force handle creation.
10300           - CreateHandle: Added call to tell driver if we're allowed to drop
10301
10302 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10303
10304         * FileDialog.cs: Remember the last directory not only for the
10305           current instance but also for new FileDialog instances.
10306
10307 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10308         
10309         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10310           broke sending async messages
10311
10312 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10313
10314         * XplatUIX11.cs:
10315           - ScrollWindow: Fixed method. We finally generate expose events again
10316             for scrolled areas. This was causing 'garbage' when scrolling
10317             textbox and other controls that used ScrollWindow
10318           - Switched from using the regular queue for paint events to the MS 
10319             model of 'generating' paint events when the queue is empty.
10320             We use the new XQueueEvent.Paint subclass to store which windows
10321             need painting.
10322           - AddExpose now takes the x/y/width/height of the exposed area
10323             and inserts the window into the paint queue if not already there
10324           - InvalidateWholeWindow: Switched to use new AddExpose method
10325           - UpdateMessageQueue: Added which queue to monitor for paint events
10326           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10327             the unlikely case nothing above handles it. We reset the expose
10328             pending states to get them off the queue.
10329           - GetMessage: Now pulls a paint event if no other events are in the
10330             queue
10331           - Invalidate: Switched to new AddExpose method
10332           - PeekMessage: Updated to understand pending paint events
10333           - UpdateWindow: Fixed logic bug. We were only updating if the window
10334             didn't need updating. Also switched to sending WM_PAINT directly,
10335             like MS does.
10336         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10337           and random access Remove(). The random access is needed to handle
10338           UpdateWindow() where a WM_PAINT is sent directly without accessing
10339           the queue.
10340         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10341           allow for better feedback when scrolling. Scrollbars are small and
10342           the immediate update should make it 'feel' more responsive without
10343           slowing things down. ScrollBar still needs it's invaliate logic
10344           updated to not always invalidate the whole bar on certain changes.
10345
10346 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10347
10348         * Control.cs:
10349         (BackColor): if the control does not support a transparent background,
10350         return the default backcolor when the parent backcolor is transparent.
10351
10352 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10353
10354         * Application.cs: Updated to new StartLoop/GetMessage API
10355         * RichTextBox.cs: Provide some output on RTF parsing errors
10356         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10357           new queue_id argument to GetMessage and PeekMessage to allow faster
10358           handling of per-thread queues in drivers.
10359         * Hwnd.cs: Added Queue tracking and property
10360         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10361         * XEventQueue.cs: Added thread trackingA
10362         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10363         * XplatUIX11.cs:
10364           - Implemented new per-thread queue
10365           - GetMessage: Fixed return/break behaviour on several cases. We were
10366             returning stale messages in some cases, instead of just processing
10367             the next message
10368
10369 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10370
10371         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10372
10373 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10374
10375         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10376           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10377
10378 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10379
10380         * PropertyGridView.cs: Fix drop down width.
10381
10382 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10383
10384         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10385           a mess in DrawToolBar, so I removed one of them.
10386
10387 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10388
10389         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10390           needed (clip). Otherwise we get artifacts.
10391
10392 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10393
10394         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10395           dimension is fixed
10396         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10397           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10398         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10399           if it matches the scale base font (avoids unneeded scaling)
10400
10401 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10402
10403         * X11DesktopColors.cs: One gtk_init_check should be enough
10404
10405 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10406
10407         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10408           match MS behaviour
10409
10410 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10411
10412         * TextBoxBase.cs: 
10413           - Generate OnTextChanged for Backspace even if we're only deleting
10414             the current selection
10415           - When setting the Text property, only select all text if the
10416             control does not have focus when it is being set. Otherwise
10417             just place the cursor at the beginning of the control
10418
10419 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10420
10421         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10422           Added a little helper to draw PropertyGrid ToolBar with a different
10423           border and a different BackColor.
10424         * PropertyGrid.cs: Some background parts didn't get painted with the
10425           correct background color. Added a class that helps us to draw the
10426           correct border for PropertyGridView and a class that helps us to
10427           draw ToolBars with a different backcolor
10428         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10429
10430 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10431
10432         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10433         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10434
10435 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10436
10437         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10438           into the palette entries. Also, since we're working on a copy
10439           we needed to copy the palette back onto the bitmap.
10440         * Cursor.cs: Same fix as XplatUIWin32.cs.
10441
10442 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10443
10444         * ImageListStreamer.cs: Need to read the var (or we're off)
10445
10446 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10447
10448         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10449           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10450           TextBoxBase.cs: Unused var fixes
10451         * AxHost.cs: Small 2.0 fix
10452         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10453           as it seems that is what at least Metacity expects. This will make
10454           icons show up on 64bit platforms. We still have some 64bit size
10455           issues, though, since the startup app window size still won't match.
10456
10457 2006-04-25  Mike Kestner  <mkestner@novell.com>
10458
10459         * *.cs: cleanup newly reported exception var unused warnings.
10460
10461 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10462
10463         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10464           ms
10465
10466 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10467
10468         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10469           image. The image position is always the same, no matter if the
10470           button is pressed or not.
10471
10472 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10473
10474         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10475           selection and set the correct filename for SaveFileDialog.
10476           Patch by Emery Conrad.
10477
10478 2006-04-24  Mike Kestner  <mkestner@novell.com>
10479
10480         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10481         check for item.X outside the ClientRect instead of item.Y. Fixes
10482         #78151.
10483
10484 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10485
10486         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10487         trust that value blindly and do some sanity check. Fixes bug #77814.
10488
10489 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10490
10491         * ImageListStreamer.cs: save the mask as a 1bpp image.
10492
10493 2006-04-21  Mike Kestner  <mkestner@novell.com>
10494
10495         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10496         pass Checked and Indeterminate to the Theme Engine. Improve
10497         encapsulation with ListBox.
10498         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10499         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10500         nested types.  Move all CheckState functionality to CheckedListBox.
10501         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10502         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10503         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10504         single base list. Fix scrollbar sizing and placement to mirror MS.
10505         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10506         used.
10507         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10508         for CheckedListBox by using new DrawItemState info.  Center the
10509         checkboxes on the items. Use new StringFormat property.
10510
10511 2006-04-18  Jackson Harper  <jackson@ximian.com>
10512
10513         * Form.cs: MdiChildren don't do default locations the same way as
10514         regular forms.  This prevents a crash when trying to position the
10515         mdi windows.
10516
10517 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10518
10519         * PropertyGridTextBox.cs: Formatting, copyright
10520         * PropertiesTab.cs: Formatting
10521         * PropertyGrid.cs: Formatting
10522         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10523           click toggling of values
10524           
10525 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10526
10527         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10528         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10529           every time a control is created
10530         * Application.cs: Removed obsolete EnableRTLMirroring method
10531
10532 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10533
10534         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10535         SelectedIndex to -1. Fixes bug #78121.
10536
10537 2006-04-17  Jackson Harper  <jackson@ximian.com>
10538
10539         * Binding.cs: Handle null values for Current and BindingContext.
10540         This occurs when binding is a little delayed.
10541         * CurrencyManager.cs: return null for Current when there are no
10542         items in the list.
10543         - Hookup to the listchanged event on the DataView and update
10544         bindings when the list is changed.  This fixes late binding of
10545         controls.
10546
10547 2006-04-17  Jackson Harper  <jackson@ximian.com>
10548
10549         * X11Dnd.cs:
10550         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10551         Ringenbach.
10552
10553 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10554
10555         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10556           place
10557         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10558           with the correct ButtonState
10559
10560 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10561
10562         * XplatUIX11.cs: Improved distinguishing between window types to
10563           tell the WM a type closer to what the app wants (Fixes #78107)
10564
10565 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10566
10567         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10568           GrabHandle
10569
10570 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10571
10572         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10573           drawing code to reflect the size grip changes
10574
10575 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10576
10577         * ImageListStreamer.cs: fix handling of the mask that follows the main
10578         bitmap when deserializing and serialize it properly. The generated mask
10579         should better be a 1bpp image, but I'll do that later.
10580
10581 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10582
10583         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10584           path doesn't fit into some of our Current.Places
10585
10586 2006-04-13  Jackson Harper  <jackson@ximian.com>
10587
10588         * ComboBox.cs: Use borders instead of drawing our own decorations,
10589         try to obey correct rules for heights.
10590         * Theme.cs:
10591         * ThemeNice.cs:
10592         * ThemeClearLooks.cs:
10593         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10594         this is now handled by borders.
10595         - Remove unused DrawListBoxDecorationSize method.
10596         
10597 2006-04-13  Mike Kestner  <mkestner@novell.com>
10598
10599         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10600         reported by Alex.
10601
10602 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10603
10604         * ThemeWin32Classic.cs: 
10605           - Fixed CPDrawStringDisabled
10606           - Corrected drawing of disabled menu items
10607           - Fixed drawing of disabled radio buttons (bug #78095)
10608           - Draw check in a disabled CheckBox with color ControlDark 
10609
10610 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10611
10612         * Form.cs: Use the provided width when calculating the menu size;
10613           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10614           and ClientSize.Width won't be updated yet
10615         * Application.cs: Use Visible instead of Show() to make form visible,
10616           this way we create the handle later and menusize is considered
10617
10618 2006-04-12  Mike Kestner  <mkestner@novell.com>
10619
10620         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10621         reporting.
10622
10623 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10624
10625         * TextBox.cs: Implemented context menu
10626
10627 2006-04-12  Mike Kestner  <mkestner@novell.com>
10628
10629         * ListView.cs: implement box selection. fixes #77838.
10630         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10631
10632 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10633
10634         * XplatUIX11.cs: Added setting of window type when transient window
10635           is created (metacity would move it otherwise)
10636         * X11Structs.cs: Added WINDOW_TYPE atoms
10637         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10638           background (the control is Opaque but still wants transparent
10639           backgrounds)
10640
10641 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10642
10643         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10644           that set Opaque but don't mean it (like all ButtonBase-derived
10645           controls) to still draw their background
10646         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10647           the background
10648
10649 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10650
10651         * Control.cs (PaintControlBackground): Set the graphics object
10652           on our PaintEvent to null to prevent it from being disposed
10653           when the PaintEvent gets disposed
10654
10655 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10656
10657         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10658         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10659
10660 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10661
10662         * Control.cs: 
10663           - Added transparency check to BackColor property. Transparent
10664             backgrounds are only allowed if the control styles permit it
10665           - Added recursive painting of parent control background and
10666             foreground if a control with a transparent backcolor is drawn
10667             (Thanks to Tim Ringenback for providing his 'hack' as a base
10668              for this patch) Fixes #77985 and #78026.
10669           - Added Opaque style check before calling OnPaintBackground, no
10670             need to draw the background if the control is opaque
10671           - Removed ControlAccessibleObject owner variable (inherited from
10672             base, no need to define again)
10673           - Added some documentation links explaining the drawing events
10674             and styles
10675
10676 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10677
10678         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10679           that the affected control is the located at the left border of our
10680           parent (Fixes #77936)
10681
10682 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10683
10684         * TextBoxBase.cs: When rendering disabled or readonly controls,
10685           draw the background with 'Control' instead of 'Window' color as
10686           long as the user hasn't specifically set a color
10687
10688 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10689
10690         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10691           since that won't be updated if the user types text (only if it's
10692           programatically set)
10693
10694 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10695
10696         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10697           layout changes do to app-triggered resizes will have the proper
10698           display rectangle for layout
10699
10700 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10701
10702         * ThemeWin32Classic.cs:
10703           - Make use of the SystemBrushes and SystemPens wherever possible
10704           - Corrected some highlight colors
10705           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
10706             drawing
10707         * Theme.cs: Added Empty field to CPColor struct
10708
10709 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10710
10711         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
10712           is displayed when calculating the display rectangle. Thanks to Mike
10713           for teaching me the err of my ways.
10714
10715 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
10716
10717         * ScrollableControl.cs:
10718           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
10719             (instead of 0,0) and we now return the real width/height instead of
10720             just the clientrectangle, adjusted for padding. The rectangle is
10721             now cached and created by the new CalculateDisplayRectangle method.
10722           - Created new CalculateDisplayRectange method, which basically does
10723             what get_DisplayRectangle() did originally, but now using the 
10724             right edge instead of DisplayRectangle to determine the size of
10725             our scrollbars
10726           - get_Canvas(): Fixed it to properly calculate canvas for 
10727             right/bottom controls which seem to be placed to the right/bottom
10728             of any controls that have a fixed location
10729           - Removed TODO that's taken care of
10730           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
10731             and SetDisplayRectLocation according to new MSDN2 docs
10732           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
10733             event when that is called, this is added for compatibility
10734           - ScrollControlIntoView(): Implemented.
10735           - Switched scrollbars to be implicit, they shouldn't be selectable
10736         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
10737           call it when the active control is set/changed
10738         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
10739         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
10740           implicit_control variable (used for native Win32 message generation)
10741         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
10742           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
10743         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
10744         * XplatUIStructs.cs: Added ScrollBarCommands enum
10745
10746 2006-04-10  Jackson Harper  <jackson@ximian.com>
10747
10748         * ButtonBase.cs:
10749         * CheckedListBox.cs:
10750         * ComboBox.cs:
10751         * DataGrid.cs:
10752         * DataGridView.cs:
10753         * Form.cs:
10754         * GroupBox.cs:
10755         * ListBox.cs:
10756         * PrintPreviewControl.cs:
10757         * ProgressBar.cs:
10758         * PropertyGrid.cs:
10759         * Splitter.cs:
10760         * StatusBar.cs:
10761         * TrackBar.cs:
10762         * UpDownBase.cs: Fixup base event overrides.
10763         
10764 2006-04-06  Mike Kestner  <mkestner@novell.com>
10765
10766         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
10767         all user-initiated value changes to min <= value <= max-thumbsz+1.
10768         (set_Value): check for vert/horiz when calculating new thumb position.
10769         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
10770         like MS does.
10771         (OnMouseMoveSB): refactor the thumb dragging code and refine
10772         invalidation logic to reduce flicker.
10773         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
10774         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
10775         (UpdateThumbPosition): small code readability cleanup
10776
10777 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
10778
10779         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
10780           different
10781
10782 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10783
10784         * ThemeNice.cs: Use a better graphics effect when a button is pressed
10785
10786 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
10787
10788         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
10789         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
10790           This dramatically reduces the number of Pen.Dispose calls. 
10791           Where possible call ResPool methods only once instead of calling it
10792           over and over again (for example for the same color).
10793
10794 2006-04-06  Mike Kestner  <mkestner@novell.com>
10795
10796         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
10797         Also remove an unused private field on the collection. Fixes #77972.
10798
10799 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10800
10801         * ThemeNice.cs: Added ToolBar drawing code
10802
10803 2006-04-06  Mike Kestner  <mkestner@novell.com>
10804
10805         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
10806         I'm assuming that means we need to look up the toplevel for the
10807         provided control. Fixes the crash trace in #77911 but exposes another
10808         crash in some strange reflection usage in NDocGui.
10809
10810 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
10811
10812         * ThemeNice.cs: Gave it a little silver touch and added Images
10813           method
10814         * FontDialog.cs: FontDialog is not resizable
10815         * FileDialg.cs: Added SizeGripStyle.Show
10816
10817 2006-04-05  Jackson Harper  <jackson@ximian.com>
10818
10819         * KeyboardLayouts.cs: Remove warning.
10820
10821 2006-04-05  Jackson Harper  <jackson@ximian.com>
10822
10823         * Control.cs: Enable OnPaintInternal so we can use it for drawing
10824         all of our controls instead of Paint +=.
10825         * ListBox.cs:
10826         * ListView.cs:
10827         * MenuAPI.cs:
10828         * MessageBox.cs:
10829         * NotifyIcon.cs:
10830         * ProgressBar.cs:
10831         * ScrollBar.cs:
10832         * Splitter.cs:
10833         * StatusBar.cs:
10834         * TabControl.cs:
10835         * TextBoxBase.cs:
10836         * ToolBar.cs:
10837         * TrackBar.cs:
10838         * UpDownBase.cs:
10839         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
10840         use OnPaintInternal. Remove Width/Height and Visible checks in
10841         paint handler, this is done at a higher level now.
10842         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
10843         * PaintEventArgs.cs: Add a handled flag so controls that don't
10844         want anymore painting after OnPaintInternal can make sure OnPaint
10845         isn't called.
10846
10847 2006-04-05  Mike Kestner  <mkestner@novell.com>
10848
10849         * Form.cs: fix the menu WndProc hacks to respect the native enabled
10850         state of the form, so that we don't process events when Modal dialogs
10851         are up. Fixes #77922.
10852
10853 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
10854
10855         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
10856           checking is done.
10857
10858 2006-04-05  Mike Kestner  <mkestner@novell.com>
10859
10860         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
10861
10862 2006-04-05  Mike Kestner  <mkestner@novell.com>
10863
10864         * ListView.cs (HeaderMouseMove): null guarding for the over column
10865         when setting up the drag_to_index.  Fixes #78015.
10866
10867 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
10868
10869         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
10870           in the taskbar. Transient windows seem to accomplish that.
10871
10872 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
10873
10874         * Form.cs:
10875           - Re-enabled CreateParams.X/Y code for FormStartPosition
10876           - Added code for manual placement when creating the Control
10877           - Incomplete patch to treat MDI forms differently when
10878             setting the ClientSizeCore. (Still need to figure out handling
10879             x/y coords there)
10880         * XplatUIX11.cs:
10881           - When we're explicitly setting the X/Y position of a non-Child
10882             window, let the WM know. Metacity really wants this.
10883
10884 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10885
10886         * ThemeNice.cs: Added CPDrawButton
10887
10888 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10889
10890         * ThemeNice.cs: Changed the color for focused buttons and activated
10891           the arrows for small scroll buttons.
10892
10893 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
10894
10895         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
10896           anymore. Changed some method modifiers to protected (virtual)
10897         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
10898           changes
10899         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
10900           Updated drawing of menus, buttons and progressbars; added
10901           CPDrawBorder3D 
10902
10903 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10904
10905         * ImageListStreamer.cs: implemented serialization/deserialization
10906         of the images.
10907
10908 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
10909
10910         * ThemeWin32Classic.cs:
10911           - Removed all the DrawFrameControl stuff; CPDrawButton,
10912             CPDrawCheckBox and CPDrawRadioButton are now handled directly
10913             inside the methods
10914           - Updated and corrected the drawing code of CPDrawButton,
10915             CPDrawCheckBox and CPDrawRadioButton to better match ms
10916           - Updated theme checkbox and radiobutton code to use the CP*
10917             methods
10918
10919 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10920
10921         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
10922           bug is fixed
10923
10924 2006-03-31  Jackson Harper  <jackson@ximian.com>
10925
10926         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
10927         sometimes.
10928         * UpDownBase.cs: Don't CreateGraphics manually, use a
10929         Refresh. Ideally we would invalidate the correct areas here.
10930
10931 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
10932
10933         * XplatUIX11.cs: 
10934           - We now track the mapping state of windows. If a window (or 
10935             one of it's parents) is not mapped we no longer permit
10936             WM_PAINT messages to be generated since we'd otherwise get 
10937             lots of BadMatch X errors. Jackson did all the work figuring
10938             out the problem.
10939           - Destroying the caret if the window it's contained in is 
10940             destroyed. Can't use regular DestroyCaret method since it
10941             might fall into a drawing function (trying to remove the
10942             caret) and with that generate new BadMatch errors. Again,
10943             Jackson tracked this down.
10944           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
10945             make sure we send the messages to all windows. (The old code
10946             would send the WM_DESTROY to the window, and then all child
10947             windows would be 'gone' because the WM_DESTROY handle lookup
10948             would no longer find the destroyed window)
10949         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
10950         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
10951
10952 2006-03-31  Jackson Harper  <jackson@ximian.com>
10953
10954         * ScrollableControl.cs: Dont recalc if we are not visible.
10955
10956 2006-03-31  Mike Kestner  <mkestner@novell.com>
10957
10958         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
10959         the visibility branch.
10960
10961 2006-03-31  Jackson Harper  <jackson@ximian.com>
10962
10963         * ScrollBar.cs: Cap values when incrementing/decrementing.
10964
10965 2006-03-31  Mike Kestner  <mkestner@novell.com>
10966
10967         * MenuAPI.cs: setup menu.tracker for popup/context menus.
10968         * ToolTip.cs: guard against timer expirations with no active control.
10969         Not sure why it happened.
10970
10971 2006-03-31  Mike Kestner  <mkestner@novell.com>
10972
10973         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
10974         text.
10975         * ToolTip.cs: Position the tooltip based on where the cursor is at
10976         popup time, not at MouseEnter time.  Add a Down state so that we don't
10977         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
10978         positioning offset. Lookup DisplaySize at positioning time, since it
10979         can theoretically change during invocation.
10980         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
10981         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
10982
10983 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10984
10985         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
10986           Fixes behaviour when the Text property of the box is String.Empty
10987
10988 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
10989
10990         * XplatUIX11.cs: Only send mouseleave for our client windows, not
10991           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
10992           a window)
10993
10994 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
10995
10996         * FileDialog.cs: Visual enhancement for the popup buttons in 
10997           PopupButtonPanel
10998
10999 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11000
11001         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
11002           code
11003
11004 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
11005
11006         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
11007           highlighted menu items to match ms
11008
11009 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
11010
11011         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
11012
11013 2006-03-30  Mike Kestner  <mkestner@novell.com>
11014
11015         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
11016         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
11017         go active to account for HotLight to Selected transition.
11018         * MenuItem.cs: add internal Selected prop. Fill out the Status
11019         property by calculating it from item info. Add HotLight,
11020         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
11021
11022 2006-03-30  Mike Kestner  <mkestner@novell.com>
11023
11024         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
11025
11026 2006-03-29  Jackson Harper  <jackson@ximian.com>
11027
11028         * Form.cs: Implement TODO.
11029
11030 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
11031
11032         * PrintPreviewDialog.cs: Implemented missing methods and events; still
11033           missing proper dialog setup in the constructor
11034
11035 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
11036
11037         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
11038         * Control.cs:
11039           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
11040           - Fixed ResetBindings and removed TODO
11041           - Added check for cross-thread calls to get_Handle()
11042           - Added Marshaller attribute for set_Font to satisfy class status
11043         * FontDialog.cs: Removed TODOs that seemed implemented
11044         * UpDownBase.cs: Removed unneeded TODO and Fixme
11045         * MessageBox.cs: Implemented support for Default button and removed TODO
11046         * FileDialog.cs: Removed obsolete TODO
11047         * DomainUpDown.cs: Removed obsolete TODO
11048         * ButtonBase.cs: Removed obsolete TODO
11049         * XplatUIWin32.cs: Removed obsolete TODO
11050         * Form.cs:
11051           - Removed obsolete TODO
11052           - Calling CheckAcceptButton when the acceptbutton is changed to allow
11053             internal status updates
11054           - Making sure the active control is selected when the control is created
11055         * CurrencyManager.cs: Removed obsolete TODO
11056
11057 2006-03-29  Mike Kestner  <mkestner@novell.com>
11058
11059         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
11060         of PrintPreviewDialog and RichTextBox.
11061
11062 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11063
11064         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
11065           DarkDark, Light and LightLight colors for a specific color
11066         * ThemeWin32Classic.cs:
11067           - Use Button drawing code to draw RadioButtons and CheckBoxes with
11068             Appearance = Button 
11069           - Make use of the new ResPool helper CPColor
11070           - Draw ProgressBar and StatusBar with correct 3D borders
11071
11072 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11073
11074         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11075
11076 2006-03-28  Mike Kestner  <mkestner@novell.com>
11077
11078         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11079         calculating col/row counts.
11080
11081 2006-03-28  Mike Kestner  <mkestner@novell.com>
11082
11083         * ColumnHeader.cs:
11084         * ListView.cs:
11085         * ListViewItem.cs:
11086         * Menu.cs: 
11087         switch to explicit interface method implementation for some methods
11088         corcompare identifies as inconsistent with MS.
11089
11090 2006-03-28  Mike Kestner  <mkestner@novell.com>
11091
11092         * MainMenu.cs: 
11093         * Menu.cs:
11094         add a few missing methods from the class status output.
11095
11096 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11097
11098         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11099           correct.
11100
11101 2006-03-28  Mike Kestner  <mkestner@novell.com>
11102
11103         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11104
11105 2006-03-27  Mike Kestner  <mkestner@novell.com>
11106
11107         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11108         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11109
11110 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11111
11112         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11113
11114 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11115
11116         * ThemeWin32Classic.cs:
11117           - GroupBox: Inserted a little gap between the text and the lines
11118             on the right side
11119           - Made the code in CPDrawBorder3D more readable
11120           - Corrected the drawing location of the up and down arrows in 
11121             CPDrawScrollButton
11122
11123 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11124
11125         * ControlPaint.cs: Corrected line widths in DrawBorder for
11126           ButtonBorderStyle Inset and Outset
11127
11128 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11129
11130         * ThemeWin32Classic.cs:
11131           - Rewrote the totally broken CPDrawBorder3D method. That was
11132             one of the main problems for the terrific ThemeWin32Classic
11133             look
11134           - Updated and corrected Button drawing
11135           - Correct the dimensions of the SizeGrip to match ms ones
11136           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11137         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11138           Border3DStyle.Sunken to match ms.
11139
11140 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11141
11142         * ThemeWin32Classic.cs: First small part of the "de-uglify
11143           ThemeWin32Classic" effort, SizeGrip
11144
11145 2006-03-24  Jackson Harper  <jackson@ximian.com>
11146
11147         * XplatUIX11.cs: Give a max idle time of one second, this matches
11148         MS and forces an Idle event every second when there are no other
11149         events in the queue.
11150
11151 2006-03-24  Mike Kestner  <mkestner@novell.com>
11152
11153         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11154         * ListView.Item.cs: fix layout issues with null image lists and images
11155         smaller than checkbox size.
11156         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11157         mode like MS does.  It's weird, but consistent.  ;-)
11158         Fixes #77890.
11159
11160 2006-03-24  Mike Kestner  <mkestner@novell.com>
11161
11162         * ListView.cs: Scroll wheel support for the item control.  Fixes
11163         #77839.
11164
11165 2006-03-23  Jackson Harper  <jackson@ximian.com>
11166
11167         * ScrollableControl.cs: Special case negative sized areas, not
11168         zero.
11169         * MonthCalendar.cs: Save the rect of the clicked date so we can
11170         use it for invalidation.
11171         - Try to cut down on the number of invalidates
11172         - Invalidate the rect the mouse is over and was over when moving
11173         the mouse, so we get the focus box following the cursor.
11174
11175 2006-03-23  Mike Kestner  <mkestner@novell.com>
11176
11177         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11178         focus rectangle drawing. Fixes #77835.
11179
11180 2006-03-23  Mike Kestner  <mkestner@novell.com>
11181
11182         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11183         the if and else if and reverting back to the original == check on the
11184         None conditional.
11185
11186 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11187
11188         * FontDialog.cs: Update the example panel if the selected index of
11189           the fontListBox changes.
11190
11191 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11192
11193         * FileDialog.cs: Make FileDialog remember which directory it was in
11194           last in the same execution.
11195
11196 2006-03-22  Mike Kestner  <mkestner@novell.com>
11197
11198         * FileDialog.cs: make the DropDownMenu on the toolbar display
11199         RadioChecks since they are mutually exclusive and that's what MS does.
11200
11201 2006-03-22  Mike Kestner  <mkestner@novell.com>
11202
11203         * Theme.cs: add Color param to CPDrawMenuGlyph.
11204         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11205         checks and radio marks and arrows are visible on highlighted items.
11206         * ControlPaint.cs: update to use new Theme signature.
11207
11208 2006-03-22  Mike Kestner  <mkestner@novell.com>
11209
11210         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11211         is active. Fixes #77870.
11212
11213 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11214
11215         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11216           to be focused/selected after startup
11217
11218 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11219
11220         * ColorDialog.cs: 
11221           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11222             CustomColors and ShowHelp properties
11223           - Some internal rewrites to get better results when using the
11224             ColorMatrix
11225
11226 2006-03-22  Mike Kestner  <mkestner@novell.com>
11227
11228         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11229         HoverSelection.  Fixes #77836.
11230
11231 2006-03-22  Mike Kestner  <mkestner@novell.com>
11232
11233         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11234         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11235         1, not 0.  Update ButtonSize based on a pixel count of the win32
11236         control.  Adjust the toolbar size/location for new button size.
11237
11238 2006-03-22  Jackson Harper  <jackson@ximian.com>
11239
11240         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11241         true.
11242         * ScrollBar.cs: When doing increments and decrements we need to
11243         set the Value property so that ValueChanged gets raised. A
11244         possible optimization here would be to make an internal SetValue
11245         that doesn't invalidate immediately.
11246         * ToolTip.cs: Tooltips get added to their container (when
11247         supplied) so they get disposed when the container is disposed.
11248         - Don't create tooltips for String.Empty. This prevents all these
11249         little 2-3 pixel windows from showing up when running nunit-gui
11250         and driving me mad.
11251         * Form.cs: Don't set topmost when setting the owner if the handles
11252         haven't been created yet.  The topmost set will happen when the
11253         handles are created.
11254
11255 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11256
11257         * XplatUIX11.cs:
11258           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11259           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11260             visible (to allow them to recalculate their sizes)
11261
11262 2006-03-21  Mike Kestner  <mkestner@novell.com>
11263
11264         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11265         methods. Removed a ton of redundant code.  Still not really happy with
11266         the border rendering, but I think that's mainly because of the
11267         ControlDarkDark being black instead of a dark grey. Depending on how 
11268         close we want to be, we might want to revisit those color choices.
11269         Among the new features added during the refactor were DropDownArrow
11270         pressed rendering, Disabled image rendering.  Proper flat appearance
11271         boundary rendering.  Removed the Divider and Wrapping dividers since I
11272         can't figure out any combination of themes and conditions to make the
11273         MS control draw a horizontal line on a toolbar despite what the
11274         Divider property docs indicate.
11275         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11276         conditions and incorrect layout.  Updated to coding standard.
11277         * ToolBarButton.cs: refactored layout and positioning code from
11278         ToolBar to here.  Invalidate wherever possible instead of forcing
11279         redraws of the whole toolbar. 
11280         (Known remaining issues: explicit ButtonSize smaller than provided
11281         images.)
11282
11283 2006-03-21  Mike Kestner  <mkestner@novell.com>
11284
11285         * ContextMenu.cs (Show): use the position parameter instead of just
11286         showing at the MousePosition.
11287
11288 2006-03-21  Jackson Harper  <jackson@ximian.com>
11289
11290         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11291         control handle this.
11292         * TreeNodeCollection.cs: If we are clearing the root node we need
11293         to reset top_node so calcs can still happen.
11294         * ThemeWin32Classic.cs: This is a Flags so we need to check
11295         properly.
11296         
11297 2006-03-21  Jackson Harper  <jackson@ximian.com>
11298
11299         * DataGrid.cs: Create columns when the binding context has been
11300         changed.
11301         * X11Structs.cs: Keysyms are uints.
11302         - Add size to fix build.
11303
11304 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11305
11306         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11307           XplatUIOSX.cs: 
11308           - Added ResetMouseHover method to allow controls to retrigger
11309             hovering if they need it more than once
11310           - Implemented MouseHoverTime and MouseHoverSize properties
11311         * Timer.cs: Start() must reset the interval
11312         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11313           properties
11314
11315 2006-03-21  Jackson Harper  <jackson@ximian.com>
11316
11317         * X11Keyboard.cs: improved layout detection. Move the nonchar
11318         tables into this file.
11319         * KeyboardLayouts.cs: Move the tables into resource files.
11320
11321 2006-03-21  Mike Kestner  <mkestner@novell.com>
11322
11323         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11324
11325 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11326
11327         * Mime.cs: Various speed optimizations. Looking up mime types
11328           is now 2 times faster than before
11329
11330 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11331
11332         * CreateParams.cs: Added internal menu field
11333         * Control.cs: 
11334           - Switched call order for UpdateBounds; now we always call
11335             the one that also takes ClientSize, and we're calculating the 
11336             client size via driver method in the others. The previous
11337             method of tracking client size by difference wasn't working
11338             for forms where even the starting client size wouldn't match
11339             the overall form size (due to borders) (Part of fix for #77729)
11340           - CreateParams(): Do not use parent.Handle unless the handle is
11341             already created. Causes havoc with Nexxia and throws off our
11342             creation of controls
11343         * XplatUIX11.cs:
11344           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11345           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11346             method (consolidates code)
11347           - Changed RequestNCRecalc to use new PerformNCCalc method
11348           - Added calls to RequestNCRecalc when menus and borders are changed
11349             to allow app to set NC size. (Part of fix for #77729) This matches
11350             when MS send a WM_NCRECALC on Win32 windows.
11351           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11352             (Part of fix for #77729). This matches what MS does, they also
11353             send that message when the form is made visible.
11354           - XException.GetMessage: Improved usability of X errors by including
11355             a translation of the window into Hwnd and Control class
11356           - Improved debug info for window creation, reparenting and destruction
11357           - Created helper method WindowIsMapped() [Currently not used]
11358         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11359         * Form.cs:
11360           - CreateParams: Now setting our menu on the new internal menu field
11361           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11362             avoid calculating the same property twice
11363         * Hwnd.cs:
11364           - Improved usability of ToString() for debugging purposes
11365           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11366             determine the height of the menu, instead of just the font. This
11367             required to also create a graphics context and to keep a bmp 
11368             around (for performance reasons)
11369
11370 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11371
11372         * MenuAPI.cs: Added OnMouseUp method
11373         * Form.cs:
11374           - Now remembering the requested client size, avoids size errors
11375           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11376             instead of base if the menu is active. This is required due to
11377             control now capturing and releasing on down/up and it would
11378             prematurely release our menu capture
11379
11380 2006-03-17  Jackson Harper  <jackson@ximian.com>
11381
11382         * KeyboardLayouts.cs: Add the czech layouts.
11383
11384 2006-03-16  Jackson Harper  <jackson@ximian.com>
11385
11386         * Control.cs: Use the viewport space when sizing not the controls
11387         client size, so things like ScrollableControl that effect the
11388         viewport size (when scrollbars are added) are computed correctly.
11389         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11390         of ManagerEntrys.
11391         - Handle creating BindingManagers for null data sources.
11392         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11393         source, otherwise when rows are added they are added to the 'fake'
11394         datasource and we will crash when trying to set the position in
11395         those rows.
11396         - Use Implicit scrollbars on the datagrid so they arent
11397         selectable.
11398         
11399 2006-03-16  Jackson Harper  <jackson@ximian.com>
11400
11401         * Binding.cs:
11402         * InternalWindowManager.cs:
11403         * MdiWindowManager.cs:
11404         * X11Keyboard.cs: I really want Mike to love me again (fix
11405         compiler warnings).
11406
11407 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11408
11409         * DataGrid.cs:
11410           - OnMouseDown: Switch to editing mode when clicking on the cell
11411                          even if we're clicking on the cell that's currently 
11412                          selected
11413           - ProcessGridKey: Left/Right now wrap like MS.Net does
11414           - ProcessGridKey: Tab now knows to add a new row when tab is
11415                             pressed in the cell of the last column of the 
11416                             last row
11417           - ProcessGridKey: Enter now adds another row  if pressed in the last
11418                             row and selectes the new row, same column cell
11419           - ProcessGridKey: Home/End navigate columns, not rows, like 
11420                             originally implemented
11421           - Broke ProcessKeyPreview code out into an extra Internal method
11422             so it can be called from the edit code
11423         * DataGridTextBox.cs (ProcessKeyMessage):
11424           - Switched to accept Tab keypresses
11425           - Added F2 handling to allow jumping to the end of the edited cell
11426           - Added logic to allow moving caret left/right inside edited cell
11427             and making the edited cell jump when the caret hits cell borders
11428           - Tab and Enter are now passed to the datagrid after being handled
11429         * TextBoxBase.cs:
11430           - Removed capture code now that Control handles it
11431           - set_SelectionStart now ensures caret is visible
11432
11433 2006-03-16  Jackson Harper  <jackson@ximian.com>
11434
11435         * TrackBar.cs: Debackwards the increment/decrement for handling
11436         mouse clicks on the bar with vertical trackbars.
11437         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11438         bottom to match MS.
11439
11440 2006-03-16  Mike Kestner  <mkestner@novell.com>
11441
11442         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11443         consistent with the MS control. Fix a bug in
11444         SelectedListViewItemCollection.Clear that was pissing me off for the
11445         better part of a day because the collection was being altered
11446         underneath us as we walked the list.
11447
11448 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11449
11450         * Control.cs: Not sure how we could miss this so long, but it seems
11451           that MS.Net has Capture set all the way from before calling 
11452           OnMouseDown through sending the mouse events until after
11453           OnMouseUp. This will fix DataGrid's selection being set to end
11454           at the location of the MouseUp.
11455
11456 2006-03-15  Jackson Harper  <jackson@ximian.com>
11457
11458         * BindingContext.cs: Check the binding after its added so that it
11459           can initialize the binding managers and hookup to events.
11460         * Binding.cs: Data members seem to sometimes include rows/cols in
11461           the format Row.Column we now take this into account.
11462           - Hookup to the position changed event so we can update the
11463           control when the position has changed in the data set.
11464         * CurrencyManager.cs: Take into account the row/col naming
11465           convention when creating dataset tables.
11466         * BindingContext.cs: Using a newer better way of storing
11467           datasource/datamember pairs.  Hopefully this better matches MS for
11468           looking up binding managers.
11469
11470
11471 2006-03-15  Jackson Harper  <jackson@ximian.com>
11472
11473         * BindingContext.cs: The currency manager needs the data member
11474         name, if the member is a data set we use the name to find the
11475         correct table.
11476         * CurrencyManager.cs: When creating the list prefer an IList over
11477         an IListSource.
11478         - Attempt to create a DataTable from a DataSet (TODO: might need
11479         some better error checking here, although MS doesn't seem to have much)
11480         - If we have a DataTable create a view and use it as our list.
11481
11482 2006-03-15  Mike Kestner  <mkestner@novell.com>
11483
11484         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11485         keyboard navigation. Support Up/Down/Left/Right selection correctly
11486         for all 4 View modes.
11487         * ListViewItem.cs: add internal row/col fields for icon layouts.
11488
11489 2006-03-15  Jackson Harper  <jackson@ximian.com>
11490
11491         * TabControl.cs: Redraw the tabs when we resize so their newly
11492         calculated sizes are drawn on screen.
11493         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11494         composite characters.
11495         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11496         - filter events so that composite characters can be created
11497         patches by peter
11498         * X11Structs.cs: Add XIMProperties enum.
11499
11500 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11501
11502         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11503           unless it's created
11504
11505 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11506
11507         * Control.cs (PerformLayout): We don't need to consider visiblity
11508           for anchoring, only for docking. This fixes 'whacky' alignment
11509           in listbox and other controls that use implicit scrollbars after
11510           the previous PerformLayout patch
11511         * ListBox.cs: Switched to use implicit scrollbars
11512           
11513 2006-03-14  Mike Kestner  <mkestner@novell.com>
11514
11515         * ToolBar.cs: 
11516         * VScrollBar.cs:
11517         - chain up the "new event" overrides to base and use
11518         OnEvent to raise them.  Part of fix for bug #76509.
11519
11520 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11521
11522         * FileDialog.cs: Do not select an item in the parent directory
11523           on backspace
11524
11525 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11526
11527         * Control.cs (PerformLayout): It would seem that we considered
11528           invisible windows for our layout. Not quite the right thing
11529           to do. Now we don't any longer, thereby fixing bug #76889.
11530
11531 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11532
11533         * Control.cs (CanFocus): I goofed. A control can have focus 
11534           even though it's not selectable. Made it match MS docs.
11535
11536 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11537
11538         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11539           center by default (fixes #76895)
11540         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11541           all uses of Border3DSides.All with the explicit ORd together
11542           Left|Right|Top|Bottom because I assume that nobody was aware 
11543           that All also implies a center fill. Most places I checked had
11544           a fill right above.
11545         * ProgressBarStyle.cs: Added
11546
11547 2006-03-13  Mike Kestner  <mkestner@novell.com>
11548
11549         * ListView.cs: fix breakage in drag shadow header positioning 
11550         from Peter's csc compilation fix.
11551
11552 2006-03-13  Mike Kestner  <mkestner@novell.com>
11553
11554         * ListView.cs: fix NRE produced by backspacing twice in a focused
11555         FileDialog.
11556
11557 2006-03-13  Mike Kestner  <mkestner@novell.com>
11558
11559         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11560
11561 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11562
11563         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11564           be changed
11565         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11566           the allowed size before making programmatic size changes
11567
11568 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11569
11570         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11571           set, metacity is broken and will still use the emty sizes in 
11572           the struct. (Fix for #77089)
11573
11574 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11575
11576         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11577           WindowExStyles and marked both enums as Flags
11578         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11579           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11580           to match WindowStyles split
11581         * XplatUIX11.cs:
11582           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11583           - Updated to match WindowStyles split
11584         * XplatUIWin32.cs:
11585           - Fixed FosterParent creation, was using ExStyle on the Style field
11586             (This should help with Popup focus issues)
11587           - Updated to match WindowStyles split
11588
11589 2006-03-13  Jackson Harper  <jackson@ximian.com>
11590
11591         * MdiWindowManager.cs: Use the system menu height. Fixes some
11592         strange sizing issues.
11593
11594 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11595
11596         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11597         * TextBoxBase.cs:
11598           - Scroll to caret after inserting text (#77672)
11599           - Make scroll range one pixel higher, fixes off-by-one error (and
11600             makes underlines visible on the last line)
11601
11602 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11603
11604         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11605           the keyboard state from being stuck with keys in 'pressed' state when
11606           focus is switched away via keyboard
11607         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11608           reset the keyboard if no X11 KeyUp events are expected to come
11609         * X11Structs.cs: Switched type of Visible to bool to match driver
11610
11611 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11612
11613         * TextControl.cs:
11614           - Switched caret to be just 1 pixel wide, matches MS and looks less
11615             clunky
11616           - Moved caret display 1 pixel down from the top of the control
11617             to improve view
11618           - InsertCharAtCharet: Update the selection start if moving the caret
11619             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11620           - No longer always creating the caret when the caret methods are
11621             called. Only the actual ShowCaret/HideCaret will do that now
11622           - Only setting caret visible if the owner control has focus
11623           - UpdateView: Added invalidation-shortcut logic for center and right 
11624             aligned text. Previously we'd update all according to the left
11625             logic which caused drawing errors. Also fixed height of invalidated
11626             areas, now properly invalidating the whole area (was off-by-one)
11627           - owner_HandleCreated: Always generate the document when the
11628             handle is created; this ensures that 
11629         * TextBoxBase.cs:
11630           - Fixed situation where caret would disappear under the right
11631             window border, also improved scrolling behaviour on left-
11632             aligned textboxes
11633           - Fixed right-aligned textboxes to have a border to the
11634             right instead of the caret being under the right border
11635         * XplatUIX11.cs:
11636           - Switched from 'nested' to simple visible/not visible tracking 
11637             for caret (part of fix for #77671)
11638           - No longer passing through translated FocusIn/FocusOut messages
11639             since we were notifying too often and the wrong windows. Instead
11640             we just notify our focussed window of receiving or loosing focus
11641         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11642           counting for caret to simple visible yes/no behaviour (part of 
11643           fix for #77671)
11644
11645 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11646
11647         * Mime.cs: Remove debug code...
11648
11649 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11650
11651         * MimeGenerated.cs: Removed
11652         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11653           and subclasses) from /usr/(local/)share/mime and
11654           $HOME/.local/share/mime.
11655
11656 2006-03-10  Jackson Harper  <jackson@ximian.com>
11657
11658         * MdiWindowManager.cs: Recalc the NC area when a window is
11659         maximized/restored so that the menu area is drawn on forms that
11660         don't have a menu.
11661
11662 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11663
11664         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11665           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11666           us to force a WM_NCCALCRESIZE message being sent. This is needed
11667           for MDI maximizing.
11668
11669 2006-03-10  Jackson Harper  <jackson@ximian.com>
11670
11671         * Form.cs: We need to use the ActiveMenu when calculating menu
11672         height.
11673         - Fix nullref when the window manager hasn't been created yet.
11674         * Control.cs: Fix nullref when we try to bring a control to the
11675         front that has no parent.
11676         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11677         height.
11678         - Add a dummy item to the maximized menu so it always has the
11679         correct height. Otherwise when there are no menus we don't get our
11680         icon and buttons.
11681         
11682
11683 2006-03-10  Jackson Harper  <jackson@ximian.com>
11684
11685         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11686         stuff.
11687         * Form.cs: Make the window_state internal so the window managers
11688         can track it.
11689         - When an MDI child is maximized let its window manager create the
11690         main menu (so it can add its icon).
11691         - Notify the window managers of state changes
11692         - Let the window manager paint its buttons and handle button
11693         clicks on the menu when it is maximized.
11694         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11695         window manager, since tool windows don't use it, only mdi windows.
11696         - Tell the main form that we don't want it to handle NCPAINT
11697         itself to avoid extra painting.
11698         - Handle clicks on a maximized windows menu.
11699         - Handle window state changes
11700         - Handle minimize/maximize clicks correctly by setting the window state.
11701         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11702         when clicking on the forms icon).
11703         - New method to create a forms maximized menu. This is its normal
11704         menu + an icon.
11705         - Handle window state changes.
11706         - Handle sizing of maximized windows.  Maximized windows are just
11707         drawn bigger then the parent visible area. All controls are still
11708         there, they are just outside the visible area (this matches windows).
11709         * MdiClient.cs: No scrollbars when a child window is maximized.
11710         - Let the children windows figure out how big they should be when
11711         sizing maximized windows.
11712         - Implement a version of ArrangeIconicWindows somewhat similar to
11713         Windows version.  There are some little differences, but I don't
11714         think any app will rely on the layout of minimized mdi windows.
11715
11716 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11717
11718         * Padding.cs: Several fixes to allow compiling with csc 2.0
11719
11720 2006-03-09  Jackson Harper  <jackson@ximian.com>
11721
11722         * Menu.cs:
11723         * MenuItem.cs: Cheap hack so we can add items to the list without
11724         the events being raised.  This allows adding mdi items during
11725         drawing. TODO: Should probably find a better time to add the items.
11726
11727 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11728
11729         * ThemeWin32Classic.cs:
11730           - CheckBox_DrawText: Added logic to not wrap if not enough space
11731             is available (Fix for bug #77727)
11732           - RadioButton_DrawText: Added logic not to wrap if not enough
11733             space is available (Fix for bug #77727). Also removed some
11734             duplicate code, DrawString always drawing the regular text
11735             before hitting the if statement.
11736
11737 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
11738
11739         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
11740
11741 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11742
11743         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
11744         * ContainerControl.cs: Partial implementation of some 2.0 scaling
11745           methods. Moved the new 2.0 properties into alphabetical order with
11746           other properties and added MonoTODO tags
11747
11748 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11749
11750         * AutoScaleMode.cs: Added. Fix build.
11751
11752 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11753
11754         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11755           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
11756           and was requiring premature handle creation for calls from above
11757         * Form.cs, Control.cs: Removed handle arguments from calls to
11758           CalculateClientRect()
11759
11760 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11761
11762         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
11763           drag_column.column_rect is MarshalByRef and can't be used that way
11764
11765 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11766
11767         * AxHost.cs: Added deserialization constructor for 
11768           AxHost+State (fixes 77743)
11769
11770 2006-03-09  Mike Kestner  <mkestner@novell.com>
11771
11772         * ListView.cs: 
11773         - Added column drag reordering for details view.
11774         - fixed behavior when mouse is dragged off column and
11775         AllowColumnReorder is false.
11776         * ColumnHeader.cs: clone the format too in Clone.
11777         * Theme.cs: add DrawListViewHeaderDragDetails method.
11778         * ThemeWin32Classic.cs:
11779         - impl new method for drawing drag column shadows and targets.
11780         - support column offset for details mode in DrawListViewItem.
11781
11782 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11783
11784         * TextControl.cs: Reset the char_count when the document is cleared
11785           (Fixes bug reported on mono-winforms mailing list)
11786
11787 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
11788
11789         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
11790           of calling base we simply process the key ourselves, since both
11791           DefWindowProc and the handled method would set m.Result. 
11792           (Fixes #77732)
11793
11794 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
11795
11796         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
11797           method also moves the window; instead implemented a copy of
11798           Control.ScaleCore (Part of fix for #77456)
11799         * TextBoxBase.cs: 
11800           - Created new CreateGraphicsInternal method to allow providing
11801             a graphics context when no handle is created without triggering
11802             handle creation. (Part of fix for #77456)
11803           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11804         * TextControl.cs: 
11805           - Switched Constructor to require TextBoxBase instead of Control (to
11806             allow uncast access to CreateGraphicsInternal)
11807           - Safeguarded use of owner.Handle property. No longer accessing it
11808             unless the handle is already created.
11809           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
11810           - Now triggering a recalc when owning control becomes visible
11811         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
11812           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
11813           premature handle creation (Part of fix for #77456)
11814         * Control.cs:
11815           - We now only destroy our double-buffering buffers when the
11816             control is resized or disposed, but not when visibility
11817             changes. (The code even re-created them twice every time)
11818           - Now requiring a redraw of the buffer on visibility changes
11819             (fixes bug 77654 part 2)
11820           - Not passing OnParentVisibleChanged up unless the control
11821             is visible
11822           - CanFocus: Fixed to match MS documentation
11823           - Focus: Fixed to return actual focus state and to check if
11824             setting focus is legal before setting it
11825
11826 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
11827
11828         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
11829           when to draw focus rectangle by looking at parent focus and
11830           selected state instead. This fixes TabPages on Linux sometimes
11831           having none or multiple focus rectangles.
11832         * XplatUIX11.cs (SetFocus): 
11833           - Don't set the focus if the same window already has focus
11834           - Use SendMessage instead of PostMessage (like it's Win32
11835             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
11836             to match MS behaviour
11837         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
11838           are not selectable.
11839
11840 2006-03-07  Jackson Harper  <jackson@ximian.com>
11841
11842         * PictureBox.cs: Revert line I accidently committed last week.
11843
11844 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11845
11846         * Control.cs: 
11847           - Added new IsRecreating and ParentIsRecreating properties to
11848             allow testing if RecreateHandle has been called on ourselves
11849             or one of our parents
11850           - WndProc(WM_DESTROY): If our control handle is being recreated
11851             we immediately need to create the handle when receiving the
11852             destroy, that way our child windows find a valid parent handle
11853             when they themselves are being recreated upon WM_DESTROY receipt
11854             (fix for bug #77654 part 1)
11855         * XplatUIX11.cs:
11856           - DestroyWindow: WM_DESTROY must be sent to our own window before
11857             notifying any child windows. MS documents that child windows
11858             are still valid when WM_DESTROY is received. (Control now relies on
11859             this behaviour)
11860           - Added some fine-grain debug options
11861
11862 2006-03-06  Jackson Harper  <jackson@ximian.com>
11863
11864         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
11865         box and base calculations off this.
11866         * MdiChildContext.cs:
11867         * MdiWindowManager.cs: Don't need to ensure scrollbars here
11868         anymore.
11869         
11870 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
11871
11872         * Splitter.cs: In situations where the affected control is added
11873           to the parent's control list after the splitter, we would not
11874           populate affected. Now we try populating it on mousedown, if
11875           it's not already set, and force it to be re-set whenever our
11876           parent changes.
11877
11878 2006-03-03  Matt Hargett  <matt@use.net>
11879
11880         * Control.cs: implement Control.Padding
11881         * Padding.cs: -Padding.All returns -1 when constructing with the
11882         implicit default ctor
11883         -Padding.ToString() matches MS.NET
11884         * ContainerControl.cs: implement
11885         ContainerControl.AutoScaleDimensions
11886         * ListControl.cs: implement ListControl.FormattingEnabled
11887         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
11888         * ButtonBase.cs:
11889         * TabPage.cs: Implement UseVisualStyleBackColor.
11890         * PictureBox.cs: Implement PictureBox.InitialImage.
11891
11892 2006-03-03  Mike Kestner  <mkestner@novell.com>
11893
11894         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
11895         event declarations to proxy to base event.
11896         * ListViewItem.cs: update to use ItemControl.
11897         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
11898         * ThemeWin32Classic.cs: update to new ListView theme API and fix
11899         column header label rendering for 0 width columns.
11900
11901 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
11902
11903         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
11904           that causes the control to be created. Fixes #77476.
11905
11906 2006-03-02  Jackson Harper  <jackson@ximian.com>
11907
11908         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
11909         expose_pending.
11910
11911 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
11912
11913         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
11914           passed in for the EventArgs (fixes #77690)
11915
11916 2006-03-01  Jackson Harper  <jackson@ximian.com>
11917
11918         * ScrollBar.cs: Refresh afterbeing resized.
11919
11920 2006-02-28  Mike Kestner  <mkestner@novell.com>
11921
11922         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
11923         Clean up a tracker compile warning.
11924         * MenuItem.cs: add internal PerformPopup method.
11925         [Fixes #77457]
11926
11927 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11928
11929         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
11930           implicit expose) when the text is set to null
11931
11932 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
11933
11934         * RichTextBox.cs (FlushText): When newline is true, we always
11935           need to split the line, even if no text is on it and we may
11936           never eat newlines. (Fixes #77669)
11937
11938 2006-02-28  Mike Kestner  <mkestner@novell.com>
11939
11940         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
11941         and set Selected instead.
11942         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
11943         collections.
11944
11945 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
11946
11947         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
11948
11949 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
11950
11951         * FontDialog.cs:
11952           - Got rid of the panel. All controls are now directly added to
11953             the dialog form
11954           - It is now possible to set a font with the Font property
11955           - MinSize and MaxSize property do now what they should
11956           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
11957           - Searching and selecting a font with the font textbox works now,
11958             the same applies to the style and size textbox
11959           - Draw the correct 3D border in the example panel
11960           - Fixed a little mem leak (unused fonts didn't get disposed)
11961           - Many other internal updates/rewrites...
11962           - Fix typo
11963
11964 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11965
11966         * TextControl.cs: 
11967           - InsertRTFFromStream: Added 'number of characters inserted' argument
11968           - set_SelectedRTF: Now using the number of characters to calculate
11969             the new location for the selection and cursor (x/y cannot be used
11970             due to potentially already wrapped text)
11971
11972 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
11973
11974         * TextControl.cs: Added property and implemented means to allow 
11975           disabling recalculation of a document (can be used to speed up
11976           multiple inserts and is needed to make RTF inserts predictable, see
11977           bug #77659)
11978         * RichTextBox.cs: Using the new NoRecalc property of Document to
11979           keep x/y insert locations predictable. Also makes it faster inserting
11980           large chunks of RTF
11981
11982 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
11983
11984         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
11985           it's easier for a child control to handle the other messages without
11986           having to duplicate the special functionality
11987         * TextBoxBase.cs
11988           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
11989             code to handle processing the key ourselves, in order to get 
11990             access to the result of KeyEventArgs.Handled. We now only call 
11991             ProcessKey if they key hasn't been handled already. Fixes #77526.
11992           - set_Text: If null or empty string is given, just clear the 
11993             document. Fixes part of #77526
11994
11995 2006-02-27  Jackson Harper  <jackson@ximian.com>
11996
11997         * SizeGrip.cs: Paint the background color before painting the grip
11998         so things look right.
11999         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
12000
12001 2006-02-27  Mike Kestner  <mkestner@novell.com>
12002
12003         * ListView.cs:
12004           - Restructure layout and invalidation model to remove a ton of
12005           flicker from the control and speed up performance in general.
12006           - Add manual column resize, flickers like crazy, but I already have
12007           some ideas on how I'll fix that. (#76822)
12008           - Merge the three Icon-based views into a single layout method.
12009           - Move item selection interaction logic from the item since 
12010           interaction with the collections is more appropriate to the view.
12011           - Deselection on non-item clicks.
12012         * ListViewItem.cs:
12013           - Encapsulate most of the layout. Add some internal props to trigger
12014           layout.  Move to a model where Items invalidate themselves instead
12015           of just invalidating the whole control every time something changes.
12016           - Invalidate on Text/Caption changes.
12017           - switch to an offset based layout model to avoid having to absolute
12018           position every element on item moves.
12019           - correct checkbox layout to conform to MS layout.
12020         * ThemeWin32Classic.cs:
12021           - refactor some column header drawing code.
12022           - fix string justification for column headers (#76821)
12023           - make SmallIcon labels top justified for compat with MS impl.
12024         * ThemeClearlooks.cs:
12025           - adjust to new ListViewItem internal checkbox bounds api.
12026
12027 2006-02-27  Jackson Harper  <jackson@ximian.com>
12028
12029         * Control.cs:  Change where implicit controls fall in the zorder.
12030         They are now on top of all children.
12031         - Synced AddImplicit code with Add
12032         - Removed unused enumerator.
12033         * SizeGrip.cs: Remove the TODO as its been TODONE.
12034
12035 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
12036
12037         * TextControl.cs(Insert): Combine the last lines unless the insertion
12038           string ends with \n\n, otherwise we leave one line too many (Fixes
12039           something I noticed with the testapp for #77526; the bug itself was
12040           already fixed in the previous checkin)
12041
12042 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
12043
12044         * RichTextBox.cs:
12045           - SelectionColor and SelectionFont methods no longer set absolute
12046             styles. Instead, the keep font or color respectively (This 
12047             resolves a long-standing FIXME in the code)
12048           - When flushing RTF text, the insert code now considers text trailing
12049             behind the insertion point (Fixes the bug where when replacing
12050             the selected text via SelectedRTF the remainder of the line behind 
12051             the selection would stay on the first insertion line)
12052         * TextBoxBase.cs:
12053           - AppendText now updates the selection points after inserting text
12054           - AppendText now ensures that the last tag (sometimes 0-length) of
12055             the document is used for the style information (Fixes part of 
12056             bug #77220)
12057         * TextControl.cs:
12058           - Created new FontDefiniton class to allow describing partial style
12059             changes
12060           - StreamLine() now takes a lines argument, to allow it to decide
12061             whether an encountered zero-length tag is the last in the document
12062             (which must be kept to not loose the font/color contained in it,
12063             for later appends)
12064           - Created Combine() and Split() methods for Marker structs, to 
12065             support marker updates due to reformatted documents (soft line
12066             wraps)
12067           - Implemented Document.CaretTag setter
12068           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
12069             of the last line (Not the cause, but also exposed by bug #77220)
12070           - Added LineTag argument to InsertString method, to allow callers
12071             to force a certain tag to be used (required to force use of the
12072             trailing zero-length tag of a document)
12073           - Now updating markers in Combine(), to avoid stale tag markers
12074           - Added some method descriptions to aid maintenance
12075           - Implemented new FormatText concept, allowing additive/subtractive
12076             formatting by only specifying the components that are to be 
12077             changed. This was needed for resolving the RTB.SelectedColor/
12078             RTB.SelectedFont fixmes
12079           - Added Break() support method to allow breaking up linetags (used
12080             for partial formatting)
12081           - Added GenerateTextFormat() method. It is used for partial 
12082             formatting and allows to generate a full font/color from given
12083             attributes and an existing tag.
12084
12085 2006-02-26  Jackson Harper  <jackson@ximian.com>
12086
12087         * XplatUIX11.cs:  Use the correct caption height.
12088         - Translate hittest coordinates to screen coords to match MS.
12089         * XplatUIWin32.cs: When we create MDI windows we need to reset
12090         some of the style flags, so we get a nice blank window, and can
12091         draw all the decorations ourselves.
12092         - Set a clipping rectangle on the non client paint event, the
12093         window manager drawing code needs one.
12094         * Form.cs: The window manager needs to know when the window state
12095         has been updated.
12096         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12097         don't need to factor in border and title sizes in these
12098         methods. TODO: Remove the args and fix the call points.
12099         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12100         properly.
12101         - Let the driver set the cursors.
12102         - Improve active window handling
12103         - Correct sizes for title bars and buttons.
12104         - Match MS drawing better
12105         * MdiWindowManager.cs: We don't need to handle border style
12106         updates specially anymore.
12107         - Check for scrollbars when windows are done moving
12108         - Handle Active properly.
12109         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12110         correctly. I am spewing the exception though, so we don't hide the
12111         bugs.
12112         
12113 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12114
12115         * DataGridViewRowPostPaintEventArgs.cs,
12116           DataGridViewCellPaintingEventArgs.cs,
12117           DataGridViewRowCollection.cs,
12118           DataGridViewRowPrePaintEventArgs.cs,
12119           DataGridViewCell.cs: Clear a few warnings and implement a few
12120           exceptions that should be thrown.
12121
12122 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12123
12124         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12125           'inheriting' our parent's (non-default) cursor. (Part of
12126            the fix for #77479)
12127
12128 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12129
12130         * XplatUIX11.cs: Fixed cast to make csc happy
12131
12132 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12133
12134         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12135           it's for the client area (part of fix for #77479 and needed
12136           for MDI window cursor handling)
12137         * XplatUIX11.cs
12138           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12139             the appropriate default cursors and also passing the message
12140             up the parent chain 
12141           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12142             for non-client areas
12143
12144 2006-02-15  Jackson Harper  <jackson@ximian.com>
12145
12146         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12147         is a real MDI window
12148
12149 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12150
12151         * X11DesktopColors.cs: Instead of checking the desktop session
12152           string for "KDE" check if it starts with "KDE"
12153
12154 2006-02-10  Jackson Harper  <jackson@ximian.com>
12155
12156         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12157         systems).
12158
12159 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12160
12161         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12162           errors
12163         * ColorDialog.cs:
12164           - Got rid of the panel. All controls are now directly added to
12165             the dialog form
12166           - Changed to mono coding style
12167
12168 2006-02-10  Jackson Harper  <jackson@ximian.com>
12169
12170         * InternalWindowManager.cs: We don't need the set visibility to
12171         false hack anymore now that peter has written beautiful shutdown
12172         code.
12173
12174 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12175
12176         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12177           where already explicitly destroyed
12178
12179 2006-02-10  Jackson Harper  <jackson@ximian.com>
12180
12181         * MdiClient.cs: Handle the case where windows are too high or to
12182         the left and we need scrollbars.
12183
12184 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12185
12186         * MimeIcon.cs: Added some icons
12187         * FileDialog.cs:
12188           - Fixed bug #77477
12189           - Got rid of the panel. All controls are now directly added to
12190             the dialog form
12191           - Changed to mono coding style
12192           - On Linux "My Computer" and "My Network" will now show some
12193             more usefull information. A new class, MasterMount, gathers
12194             this information from /proc/mount. Updated MWFFileView to make
12195             use of this information
12196           - Fixed a bug that caused FileDialog to crash when
12197             ".recently_used" file had a zero size
12198           - FilterIndex does now what it should
12199           - Some Refactoring
12200         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12201             FileDialog changes
12202
12203 2006-02-09  Jackson Harper  <jackson@ximian.com>
12204
12205         * ComboBox.cs: Don't touch if null.
12206
12207 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12208
12209         * Cursor.cs: 64bit safeness fix
12210         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12211
12212 2006-02-09  Jackson Harper  <jackson@ximian.com>
12213
12214         * Form.cs: If a form is made into an MDI form update the styles so
12215         all the props can get set correctly.
12216         - Kill the mdi_container when we dont need it anymore.
12217         * InternalWindowManager.cs: Add missing NOT
12218
12219 2006-02-08  Jackson Harper  <jackson@ximian.com>
12220
12221         * InternalWindowManager.cs: Respek clipping when drawing MDi
12222         decorations.
12223
12224 2006-02-08  Jackson Harper  <jackson@ximian.com>
12225
12226         * Hwnd.cs: Add bits to track non client expose events.
12227         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12228         gives us a proper invalid rect and will allow for some nice
12229         optimizations with NC client drawing
12230         - MDI windows are children windows, so move their style handling
12231         into the child window block.
12232         * InternalWindowManager.cs: Remove a state reset that was
12233         getting invoked at the wrong time. Fixes managed windows getting
12234         into a 'stuck' captured state.
12235
12236 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12237
12238         * TextControl.cs (Document.ctor): Now initializing 
12239           selection_anchor. Fixes #77493
12240
12241 2006-02-07  Jackson Harper  <jackson@ximian.com>
12242
12243         * TrackBar.cs: The increment/decrements were backwards.
12244
12245 2006-02-07  Mike Kestner  <mkestner@novell.com>
12246
12247         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12248         to the instance itself.
12249
12250 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12251
12252         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12253           on ulongs and pointers, the size differs between 32bit and 64bit
12254           systems. 
12255
12256 2006-02-07  Mike Kestner  <mkestner@novell.com>
12257
12258         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12259         for 64 bit platforms to work around a metacity bug. 
12260
12261 2006-02-07  Jackson Harper  <jackson@ximian.com>
12262
12263         * TrackBar.cs: Process the input keys we need, and hookup to
12264         KeyDown instead of using WndProc, so we get key messages.
12265
12266 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12267
12268         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12269           machine we're on. 
12270         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12271           we need to translate the XdndVersion atoms array before sending it
12272
12273 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12274
12275         * XplatUIX11.cs: 
12276           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12277             number of bits for the property, not the number of bytes. The
12278             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12279             but would not crash since it specified 8 bits instead of 4 bits)
12280           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12281             defined as XID -> long in the C headers)
12282           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12283             references since those are now IntPtr to begin with
12284           - Switched all Atom.XXX 'int' casts to IntPtr casts
12285           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12286           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12287           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12288         * X11Structs.cs:
12289           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12290           - Changed atom in HoverStruct to be IntPtr
12291         * X11DnD.cs:
12292           - Removed local DllImports, switched code to use those from XplatUIX11
12293           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12294
12295 2006-02-06  Mike Kestner  <mkestner@novell.com>
12296
12297         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12298         method signatures in the import region.  There may still be some
12299         lingering struct marshaling issues, as I didn't drill down into those.
12300         Yet.
12301
12302 2006-02-06  Jackson Harper  <jackson@ximian.com>
12303
12304         * ComboBox.cs: Dont manually set the top_item, this is computed
12305         when the scrollbar position is set.
12306
12307 2006-02-06  Mike Kestner  <mkestner@novell.com>
12308
12309         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12310         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12311         usage of Atom needs to be mapped to IntPtr for example.  And there are
12312         likely other int/long issues to be addressed.
12313
12314 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12315
12316         * FileDialog.cs: One more...
12317
12318 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12319
12320         * FileDialog.cs: Next try
12321
12322 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12323
12324         * FileDialog.cs: First part of fix for #77464
12325
12326 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12327
12328         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12329           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12330           AcceptButton border drawing.
12331
12332 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12333
12334         * Form.cs: Moved positioning of form after auto scaling is applied,
12335           otherwise it would possibly use wrong form size.
12336
12337 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12338
12339         * Control.cs (RecreateHandle): No need to re-create any child
12340           controls, the child windows will get destroyed automatically by
12341           the windowing system or driver, and re-created when the handle
12342           is being accessed the first time. Fixes #77456
12343         * Form.cs: No longer setting the form to closing if the handle is 
12344           being recreated. This seems like the right thing to do, don't
12345           have a bug or testcase for this, though.
12346
12347 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12348
12349         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12350           controls to avoid unwanted side effects
12351
12352 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12353
12354         * Control.cs: 
12355           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12356             control. Fixes #77416.
12357           - DefaultSize is 0,0 for control
12358         * TextBoxBase.cs: 
12359           - DefaultSize is 100, 20
12360           - SetBoundsCore: Now enforcing the height, no matter if the provided
12361             height is more or less than the preferred one, as long as AutoSize
12362             is on
12363         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12364
12365 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12366
12367         * Control.cs:
12368           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12369             call unless both performLayout is true *and* we have a pending
12370             layout change
12371           - ResumeLayout: MS does not completely nest Suspend and Resume,
12372             they bottom out at 0, fixed our code to match that.
12373           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12374             SetBoundsCore, we were updating even when we shouldn't. This fixes
12375             swf-anchors mis-anchoring when resizing the app fast and lots.
12376           - UpdateDistances: Now only setting the left and top distance if 
12377             we have a parent and are not suspended, this is based on
12378             a suggestion by Don Edvaldson in bug #77355.
12379           - OnVisibleChanged: Fixed logic when to create the control. We may
12380             not create the control if we have no parent or if it's not visible;
12381             switched to using Visible property instead of is_visible field 
12382             since the property also considers parent states. This fixes a bug
12383             when starting Paint.Net
12384
12385 2006-02-02  Jackson Harper  <jackson@ximian.com>
12386
12387         * Form.cs: If the forms handle hasn't been created yet don't call
12388         into xplatui to make it top most, just set the topmost flag on the
12389         form in CreateParams
12390         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12391
12392 2006-02-01  Jackson Harper  <jackson@ximian.com>
12393
12394         * ScrollableControl.cs: Refactored the Recalculate method a
12395         little, this wasn't handling all the variants of bottom and right
12396         bars needed to be added and added/removed based on their
12397         counterparts being added/removed (which changes the drawable
12398         size). Also we special case client widths and heights of 0 and
12399         don't add the scrollbar for those.
12400
12401 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12402
12403         * XplatUIX11.cs: 
12404           - Added method to get AbsoluteGeometry(); currently unused, but might
12405             be used in the future, if we try again to figure out toplevel
12406             coordinates with some more crappy window managers
12407           - Added FrameExtents() method to retrieve the WM set decoration size
12408           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12409             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12410         * Hwnd.cs: 
12411           - Added whacky_wm tracking var for metacity
12412           - Added logic to have default menu height if the actual menu height
12413             has not yet been calculated (part of fix for #77426)
12414         * Form.cs: Keep track whether client size has been set and re-set 
12415           it if a menu is added/removed afterwards (Fixes #77426)
12416
12417 2006-01-31  Jackson Harper  <jackson@ximian.com>
12418
12419         * Control.cs: When a new Site is set on the component attempt to
12420         pull the AmbientProperties from it.
12421
12422 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12423
12424         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12425           in the background of the owning form. Fixes #77332
12426
12427 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12428
12429         * MimeIcon.cs: Fix for #77409
12430
12431 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12432
12433         * XplatUIX11GTK.cs: Initial import
12434
12435 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12436
12437         * FixedSizeTextBox: fixes class signature
12438
12439 2006-01-30  Jackson Harper  <jackson@ximian.com>
12440
12441         * FixedSizeTextBox.cs: New internal class that represents a
12442         textBox that will not be scaled.
12443         * TreeView.cs:
12444         * ComboBox.cs:
12445         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12446         standard TextBox.
12447                 
12448 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12449
12450         * XplatUIX11.cs: Retrieve default screen number instead of
12451           assuming 0. Attempted fix for #77318
12452
12453 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12454
12455         * XplatUIWin32.cs: 
12456           - GetWindowPos: When a window is parented by FosterParent, use 
12457             the desktop instead of FosterParent as the base to get coordinates
12458           - CreateWindow: Don't make FosterParent the parent window for Popups
12459             if we don't want a taskbar entry, Popups automatically don't get one
12460         * Hwnd.cs: Need to call remove to actually remove the key from the
12461           hash table
12462
12463 2006-01-30  Mike Kestner  <mkestner@novell.com>
12464
12465         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12466
12467 2006-01-30  Jackson Harper  <jackson@ximian.com>
12468
12469         * TreeView.cs:
12470         * TreeNode.cs: Raise events no matter how the treenode is
12471         checked. Patch by Don Edvalson.
12472
12473 2006-01-30  Jackson Harper  <jackson@ximian.com>
12474
12475         * TreeNode.cs: Signature fix.
12476
12477 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12478
12479         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12480
12481 2006-01-20  Mike Kestner  <mkestner@novell.com>
12482
12483         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12484         event forwarding when menus are active.
12485         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12486         Most of the patch is pdb's with a little rework.
12487
12488 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12489
12490         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12491           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12492           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12493         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12494         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12495           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12496           the PaintWindowDecorations method
12497         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12498         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12499         * MenuAPI.cs: Made tracker window invisible
12500         * XplatUIWin32.cs:
12501           - Removed GetMenuDC and ReleaseMenuDC methods
12502           - Implemented the client=false path for PaintEventStart and
12503             PaintEventEnd
12504
12505 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12506
12507         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12508         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12509           styles
12510         * Form.cs: 
12511           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12512             the style
12513           - CreateParams: Reworked the styles to match MS look'n'feel,
12514             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12515             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12516
12517 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12518
12519         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12520           window is not mapped, since otherwise every form that's being 
12521           created is considered minimized, which is wrong.
12522         * Form.cs: Catching the exception and returning our internal value
12523           instead
12524
12525 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12526
12527         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12528           SetWindowMinMax() to have means to tell the driver about the minimum,
12529           maximum and maximized state window sizes. (Part of the fix for #76485)
12530         * Form.cs:
12531           - Implemented tracking of minimum and maximum window size, now calling
12532             new SetWindowMinMax() driver method to tell the driver (Part of the
12533             fix for #76485)
12534           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12535             (Completes fix for #76485)
12536           - Calling new SetWindowMinMax driver method when the handle for a 
12537             form is created, to make sure the driver knows about it even if
12538             the values have been set before the window was created
12539           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12540             to avoid messing up our anchoring calculations (partial fix
12541             for #77355)
12542         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12543         * XplatUIX11.cs:
12544           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12545           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12546             (and presumably other freedesktop.org compliant WMs). Left the
12547             assumption unmapped=minimized, needed for SetVisible to work.
12548           - Now setting the window state when creating windows
12549           - Fixed SetVisible to consider/set the window state when mapping
12550             a Form. We cannot set the state before it's mapped, and we cannot
12551             use Form.WindowState once it's mapped (since it would ask the
12552             driver and get 'normal'. Therefore, we grab the state before
12553             mapping, map, and then set state.
12554           - Implmemented SetWindowMinMax method; Metacity does not seem to
12555             honor the ZoomHints, though.
12556         * XplatUIWin32.cs:
12557           - Removed MINMAXINFO (moved to XplatUIStructs)
12558           - Added SetWindowMinMax stub (on Win32 the only way to set that
12559             information is in response to the WM_GETMINMAXINFO message, which
12560             is handled in Form.cs)
12561           - Added logic to SetVisible to set the proper window state when a 
12562             form is made visible (fixes #75720)
12563
12564 2006-01-26  Jackson Harper  <jackson@ximian.com>
12565
12566         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12567         same way we handle them with Invoke.
12568
12569 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12570
12571         * Form.cs:
12572           - Added tracking of window state so CreateParams can return
12573             the appropriate style
12574           - Moved setting of WS_CAPTION style in CreateParams to allow
12575             styles without caption
12576         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12577           control if the TextBox property is accessed. Fixes #77345
12578         * Control.cs:
12579           - get_Created: now uses is_disposed and is_created to determine
12580             return value (suggested by Jackson)
12581           - CreateHandle: No longer exits if the handle is being recreated
12582           - RecreateHandle: If the handle is not yet created call the 
12583             appropriate method to create either control or handle. If the
12584             control is already created CreateHandle will simply exit instead
12585             of just creating the handle
12586         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12587           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12588           is called.
12589         * XplatUIX11.cs: 
12590           - When DestroyWindow is called, instead of waiting for the 
12591             DestroyNotification from X11, we directly post it to the WndProc
12592             and immediately dispose the hwnd object.
12593             Same applies to DestroyChildWindows, and this obsoletes the
12594             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12595             child windows before our own, to avoid X11 errors.
12596           - Removed the direct sending of WM_PAINT on UpdateWindow
12597         * XplatUIWin32.cs:
12598           - Reworked DoEvents and GetMessage to allow access to internal queue
12599             even when trying non-blocking access to the queue.  Fixes #77335. 
12600             Based on a patch suggestion by Don Edvalson. The new private
12601             GetMessage can now also be used as a backend for a PeekMessage
12602             frontend version.
12603         * XplatUI.cs: Improved debug output for CreateWindow
12604
12605 2006-01-25  Jackson Harper  <jackson@ximian.com>
12606
12607         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12608
12609 2006-01-24  Jackson Harper  <jackson@ximian.com>
12610
12611         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12612         when we have a MaxDropItems lower then the selected index.
12613
12614 2006-01-24  Jackson Harper  <jackson@ximian.com>
12615
12616         * Control.cs: Don't allow selection of non visible controls, allow
12617         selection of controls without parents.
12618
12619 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12620
12621         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12622         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12623
12624 2006-01-23  Jackson Harper  <jackson@ximian.com>
12625
12626         * UpDownBase.cs: Make the textbox handle all the selection and
12627         tabbing. This fixes tabing to updown controls.
12628
12629 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12630
12631         * TextBoxBase.cs: fixes exception thown the object was null
12632
12633 2006-01-23  Jackson Harper  <jackson@ximian.com>
12634
12635         * ButtonBase.cs: Just use the base CreateParams. They set
12636         visibility and enabled correctly.
12637         * ComboBox.cs:
12638         * TrackBar.cs:
12639         * MonthCalendar.cs: Lets let the base set as much of the
12640         createparams as possible so we don't have duplicate code all over
12641         the place.
12642
12643 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12644
12645         * ThemeGtk.cs: Added TrackBar and some experimental code to
12646           get double buffering back
12647
12648 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12649
12650         * DataGrid.cs: Allows row number set internally higher than the last
12651         when creating a new row. Restores the editing functionality.
12652
12653 2006-01-20  Mike Kestner  <mkestner@novell.com>
12654
12655         * MimeIcon.cs: delay Image creation until the icons are accessed
12656         instead of creating 190 scaled images on GnomeHandler startup.
12657
12658 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12659
12660         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12661           first call base before processing the event. Fixes #77279
12662
12663 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12664
12665         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12666           that the stride for the GDI bitmap would match the stride of
12667           a DIB or a Cursor.
12668
12669 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12670
12671         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12672
12673 2006-01-19  Jackson Harper  <jackson@ximian.com>
12674
12675         * ComboBox.cs: Hookup the text controls keydown event so we get
12676         those when the text control has the focus.
12677
12678 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12679
12680         * Label.cs: Now using the base events instead of defining new ones;
12681           this allows us to just call the base properties without having to
12682           duplicate all base property logic 
12683
12684 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12685
12686         * Label.cs: A label by default is not a tabstop (Fixes one of our
12687           failing nunit tests)
12688
12689 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12690
12691         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12692         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12693
12694 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12695
12696         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12697           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12698           This fixes #77218
12699         * XplatUIWin32.cs: 
12700           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12701             constructor creates images that can't be saved. Part of the fix
12702             for #76103
12703           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
12704           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
12705             bug fix for handling window state in forms properly)
12706
12707 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12708
12709         * ThemeGtk.cs: Simplify ScrollBar drawing
12710
12711 2006-01-18  Jackson Harper  <jackson@ximian.com>
12712
12713         * Splitter.cs: Set the default dock style for the splitter control
12714         in the constructor.
12715
12716 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12717
12718         * ThemeGtk.cs: Corrected StateType and ShadowType for
12719           gtk_paint_box
12720
12721 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12722
12723         * Control.cs: Make use of Theme.DoubleBufferingSupported
12724         * ThemeGtk.cs:
12725           - Added drawing for flat style buttons
12726           - Added ScrollBar drawing
12727
12728 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
12729
12730         * ThemeClearlooks.cs: Removed some unneeded code.
12731         * ThemeGtk.cs: First part of ThemeGtk enhancements.
12732
12733 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12734
12735         * LinkLabel.cs: We need to update the hover drawing when
12736           leaving the control as well.
12737
12738 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
12739
12740         * DataGrid.cs: Clicking on non empty areas in the columns
12741            area was giving an exception
12742
12743 2006-01-17  Jackson Harper  <jackson@ximian.com>
12744
12745         * ThemeWin32Classic.cs:
12746         * ListView.cs: Do not draw/clip the headers when the header style
12747         is None.
12748
12749 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12750
12751         * DataGrid.cs: Fixes 77260
12752         
12753 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
12754
12755         * DataGrid.cs: Clicking on a column on a empty grid was giving
12756           an exception
12757
12758 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
12759
12760         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
12761           or any keypress will crash the grid.
12762
12763 2006-01-17  Mike Kestner  <mkestner@novell.com>
12764
12765         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
12766         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
12767         invisible/previously-visible items.
12768         [Fixes #76909]
12769
12770 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
12771
12772         * ThemeClearlooks.cs:
12773         - Added CL_Draw_Button method; now other theme controls that are 
12774           not derived from button or do not have a button can draw buttons
12775           too
12776         - Updated ComboBox drawing
12777         - Beautified RadioButton drawing
12778         - Corrected drawing of bottom and left tabs
12779         - Beautified DateTimePicker and MonthCalendar
12780         - Added CPDrawButton and CPDrawRadioButton
12781
12782 2006-01-16  Jackson Harper  <jackson@ximian.com>
12783
12784         * ComboBox.cs: Set the initial value of the scrollbar to the
12785         current index. Reduce the numbers of refreshs and IndexOfs called.
12786
12787 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
12788
12789         * FileDialog.cs: When the file listview is focused hitting the
12790           backspace key moves the fileview to the parent directory
12791
12792 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12793
12794         * Form.cs: 
12795           - Added RecreateHandle call when changing taskbar visibility to 
12796             trigger reparenting in Win32 driver (Fixes #75719)
12797           - If a window has minimize or maximize buttons, it cannot have
12798             a help button
12799         * XplatUIWin32.cs:
12800           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
12801             the toplevel form with FosterParent (A toolwindow not on the
12802             taskbar) (Fixes #75719)
12803           - Made FosterParent a toolwindow
12804
12805 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12806
12807         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
12808
12809 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12810
12811         * ToolTip.cs: If SetToolTip is called from a control and the mouse
12812           is currently over that control, make sure that tooltip_window.Text
12813           gets updated
12814
12815 2006-01-13  Mike Kestner  <mkestner@novell.com>
12816
12817         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
12818
12819 2006-01-13  Jackson Harper  <jackson@ximian.com>
12820
12821         * TreeView.cs: On MS GetNodeAt never actually factors in the X
12822         value passed.  Also redraw the selected node when we recieve
12823         focus, so tabbing between trees works correctly.
12824
12825 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
12826
12827         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
12828           ~/.gconf/%gconf-tree.xml, so use
12829           .gconf/desktop/gnome/interface/%gconf.xml
12830
12831 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12832
12833         * TextControl.cs: Draw text in gray if control is disabled
12834
12835 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
12836
12837         * TreeView.cs: Draw the focus rectangle outside the highlight, to
12838           make sure it's always visible. Fixes #76680.
12839
12840 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
12841
12842         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
12843
12844 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
12845
12846         * PageSetupDialog.cs: Added.
12847         * PrintDialog.cs: Attributes.
12848         * PrintPreviewControl.cs: Updates.
12849         * PrintPreviewDialog.cs: Updates.
12850         
12851 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12852
12853         * Control.cs: Undid my selection check fix, since it's not needed
12854         * TextBoxBase.cs:
12855           - Now considering the presence of hscroll/vscroll when sizing
12856             vscroll/hscroll respectively. Fixed bug #77077
12857           - Added Left/Up/Down/Right to IsInputKey list to prevent
12858             ContainerControl from stealing them. This fixes what I broke
12859             with my last checkin.
12860
12861 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
12862
12863         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
12864           I finally understand how the property can be set without a setter :-)
12865
12866 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12867
12868         * Application.cs:
12869           - Switched RunLoop to use static Message.Create to create a 
12870             Message object
12871           - Added PreProcessMessage call in runloop for keyboard events; this
12872             is part of the fix for #77219, I overlooked this originally in the
12873             MSDN doc for PreProcessMessage
12874         * Control.cs:
12875           - Removed call to PreProcessMessage from handling of keyboard 
12876             messages; it's supposed to be done in the message pump
12877           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
12878             per MSDN documentation.
12879           - IsInputChar: All chars are input chars by default; removed the 
12880             parent calling chain, MS does not document that
12881           - PreProcessMessage: If IsInputChar is true, we want to return false
12882             to allow dispatching of the message
12883           - When selecting the next control, now also check that we're not
12884             selecting ourselves again and therefore return a false positive.
12885         * TextBoxBase.cs:
12886           - Tried to match return values for IsInputKey and ProcessDialogKey
12887             to what MS returns; moved processing of our special keys outside
12888             ProcessDialogKey since MS does not seem to return true on those.
12889           - Moved code that previously was in ProcessDialogKey into new private
12890             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
12891           - Reworked handling of WM_CHAR to not have to duplicate code from
12892             Control.cs anymore, instead we simply call down to base.
12893            
12894 2006-01-12  Jackson Harper  <jackson@ximian.com>
12895
12896         * ComboBox.cs: We always need to refresh the text area when
12897         EndUpdate is called. Fixes the combobox in the file dialog.
12898         * Control.cs: Don't create the creator_thread until the controls
12899         handle is created.  Also in InvokeRequired we check if the
12900         creator_thread is null. This gives the effect of InvokeRequired
12901         returning true if the controls handle is not created yet, and
12902         matches MS.
12903
12904 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12905
12906         * XplatUI.cs:
12907           - Added StartLoop() driver method. This is used to allow drivers to
12908             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
12909             loop for a particular thread
12910           - Added EndLoop() driver method. This is called once the message
12911             pump for the thread is shut down
12912           - Added SupportsTransparency method to allow the driver to indicate
12913             opacity support for windows
12914         * Form.cs:
12915           - Removed TODO attribute, completed AllowTransparency property
12916           - Added documented logic to Opacity
12917         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
12918           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
12919           versions of CompatibleTextRendering
12920         * X11Structs.cs: Added opacity atom to our atom enumeration
12921         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
12922           of a form might be set before it's reparented by the WM, and we need
12923           the opacity value without calling up to Form)
12924         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
12925           SupportsTransparency() driver methods
12926         * Application.cs: Now calling StartLoop and EndLoop driver methods
12927         * XplatUIX11.cs:
12928           - Added opacity atom registration
12929           - Added StartLoop()/EndLoop() methods. They're empty right now but
12930             will need to get implemented when we switch to a per-thread queue
12931           - Implemented SupportsTransparency() method
12932           - Implemented SetWindowTransparency() method
12933           - Added support for setting the opacity value when a window is
12934             reparented (since the opacity needs to be set on the WM frame)
12935         * XplatUIOSX.cs, XplatUIWin32.cs:
12936           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
12937
12938 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12939
12940         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
12941
12942 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
12943
12944         * FileDialog.cs: Added ToolTip for MWFFileView
12945         * MimeIcon.cs: Rewrote GnomeHandler.
12946           - Get currently used gnome icon theme from
12947             ($HOME)/.gconf/%gconf-tree.xml
12948           - Make use of inherited icon themes
12949           - Support SVG icon themes like Tango via librsvg
12950
12951 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12952
12953         Revert's Jackson's revert which broke 2.0 builds.   Fix both
12954         builds. 
12955         
12956         * Application.cs: Move the use_compatible_text_rendering outside
12957         the NET_2_0 define.  If we ever need to use the
12958         use_compatible_text_rendering on the individual controls they will
12959         access the variable from the common shared code paths.
12960
12961 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
12962
12963         * XplatUI.cs:
12964           - Added more granular debug options
12965           - Added method to print both window text and id
12966           - Switched debug output to use new Window() debug method
12967           - Added IsEnabled() driver method
12968           - Added EnableWindow() driver method
12969         * Form.cs:
12970           - Removed end_modal; no longer needed, new loop handles termination
12971             via 'closing' variable
12972           - If form is modal, setting DialogResult will now initiate loop
12973             termination via 'closing' variable
12974           - Added support for is_enabled/WS_DISABLED to CreateParams
12975           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
12976             does all the work
12977           - Removed code that's now in RunLoop from ShowDialog()
12978           - Added various documented sanity checks to ShowDialog()
12979           - Added handling of WM_DESTROY message; we set 'closing' on getting
12980             the message to indicate the message pump to terminate
12981           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
12982             send by the Application.ExitThread method. (We send the message
12983             to destroy the window after all other events have been
12984             processed through the queue, instead of destroying the handle 
12985             directly)
12986           - Moved code from Close() method to WM_CLOSE handler; added logic
12987             to only send close-related events if the form is not displayed
12988             modal
12989         * Splitter.cs (..ctor): Fixed typo in resource name
12990         * Control.cs:
12991           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
12992             brush now
12993           - set_Cursor: Now only setting calling into XplatUI if the handle for
12994             the control is already created; this avoids implict handle creation
12995             or crashes if it's not created
12996           - set_Enabled: Now setting the enabled state via the new driver method
12997             instead of just tracking it
12998           - CreateParams: Added logic to set WS_DISABLED based on enabled state
12999           - CreateControl: Reordered event firing and method calls to more
13000             closely fire events in the order MS does. Now setting the
13001             enabled state in the driver when creating the control.
13002           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
13003             match MS order
13004         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
13005           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
13006         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
13007         * Hwnd.cs:
13008           - Added tracking of window enabled state (get_Enabled/set_Enabled)
13009           - Added EnabledHwnd property to easily allow a driver to find the
13010             handle of the first enabled window in the parent chain (this is
13011             used by drivers to pass up input events of disabled windows)
13012         * XplatUIDriver.cs: Added IsEnabled() method
13013         * Application.cs:
13014           - Removed crude and obsolete exiting tracking variable
13015           - Removed internal ModalRun(); replaced by RunLoop()
13016           - Implemented private CloseForms() method to allow closing all 
13017             windows owned by a particular (or all) threads
13018           - Exit() now properly closes all windows without forcing the message
13019             pump to quit
13020           - Removed obsolete InternalExit() method
13021           - Changed Run() methods to use new RunLoop() message pump
13022           - Implemented new RunLoop() method for both modal and non-modal forms
13023         * CommonDialog.cs:
13024           - get_CreateParams: Added setting of WS_DISABLED
13025           - Simplified ShowDialog(); now all the work is done in RunLoop(),
13026             invoked via Form.ShowDialog()
13027         * NativeWindow.cs: We don't remove the window from the collection when
13028           the handle is destroyed; there might still be messages for it in the
13029           queue (mainly the resulting WM_DESTROY); instead it will be removed
13030           when Control calls InvalidateHandle in the WM_DESTROY handler
13031         * XplatUIX11.cs:
13032           - CreateWindow: Added logic to handle the WS_DISABLED window style
13033           - EnableWindow: Implemented based on Hwnd.Enabled
13034           - GetMessage: Reset PostQuitState so the method can be called again
13035           - Implemented support for disabled windows (passing messages to the
13036             first enabled parent) in handling all input messages
13037           - Added optimizations for handling Expose events
13038           - Implemeted new driver method IsEnabled()
13039           - Now always resetting paint pending tracking vars when we start paint
13040           - Re-implemented UpdateWindow via just sending a WM_PAINT message
13041         * XplatUIOSX.cs: Added IsEnabled method stub
13042         * XplatUIWin32.cs: Implemented new IsEnabled() method
13043
13044 2006-01-11  Jackson Harper  <jackson@ximian.com>
13045
13046         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13047         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
13048         variables a little.
13049         * ColorDialog.cs: Clear out the old form before adding the new
13050         panel.  
13051
13052 2006-01-11  Jackson Harper  <jackson@ximian.com>
13053
13054         * X11Dnd.cs: Make sure to add all the text formats when adding
13055         strings to the data object.
13056         * TreeNodeCollection.cs: When adding to a sorted tree we need to
13057         do some redrawing too.  Also change the UpdateNode to an
13058         UpdateBelow so the newly added node gets painted.
13059         
13060 2006-01-11  Miguel de Icaza  <miguel@novell.com>
13061
13062         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13063         LinkLabel.cs, PropertyGrid.cs: Implement the
13064         UseCompatibleTextRendering property for 2.x
13065
13066         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
13067
13068 2006-01-11  Jackson Harper  <jackson@ximian.com>
13069
13070         * TreeView.cs: Use the property for setting the selected node so
13071         the correct events get raised.
13072         * TreeNode.cs: Update the tree when the fore/back colours of a
13073         node are set.
13074
13075 2006-01-10  Jackson Harper  <jackson@ximian.com>
13076
13077         * TreeView.cs: Allow setting SelectedNode to null.
13078
13079 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13080
13081         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13082
13083 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13084
13085         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13086
13087 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13088
13089         * PrintDialog.cs: Added attributes and set default property values.
13090
13091 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13092
13093         * PrintControllerWithStatusDialog.cs: 
13094         Added PrintControllerWithStatusDialog.
13095
13096 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13097
13098         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13099         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13100
13101 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13102
13103         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13104
13105 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13106
13107         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13108         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13109
13110 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13111
13112         * MimeIcon.cs: Added internal class SVGUtil.
13113
13114 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13115
13116         * FileDialog.cs: Don't crash if there are two files with the
13117           same name but different locations.
13118
13119 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13120
13121         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13122         dates across multiple month grids. Used to not highlight entire 
13123         month, but does now.
13124         
13125 2006-01-06  Jackson Harper  <jackson@ximian.com>
13126
13127         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13128         message loop. Change timer intervals to numbers that seem more
13129         natural.
13130
13131 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13132
13133         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13134           object for location info since screen object is now implemented.
13135
13136 2006-01-05  Jackson Harper  <jackson@ximian.com>
13137
13138         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13139         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13140         AsyncMethodResult, this is because we ALWAYS want the
13141         ManualResetEvent to get set.
13142         * Control.cs: When disposing use an async invoke to call shutdown
13143         code, so that thigns don't block on the finalizer thread.  Also
13144         check if we even have a message loop before trying to send
13145         messages, if we don't then don't bother sending messages.
13146         - No more weak references for async methods
13147         * XplatUIDriver.cs: No more weak references for async methods.
13148
13149 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13150
13151         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13152           returns two FontFamily with the same name
13153
13154 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13155
13156         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13157           drawing disabled text. Instead using the ColorGrayText color
13158
13159 2006-01-04  Jackson Harper  <jackson@ximian.com>
13160
13161         * TreeNode.cs: redraw the node when its image index is changed.
13162
13163 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13164
13165         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13166           time I checked there are no others like it.
13167
13168 2006-01-04  Jackson Harper  <jackson@ximian.com>
13169
13170         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13171         this gives the behavoir I was looking for.
13172         * Control.cs: Special case Invoking EventHandlers, this matches MS
13173         and fixes part of bug #76326.
13174
13175 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13176
13177         * ThemeClearlooks.cs, FileDialog.cs:
13178           - Reflect the latest Theme class changes
13179           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13180             with DateTime
13181             
13182 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13183
13184         * Theme.cs: Cache UI resource images and resize them if needed
13185
13186 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13187
13188         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13189           is called. This fixes the crash in Nexxia when setting the font
13190           attributes in the chat. [However, RTF needs a look-over to make sure
13191           that all SelectionXXX methods handle the special case that selection
13192           is empty and therefore the change must be applied to all text starting
13193           at the cursor/selection start]
13194
13195 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13196
13197         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13198           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13199         * X11Keyboard.cs: Switched to new way of calling PostMessage
13200
13201 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13202
13203         * Theme.cs: Added theme interface for images to allow the theme to
13204           control what images are used for things like FileDialog, MessageBox
13205           icons, etc.
13206         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13207
13208 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13209
13210         * FileDialog.cs:
13211           - Removed some dead code
13212           - Opening a recently used file does work now
13213           - Small UI enhancements
13214           - Refactoring
13215
13216 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13217
13218         * FileDialog.cs: Forgot too add __MonoCS__
13219
13220 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13221
13222         * FileDialog.cs: We are able to read recently used files now let's
13223           go on and write them.
13224
13225 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13226
13227         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13228           button
13229         * MimeIcon.cs: Do a check for the top level media type also
13230
13231 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13232
13233         * ThemeClearlooks.cs:
13234           - Added CPDrawStringDisabled
13235           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13236             some chars if the text doesn't fit into text_rect
13237           - DrawListViewItem: If View = View.LargeIcon center the image;
13238             rewrote the drawing of ListViewItem.Text if View = 
13239             View.LargeIcon
13240
13241 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13242
13243         * MimeIcon.cs: Use default KDE icon theme if there is no
13244           "48x48" directory for the current icon theme, fixes #77114
13245         * Mime.cs: Disable not working and actually not used code. 
13246         * ThemeWin32Classic.cs:
13247           - Replace "new SolidBrush" in GetControlBackBrush and
13248             GetControlForeBrush with ResPool.GetSolidBrush
13249           - Changed DrawListViewItem from private to protected virtual
13250         * FileDialog.cs:
13251           - Added form.MaximizeBox = true
13252           - Don't throw an exception if there is a broken symbolic link
13253
13254 2005-12-23  Jackson Harper  <jackson@ximian.com>
13255
13256         * TabControl.cs: Give the panels focus, keyboard navigation is
13257         fixed so this works correctly now.
13258         - We need these key events also.
13259         * ToolBar.cs: Remove some of the poor mans double buffering.
13260         
13261 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13262
13263         * ComboBox.cs: The internal TextBox now returns the focus.
13264
13265 2005-12-23  Jackson Harper  <jackson@ximian.com>
13266
13267         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13268
13269 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13270
13271         * Control.cs: Removed debug code
13272         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13273           implicit children
13274
13275 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13276
13277         * Control.cs: When creating the control, update the Z-order after
13278           all it's children are created, too. (Fixes nexxia not showing
13279           picturebox bug)
13280
13281 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13282
13283         * Control.cs: Do not update the anchoring distances if layout is
13284           suspended, instead do it once layout is resumed
13285
13286 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13287
13288         * Control.cs: 
13289           - After many hours of debugging, for both Jackson and
13290             myself, it turns out that it helps to set the parent of a control
13291             if you want to actually see it onscreen. In the spirit of that
13292             discovery, we're now setting the parent of the control and
13293             it's children when the control's handle is created. This fix
13294             will make Lutz Roeder's Reflector run happily. 
13295           - now just creating the handle instead of the whole control when
13296             getting a graphics context for the control.
13297
13298 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13299
13300         * ScrollableControl.cs: When calculating the canvas, don't consider
13301           the scrollbar widths. Instead, predict if horizontal scrollbar
13302           will affect canvas when deciding on vertical display and vice versa.
13303
13304 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13305
13306         * RichTextBox.cs: Set default RTF font for documents that don't
13307           have a font table (Fixes #77076)
13308
13309 2005-12-22  Jackson Harper  <jackson@ximian.com>
13310
13311         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13312         clipboard. This prevents a NullRef in that case.
13313         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13314         clipboard. PRIMARY is for the currently selected text only. (We
13315         should implement PRIMARY at some point.
13316
13317 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13318
13319         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13320           a Unicode function with a structure that was defined in Ansi way.
13321           This fixes #76942.
13322
13323 2005-12-21  Jackson Harper  <jackson@ximian.com>
13324
13325         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13326         on. Because thats how it rolls. (and this avoids it using ambient
13327         colours).
13328         * ThemeWin32Classic.cs: Use the proper back color for filling.
13329         * Menu.cs: Use the system menu bar color for drawing menu
13330         bars. Using the window back color will bring ambient colours into
13331         the picture.
13332
13333 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13334
13335         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13336           Bitmaps were created and not disposed.
13337
13338 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13339
13340         * Control.cs (CreateControl): Don't do anything if the control is
13341           already created, otherwise we'd fire the OnCreated event more than
13342           once
13343
13344 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13345
13346         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13347           will always match. Instead return -1. Fixes #76464.
13348
13349 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13350
13351         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13352           neither the beginning nor the end of the line (Fixes bug #76479)
13353
13354 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13355
13356         * Control.cs:
13357           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13358             where handle is invalid
13359           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13360             instead of slower linear search
13361         * NativeWindow.cs: Don't remove the window from the hashtable until
13362           after the driver has destroyed it (since the driver might use
13363           Control.FromHandle to lookup the control object
13364         * Hwnd.cs: Added DestroyPending property to track if a window is 
13365           already destroyed as far as the driver is concerned and only hasn't
13366           yet notified the control
13367         * XplatUIX11.cs:
13368           - Activate(): Check if the window is still valid before using the 
13369             handle
13370           - Implemented DestroyChildWindow() method to mark child windows as
13371             destroyed when a window is destroyed. This prevents situations 
13372             where we might call an X method based on queued events for a
13373             window that already has been destroyed but we haven't yet pulled
13374             the destroy method from the queue.
13375           - Added a call to the new DestroyChildWindow() method to the drivers
13376             DestroyWindow code. Also now marking the destroyed window itself
13377             as pending
13378
13379 2005-12-20  Jackson Harper  <jackson@ximian.com>
13380
13381         * StatusBar.cs:
13382         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13383         anymore. Just do them when needed, also track the rects of panels
13384         so that we can optimize refreshing more in the future.
13385
13386 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13387
13388         * ColorDialog.cs: Fixed focus drawing in small color controls
13389
13390 2005-12-19  Jackson Harper  <jackson@ximian.com>
13391
13392         * InternalWindowManager.cs:
13393         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13394         moving windows works properly.
13395
13396 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13397
13398         * Control.cs: 
13399           - Removed call to InitLayout() from SetBoundsCore(); doc says
13400             it's only called when a control is added to a container
13401           - Split InitLayout logic, moved to separate UpdateDistances() method
13402             since we need to perform those calculations more often than just
13403             when adding the control to a container. (Needed to fix #77022)
13404           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13405           - Reduced the OnBindingContextChanged events count, don't send them
13406             unless the control is created, we still aren't totally matching
13407             MS, but I can't quite figure out some of their rules
13408
13409 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13410
13411         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13412           stripes
13413
13414 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13415
13416         * ThemeClearlooks.cs:
13417           - Updated ProgressBar drawing
13418           - Corrected drawing of ScrollBars and scroll buttons
13419           - Some temporary fixes for minor pixel artefacts
13420
13421 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13422
13423         * Control.cs:
13424           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13425             cause events to be sent in the same order as MS does.
13426           - Added ChangeParent() method to trigger various OnXXXChanged events
13427             that need to be fired when a parent changes (This is a reworking
13428             of the patch from r54254, with the X11 errors fixed)
13429           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13430             since on MS we get OnLayoutChanged events when calling Clear()
13431           - Changed Enabled property to consider parent state as well, if a
13432             parent is not enabled, the control will not be either
13433           - Changed Parent property to simply call Controls.Add() since that
13434             now does all the work required, this way we avoid code duplication
13435           - Threw in a few OnBindingsContextChanged calls to try and match
13436             when MS sends them. We seem to send a few too many, though.
13437           - Added call to CreateControl when adding the control to a parent.
13438             We were never calling CreateControl. Still needs some work, in
13439             some places we treat HandleCreated and ControlCreated as equal, 
13440             which is wrong
13441           - Removed obsolete commented out code from UpdateZOrder()
13442
13443 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13444
13445         * ThemeClearlooks.cs: Updated TrackBar drawing.
13446
13447 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13448
13449         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13450
13451 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13452
13453         * FileDialog.cs: Add the Help button and the open readonly
13454           checkbox only if needed
13455
13456 2005-12-16  Jackson Harper  <jackson@ximian.com>
13457
13458         * Control.cs: Make sure we have an active menu before trying to
13459         process commands on it. Prevents menu-less forms from crashing
13460         when Alt is pressed.
13461         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13462         Dieter Bremes.
13463         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13464         2.0 build.
13465
13466 2005-12-16  Jackson Harper  <jackson@ximian.com>
13467
13468         * InternalWindowManager.cs: Don't translate tool windows screen
13469         coordinates. This fixes windows 'bouncing' around when being moved.
13470
13471 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13472
13473         * TextBoxBase.cs:
13474           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13475             not quite MS compatible, MS uses that number only for single line
13476             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13477             the limit at 2GB)
13478           - Now enforcing the MaxLength limit when entering characters
13479           - Added argument to internal Paste() method to track if it's called
13480             from programatically or via keyboard, since keyboard driven pastes
13481             need to enforce max-length
13482           - Added logic to Paste to only paste as many chars as MaxLength 
13483             allows
13484         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13485         * TextControl.cs:
13486           - Added Length property to return number of characters in document
13487           - Added private CharCount property which only tracks actual chars
13488             in the document (no linefeeds) and fires event when CharCount
13489             changes
13490           - Added tracking of character count to all methods that alter it
13491           - Added LengthChanged event to allow applications to subscribe
13492             to any changes to the document
13493
13494 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13495
13496         * TextBox.cs: 
13497           - Removed local password_char field (moved to TextBoxBase)
13498           - Now setting the document's password var when password is
13499             set
13500         * TextBoxBase.cs:
13501           - Added password_char field (needed here so MultiLine can
13502             access it)
13503           - Added logic to MultiLine property setter to set the document's
13504             variable when password display is allowed
13505           - Removed debug code and made some debug code conditional
13506         * TextControl.cs:
13507           - Added RecalculatePasswordLine() method to handle special password
13508             char only lines
13509           - Added PasswordChar property, also added related tracking vars
13510           - Draw() method now uses local text var for grabbing text to draw,
13511             this var is set to line.text unless we're doing password display,
13512             then it is set to the pre-generated all-password-chars line
13513           - Added calling RecalculatePasswordLine() method for password lines
13514
13515 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13516
13517         * Hwnd.cs: 
13518           - Added Reparented property to allow tracking of Window Manager
13519             reparenting actions (which affect X/Y calculations of toplevel 
13520             windows)
13521           - Made ToString() print window handles in hex
13522         * XplatUIX11.cs:
13523           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13524             determine if X/Y needs offsetting
13525           - AddConfigureNotify(): Fixed offset calculations
13526           - Now adds ReparentNotify messages into the queue
13527           - Now processes ReparentNotify messages and causes a 
13528             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13529             is reparented (as most likely it's X/Y coordinates are changed
13530             due to that)
13531
13532 2005-12-14  Jackson Harper  <jackson@ximian.com>
13533
13534         * XplatUIX11.cs: Tool windows still need to respek focus.
13535
13536 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13537
13538         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13539           have a working release
13540
13541 2005-12-13  Jackson Harper  <jackson@ximian.com>
13542
13543         * Form.cs: Update styles after setting the border style regardless
13544         of whether or not the window is using a window manager.
13545
13546 2005-12-13  Jackson Harper  <jackson@ximian.com>
13547
13548         * Form.cs: We now hook into an internal window manager instead of just an
13549         MDI subsystem, this is so we can have properly behaving tool windows.
13550         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13551         * InternalWindowManager.cs: New internal class that acts as a
13552         window manager for tool windows and as a base for mdi windows.
13553         * MdiWindowManager.cs: New class that acts as a window manager for
13554         mdi windows.
13555
13556 2005-12-12  Jackson Harper  <jackson@ximian.com>
13557
13558         * Control.cs: Updates so we match behavoir for for implicit
13559         controls. Fixes explosions in MDI.
13560
13561 2005-12-12  Jackson Harper  <jackson@ximian.com>
13562
13563         * Control.cs: Implement Invalidate (Region).
13564
13565 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13566
13567         * Control.cs: 
13568           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13569             the same events as MS does. MS fires events for each property 
13570             except, for unknown reasons, Cursor, when the control is reparented. 
13571             I can't seem to totally match add/remove since MS also fires some 
13572             VisibleChanged events, which makes no sense. Consolidated the
13573             parenting code into a separate method so it can be called from
13574             both Add and Remove. set_Parent no longer needs any special logic
13575             as it calls the parent's add method which implicitly fires
13576             all events
13577           - Removed some obsolete code and debug output
13578           - Enabled state is inherited from parents, if this is enabled
13579
13580 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13581
13582         * Form.cs: Removed commented out code
13583
13584 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13585
13586         * Control.cs:
13587           - Added internal version of Invoke, with additional argument 
13588             indicating if we're calling it from a Dispose() handler. That
13589             way we can avoid BeginInvoke throwing an exception if we're
13590             calling for an already destroyed window.
13591           - Added a dispose argument to BeginInvokeInternal, and made the
13592             check if a valid window handle chain exists conditional on
13593             it not being a dispose call
13594           - Removed code in DestroyHandle to destroy our children. Since we
13595             now handle the WM_DESTROY message we will catch all our children
13596             being destroyed.
13597           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13598         * Form.cs:
13599           - Added a field to track the application context of the form.
13600           - No need to set closing variable as response to WM_CLOSE, instead
13601             we destroy the window. We also call PostQuitMessage if the form
13602             has an application context (which makes it the main app form,
13603             which, when closed terminates the app)
13604         * XplatUI.cs:
13605           - Dropped Exit() method, it's naming was confusing
13606           - Added PostQuitMessage() which causes GetMessage to return false
13607             once the message queue is empty
13608         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13609           PostQuitMessage()
13610         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13611           no longer a valid XplatUI method, but left it in since it's used
13612           internally. Added empty PostQuitMessage() method.
13613         * MenuAPI.cs: Replaced call to Exit() with call to
13614           PostQuitMessage, even though this is probably no longer needed.
13615         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13616         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13617         * Application.cs:
13618           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13619           - Removed old debug code that would call XplatUI for exception
13620             display, enabled standard exception handling (Still not enabled
13621             though, until NativeWindow's ExternalExceptionHandler define
13622             is removed
13623         * NativeWindow.cs:
13624           - Added internal method to allow control to update NativeWindow
13625             after a window has been destroyed
13626           - Added handling of already destroyed windows when calling i
13627             DestroyWindow
13628           - Added removal of handle from list on ReleaseHandle
13629         * XplatUIX11.cs:
13630           - Dropped GetMessageResult var and related code
13631           - Added PostQuitState to field to track if PostQuitMessage has been
13632             called
13633           - Dropped Exit() method
13634           - Added PostQuitMessage() method
13635           - GetMessage now will return false if PostQuitState is set and no
13636             more messages are in the queue.
13637           - Expose handler will no longer generate WM_PAINT messages if we are
13638             in PostQuitState since it's very likely any windows have already
13639             been destroyed, and since Hwnd won't get updated until we have
13640             processed the DestroyNotify we'd be causing X errors.
13641         
13642 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13643
13644         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13645           Thanks to Mike for pointing out the err of my ways.
13646
13647 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13648
13649         * Control.cs(PreProcessMessage): Moved menu handling back, but
13650           after all other key handling, to match MS (who handles Menu in
13651           DefWndProc)
13652         * Menu.cs (WndProc): Removed my brainfart
13653
13654 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13655
13656         * Control.cs(PreProcessMessage): Removed special menu handling 
13657         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13658
13659 2005-12-07  Mike Kestner  <mkestner@novell.com>
13660
13661         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13662         state according in tracker.
13663         * Menu.cs : promote tracker field to base class and provide a tracker
13664         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13665         has a tracker. Unparent items that are removed from the collection.
13666         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13667         * Theme*.cs: add always_show_hotkeys field to support configurability
13668         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13669         pressed.
13670
13671 2005-12-07  Jackson Harper  <jackson@ximian.com>
13672
13673         * MdiChildContext.cs: Use Control.ResetCursor.
13674         * Control.cs: ResetCursor needs to set the property so that the
13675         correct XplatUI call gets made.
13676
13677 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13678
13679         * Control.cs: More fixes to make our key events match MS. We
13680           were not setting the modifier state on KeyData, and we were
13681           not generating any events when Alt was pressed with a key
13682           since handling of WM_SYSxxx was missing for the OnKey methods.
13683
13684 2005-12-07  Jackson Harper  <jackson@ximian.com>
13685
13686         * MdiChildContext.cs: reenable the sizing code.
13687         - When the mouse leaves a window reset its cursor.
13688
13689 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13690
13691         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13692
13693 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13694
13695         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13696           widths of Fixed3D borders
13697
13698 2005-12-07  Jackson Harper  <jackson@ximian.com>
13699
13700         * MdiClient.cs: Fix warnings. Earn Mike's love.
13701
13702 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13703
13704         * ThemeClearlooks.cs:
13705           - Adjusted mouse over button color
13706           - Added first parts of CheckBox drawing
13707           - Added correct color for selected text background
13708           - Fixed ComboBox drawing
13709           - Added CPDrawBorder3D and CPDrawBorder
13710
13711 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13712
13713         * XplatUIX11.cs: Added call to XBell for AudibleAlert
13714
13715 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
13716
13717         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13718           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
13719           alert users via sound. We could add an enum arg with different
13720           types of alerts in the future
13721
13722 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
13723
13724         * Control.cs: Fix behaviour problems pointed out by Mike
13725
13726 2005-12-05  Mike Kestner  <mkestner@novell.com>
13727
13728         * StatusBarPanel.cs: add Invalidate method and hook it into all the
13729         prop setters.  Calls parent.Refresh for now, but could be maybe be
13730         optimized with an internal method on StatusBar at some point.
13731         [Fixes #76513]
13732
13733 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
13734
13735         * RichTextBox.cs: Implemented get_SelectionColor
13736
13737 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
13738
13739         * ThemeClearlooks.cs:
13740           - Removed dead code
13741           - Draw black button border only if button is Form.AcceptButton
13742           - Draw correct button color for pressed RadioButton if the mouse 
13743             has entered the button
13744           - Updated ProgressBar drawing!
13745           - Updated CPDrawSizeGrip drawing
13746           - Updated StatusBarPanel drawing
13747
13748 2005-12-05  Mike Kestner  <mkestner@novell.com>
13749
13750         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
13751         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
13752
13753 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
13754
13755         * ThemeClearlooks.cs: Initial check-in, activate with
13756           export MONO_THEME=clearlooks
13757         * ThemeEngine.cs: Added ThemeClearlooks
13758
13759 2005-12-03  Mike Kestner  <mkestner@novell.com>
13760
13761         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
13762         [Fixes #76897]
13763
13764 2005-12-02  Jackson Harper  <jackson@ximian.com>
13765
13766         * Form.cs: If the child form has no menu the default main menu is
13767         used as the active menu.
13768
13769 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
13770
13771         * ListBox.cs: Check if any items exist before trying to resolve 
13772           coordinates into items
13773
13774 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13775
13776         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
13777           as the second color for the background hatch
13778
13779 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
13780
13781         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
13782         * RichTextBox.cs: FormatText position arguments are 1-based, now making
13783           sure that what we pass to FormatText is always 1-based. Fixes #76885
13784
13785 2005-11-29  Miguel de Icaza  <miguel@novell.com>
13786
13787         * NumericUpDown.cs (EndInit): When we are done initializing,
13788         reflect any updates on the UI.
13789
13790 2005-12-02  Jackson Harper  <jackson@ximian.com>
13791
13792         * ImplicitHScrollBar.cs:
13793         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
13794         their container controls.
13795         * TreeView.cs: Use the new implicit scrollbars.
13796
13797 2005-12-02  Jackson Harper  <jackson@ximian.com>
13798
13799         * TreeView.cs: Make top_node internal so the TreeNodeCollections
13800         can play with it.
13801         * TreeNodeCollection.cs: If we remove the topnode we need to
13802         update topnode to the next node in line.
13803         - When clearing nodes go through the same process as removing
13804         them, so they get depareneted and checked if they are top node.
13805
13806 2005-12-01  Jackson Harper  <jackson@ximian.com>
13807
13808         * TreeView.cs: When imagelists are used the image area is
13809         selectable as well as the text.
13810         - If there are no selected nodes select the first one.
13811         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
13812         so don't do it more then we need to.
13813
13814 2005-12-01  Jackson Harper  <jackson@ximian.com>
13815
13816         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
13817         that arrows can be scaled.
13818
13819 2005-12-01  Jackson Harper  <jackson@ximian.com>
13820
13821         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
13822         fail. Patch by Dieter Bremes
13823
13824 2005-11-30  Jackson Harper  <jackson@ximian.com>
13825
13826         * Form.cs: Property is 2.0 only
13827         * PrintDialog.cs: Signature fix.
13828
13829 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13830
13831         * TextControl.cs: 
13832           - No longer artificially moves text 2 pixels down (now that we have
13833             borders this is no longer needed)
13834           - Added calcs for left, hanging and right indent
13835
13836 2005-11-23  Mike Kestner  <mkestner@novell.com>
13837
13838         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
13839
13840 2005-11-30  Jackson Harper  <jackson@ximian.com>
13841
13842         * MdiChildContext.cs: Set the cloned menus forms, as these don't
13843         get cloned as part of CloneMenu ().
13844         * Menu.cs: Make sure the parent of the items get set correctly
13845         when they are added.  And the owners are notified of the changes.
13846         * Form.cs: Create an ActiveMenu property, so that when MDI is used
13847         we can change the menu being displayed/handled by the form without
13848         changing the menu assosciated with the form.
13849         - Don't let Mdi children draw/handle menus.
13850         
13851 2005-11-30  Jackson Harper  <jackson@ximian.com>
13852
13853         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
13854         a MenuChanged event. Just to make the API a little more
13855         consistent.
13856         * MainMenu.cs:
13857         * MenuItem.cs: Use the new OnMenuChanged
13858         * MdiChildContext.cs: Handle menu merging.
13859         * Form.cs: Implement MergedMenu.
13860         
13861 2005-11-30  Jackson Harper  <jackson@ximian.com>
13862
13863         * Menu.cs: We were misusing Add. Add goes behind the specified
13864         index according to the docs, and does not replace the specified
13865         index. So I added an Insert method.
13866
13867 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
13868
13869         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
13870           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
13871           is for Jackson
13872         * RichTextBox.cs: Added calls to base for DnD events
13873
13874 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
13875
13876         * TextControl.cs:
13877           - Fixed drag-selection related crash; style fixes
13878           - Implemented undo class
13879             o Implemented method to capture document state for specified
13880               range in document tree
13881             o Implemented method to restore captured document state
13882             o Implemented cursor tracking
13883             o Implemented basic undo stack
13884           - Added undo cursor tracking to methods altering cursor location
13885           - Added undo tracking to selection deletion (still missing
13886             other text-altering hookups)
13887         * RichTextBox.cs:
13888           - Added SelectionLength property
13889           - Implemented CanPaste()
13890           - Implemented Paste()
13891           - Added missing protected methods
13892           - Fixed RTF->Document conversion; now uses font index 0 and color 
13893             index 0 as the default font for the parsed text
13894           - Fixed RTF<->Document font size translation
13895           - Fixed RTF generation, now properly handles cross-tag boundaries
13896             for single line selection
13897           - No longer always appends blank line to generated RTF
13898           - Removed TODOs
13899           - Added missing attributes
13900           - Hooked up undo-related methods
13901         * TextBoxBase.cs:
13902           - Implemented Copy()
13903           - Implemented Paste()
13904           - Implemented Cut()
13905           - Fixed caret mis-behaviour on backspace across line-boundaries
13906
13907 2005-11-29  Jackson Harper  <jackson@ximian.com>
13908
13909         * MdiClient.cs: Add a method for activating mdi children. Very
13910         basic right now. I imagine someday it might need more girth.
13911         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
13912         children windows names are added to the menu item.
13913         * ThemeWin32Classic.cs: Draw the arrow if the item is an
13914         mdilist. This happens regardless of whether or not there are any
13915         mdi windows to see in the list, and according to my tests happens
13916         before the items are even added. Also happens if there isn't even
13917         an mdi client to get windows from.
13918
13919 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
13920
13921         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
13922         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
13923
13924 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
13925
13926         * DataGridTableStyle.cs:
13927           - Create always the styles for the missing columns even if they are
13928             provided by the user (not default table style)
13929         * DataGrid.cs:
13930           - Fixes bug 76770
13931           - Fixes SetDataBinding (always re-attach source)
13932           - Fixes SetNewDataSource (only clear styles if they are not for 
13933             this source)
13934          -  Expands OnTableStylesCollectionChanged to handle style refresh 
13935             and remove properly
13936
13937 2005-11-29  Jackson Harper  <jackson@ximian.com>
13938
13939         * FileDialog.cs: Implement missing bits, remove some dead
13940         code.
13941         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
13942         creation of the panel so that the options set on the dialog are
13943         seen when the panel is created.
13944         * TreeView.cs: raise a click when items are clicked.
13945         
13946 2005-11-29  Jackson Harper  <jackson@ximian.com>
13947
13948         * MdiClient.cs: Pass some signature methods through to base.
13949
13950 2005-11-28  Jackson Harper  <jackson@ximian.com>
13951
13952         * ListView.cs: Raise the click event when items are clicked.
13953
13954 2005-11-28  Jackson Harper  <jackson@ximian.com>
13955
13956         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
13957         a nullref.
13958
13959 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
13960
13961         * ThemeNice.cs: - Removed 1 pixel bitmaps
13962           - Use SmoothingMode.AntiAlias where it makes sense
13963             (ScrollButton arrow for example)
13964           - Enhanced Button focus drawing
13965           - Fixed ComboBox drawing (no artefacts anymore, focus
13966             rectangle is back again, reduced size of ComboButton, etc.)
13967           - Fixed RadioButton focus drawing for Appearence.Button
13968           - Slight ScrollButton redesign
13969           - Some LinearGradientBrush size fixes
13970           - GroupBoxes have now rounded edges
13971           - Fixed StatusBar drawing
13972
13973 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
13974
13975         * ThemeNice.cs: - Remove dead code
13976           - use correct background colors for menus, etc.
13977           - Fake pixel drawing with 1 pixel bitmaps
13978
13979 2005-11-24  Jackson Harper  <jackson@ximian.com>
13980
13981         * MdiClient.cs: Size the scrollbars when resizing the window.
13982         - Resize the maximized windows when the client is resized
13983         * Form.cs: Make the child context available
13984         
13985 2005-11-23  Jackson Harper  <jackson@ximian.com>
13986
13987         * MdiChildContext.cs: Don't size windows if they are maximized.
13988
13989 2005-11-23  Mike Kestner  <mkestner@novell.com>
13990
13991         * ContextMenu.cs: use MenuTracker.
13992         * Control.cs: remove menu handle usage.
13993         * Form.cs: remove menu handle usage.
13994         * Hwnd.cs: remove menu handle usage.
13995         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
13996         motion and clicks to the new Tracker handlers.
13997         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
13998         and handle usage.
13999         * MenuAPI.cs: refactored to combine popup and menubar event handling.
14000         Killed the MENU and MENUITEM data types and associated collections
14001         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
14002         MenuTracker class that exposes the leftovers from the old MenuAPI
14003         static methods. Restructured Capture handling so that only one grab is
14004         done for the entire menu hierarchy instead of handing off grabs to
14005         submenus. Tracker now has an invisible control to Capture when active.
14006         * MenuItem.cs: add sizing accessors, kill Create
14007         and handle usage.
14008         * Theme.cs: remove menu handle and MENU(ITEM) usage.
14009         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
14010         MENU(ITEM). remove menu handle usage, use Menu directly.
14011         * XplatUIDriver.cs: remove menu handle usage.
14012         * XplatUIOSX.cs: remove menu handle usage.
14013         * XplatUIWin32.cs: remove menu handle usage.
14014         * XplatUIX11.cs: remove menu handle usage.
14015
14016 2005-11-22  Jackson Harper  <jackson@ximian.com>
14017
14018         * Hwnd.cs: Don't compute the menu size for
14019         DefaultClientRectangle.
14020         - Reenable menu sizes being computed for GetClienRectangle.
14021         * Form.cs: Remove comment of trechery
14022         
14023 2005-11-22  Jackson Harper  <jackson@ximian.com>
14024
14025         * Hwnd.cs: The adjustments for the menu bar are made when it is
14026         attached to the form.
14027
14028 2005-11-19  Jackson Harper  <jackson@ximian.com>
14029
14030         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
14031         (just like on windows).
14032
14033 2005-11-19  Jackson Harper  <jackson@ximian.com>
14034
14035         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
14036         use real buttons anymore because they are in non client area. The
14037         one TODO here is that I need to somehow invalidate a section of
14038         the non client area.
14039
14040 2005-11-18  Jackson Harper  <jackson@ximian.com>
14041
14042         * Control.cs: Put the enum check back in now that MDI doesnt have
14043         to use this to set border styles.
14044         * Form.cs: Only set mdi child windows borders if the handle has
14045         been created.
14046         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
14047         this directly on to the driver.
14048         - Get the move start position before adjusting for the titlebar
14049         height, this fixes the windows "skipping" when they are first
14050         moved.
14051
14052 2005-11-18  Jackson Harper  <jackson@ximian.com>
14053
14054         * XplatUIX11.cs: Just compute the mdi borders separately as they
14055         don't totally match up with normal form borders.
14056
14057 2005-11-18  Jackson Harper  <jackson@ximian.com>
14058
14059         * Control.cs: Set WS_ styles for borders, so that the driver does
14060         not have to retrieve the control instance to figure out what kind
14061         of borders it should have.
14062         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
14063         driver can know its an mdi child easily.
14064         * XplatUIX11.cs: Get the border styles and whether the window is
14065         MDI from the Styles and ExStyles params instead of having to get a
14066         control. This prevents a chicken and egg problem.       
14067
14068 2005-11-18  Jackson Harper  <jackson@ximian.com>
14069
14070         * MdiClient.cs: Fix typo so scrollbars show up correctly.
14071
14072 2005-11-18  Jackson Harper  <jackson@ximian.com>
14073
14074         * MdiClient.cs: Calculate when to add and remove scrollbars
14075         correctly.
14076         * MdiChildContext.cs: Adjust the y position to take the titlebar
14077         into account.
14078         - No height for FormBorderStyle.None
14079
14080 2005-11-18  Jackson Harper  <jackson@ximian.com>
14081
14082         * Control.cs: Allow non enum values to be used for
14083         InternalBorderStyle.  MDI does this to set a special border style.
14084         - New utility methods for converting points to/from client coords
14085         - Add the newly created control to the Controls collection before
14086         updating its style. This way UpdateStyle can walk the control
14087         heirarchy to find the control if needed.
14088         so I don't need to create a new Point object all the time.
14089         * Form.cs: Let MDI windows handle their border styles.
14090         - Set styles on MDI windows so the correct title style is derived.
14091         * MdiChildContext.cs: Move all the painting and window handling
14092         into the non client area.
14093         - Use correct sizing and put correct buttons on frames based on
14094         the FormBorderStyle.
14095         - Notify the mdi client about scrolling
14096         - Need to handle the buttons ourselves now, because they are all
14097         in non client areas and we can't add controls there.
14098         * MdiClient.cs: Halfway to scrolling, this implementation is
14099         somewhat broken though, we need to check to make sure other
14100         windows aren't causing scrolling before removing the bars. Also
14101         the bars need to be drawn on top, maybe I can switch implicit
14102         controls to be on top.
14103         * Hwnd.cs: caption_height and tool_caption_height are now
14104         properties of an hwnd, this way they can be set by the driver
14105         based on the type of window they are.  In X11 the window manager
14106         handles the decorations so caption_height is zero unless its an
14107         MDI window.
14108         - Add 3 pixel borders for MDI windows (0xFFFF).
14109         - Get rid of some code duplication, have DefaultClientRectanle
14110         just call GetClientRectangle.
14111         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14112         Hwnd now.
14113         - Set border styles differently for mdi windows.
14114         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14115         Hwnd now.
14116         
14117 2005-11-15  Mike Kestner  <mkestner@novell.com>
14118
14119         * Menu.cs: when adding an item to the collection, if item is already 
14120         parented, remove it from the parent.
14121
14122 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14123
14124         * X11DesktopColors.cs: Added KDE support
14125
14126 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14127
14128         * XplatUIWin32.cs: 
14129           - Clipboard methods now can translate Rtf format
14130           - No longer removes clipboard contents whenever a new format is added
14131             to allow placing multiple formats on the clipboard
14132         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14133           will place all formats contained in it onto the clipboard. Also
14134           now cleans the clipboard before placing a new object onto it
14135         * RichTextBox.cs:
14136           - Implemented set_Rtf
14137           - Implemented set_SelectedRtf
14138           - Created InsertRTFFromStream() method to allow single code base
14139             for all properties and methods that insert RTF into document
14140           - Removed debug output
14141         * TextControl.cs:
14142           - Fixed Delete(int) to fix up line numbers
14143           - Fixed ReplaceSelection to combine start and end line
14144           - Fixed serious DeleteChars bug that would leave the document tree
14145             broken
14146           - Improved DumpTree with several logic checks to detect broken
14147             document trees
14148           - Removed debug lines
14149           - Fixed Caret.WordForward/WordBack moving code, now always also 
14150             updates caret.tag (fixes crash when word-selecting across tag
14151             boundaries via keyboard)
14152           - Added Insert() method for inserting multiline text into documents
14153           - Fixed DeleteChars() calculation errors that would cause a broken
14154             tag chain with multiple tag lines
14155           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14156           - Split() no longer moves caret if split is at caret location
14157           - ReplaceSelection() now updates the cursor and re-displays it
14158           - ReplaceSelection() now uses new Insert() method to avoid code
14159             duplication
14160           - FormatText() can now handle formatting partial lines
14161         * TextBoxBase.cs:
14162           - Append now uses new TextControl.Insert() method (this avoids 
14163             duplicate code)
14164           - Implemented Ctrl-X (Cut) (
14165           - Implemented Ctrl-C (Copy)
14166           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14167             regeneration when pasting text; roundtripping Copy&Paste within
14168             edit control still fails due to some calculation bugs in GenerateRTF)
14169           - The Delete key will now remove the current selection if it is visible
14170         * TextBox.cs: Removed debug lines
14171         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14172           driver to be initialized and can't therefore be done via a static ctor)
14173
14174 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14175
14176         * TextControl.cs: Added backend code for finding char arrays and strings
14177         * TextBoxBase.cs:
14178           - Added mouse wheel scroll support
14179           - Added support for VScroll and HScroll events
14180         * RichTextBox.cs:
14181           - Implemented all seven Find() variants
14182           - Implemented GetCharFromPosition()
14183           - Implemented GetCharIndexFromPosition()
14184           - Implemented GetLineFromIndex()
14185           - Implemented GetPositionFromCharIndex();
14186           - Implemented SaveFile for PlainText and UnicodeText
14187           - Fixed set_Font, now setting a new font applies that font to
14188             the whole document
14189           - Implemented generic Document to RTF converter
14190           - Implemented SaveFile for RichText format (still missing unicode
14191             conversion for non-ansi chars)
14192           - Implemented get_Rtf
14193           - Implemented get_SelectedRtf
14194
14195 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14196
14197         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14198           to allow any captures to be released before triggering OnClick. This
14199           way a click handler may capture the mouse without interference.
14200         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14201           This way we send them even though X may not allow a grab (if the window
14202           isn't visible, for example)
14203
14204 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14205
14206         * DataGridViewRowEventArgs.cs: DataGridView implementation
14207         * DataGridViewElement.cs: DataGridView implementation
14208         * DataGridViewComboBoxCell.cs: DataGridView implementation
14209         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14210         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14211         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14212         * ImageLayout.cs: DataGridView implementation
14213         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14214         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14215         * DataGridViewSelectionMode.cs: DataGridView implementation
14216         * IDataGridViewEditingControl.cs: DataGridView implementation
14217         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14218         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14219         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14220         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14221         * DataGridViewColumnSortMode.cs: DataGridView implementation
14222         * DataGridView.cs: DataGridView implementation
14223         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14224         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14225         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14226         * Padding.cs: DataGridView implementation
14227         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14228         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14229         * DataGridViewRowEventHandler.cs: DataGridView implementation
14230         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14231         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14232         * DataGridViewButtonCell.cs: DataGridView implementation
14233         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14234         * DataGridViewEditMode.cs: DataGridView implementation
14235         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14236         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14237         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14238         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14239         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14240         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14241         * DataGridViewCellEventHandler.cs: DataGridView implementation
14242         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14243         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14244         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14245         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14246         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14247         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14248         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14249         * QuestionEventArgs.cs: DataGridView implementation
14250         * IDataGridViewEditingCell.cs: DataGridView implementation
14251         * DataGridViewTriState.cs: DataGridView implementation
14252         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14253         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14254         * DataGridViewColumnCollection.cs: DataGridView implementation
14255         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14256         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14257         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14258         * DataGridViewColumn.cs: DataGridView implementation
14259         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14260         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14261         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14262         * DataGridViewRow.cs: DataGridView implementation
14263         * DataGridViewImageCellLayout.cs: DataGridView implementation
14264         * DataGridViewImageCell.cs: DataGridView implementation
14265         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14266         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14267         * DataGridViewHeaderCell.cs: DataGridView implementation
14268         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14269         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14270         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14271         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14272         * QuestionEventHandler.cs: DataGridView implementation
14273         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14274         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14275         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14276         * DataGridViewCell.cs: DataGridView implementation
14277         * DataGridViewCellEventArgs.cs: DataGridView implementation
14278         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14279         * DataGridViewCellStyle.cs: DataGridView implementation
14280         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14281         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14282         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14283         * TextFormatFlags.cs: DataGridView implementation
14284         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14285         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14286         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14287         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14288         * DataGridViewButtonColumn.cs: DataGridView implementation
14289         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14290         * HandledMouseEventArgs.cs: DataGridView implementation
14291         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14292         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14293         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14294         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14295         * DataGridViewRowCollection.cs: DataGridView implementation
14296         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14297         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14298         * DataGridViewHitTestType.cs: DataGridView implementation
14299         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14300         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14301         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14302         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14303         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14304         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14305         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14306         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14307         * DataGridViewContentAlignment.cs: DataGridView implementation
14308         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14309         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14310         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14311         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14312         * DataGridViewPaintParts.cs: DataGridView implementation
14313         * DataGridViewCellCollection.cs: DataGridView implementation
14314         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14315         * DataGridViewImageColumn.cs: DataGridView implementation
14316         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14317         * DataGridViewElementStates.cs: DataGridView implementation
14318         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14319         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14320         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14321         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14322         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14323         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14324         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14325         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14326         * DataGridViewTextBoxCell.cs: DataGridView implementation
14327         * DataGridViewBand.cs: DataGridView implementation
14328         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14329         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14330         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14331         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14332         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14333         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14334         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14335         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14336         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14337         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14338         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14339
14340 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14341
14342         * ThemeWin32Classic.cs: 
14343           - Draw the outside focus rectangle around buttons
14344           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14345             doesn't use end caps for every dash of a line anymore. This
14346             workaround ignores the forecolor.
14347
14348 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14349
14350         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14351           endian safe.
14352
14353 2005-11-07  Jackson Harper  <jackson@ximian.com>
14354
14355         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14356
14357 2005-11-07  Jackson Harper  <jackson@ximian.com>
14358
14359         * ScrollableControl.cs: Calculate the maximum and change vars
14360         (more) correctly so that scrollbars appear as a sensible size.
14361
14362 2005-11-04  Jackson Harper  <jackson@ximian.com>
14363
14364         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14365         collection.
14366         * TreeView.cs: When the tree is sorted null out the top_node so
14367         that it is recalculated.
14368         - Use dotted lines instead of dashed lines to match MS better.
14369
14370 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14371
14372         * ListView.cs: 
14373           - Implements key search for items. Useful when browsing files with FileDialog
14374           - When changing view mode or when clear the items reset scrollbar positions
14375
14376 2005-11-04  Jackson Harper  <jackson@ximian.com>
14377
14378         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14379         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14380         as to what the method may do as there is no real way of creating a
14381         derived CurrencyManager and calling the method. 
14382
14383 2005-11-03  Jackson Harper  <jackson@ximian.com>
14384
14385         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14386         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14387         method which seems to just be used internally to refresh the tabs.
14388
14389 2005-11-03  Jackson Harper  <jackson@ximian.com>
14390
14391         * TabControl.cs: Implement the remove method. Fix some broken
14392         comments.
14393
14394 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14395
14396         * DateTimePicker.cs:
14397           - Added missing DateTimePickerAccessibleObject class
14398           - Added missing events
14399           - Added OnFontChanged method
14400         * Form.cs: Added missing attributes
14401         * TreeView.cs: Added missing attributes
14402
14403 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14404
14405         * GridItemCollection.cs: Fix signatures
14406
14407 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14408
14409         * XplatUI.cs: Updated build rev/date
14410         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14411           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14412         * Application.cs: Trigger context-specific ExitThread events
14413
14414 2005-11-03  Jackson Harper  <jackson@ximian.com>
14415
14416         * Menu.cs:
14417         * MainMenu.cs:
14418         * GridTableStylesCollection.cs:
14419         * Timer.cs:
14420         * TabPage.cs:
14421         * HelpProvider.cs:
14422         * StatusBar.cs:
14423         * MonthCalendar.cs: Signature fixes
14424
14425 2005-11-03  Jackson Harper  <jackson@ximian.com>
14426
14427         * TreeNodeCollection.cs: Remove should not be virtual.
14428         * TreeView.cs: Implement the last of the missing methods.
14429
14430 2005-11-03  Jackson Harper  <jackson@ximian.com>
14431
14432         * TreeNodeConverter.cs: Implement to get off my class-status back.
14433
14434 2005-11-03  Jackson Harper  <jackson@ximian.com>
14435
14436         * TreeView.cs: Hookup the bits for drag and drop.
14437         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14438         that nodes can be moved from tree to tree easily this just causes
14439         all sorts of problems.
14440         * TreeNodeCollection: Don't need to give treenodes an index and
14441         treeview anymore when they are added, these are computed on the
14442         fly. Also make sure to remove a node before its added.
14443
14444 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14445
14446         * TextControl.cs:
14447           - Added CaretSelection enum
14448           - Added comparison methods to Marker struct, makes selection code
14449             more readable
14450           - Added SelectionStart and SelectionEnd as 'moveable' location for
14451             the CaretDirection enum and handler
14452           - Added selection_prev variable to track optimized invalidation for
14453             word and line selection
14454           - Added SelectionVisible property (returns true if there is a valid 
14455             selection)
14456           - Switched CaretHasFocus to only display the caret if there is no
14457             visible selection
14458           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14459             using the direct character index; should be much faster
14460           - Added various conditional debug statements
14461           - Fixed invalidation calculation for selection ranges
14462           - Added ExpandSelection() method to support word and line selection
14463           - Switched SetSelectionToCaret to use new Marker compare overloads
14464           - Added central IsWordSeparator() method to determine word 
14465             separators/whitespace and FindWordSeparator() to streamline common
14466             usage of IsWordSeparator()
14467         * TextBoxBase.cs:
14468           - Removed unneeded grabbed variable, it was just mirroring
14469             Control.Capture
14470           - No longer firing OnTextChanged event when Text setter is called,
14471             since the base will fire the event for us
14472           - Added handling of Ctrl-Up/Down selection
14473           - Added handling of Shift-Cursorkey selection
14474           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14475             words
14476           - Added handling of Shift and Ctrl-Shift-Home/End selection
14477           - Removed some debug output
14478           - Added handling for single/double/tripple-click to place caret/
14479             select word/select line respectively (Fixes bug #76031)
14480           - Added support for drag expansion of word/line selection
14481         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14482           current selection
14483
14484 2005-11-02  Jackson Harper  <jackson@ximian.com>
14485
14486         * X11Dnd.cs: If the drag is going to and from a MWF window just
14487         copy the data instead of sending it out through the X Selection
14488         mechanism.
14489
14490 2005-11-02  Jackson Harper  <jackson@ximian.com>
14491
14492         * X11Dnd.cs:
14493         * XplatUIX11.cs: When in a drag we don't want motion notify
14494         messages to get passed on to the other controls. This prevents
14495         mouse move messages from showing up in the drag source.
14496
14497 2005-11-02  Jackson Harper  <jackson@ximian.com>
14498
14499         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14500         the correct button is release to end a drag.
14501         * XplatUIX11.cs: Make the button state internal so the drag system
14502         can access it.  Dragging needs to know about all button releases,
14503         not just left button.
14504
14505 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14506
14507         * Form.cs (Icon): If the icon is null, reset the icon to the
14508         default value. 
14509
14510         * Cursor.cs: When writing the AND-mask bitmap do not include the
14511         number of colors, but hardcode those to two (black and white),
14512         fixes the loading of color cursors (Paint Dot Net).
14513
14514         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14515         turn off autoscaling.
14516
14517         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14518
14519 2005-11-02  Jackson Harper  <jackson@ximian.com>
14520
14521         * X11Dnd.cs: Make sure to send a status message if the pointer
14522         enters a control that can not accept a drop, otherwise the cursor
14523         isn't updated correctly. Also tried to compress the lines of code
14524         a bit.
14525
14526 2005-11-02  Jackson Harper  <jackson@ximian.com>
14527
14528         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14529         set actions correctly.  This isn't perfect as XDND and win32 have
14530         some differences on how you allow actions. I'll clear this up by
14531         adding a path for drag from MWF to MWF windows.
14532         * XplatUIX11.cs: Hook into the dnd system.
14533
14534 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14535
14536         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14537         previously shown but they are no longer need it. Very obvious when 
14538         browsing files with FileDialog.
14539
14540 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14541
14542         * Control.cs: We always need to call OnPaintBackground. We pretty much
14543           ignore AllPaintingInWmPaint and always do the painting there, whether 
14544           it's set or not, since we always ignore the WM_ERASEBKGND message 
14545           (which we don't generate on X11). This fixes #76616.
14546         * Panel.cs: Removed unneeded background painting. This happens properly
14547           in Control.cs already
14548
14549 2005-10-31  Mike Kestner  <mkestner@novell.com>
14550
14551         * Menu.cs: Add items to collection before setting their index.
14552         * MenuItem.cs : add range checking with ArgumentException like MS.
14553         [Fixes #76510]
14554
14555 2005-10-31  Jackson Harper  <jackson@ximian.com>
14556
14557         * ListBox.cs: Invalidate if the area is visible at all not just
14558         contained in the visible rect. Fixes unselection of semi visible
14559         items.
14560
14561 2005-10-31  Jackson Harper  <jackson@ximian.com>
14562
14563         * Control.cs: Consistently name the dnd methods. Make them
14564         internal so we can override them to match some MS behavoir
14565         internally.
14566         * Win32DnD.cs: Use the new consistent names.
14567
14568 2005-10-31  Jackson Harper  <jackson@ximian.com>
14569
14570         * TreeView.cs: Don't draw the selected node when we lose focus.
14571
14572 2005-10-31  Jackson Harper  <jackson@ximian.com>
14573
14574         * X11Dnd.cs: We still need to reset the state even though a full
14575         reset isn't being done, otherwise status's still get sent all over
14576         the place.
14577
14578 2005-10-31  Jackson Harper  <jackson@ximian.com>
14579
14580         * Control.cs: Make the dnd_aware flag internal so the dnd
14581         subsystem can check it. Catch exceptions thrown in dnd handlers to
14582         match MS behavoir.
14583         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14584         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14585         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14586         flags to reduce the number of dnd enters/status's sent.
14587
14588 2005-10-31  Jackson Harper  <jackson@ximian.com>
14589
14590         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14591
14592 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14593
14594         * PictureBox.cs: Fixes 76512
14595
14596 2005-10-28  Jackson Harper  <jackson@ximian.com>
14597
14598         * X11Dnd.cs: Early implementation to support winforms being a drag
14599         source for data on X11. Also restructured the converters so they
14600         can go both ways now.
14601         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14602         
14603 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14604
14605         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14606           clipboard requests
14607
14608 2005-10-27  Jackson Harper  <jackson@ximian.com>
14609
14610         * TreeNode.cs: Implement serialization so my DnD examples will work.
14611
14612 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14613
14614         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14615           TreeView.cs: Don't dispose objects that are not owned.
14616           
14617 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14618
14619         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14620           should retrieve the current cursor and report that, but XplatUI
14621           doesn't (yet) have an interface for that (and I'm not sure I even
14622           can, on X11)
14623         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14624           until any message loop processing is done (and the WM_SETCURSOR
14625           replaces the cursor to the proper one)
14626         * XplatUIX11.cs: 
14627           - Fixed override behaviour, we can't set the cursor globally on X11, 
14628             just for our windows.
14629           - Invalidating the System.Drawing X11 display handle when we are
14630             shutting down
14631         * Control.cs: Fix to make csc happy
14632
14633 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14634
14635         * TextBoxBase.cs: 
14636           - get_Text: Add last line (without trailing newline) to returned
14637             value (Fixes 76212)
14638           - get_TextLength: Count last line in returned length
14639           - ToString: Call Text property instead of duplicating code
14640
14641 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14642
14643         * ImageList.cs: Dispose ImageAttributes objects.
14644
14645 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14646
14647         * ImageList.cs: Use attribute constructors with less arguments where
14648           possible.
14649
14650 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14651
14652         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14653           Use typeof instead of strings when assembly is referenced. Added
14654           some more comments.
14655
14656 2005-10-21  Jackson Harper  <jackson@ximian.com>
14657
14658         * ListView.cs: Raise a double click event. Also tried to somewhat
14659         fix when the selectedindexchanged event is raised. Its still
14660         broken though.
14661
14662 2005-10-21  Jackson Harper  <jackson@ximian.com>
14663
14664         * TreeView.cs: New method to invalidate the plus minus area of a
14665         node without invalidating the whole node (maybe this can be used
14666         in some more places).
14667         * TreeNodeCollection.cs: When adding to an empty node we need to
14668         invalidate its plus minus area so the little block shows up.
14669         
14670 2005-10-21  Jackson Harper  <jackson@ximian.com>
14671
14672         * TreeView.cs: Make sure that when we invalidate a node the bounds
14673         are big enough to cover the selected box and the focus
14674         rectangle. Use a different colour for the lines connecting nodes
14675         so they show up with all themes.
14676
14677 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14678
14679         * NativeWindow.cs: Don't call anything that could call into the driver,
14680           we might be on a different thread.
14681
14682 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14683
14684         * Control.cs(Dispose): Since Dispose might run on a different thread,
14685           make sure that we call methods that could call into the driver via
14686           invoke, to avoid thread issues
14687
14688 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14689
14690         * XplatUI.cs: Removed finalizer
14691         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14692           not allowing to be called on the finalizer thread.
14693
14694 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14695
14696         * ImageList.cs:
14697           - Reverted r51889 and r51891.
14698           - Added ImageListItem class that stores unmodified image items and image
14699             properties required to create list images until handle is created.
14700           - Added AddItem and moved image creation logic to AddItemInternal.
14701           - Added CreateHandle method that creates images based on unmodified items.
14702           - Added DestroyHandle that changes state to store unmodified items.
14703           - Add and AddStrip methods no more create handle.
14704           - ReduceColorDepth has no return value.
14705           - Dispose destroys handle.
14706           - Modified other methods to reflect the above changes.
14707           - Implemented key support.
14708           - Added profile 2.0 members and attributes.
14709           - Added private Reset and ShouldSerialize methods that provide the same
14710             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
14711             them as they are private.
14712           - Added some more comments about implementation details.
14713
14714 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14715
14716         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
14717
14718 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14719
14720         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
14721
14722 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
14723
14724         * DataGridDrawingLogic.cs: Fixes column hit calcultation
14725         * DataGridColumnStyle.cs: Remove debug message
14726
14727 2005-10-20  Jackson Harper  <jackson@ximian.com>
14728
14729         * TreeView.cs: We can always get input keys regardless of whether
14730         or not editing is enabled. They are used for navigation.
14731
14732 2005-10-20  Jackson Harper  <jackson@ximian.com>
14733
14734         * TreeNode.cs: Use the viewport rect for determining if a node
14735         needs to be moved for visibility. Don't use Begin/End edit. This
14736         calls a full refresh when its done.
14737         * TreeView.cs: New SetBottom works correctly.  Make the viewport
14738         rect property internal so the treenodes can see it. When clicking
14739         on a node we need to ensure that its visible because it might just
14740         be partly visible when clicked.
14741
14742 2005-10-20  Jackson Harper  <jackson@ximian.com>
14743
14744         * TreeNodeCollection.cs: Remove debug code.
14745
14746 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14747
14748         * Datagrid.cs: Implements column sorting in Datagrid
14749         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
14750
14751 2005-10-20  Jackson Harper  <jackson@ximian.com>
14752
14753         * TreeNodeCollection.cs: Remove items properly. Update the correct
14754         area after removing them.
14755
14756 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
14757
14758         * Datagrid.cs: Should not call base.OnPaintBackground
14759
14760 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14761
14762         * XplatUIX11.cs (GetMessage):
14763           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
14764             window instead of client window
14765           - Now properly calculates NC_xBUTTONUP message coordinates
14766           - ScreenToMenu now properly calculates it's coordinates of whole 
14767             window, since menus are in the whole window, not in the client
14768             window
14769           - Added WholeToScreen coordinate translation method
14770
14771 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
14772
14773         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
14774           want to return a message, loop back to the beginning of the function
14775           and grab the next real message to process instead.
14776
14777 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
14778
14779         * Splitter.cs: Properly set limits if no filler control is used
14780
14781 2005-10-19  Jackson Harper  <jackson@ximian.com>
14782
14783         * ColorDialog.cs: Don't show the help button if it is not enabled
14784         instead of disabling it (this is what MS does). Don't create the
14785         panel until the dialog is run, otherwise the vars (such as
14786         ShowHelp) are not set yet.
14787
14788 2005-10-19  Jackson Harper  <jackson@ximian.com>
14789
14790         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
14791         are reduced when adding nodes.
14792         * TreeNode.cs:
14793         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
14794         tree.
14795         
14796 2005-10-19  Jackson Harper  <jackson@ximian.com>
14797
14798         * FolderBrowserDialog.cs: End editing our treeview so the window
14799         actually gets refreshed.
14800
14801 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14802
14803         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
14804           Obsoleted handling of WM_ERASEBKGND, now always draws our background
14805           inside of WM_PAINT
14806
14807 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14808
14809         * MenuAPI.cs: Returns after Hidding window
14810         * XplatUIX11.cs: Added TODO found while debugging menu issues
14811
14812 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
14813
14814         * XplatUIX11.cs: Do not re-map the whole window when it's size
14815           becomes non-zero unless it's supposed to be actually visible
14816
14817 2005-10-18  Jackson Harper  <jackson@ximian.com>
14818
14819         * TreeView.cs: We don't need to keep a count anymore.
14820         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
14821         use the Grow method.
14822
14823 2005-10-18  Jackson Harper  <jackson@ximian.com>
14824
14825         * TreeNodeCollection.cs: Insert is not supported on arrays, so
14826         implement it manually here.
14827
14828 2005-10-18  Jackson Harper  <jackson@ximian.com>
14829
14830         * ImageList.cs: Dont kill the list when the colour depth is
14831         changed, just change the colour depth of all the images.
14832         - Same goes for setting the image size. Just resize them all
14833         instead of killing the list softly.
14834
14835 2005-10-18  Jackson Harper  <jackson@ximian.com>
14836
14837         * Control.cs: Don't invalidate empty rectangles.
14838
14839 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14840
14841         * ListViewItem.cs:
14842           - Adds checked item to the Checked/Item lists (where empty before)
14843           - Do not add items to the Selected lists if they are already present
14844         * ListView.cs:
14845           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
14846           - When deleting items make sure that we delete them for the Selected
14847           and Checked list also.
14848
14849 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
14850
14851         * Label.cs: Dispose objects no longer used
14852         * ThemeWin32Classic.cs: Dispose objects no longer used
14853
14854 2005-10-18  Jackson Harper  <jackson@ximian.com>
14855
14856         * TabControl.cs: Don't refresh the whole control when the tabs are
14857         scrolled, we just need to refresh the tab area.
14858
14859 2005-10-17  Jackson Harper  <jackson@ximian.com>
14860
14861         * XplatUIX11.cs: Compress code a little bit. Only calculate the
14862         after handle when we need it.
14863
14864 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14865
14866         * Control.cs: When the parent size changes, recalculate anchor 
14867           positions. Partial fix for #76462
14868
14869 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
14870
14871         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
14872           drawn. Fixes #76462
14873
14874 2005-10-17  Jackson Harper  <jackson@ximian.com>
14875
14876         * MonthCalendar.cs: Don't create the numeric up down until our
14877         handle is created. Otherwise our handle is created in the
14878         constructor and we don't know if we are a WS_CHILD or WS_POPUP
14879         yet.
14880
14881 2005-10-17  Jackson Harper  <jackson@ximian.com>
14882
14883         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
14884         correctly.
14885
14886 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
14887         * TreeNode.cs : small logical fix (was using local var instead of field)
14888         
14889 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14890
14891         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
14892
14893 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
14894
14895         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
14896
14897 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
14898
14899         * Control.cs: 
14900           - Re-implemented anchoring code. My first version was really broken.
14901             This fixes bug #76033. Unlike the previous implementation we will
14902             no longer have round errors since all numbers are calculated from
14903             scratch every time. Removed various anchor-related obsolete vars.
14904           - InitLayout no longer causes layout event firing and layout to be 
14905             performed
14906
14907 2005-10-16  Jackson Harper  <jackson@ximian.com>
14908
14909         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
14910         which was broken).
14911
14912 2005-10-16  Jackson Harper  <jackson@ximian.com>
14913
14914         * TabControl.cs: Remove debug code.
14915
14916 2005-10-16  Jackson Harper  <jackson@ximian.com>
14917
14918         * XEventQueue.cs: Increase the default queue size (very simple
14919         apps needed to grow the queue).
14920         * Hwnd.cs: No finalizer so we don't need to suppress
14921         finalization. Compute the invalid area manually so a new rectangle
14922         does not newto be created.
14923         * ScrollableControl.cs: Don't set any params (otherwise visibility
14924         isn't set correctly).
14925         * MdiChildContext.cs: New constructor takes the mdi parent so it
14926         doesn't have to be computed and avoids a crash on windows. Draw
14927         the window icon properly, and allow the text to be seen.
14928         * Form.cs: Use new MdiChildContext constructor. Make sure the
14929         child context isn't null in wndproc.
14930         * TabControl.cs: Don't set focus, this is muddling keyboard
14931         behavoir. Expand the tab rows when a window size increase will
14932         allow extra tabs to be seen. Don't allow tabs smaller than the
14933         width of a window to be scrolled out of view.
14934         * TreeNode.cs:
14935         * TreeView.cs: Use measure string to calculate a nodes width, the
14936         width is cached and only updated when the text or the font is
14937         changed. Don't check for expand/collapse clicks on the first level
14938         nodes if root lines are disabled.
14939         
14940 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
14941
14942         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
14943
14944 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14945
14946         * DataGridBoolColumn.cs: fixes warning
14947
14948 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
14949
14950         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
14951         to match more to match more precisely the MS Net behavior
14952
14953 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14954
14955         * Hwnd.cs: Added field to track if window is mapped
14956         * XplatUIX11.cs: 
14957           - Unmap windows if they become 0-size, re-map when 
14958             they are >0 again; fixes #76035
14959           - Re-set our error handler after initializing X11Desktop
14960             to override any error handlers Gtk or whatever was called
14961             may have set.
14962
14963 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
14964
14965         * CheckedListBox.cs: Removed unused vars
14966         * ListView.cs: Fixed signatures
14967         * RichTextBox.cs: Removed unused vars
14968         * TextBoxBase.cs: Removed unused vars
14969         * XplatUIWin32.cs: Removed unused vars
14970         * XplatUIX11.cs: Removed unused vars
14971         * XplatUI.cs: Updated version and date to latest published
14972
14973 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14974
14975         * Cursor.cs: Added private .ctor to work around a bug in
14976           resourceset (Thanks to Geoff Norton for the help on this)
14977         * SplitterEventArgs.cs: Made fields accessible so we don't
14978           waste boatloads of objects and can reuse the same one
14979           in Splitter
14980         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
14981           any captions and borders when generating screen coordinates
14982         * Splitter.cs: Reimplemented control, now fully complete, uses
14983           rubberband drawing, supports and obeys all properties, has
14984           proper cursors
14985
14986 2005-10-13  Miguel de Icaza  <miguel@novell.com>
14987
14988         * Form.cs (Form): Setup default values for autoscale and
14989         autoscale_base_size;  Make these instance variables, not static
14990         variables. 
14991
14992         (OnLoad): on the first load, adjust the size of the form.
14993
14994 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
14995
14996         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
14997           width argument to DrawReversibleRectangle()
14998         * XplatUIWin32.cs, XplatUIX11.cs: 
14999           - Implemented width for DrawReversibleRectangle()
15000           - Added logic to DrawReversibleRectangle that recognizes a zero
15001             width or height and only draws a line in that situation
15002         
15003 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
15004
15005         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
15006         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
15007         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
15008           method (it uses our FosterParent window to get a graphics context)
15009
15010 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
15011
15012         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
15013           and SetWindowBackground methods
15014         * Control.cs:
15015           - Setting proper ControlStyles
15016           - We no longer call XplatUI.SetWindowBackground and XplatUI.
15017             EraseWindowBackground, instead we draw the window background
15018             ourselves in PaintControlBackground. This behaviour is
15019             required to match MS, where, when OnPaintBackground is not
15020             called, the background is not drawn.
15021           - Removed unneeded Refresh() in set_Text
15022         * Hwnd.cs: Dropped the ErasePending support. No longer needed
15023         * XplatUIX11.cs:
15024           - Created DeriveStyles method to translate from CreateParams to
15025             FormBorderStyle and TitleStyle, also handles BorderStyle (which
15026             matches FormBorderStyle enum values)
15027           - Consolidated SetHwndStyles and CalculateWindowRect border/title
15028             style calculations into single DeriveStyles method
15029           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
15030             from redrawing the whole window on any resize or expose.
15031           - Fixed CreateWindow usage of SetWindowValuemask. Before not
15032             all styles were applied to our whole/client window appropriately
15033           - Removed EraseWindowBackground() and SetWindowBackground() methods
15034           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
15035             no longer clear/redraw the background through X
15036           - Removed handling of erase_pending bit, we have no use for it (or
15037             so it seems)
15038         * XplatUIOSX.cs:
15039           - Removed generation and handling of WM_ERASEBKGND message
15040           - Removed EraseWindowBackground() and SetWindowBackground() methods
15041           - Removed handling of hwnd.ErasePending flag
15042         * XplatUIWin32.cs:
15043           - Removed EraseWindowBackground() and SetWindowBackground() methods
15044           - We no longer call EraseWindowBackground on PaintEventStart, we 
15045             ignore the fErase flag, erasing is handled in Control in the
15046             background handler
15047         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
15048           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
15049           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
15050           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
15051           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
15052           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
15053           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
15054
15055 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
15056
15057         * PropertyGrids.cs: Get sub properties
15058         * PropertyGridView.cs: Fix drawing code
15059
15060 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15061
15062         * ListBox.cs: Fixes 76383
15063
15064 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15065
15066         * DataGridTextBoxColumn.cs: Sets location and size before attachment
15067         * ThemeWin32Classic.cs: Fixes border drawing and calculations
15068         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
15069
15070
15071 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15072
15073         * ComboBox.cs: Fixes border drawing
15074
15075 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15076
15077         * MimeIcon.cs: Ignore errors if the file can not be read.
15078
15079 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15080
15081         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15082          - Fixed border calculations
15083          - Fixed horizontal scrolling in single column listboxes
15084          - Fixed drawing issues
15085
15086 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15087
15088         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15089           FormBorderStyle enum
15090         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15091           code to determine FormBorderStyles from CreateParams
15092         * Form.cs:
15093           - Fixed bug where we'd set the wrong window styles if we were
15094             not creating an MDI window
15095           - Added call to XplatUI.SetBorderStyle when form borders are set
15096         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15097         * Hwnd.cs:
15098           - Removed obsolete edge style
15099           - Switched from BorderStyle to FormBorderStyle
15100         
15101 2005-10-10  Jackson Harper  <jackson@ximian.com>
15102
15103         * Form.cs: Use the property to get the window handle instead of
15104         accessing it directly. Prevents a null reference exception.
15105
15106 2005-10-10  Jackson Harper  <jackson@ximian.com>
15107
15108         * TreeView.cs: Don't adjust the rect given to DrawString now that
15109         our libgdiplus draws correctly.
15110
15111 2005-10-08  Jackson Harper  <jackson@ximian.com>
15112
15113         * TreeView.cs: Don't try to find the clicked on node if there are
15114         no nodes in the tree.
15115
15116 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15117
15118         * RichTextBox.cs:
15119
15120           restore
15121
15122 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15123
15124         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15125           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15126           ErrorProvider.cs:
15127           Use ResPool for brushes and dispose System.Drawing objects that
15128           are not used anymore.
15129
15130 2005-10-07  Jackson Harper  <jackson@ximian.com>
15131
15132         * MdiChildContext.cs: Use the new borders instead of drawing them
15133         ourselves.
15134
15135 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15136
15137         * Calling UpdateBounds after changing the window's BorderStyle 
15138         since the style can change the ClientSize
15139
15140 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15141
15142         * Control.cs: Made PaintControlBackground virtual
15143         * Panel.cs: Overriding PaintControlBackground instead of using paint
15144           event; paint event method was interfering with 'real' users of the
15145           event.
15146
15147 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15148
15149         * ThemeWin32Classic.cs: remove border drawing since it is handled
15150         by the base control class now and was causing double border drawing.
15151
15152 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15153
15154         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15155           but it does seem to match MS behaviour. This fixes bug #75324
15156
15157 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15158
15159         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15160           somewhat hackish looking
15161
15162 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15163
15164         * TextBoxBase.cs:
15165           - We now accept Enter even if AcceptEnter is false, if the containing
15166             form does not have an AcceptButton configured (fixes bug #76355)
15167           - Calculations are now fixed to no longer use Width/Height, but
15168             ClientSize.Width/Height, since we now support borders (this was
15169             a result of fixing borders and therefore bug #76166)
15170           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15171             true (fixes bug #76354)
15172         
15173 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15174
15175         * Control.cs: 
15176           - Defaulting BorderStyle and setting it in XplatUI when our window 
15177             is created
15178           - Added enum check to InternalBorderStyle setter
15179         * XplatUIX11.cs: 
15180           - Added drawing of window borders
15181           - Now properly calculates WM decorations offset for toplevel 
15182             windows (fixes bug #74763)
15183         * XplatUIWin32.cs: 
15184           - Implemented BorderStyles for windows (we're letting win32 draw 
15185             the border for us)
15186           - Fixed the signature for SetWindowLong
15187         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15188           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15189           setting borders
15190         * UpDownBase.cs: Remove drawing of borders, this is handled by
15191           the driver, outside the client area
15192         * ListView.cs: Removed bogus border calculations. The control should
15193           be oblivious to borders, since those are not part of the client
15194           area. 
15195         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15196         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15197           drawing code
15198
15199 2005-10-06  Jackson Harper  <jackson@ximian.com>
15200
15201         * MdiChildContext.cs: Clear out the old virtual position remove
15202         all the unneeded calls to CreateGraphics.
15203
15204 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15205
15206         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15207
15208 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15209
15210         * Form.cs: 
15211           - Added loading and setting of our new default icon
15212           - Only set icon if window is already created
15213
15214 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15215
15216         * Label.cs:
15217           - Do not explicitly set the foreground and background colors, to
15218             allow inheriting from parents (fixes #76302)
15219           - Use Control's InternalBorderStyle property to deal with borders
15220
15221 2005-10-06  Jackson Harper  <jackson@ximian.com>
15222
15223         * MdiChildContext.cs: Use the new xplatui function to draw a
15224         reversible rect.
15225
15226 2005-10-06  Jackson Harper  <jackson@ximian.com>
15227
15228         * Form.cs: Add the parent before creating the child context cause
15229         we need the parent when setting up the child.
15230
15231 2005-10-06  Jackson Harper  <jackson@ximian.com>
15232
15233         * FolderBrowserDialog.cs: redo the tree population code so a
15234         second thread isn't used. Should be a lot faster and more stable
15235         now.
15236
15237 2005-10-05  Jackson Harper  <jackson@ximian.com>
15238
15239         * TreeView.cs: There are no expand/collapse boxes if the node has
15240         no children.
15241
15242 2005-10-05  Jackson Harper  <jackson@ximian.com>
15243
15244         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15245
15246 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15247
15248         * FileDialog.cs: Fix InitialDirectory
15249
15250 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15251
15252         * ComboBox.cs:
15253                 - Fixes changing between styles
15254                 - Fixes simple mode
15255                 - Fixes last item crashing when navigating with keyboard
15256
15257 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15258
15259         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15260
15261 2005-10-05  Jackson Harper  <jackson@ximian.com>
15262
15263         * TreeView.cs: If updating the root node do a full refresh.
15264         * TreeNode.cs: The root node should be expanded by default. Also
15265         added a utility prop to tell if we are the root node.
15266         * TreeNodeCollection.cs: Only refresh if the node we are being
15267         added to is expanded. Also added a comment on a potential
15268         optimization.
15269         
15270 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15271
15272         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15273           in dispose method. Fixes #76330
15274
15275 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15276
15277         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15278
15279                 - Implements vertical and horizontal scrolling using XplatUI
15280                 - Fixes keyboard navagation
15281                 - Fixes EnsureVisible
15282                 - Drawing fixes
15283                 - Handles and draws focus properly
15284
15285
15286 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15287
15288         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15289           Create handle. NET_2_0: Destroy handle when value is null.
15290
15291 2005-10-03  Jackson Harper  <jackson@ximian.com>
15292
15293         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15294         revert and a new patch to prevent the thumb from refreshing so
15295         much.
15296
15297 2005-10-02  Jackson Harper  <jackson@ximian.com>
15298
15299         * ScrollBar.cs: Don't update position if it hasn't actually
15300         changed. This occurs when you hold down the increment/decrement
15301         buttons and the thumb gets to the max/min.
15302
15303 2005-10-01  Jackson Harper  <jackson@ximian.com>
15304
15305         * Form.cs:
15306         * MdiChildContext.cs:
15307         * MdiClient.cs: Implement ActiveMdiChild in Form.
15308
15309 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15310
15311         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15312
15313 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15314
15315         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15316           be found
15317
15318 2005-09-30  Jackson Harper  <jackson@ximian.com>
15319
15320         * ListBox.cs: Don't do a full refresh unless some data has
15321         actually changed.
15322
15323 2005-09-30  Jackson Harper  <jackson@ximian.com>
15324
15325         * TreeView.cs: Make sure that the checkboxes size is factored in
15326         even when not visible.
15327
15328 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15329
15330         * FileDialog.cs: Fix Jordi's build break
15331
15332 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15333
15334         * FileDialog.cs: 
15335                 - Use standard the Windows colours for the combobox as espected
15336                 - Dispose objects that use resouces when no longer need them
15337
15338 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15339
15340         * X11DesktopColors.cs: Initial incomplete implementation
15341         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15342
15343 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15344
15345         * Theme.cs: 
15346           - Switched Theme color names to match the names defined in 
15347             System.Drawing.KnownColors. Life's hard enough, no need to make 
15348             it harder.
15349           - Added setters to all theme color properties so themes can set
15350             their color schemes. The setters also propagate the color changes
15351             to System.Drawing.KnownColors via reflection
15352         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15353           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15354           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15355           use the new, more logical theme color names
15356         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15357           post-NT colors
15358         * ThemeWin32Classic.cs:
15359           - Removed code to set the old classic Windows colors. Instead it
15360             now relies on the colors returned by System.Drawing.KnownColors
15361             which will be either modern static colors (Unix) or colors
15362             read from the user's configuration (Win32)
15363           - Updated to use the new, more logical theme color names
15364           - Switched DataGrid drawing code to use only Theme colors instead of
15365             a mix of System.Drawing.KnownColors and Theme colors
15366           - DrawFrameControl(): Removed code that fills the button area, the
15367             fill would overwrite any previous fill done by a control. This
15368             fixes bug #75338 
15369           - Added DrawReversibleRectangle() stub
15370         * ScrollableControl.cs: Set visible state to false when scrollbars
15371           are removed (pdn fix)
15372         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15373           DrawReversibleRectangle() method to allow drawing primitive 
15374           'rubber bands'
15375         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15376
15377 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15378
15379         * ImageList.cs: Add(Icon): Create handle.
15380
15381 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15382
15383         * ListView.cs:
15384         * ThemeWin32Classic.cs:
15385                 - Fixes detail mode
15386                 - Sets clippings
15387                 - Issues with drawing
15388
15389 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15390
15391         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15392           source has to be the ImageList.
15393
15394 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15395
15396         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15397
15398 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15399
15400         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15401
15402 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15403
15404         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15405
15406 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15407         * GridItem.cs: Fixed TODOs
15408         * GridItemCollection.cs: Added ICollection interface
15409
15410 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15411
15412         * ImageList.cs: Resize icons when needed.
15413
15414 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15415
15416         * ListViewItem.cs
15417                 - Fixes GetBounds and returns on screen rects
15418         * ListView.cs:
15419                 - Fixes vertical and horzintal scrolling of items
15420         * ThemeWin32Classic.cs:
15421                 - Fixes drawing
15422                 
15423 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15424
15425         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15426
15427 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15428
15429         * ImageList.cs: Added comments about handle creation. Moved Handle,
15430           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15431           Handle is created in Add methods.
15432
15433 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15434          
15435         * DataGridDrawingLogic.cs: 
15436                 - Takes rows into account on Colum calculations
15437                 - Returns the column when clickig
15438         * DataGrid.cs:
15439                 - Fixes default HitTestInfo values
15440                 - Fixes HitTestInfo.ToString
15441                 - Fixes ResetBackColor          
15442         
15443 2005-09-28  Jackson Harper  <jackson@ximian.com>
15444
15445         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15446         sizing or cursor changes). Also added some temp code to draw the
15447         titlebars text (Makes dev a little easier).
15448
15449 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15450
15451         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15452
15453 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15454          
15455         * ListBox.cs: Fixes bug 76253
15456
15457 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15458
15459         * ImageList.cs: Added comments about the current implementation. Added
15460           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15461           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15462           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15463           with Bitmap.LockBits for better performance. Revised the whole file to
15464           match MS.NET behaviour and provide better performance. Non-public
15465           interface members are calling public members even when they throw
15466           NotSupportedException for better maintainability. Moved ColorDepth,
15467           ImageSize, ImageStream and TransparentColor implementations to
15468           ImageCollection for better performance as these properties are not used
15469           by ImageList.
15470         * ImageListStreamer.cs: Added a new internal constructor that takes an
15471           ImageList.ImageCollection and serializes Images based on
15472           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15473           match ImageList property name.
15474
15475 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15476
15477         * ListBox.cs: Fixes IndexFromPoint for last item
15478
15479 2005-09-27  Jackson Harper  <jackson@ximian.com>
15480
15481         * Form.cs: Set the position of new mdi children correctly.
15482
15483 2005-09-27  Jackson Harper  <jackson@ximian.com>
15484
15485         * MdiClient.cs: New mdi children need to be added to the back of
15486         the controls collection so the zorder is set correctly. Also add a
15487         count of all the child windows that have been created.
15488
15489 2005-09-27  Jackson Harper  <jackson@ximian.com>
15490
15491         * Form.cs (CreateParams): Setup MDI forms correctly.
15492
15493 2005-09-27  Jackson Harper  <jackson@ximian.com>
15494
15495         * MdiChildContext.cs:
15496         * MonthCalendar.cs:
15497         * UpDownBase.cs:
15498         * ListBox.cs:
15499         * ListView.cs:
15500         * TextBoxBase.cs:
15501         * TreeView.cs:
15502         * ScrollableControl.cs:
15503         * ComboBox.cs: Add implicit controls using the new implict control
15504         functionality in ControlCollection. Also try to block multiple
15505         control add in a suspend/resume layout to save some cycles.
15506         
15507 2005-09-27  Jackson Harper  <jackson@ximian.com>
15508
15509         * Control.cs: Add functionality to the controls collection to add
15510         'implicit controls' these are controls that are created by the
15511         containing control but should not be exposed to the user. Such as
15512         scrollbars in the treeview.
15513         * Form.cs: The list var of the ControlsCollection is no longer
15514         available because of the potential of implicit controls getting
15515         ignored by someone accessing the list directly.
15516
15517 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15518
15519         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15520           loose it's parent. (Fixed bug introduced in r49103 when we added
15521           setting the child parent to null on Remove)
15522
15523 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15524
15525         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15526         * Splitter.cs: Added missing attributes for BorderStyle property.
15527         * TextBoxBase.cs: Marked Calculate* methods internal.
15528         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15529         MS.NET.
15530
15531 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15532          
15533         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15534
15535 2005-09-25  Jackson Harper  <jackson@ximian.com>
15536
15537         * TreeView.cs: Update the node bounds correctly regardless of
15538         whether the node is visible.
15539
15540 2005-09-25  Jackson Harper  <jackson@ximian.com>
15541
15542         * ImageList.cs: Don't dispose the image after it is added to the
15543         image list. Only reformat images that need to be resized.
15544
15545 2005-09-25  Jackson Harper  <jackson@ximian.com>
15546
15547         * ImageList.cs: Don't set the format when changing the image.
15548
15549 2005-09-25  Jackson Harper  <jackson@ximian.com>
15550
15551         * TreeView.cs: We can't just assume the node has a font. Use the
15552         treeviews font if no node font is available.
15553
15554 2005-09-25  Jackson Harper  <jackson@ximian.com>
15555
15556         * TreeView.cs: Allow the scrollbars to be reset with negative
15557         values.
15558         - Don't add scrollbars to negative sized windows.
15559
15560 2005-09-23  Jackson Harper  <jackson@ximian.com>
15561
15562         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15563         old Mono.Posix. Also remove some stray code that shouldn't have
15564         been committed.
15565
15566 2005-09-23  Jackson Harper  <jackson@ximian.com>
15567
15568         * TreeView.cs: Attempt at proper sizing of the horizontal
15569         scrollbar. Also don't resize the scrollbars unless they are
15570         visible.
15571
15572 2005-09-23  Jackson Harper  <jackson@ximian.com>
15573
15574         * TreeView.cs: We don't need to expand the invalid area when the
15575         selection changes, as this is all drawn in the node's bounding
15576         box. The area needs to be expanded (previous typo was contracting
15577         it) when the focus rect moves.
15578
15579 2005-09-23  Jackson Harper  <jackson@ximian.com>
15580
15581         * TreeView.cs: Display the selection box under the correct
15582         circumstances. We were rendering white text with no selection box
15583         before.
15584
15585 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15586
15587         * TextControl.cs(Split): Now updates selection start/end if it points 
15588           into a line that's being split. Fixes a FIXME and bug #75258
15589
15590 2005-09-23  Jackson Harper  <jackson@ximian.com>
15591
15592         * Binding.cs:
15593         * ListControl.cs: Don't use the path when retrieving binding
15594         managers from the binding context. My bat sense tells me that the
15595         path is only used on insertion.
15596
15597 2005-09-22  Jackson Harper  <jackson@ximian.com>
15598
15599         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15600
15601 2005-09-22  Jackson Harper  <jackson@ximian.com>
15602
15603         * Splitter.cs: There are special cursors used for splitting.
15604         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15605
15606 2005-09-22  Jackson Harper  <jackson@ximian.com>
15607
15608         * Splitter.cs: Change the cursor appropriately when the splitter
15609         is moused over, so the user actually knows there is a splitter
15610         there.
15611
15612 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15613
15614        * Label.cs : Fix ToString method to give same output as MS.NET
15615
15616 2005-09-22  Jackson Harper  <jackson@ximian.com>
15617
15618         * TreeView.cs: Create the scrollbars when the handle is created
15619         and add them right away, just make them invisble. Also account for
15620         the window being shrunk vertically to the point that the vert
15621         scrollbar needs to be added.
15622         - Remove some 0.5 adjustments to get around anti aliasing issues.
15623         
15624 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15625          
15626         * MainMenu.cs: Fixes default value
15627         * MenuItem.cs: Fixes default value
15628
15629 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15630
15631         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15632
15633 2005-09-21  Jackson Harper  <jackson@ximian.com>
15634
15635         * Control.cs: Don't try to set the border style on the window if
15636         it hasn't been created. When the window is created the border
15637         style will be used.
15638
15639 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15640
15641         * Control.cs (Update): Don't call XplatUI if we don't have a
15642           window handle yet
15643
15644 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15645
15646         * ContainerControl.cs: Instead of throwing an exception, print
15647           a one-time warning about Validate not being implemented
15648         * XplatUIWin32.cs: Removed debug output
15649
15650 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15651
15652         * Control.cs: Only set XplatUI background if we expect the windowing
15653           system to handle the background. This stops controls that draw their
15654           own background from flickering
15655
15656         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15657           creation. This allows, amongst other things, using MWF X11 windows 
15658           with OpenGL.
15659
15660 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15661
15662         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15663           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15664           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15665           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15666           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15667           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15668           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15669           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15670           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15671           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15672           GridColumnStylesCollection.cs, 
15673           IDataGridColumnStyleEditingNotificationService.cs,
15674           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15675           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15676           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15677           TreeNodeCollection.cs, AmbientProperties.cs, 
15678           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15679           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15680           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15681           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15682           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15683           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15684           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15685           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15686           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15687           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15688           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15689           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15690           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15691           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15692           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15693           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15694           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15695           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15696           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15697           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15698           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15699           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15700           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15701           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15702           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15703           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
15704           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
15705           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
15706           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
15707           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
15708           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
15709           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
15710           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
15711           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
15712           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
15713           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
15714           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
15715
15716 2005-09-21  Jackson Harper  <jackson@ximian.com>
15717
15718         * TreeNode.cs: Call Before/After Expand not Collapse when
15719         expanding.
15720
15721 2005-09-20  Jackson Harper  <jackson@ximian.com>
15722         
15723         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
15724
15725 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15726          
15727         * ListViewItem.cs:
15728                 - Fixes bug 76120
15729                 - Fixes proper storing of subitems
15730                 - Fixes not updated items
15731
15732 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
15733
15734         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
15735           things if our window handle isn't created yet. Also disabled 
15736           debug for TextBoxBase
15737
15738 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
15739
15740         * MenuAPI.cs: Remove filtering of events to allow menu usage
15741
15742 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15743
15744         * Cursor.cs: Allow null to be passed to Cursor.Current.
15745
15746 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
15747
15748         * ThemeWin32Classic.cs:
15749           - Change some private methods/fields to protected virtual so that 
15750             they can be accessed and overriden in derived classes
15751           - First refactoring of some methods. Derived themes now don't 
15752             need to duplicate the complete code from ThemeWin32Classic
15753         * ThemeNice.cs:
15754           - Added nice StatusBar
15755           - Derive from ThemeWin32Classic and not Theme
15756           - Removed duplicate ThemeWin32Classic code
15757
15758 2005-09-20  Miguel de Icaza  <miguel@novell.com>
15759
15760         * Control.cs (ControlCollection.Add): If the value null is passed
15761         the control is ignored. 
15762
15763         Optimize this loop.
15764
15765 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
15766
15767         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
15768           PostQuitMessage state.
15769         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
15770
15771 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
15772
15773         * Application.cs: Our constructor will never get called, move 
15774           initialization to fields; fixes bug #75933
15775
15776 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15777
15778         * FileDialog.cs :
15779                 - Allow files to be selected properly using file name
15780                 combo box.
15781                 - Add ability to change diretory (absolute / relative)
15782                 using file name combo box.
15783
15784 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
15785          
15786         * ListBox.cs: 
15787                 - Fixes Multicolumn listboxes item wrong calculations
15788                 - Allows to click when only one item is in the listbox
15789                 - Fixes crash when no items using keyboard navigation
15790
15791 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
15792
15793         * ComboBox.cs: Reverted almost everything from the latest patch which
15794           broke ComboBox
15795
15796 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
15797         
15798         * ToolTip.cs:
15799                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
15800         * ComboBox.cs:
15801                 - When DropDownStyle is Simple, it does not show scrollbar 
15802                 to the last item of the list.
15803                 - When DropDownStyle is Simple, it crashed when the list was 
15804                 scrolled down with the down cursor key.
15805                 - Fixed a bug that when DropDownStyle is DropDownList, the 
15806                 selected item was not shown.
15807                 - The position of the selected item was not preserved when 
15808                 the next dropdown happened.
15809         * ThemeWin32Classic.cs:
15810                 - Items were wrapped at the right end.
15811         * CheckedListBox.cs:
15812                 - Fixed Add method
15813         * ListBox.cs:
15814                 - Items should be fully shown.
15815                 - When resizing and vertical scrollbar disappeared, the item 
15816                 of index 0 should be on the top of the list.
15817                 - GetItemRectangle should consider the size of ver. scrollbar
15818         * StatusBar.cs:
15819                 - SizingGrip area should not be allocated when it is not 
15820                 displayed.
15821                 - Now it reflects MinWidth of the containing panel and 
15822                 fixed a crash that happens when its width becomes so small.
15823
15824 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15825
15826         * CheckedListBox.cs: Fixes bug 76028
15827         * ListBox.cs: Fixes bug 76028
15828
15829 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
15830
15831         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
15832         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
15833
15834 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
15835
15836         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
15837
15838 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15839
15840         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
15841
15842 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
15843
15844         * IRootGridEntry.cs: Added
15845         * PropertyGridCommands.cs: Added
15846         * PropertiesTab.cs: Added missing methods and property
15847         * PropertyGridView.cs: Made class internal
15848         * PropertyGridTextBox.cs: Made class internal
15849
15850 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15851
15852         * MimeIcon.cs: Try to check some other environment variables
15853           if "DESKTOP_SESSION" returns "default"
15854
15855 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15856
15857         * ThemeNice.cs: Corrected background colors (e.g. menus)
15858         * ColorDialog.cs: Use correct background colors for controls
15859
15860 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
15861
15862         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
15863
15864 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
15865
15866         * RichTextBox.cs: Added initial implementation
15867         * lang.cs: Removed. Was accidentally checked in long time ago
15868         * TODO: Removed. Contents were obsolete
15869
15870 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15871                                                                                 
15872         * PropertiesTab.cs : Added
15873
15874 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
15875                                                                                 
15876         * PropertyGrid.cs : Update
15877         * PropertyGridView.cs : Update
15878         * System.Windows.Forms.resx : Added images and strings
15879
15880 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
15881
15882         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
15883  
15884 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
15885
15886         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
15887           a busy loop right after the Ungrab the X11 display is otherwise 
15888           blocked
15889
15890 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
15891
15892         * ThemeWin32Classic.cs: Optimise the use of clipping
15893
15894 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
15895
15896         * DataGrid.cs: fixes recursion bug
15897
15898 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
15899
15900         * ThemeNice.cs: 
15901           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
15902           - Cleanup
15903
15904 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
15905
15906         * ThemeNice.cs: Draw nice ProgressBars
15907
15908 2005-09-01  Miguel de Icaza  <miguel@novell.com>
15909
15910         * VScrollBar.cs: Another buglet found by Aaron's tool. 
15911
15912         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
15913         bug finder.
15914
15915 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
15916
15917         * ThemeNice.cs:
15918           - Added nicer menu drawing
15919           - Updated DrawTab
15920           - some refactoring
15921
15922 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15923
15924         * CreateParams.cs (ToString): Made output match MS
15925         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
15926             handle is already created (to avoid forcing window creation)
15927         * XplatUIX11.cs: Set window text to caption after creating window,
15928           in case Text was set before window was created
15929         * Form.cs: Use this.Text instead of a static string as caption
15930
15931 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15932
15933         * NotifyIcon.cs: Don't set the window to visible; this screws
15934           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
15935           OnPaint without a bitmap)
15936         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
15937           happen very often anyway; we could add the check to the WM_PAINT 
15938           event generation code
15939
15940 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
15941
15942         * NotifyIcon.cs: Fill the icon area with a background color, to 
15943           avoid 'residue' when transparent icons are drawn
15944         * XplatUIX11.cs:
15945           - Handle whole_window == client_window when destroying windows
15946           - SystrayAdd(): Set client_window to whole_window value to
15947             get mouse and other events passed to NotifyIcon
15948
15949 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
15950
15951         * Form.cs: Set proper default for Opacity property
15952         * NotifyIcon.cs:
15953           - ShowSystray(): Don't bother creating telling the OS
15954             about the systray item if no icon is provided
15955           - Now handles WM_NCPAINT message to deal with whole/client window
15956             split
15957           - Create window as visible to not get caught by Expose optimization
15958         * Hwnd.cs: Removed debug message
15959         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
15960           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
15961             PaintEventStart/End to use new client argument
15962         * TextBoxBase.cs:
15963           - Commented out debug messages
15964           - Switched PaintEventStart/End to use new client argument
15965         * XplatUI.cs: Added client window bool to PaintEventStart()/
15966           PaintEventEnd() calls, to support drawing in non-client areas
15967         * XplatUIDriver.cs: 
15968           - Added client window bool to PaintEventStart()/PaintEventEnd() 
15969             calls, to support drawing in non-client areas
15970           - Added conditional compile to allow using MWF BeginInvoke 
15971             on MS runtime
15972         * XplatUIX11.cs:
15973           - Added some conditional debug output
15974           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
15975             whole/client window split
15976           - Implemented handling of client argument to PaintEventStart()/End()
15977         * Control.cs:
15978           - Throw exception if BeginInvoke() is called and the window handle
15979             or one of the window's parent handles is not created
15980           - Added conditional compile to allow using MWF BeginInvoke on
15981             MS runtime
15982           - get_Parent(): Only sets parent if handle is created. This avoids
15983             forcing window handle creation when parent is set.
15984           - Now fires Layout and Parent changed events in proper order
15985           - Switched to use Handle instead of window.Handle for Z-Order setting,
15986             the get_Parent() patch above causes us to possibly get null for 'window'
15987           - Implemented handling of client argument to PaintEventStart()/End()
15988           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
15989             default handling)
15990           - Now sends a Refresh() to all child windows when Refresh() is called
15991
15992 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
15993
15994         * Form.cs: Added (non-functional) Opacity property
15995         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
15996
15997 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
15998         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
15999           use export MONO_THEME=nice to activate it.
16000           Currently supported controls:
16001           - Button
16002           - ComboBox
16003           - ScrollBar
16004           - TabControl (TabAlignment.Top only, other will follow)
16005         * ThemeEngine.cs: Add theme nice
16006         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
16007           if enabled
16008
16009 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
16010
16011         * Splitter.cs: Resize docked control and its neighbor.
16012
16013 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16014         -- Making Windows with Menus layout correctly --
16015         * Form.cs : The first leg of the fix
16016                 Menu setter - adjust Client Size as needed to make space for the menu
16017                 SetClientSizeCore - doesn't call base version to be able to pass the 
16018                         menu handle to XplatUI.CalculateWindowRect
16019         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
16020         * XplatUIX11.cs: The critical second leg of the fix
16021                 GetWindowPos needs to use a recalculated client_rect
16022                 so that resizing the window doesn't break layout of child controls. 
16023                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
16024                 Lots of \t\n killed
16025
16026 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
16027
16028         * Label.cs: Now properly recalculates width and height on Font and Text
16029           changes if AutoSize is set
16030
16031 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16032         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
16033
16034 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
16035
16036         * ImageList.cs: Makes ToString method compatible with MS
16037
16038 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
16039
16040         * MenuAPI.cs: fixes bug 75716
16041
16042 2005-08-11 Umadevi S <sumadevi@novell.com>
16043         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
16044
16045 2005-08-11 Umadevi S <sumadevi@novell.com>
16046         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
16047
16048 2005-08-10  Umadevi S <sumadevi@novell.com>
16049         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
16050
16051 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
16052
16053         * Menu.cs: fixes bug 75700
16054         * MenuAPI.cs: fixes navigation issues
16055
16056 2005-08-09  Umadevi S <sumadevi@novell.com>
16057         * CheckedListBox.cs - simple fix for GetItemChecked.
16058
16059 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
16060
16061         * ComboBox.cs: Serveral fixes
16062         * ListBox.cs: Serveral fixes
16063
16064 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16065
16066         * ComboBox.cs: Fixes FindString methods and GetItemHeight
16067         * ListBox.cs: Fixes FindString methods
16068
16069 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16070
16071         * DataGrid.cs: fixes bugs exposed by new tests
16072
16073 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16074
16075         * Mime.cs: Compile Mono assembly references only if compiling
16076           with Mono (Allows to build with VS.Net again)
16077
16078 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16079
16080         * Control.cs (PaintControlBackground): Draw background image
16081         corrrectly.
16082         (CheckForIllegalCrossThreadCalls): Stubbed.
16083         
16084         * Form.cs (OnCreateControl): Center when should be centered.
16085         
16086         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16087
16088 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16089
16090         * Binding.cs: Binding to properties should be case unsensitive
16091
16092 2005-07-18 vlindos@nucleusys.com
16093
16094         * DataGrid.cs: fixes setmember order
16095
16096 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16097
16098         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16099         * FileDialog.cs: FileDialog is now resizable and uses the new
16100           MimeIconEngine
16101
16102 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16103
16104         * DataGridTextBoxColumn.cs: default value
16105         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16106         * GridTableStylesCollection.cs: fixes checking MappingName
16107         * DataGridDrawingLogic.cs: fixes drawing logic issues
16108         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16109         * DataGrid.cs: fixes    
16110
16111 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16112
16113         * MimeGenerated.cs: Use case sensitive comparer for
16114           NameValueCollections
16115
16116 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16117
16118         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16119         * ThemeWin32Classic.cs: bug fixes, code refactoring
16120         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16121         * DataGrid.cs: bug fixes, code refactoring
16122         * DataGridTextBox.cs: bug fixes, code refactoring
16123         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16124         * Theme.cs:  bug fixes, code refactoring
16125
16126 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16127
16128         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16129           and other text box usage
16130
16131 2005-07-01  Jackson Harper  <jackson@ximian.com>
16132
16133         * TabControl.cs: Make sure the bottom of the tab covers the pages
16134         border.
16135
16136 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16137
16138         * Form.cs (ShowDialog): Assign owner of the dialog
16139         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16140           might have been moved to a tag with different height
16141
16142 2005-06-30  Jackson Harper  <jackson@ximian.com>
16143
16144         * Form.cs: Don't create an infinite loop when setting focus
16145         * MenuItem.cs: Don't dirty the parents if we don't have any
16146
16147 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16148
16149         * LibSupport.cs: Rename
16150
16151 2005-06-29  Peter Bartok  <pbartok@novell.com>
16152
16153         * TextBoxBase.cs: Re-align caret after deleting a character
16154         * TextControl.cs:
16155           - DeleteChars(): Ensure that tag covers the provided position
16156           - StreamLine(): Drop reference for dropped tag
16157
16158 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16159
16160         * TextControl.cs: 
16161           - Selections now work properly, anchoring at the initial location
16162             and properly extending in either direction (SetSelectionToCaret(),
16163             SetSelectionStart() and SetSelectionEnd())
16164           - No longer redraws the whole control on selection change, now
16165             calculates delta between previous and new selection and only
16166             invalidates/redraws that area
16167           - Fixed FindPos() math off-by-one errors
16168           - Changed DeleteChars() to verify the provided tag covers the
16169             provided position, selections may have a tag that doesn't cover
16170             the position if the selection is at a tag border
16171           - Fixed off-by-one errors in DeleteChars()
16172           - Added missing streamlining check in DeleteChars() to remove
16173             zero-length tags
16174           - Implemented Invalidate() method, now properly calculates exposures
16175             between two given lines/positions
16176           - Implemented SetSelection()
16177           - Obsoleted and removed FixupSelection()
16178           - Improved RecalculateDocument() logic, removing code duplication
16179
16180 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16181
16182         * LibSupport.cs: changes to match different input/output arguments.
16183
16184 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16185
16186         * LibSupport.cs: added libsupport.so init routine.
16187
16188 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16189         
16190         * ControlBindingsCollection.cs
16191                 - Throws an exception on null datasource when adding
16192                 - Checks for duplicated bindings when adding
16193
16194 2005-06-28  Jackson Harper  <jackson@ximian.com>
16195
16196         * TreeView.cs (OnKeyDown): Support left and right properly
16197         (navigates as well as expanding and collapsing.
16198         - Add support for Multiply, this expands all the selected nodes
16199         children.
16200         - Fix some tabbing.
16201
16202 2005-06-28  Jackson Harper  <jackson@ximian.com>
16203
16204         * TreeView.cs: Implement keyboard navigation, currently supports,
16205         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16206         support for toggling checkboxes with the space bar.
16207
16208 2005-06-28  Jackson Harper  <jackson@ximian.com>
16209
16210         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16211         tree.
16212
16213 2005-06-28  Jackson Harper  <jackson@ximian.com>
16214
16215         * TreeView.cs: Add missing event.
16216
16217 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16218
16219         * TextControl.cs:
16220           - Made line ending size configurable (now allows for counting 
16221             lineendings as \n or \r\n)
16222           - Added margin to viewport to keep caret visible on right side
16223           - Fixed translation routines for line/pos to documentpos to consider
16224             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16225           - Fixed some line-endings to be unix style
16226           - Fixed Document.FormatText to perform it's calculations 1-based
16227           - Added descriptions for a few methods that might otherwise get 
16228             used wrong
16229           - Added NOTE section with some basic conventions to remember at 
16230             the top of the file
16231           - Major fixup for RichTextBox selection drawing:
16232             * Fixed crashes when multiple tags on a single line were selected
16233             * fixed selection box drawing not overlaying text
16234             * fixed bogus offset calculation for tags not starting at index 1
16235             * Switched behaviour from using multiple Substrings of a 
16236               StringBuilder.ToString() to using multiple 
16237               StringBuilder.ToString(start, length) statements, hoping this is
16238               faster (kept original version commented out in the code, in case
16239               original version was faster)
16240         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16241           alignment != Left
16242         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16243           call it as well
16244
16245 2005-06-27  Jackson Harper  <jackson@ximian.com>
16246
16247         * TabControl.cs: Move to the left and right with the arrow
16248         keys. These keys don't cycle beyond first and last like
16249         tab. Refresh all the tabs when scrolling them to the left or
16250         right.
16251
16252 2005-06-27  Jackson Harper  <jackson@ximian.com>
16253
16254         * TabControl.cs:
16255           - ToString: Added method
16256           - CreateParams: Remove TODO and comment
16257           - OnKeyDown: Cycle through bounds properly.
16258           - SelectedIndex: Scroll to the right or left if we need to
16259           display the newly selected tab.
16260
16261 2005-06-23  Jackson Harper  <jackson@ximian.com>
16262
16263         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16264         set.
16265
16266 2005-06-23  Jackson Harper  <jackson@ximian.com>
16267
16268         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16269         CTRL-SHIFT-TAB, and HOME, END are there any others?
16270
16271 2005-06-23  Jackson Harper  <jackson@ximian.com>
16272
16273         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16274
16275 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16276         
16277         * DataGridTextBoxColumn.cs: fixes and enhancements
16278         * ThemeWin32Classic.cs: fixes and enhancements
16279         * DataGridBoolColumn.cs:  fixes and enhancements
16280         * DataGridDrawingLogic.cs:  fixes and enhancements
16281         * CurrencyManager.cs: fixes and enhancements
16282         * DataGrid.cs: fixes and enhancements
16283         * DataGridColumnStyle.cs:  fixes and enhancements
16284
16285 2005-06-22  Jackson Harper  <jackson@ximian.com>
16286
16287         * TabControl.cs: Add some missing methods that just call into the
16288         base. Make the TabPageCollection's IList interface behave in the
16289         same manner as the MS implementation.
16290
16291 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16292
16293         * TextControl.cs: Added sanity check
16294         * TextBoxBase.cs: 
16295           - Fixed wrapping behaviour, don't set wrap on single line controls
16296             (this fixes the breakage of colordialog introduced in an earlier
16297              checkin)
16298           - Added rudimentary support for autoscrolling right-aligned controls
16299             (still needs fixing, also, center alignment scroll is missing)
16300
16301 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16302         
16303         * ScrollBar.cs: Fixes thumbpos on Maximum values
16304
16305 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16306         
16307         * PropertyGridView.cs: Pass context information to UITypeEditors 
16308
16309 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16310
16311         * TextBoxBase.cs:
16312           - Now calling PositionCaret with absolute space coordinates
16313           - Enabled vertical scrolling
16314           - Better tracking of scrollbar changes, tied into WidthChange
16315             event
16316           - Improved cursor tracking
16317           - Removed debug output
16318         * TextControl.cs:
16319           - PositionCaret coordinates are now works in absolute space, not 
16320             the canvas
16321           - Improved tracking of document size
16322           - Added events for width and height changes
16323
16324 2005-06-21  Peter Bartok  <pbartok@novell.com>
16325
16326         * Form.cs: Set focus to active control when form is activated
16327         * TextControl.cs: 
16328           - Added word-wrap functionality to RecalculateLine() 
16329           - Added some short function descriptions for VS.Net to aid in
16330             writing dependent controls
16331           - Added Caret property, returning the current coords of the caret
16332           - Added ViewPortWidth and ViewPortHeight properties
16333           - Added Wrap property
16334           - Added CaretMoved event
16335           - Removed some old debug code
16336           - Split() can now create soft splits
16337           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16338           - Added method to format existing text
16339           - Fixed size/alignment calculations to use viewport
16340           - RecalculateDocument now can handle changing line-numbers while
16341             calculating lines
16342
16343         * TextBox.cs:
16344           - Added some wrap logic, we don't wrap if alignment is not left
16345           - Added casts for scrollbar var, base class switched types to
16346             also support RichTextBoxA
16347           - Implemented handling of scrollbar visibility flags
16348
16349         * TextBoxBase.cs:
16350           - Switched scrollbars type to RichTextBoxScrollBars to support
16351             RichTextBox
16352           - Added tracking of canvas width/height
16353           - Switched scrollbars to be not selectable (to keep focus on text)
16354           - Added central CalculateDocument() method to handle all redraw
16355             requirements
16356           - Added ReadOnly support
16357           - Added WordWrap support
16358           - Fixed handling of Enter key (we now treat it as a DialogKey)
16359           - Fixed caret positioning when h or v scroll is not zero
16360           - Fixed placing/generation of vertical scrollbar
16361           - Added CalculateScrollBars() method to allow updating scrollbar
16362             limits and visibility
16363           - Fixed handling of horizontal scroll
16364           - Added handling of vertical scroll
16365           - Implemented auto-'jump' when caret moves to close to a left or
16366             right border and there is text to be scrolled into view (currently
16367             there's the potential for a stack overflow, until a bug in
16368             scrollbar is fixed)
16369
16370 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16371         
16372         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16373
16374 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16375
16376         * Mime.cs:
16377         - added inodes.
16378         - return application/x-zerosize for files with size zero
16379           (if no extension pattern matches).
16380         - check matches collection for strings too.
16381         - return only the first mime type if the name value
16382           collection has more than one mime type.
16383
16384 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16385         
16386         * PropertyGrid.cs: Cleaned up some TODOs
16387         * PropertyGridView.cs: Added support for UITypeEditors
16388
16389 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16390         
16391         * DataGrid.cs: clears cached value
16392
16393 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16394
16395         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16396         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16397         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16398         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16399         
16400 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16401
16402         * ThemeWin32Classic.cs: fixes colour
16403
16404 2005-06-15  Peter Bartok  <pbartok@novell.com>
16405
16406         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16407         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16408         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16409         * Control.cs: Added some MWFCategory and MWFDescription attributes
16410         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16411
16412 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16413
16414         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16415         usage
16416
16417 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16418
16419         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16420         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16421         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16422         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16423         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16424         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16425
16426 2005-06-13  Jackson Harper  <jackson@ximian.com>
16427
16428         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16429         isn't printed when the user enables dropping. (X11 does accept
16430         drops).
16431         
16432 2005-06-13  Jackson Harper  <jackson@ximian.com>
16433
16434         * TreeView.cs: Remove some TODOS.
16435
16436 2005-06-13  Jackson Harper  <jackson@ximian.com>
16437
16438         * Form.cs: Hook into the mdi framework.
16439         * MdiClient.cs: Use the base control collections add method so
16440         parents get setup correctly. Set the default back colour and dock
16441         style.
16442         * MdiChildContext.cs: New class, this bad actor handles an
16443         instance of an MDI window. Right now there is only basic
16444         support. You can drag, close, and resize windows. Minimize and
16445         Maximize are partially implemented.
16446
16447 2005-06-13  Jackson Harper  <jackson@ximian.com>
16448
16449         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16450         freaky when both vals are negative. NOTE: There are probably other
16451         places in XplatUIX11 that this needs to be done.
16452
16453 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16454
16455         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16456         * DataGridColumnStyle.cs: fixes signature
16457
16458 2005-06-12  Jackson Harper  <jackson@ximian.com>
16459
16460         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16461         windows.
16462
16463 2005-06-11  Jackson Harper  <jackson@ximian.com>
16464
16465         * StatusBarPanel.cs: Signature cleanups. Implement
16466         BeginInit/EndInit.
16467
16468 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16469
16470         * DataGridTextBoxColumn.cs: Honors aligment
16471         * GridColumnStylesCollection.cs: Contains is case unsensitive
16472         * GridTableStylesCollection.cs: several fixes
16473         * DataGridTableStyle.cs: default column creation
16474         * DataGridDrawingLogic.cs: fixes
16475         * CurrencyManager.cs: ListName property
16476         * DataGrid.cs: multiple styles support
16477         * DataGridColumnStyle.cs: fixes
16478         
16479
16480 2005-06-10  Peter Bartok  <pbartok@novell.com>
16481
16482         * Control.cs(Select): Moved SetFocus call to avoid potential
16483           loops if controls change the active control when getting focus
16484         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16485           the up/down buttons
16486
16487 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16488
16489         * ImageListConverter.cs: Implemented
16490
16491 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16492
16493         * MonthCalendar.cs: Wired in NumericUpDown control for year
16494
16495 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16496
16497         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16498           DoubleClick events, since they are not meant to be fired.
16499
16500 2005-06-09  Peter Bartok  <pbartok@novell.com>
16501
16502         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16503           Jonathan's standalone controls into MWF, implemented missing
16504           events, attributes and methods; added xxxAccessible classes
16505         * AccessibleObject.cs: Made fields internal so other classes
16506           can change them if needed
16507
16508 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16509
16510         * UpDownBase.cs: Complete implementation
16511         * NumericUpDown.cs: Complete implementation
16512         * DomainUpDown.cs: Complete implementation
16513
16514 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16515
16516         * DataGridTextBoxColumn.cs: drawing fixes
16517         * DataGridCell.cs: fixes ToString method to match MSNet
16518         * DataGridTableStyle.cs: fixes
16519         * DataGridBoolColumn.cs: fixes, drawing
16520         * DataGridDrawingLogic.cs: fixes, new methods
16521         * DataGridTextBox.cs: Keyboard and fixes
16522         * DataGrid.cs:
16523                 - Keyboard navigation
16524                 - Scrolling fixes
16525                 - Row selection (single, multiple, deletion, etc)
16526                 - Lots of fixes
16527         
16528 2005-06-07  Jackson Harper  <jackson@ximian.com>
16529
16530         * ThemeWin32Classic.cs: Clear the background area when drawing
16531         buttons.
16532
16533 2005-06-06  Peter Bartok  <pbartok@novell.com>
16534
16535         * ImageListStreamer.cs: Fixed signature for GetData
16536         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16537         * ComboBox.cs:
16538           - Added missing ChildAccessibleObject class
16539           - Added missing OnXXXFocus overrides, switched to using those
16540             instead of the event handler
16541         * Control.cs:
16542           - Added Parent property for ControlAccessibleObject
16543           - Fixed signatures
16544           - Fixed attributes
16545           - Added ResetBindings()
16546         * ListBindingConverter.cs: Implemented some methods
16547         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16548         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16549         * ContainerControl.cs: Fixed signature, now subscribing to the
16550           ControlRemoved event instead of overriding the handler, LAMESPEC
16551         * CurrencyManager.cs: Added missing attribute
16552         * MonthCalendar.cs: Added missing properties
16553
16554 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16555
16556         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16557         
16558 2005-06-06  Gaurav Vaish and Ankit Jain
16559
16560         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16561         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16562         
16563 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16564
16565         * Control.cs: fixes CreateParams Width / Height.
16566
16567 2005-06-05  Peter Bartok  <pbartok@novell.com>
16568
16569         * Win32DnD.cs: Removed compilation warnings
16570
16571 2005-06-05  Peter Bartok  <pbartok@novell.com>
16572
16573         * Control.cs (CreateParams): Since we don't know if one of the
16574           properties we use is overridden, lets make sure if we fail accessing
16575           we continue with a backup plan
16576
16577 2005-06-05  Peter Bartok  <pbartok@novell.com>
16578
16579         * Win32DnD.cs:
16580           - Removed debug output
16581           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16582             struct
16583           - Plugged resource leak
16584         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16585           MS size
16586
16587 2005-06-05  Peter Bartok  <pbartok@novell.com>
16588
16589         * XplatUIWin32.cs: Removed DnD code
16590         * Win32DnD.cs: Implemented drop source and drop target functionality
16591
16592 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16593
16594         * UpDownBase.cs: remove duplicate addition of event, enable some code
16595         that was commented out.
16596         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16597         Validate input when a key is pressed. It works fine now for every
16598         combination of Hexadecimal. Only missing some drawing love when sharing
16599         space with other controls.
16600
16601 2005-06-04  Peter Bartok  <pbartok@novell.com>
16602
16603         * Control.cs:
16604           - We need to pass a window for DragDrop, so enable callback events
16605           - Added DnD callback events when being a DragSource
16606         * XplatUI.cs (StartDrag): Added window handle argument
16607         * XplatUIDriver.cs (StartDrag): Added window handle argument
16608         * QueryContinueDragEventArgs: Made fields internally accessible so
16609           drivers can set them
16610         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16611           can set them
16612
16613 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16614
16615         * DataGridTextBoxColumn.cs: column text editing
16616         * DataGridTableStyle.cs: Respect columns styles created by the user
16617         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16618         * DataGridBoolColumn.cs: bool column editing
16619         * DataGrid.cs: fixes to scrolling, properties, etc
16620         * DataGridTextBox.cs: handle keyboard
16621         * DataGridColumnStyle.cs: fixes
16622
16623 2005-06-02  Jackson Harper  <jackson@ximian.com>
16624
16625         * ImageListStreamer.cs: Somewhat broken implementation of
16626         GetObjectData. The RLE needs some work to match MS properly.
16627
16628 2005-06-02  Jackson Harper  <jackson@ximian.com>
16629
16630         * X11Dnd.cs: Attempting to keep at least one file in MWF
16631         monostyled.
16632
16633 2005-06-02  Peter Bartok  <pbartok@novell.com>
16634
16635         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16636           that way
16637
16638 2005-06-02  Peter Bartok  <pbartok@novell.com>
16639
16640         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16641         * XplatUI.cs: Added DoDragDrop() method
16642         * XplatUIDriver.cs: Added DoDragDrop() method
16643
16644 2005-06-02  Jackson Harper  <jackson@ximian.com>
16645
16646         * Splitter.cs: Implement BorderStyle.
16647
16648 2005-06-02  Jackson Harper  <jackson@ximian.com>
16649
16650         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16651         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16652         X11 using XDND.
16653
16654 2005-06-02  Peter Bartok  <pbartok@novell.com>
16655
16656         * DataObject.cs:
16657           - Added Data setter
16658           - Fixed broken insertion code for SetData, now also
16659             overwrites any existing entry of the same format name
16660         * Hwnd.cs: Added list of pointers that automatically gets
16661           freed when the window is disposed
16662         * XplatUI.cs: Call driver initialization method when loading
16663           a driver
16664         * Control.cs:
16665           - OnDragLeave takes EventArgs, not DragEventArgs
16666           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16667             supported
16668           - Forces style update when drop state changes
16669         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16670           not perfect since we cannot (yet) call the IDataObject.GetData()
16671           method, we keep getting 0x80004005 error, dunno why)
16672
16673 2005-06-02  Peter Bartok  <pbartok@novell.com>
16674
16675         * DragEventArgs.cs: Make fields internal so we can cache the
16676           object and re-set the fields from XplatUI
16677
16678 2005-06-02  Jackson Harper  <jackson@ximian.com>
16679
16680         * Control.cs: Add some internal methods so the DnD subsystem can
16681         raise DnD events. Also call into the driver when AllowDrop is set.
16682         * XplatUI.cs:
16683         * XplatUIDriver.cs: New method for setting whether or not a window
16684         is allowed to accept drag and drop messages.
16685                 
16686 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16687         
16688         * ScrollBar.cs: Make sure that values sent in Scroll events
16689         are always between Maximum and Minimum.
16690
16691 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16692
16693         * Menu.cs: Call MenuChanged when menuitem visibility has been
16694         changed.
16695         * MenuItem.cs: Rebuild menu when item is (not) visible.
16696         * MainMenu.cs: MainMenu has special MenuChanged.
16697         * Theme.cs: Caption and FrameBorderSize are not fixed.
16698         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16699         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16700         * XplatUIX11.cs,
16701         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16702         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16703
16704 2005-05-30  Jackson Harper  <jackson@ximian.com>
16705
16706         * DataFormat.cs: We can't statically initialize this stuff because
16707         it calls into the xplatui and could create a loop. So we lazy init
16708         it.
16709
16710 2005-05-28  Jackson Harper  <jackson@ximian.com>
16711
16712         * Control.cs: Proper implementation of Product(Name/Version).
16713
16714 2005-05-27  Jackson Harper  <jackson@ximian.com>
16715
16716         * DataObject.cs: Dont crash if no data is found.
16717
16718 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
16719         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
16720                 as per status page, guessing it should be set to true
16721
16722 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
16723
16724         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
16725         * DataGridTableStyle.cs: set proper formatting text, def header text
16726         * ThemeWin32Classic.cs: new themable paramaters
16727         * DataGridBoolColumn.cs: paint check box, get data, fixes
16728         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
16729         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
16730         * DataGridColumnStyle.cs: fixes
16731         * Theme.cs: new themable paramaters
16732                 
16733 2005-05-26  Peter Bartok  <pbartok@novell.com>
16734
16735         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
16736
16737 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16738         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
16739
16740 2005-05-24  Peter Bartok  <pbartok@novell.com>
16741
16742         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
16743           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
16744           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
16745           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
16746           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
16747           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
16748           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
16749           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
16750           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
16751           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
16752           missing attributes, etc
16753         * DataGridPreferredColumnWidthTypeConverter.cs: Added
16754
16755 2005-05-24  Peter Bartok  <pbartok@novell.com>
16756
16757         * Help.cs: Added, implemented trivial functions, throws up MessageBox
16758           when user tries to get help
16759         * DataObject.cs, DataFormats.cs, LinkArea.cs,
16760           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
16761           to suppress warnings
16762         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
16763           avoid unreachable code warning
16764
16765 2005-05-20  Peter Bartok  <pbartok@novell.com>
16766
16767         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
16768
16769 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16770
16771         * DataGridTextBoxColumn.cs: Basic painting methods
16772         * DataGridTableStyle.cs: Set table style in the column
16773         * ThemeWin32Classic.cs: Use Theme for colors
16774         * DataGridDrawingLogic.cs: Implement more drawing
16775         * DataGrid.cs: drawing, theming, enhacements, fixes
16776         * DataGridColumnStyle.cs: fixes, drawing
16777         * Theme.cs: theming for Datagrid
16778
16779 2005-05-20  Peter Bartok  <pbartok@novell.com>
16780
16781         * Cursor.cs: Implemented GetObjectData() method
16782
16783 2005-05-20  Peter Bartok  <pbartok@novell.com>
16784
16785         * Cursors.cs: Added setting of cursor name
16786         * Cursor.cs:
16787           - Implemented constructors
16788           - Implemented Draw and DrawStretched
16789           - Implemented Current property
16790           - Implemented == and != operators
16791           - Implemented Dispose()
16792           - Implemented ToString
16793           - Added missing attributes
16794         * XplatUIX11.cs:
16795           - Added missing reset for OverrideCursor when DoEvents is called
16796           - Fixed creation of cursor, logic was wrong
16797         * XplatUIWin32.cs:
16798           - Added missing reset for OverrideCursor when DoEvents is called
16799           - Fixed creation of cursor, bit arrays were swapped
16800         * Clipboard.cs: Removed obsolete MonoTODO attribute
16801
16802 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16803
16804         * ComboBox.cs: fixes OnSelectedItemChanged
16805         * ControlBindingsCollection.cs: fixes item range check
16806
16807 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
16808
16809         * UpDownBase.cs:
16810                 - Calc preferred height properly
16811                 - Implement missing properties
16812                 
16813         * NumericUpDown.cs: Implement missing events
16814
16815 2005-05-19  Jackson Harper  <jackson@ximian.com>
16816
16817         * TabControl.cs: New method that resizes the tab pages before
16818         redrawing them. This as needed as the control is double buffered
16819         and sizing will not be recalculated unless ResizeTabPages is
16820         called.
16821         * TabPage.cs: Set base.Text instead of Text in the constructor so
16822         that UpdateOwner does not get called. Use the new Redraw method of
16823         TabControl instead of Refresh so the sizing is recalculated.
16824         * ThemeWin32Classic.cs: Draw the text for button tabs.
16825
16826 2005-05-19  Jackson Harper  <jackson@ximian.com>
16827
16828         * Control.cs: Paint control background images. Fix typo where
16829         PaintControlBackground was not getting called correctly.
16830
16831 2005-05-19  Peter Bartok  <pbartok@novell.com>
16832
16833         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
16834           I can investigate, apparently I broke FileDialog
16835
16836 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
16837
16838         * AxHost.cs: Some simple properties.
16839         * Control.cs: window must be accessible after ctor.
16840         * Form.cs: Added TransparencyKey property.
16841         * TextBoxBase.cs: Implemented Clear. Text property can be null.
16842         * XplatUIWin32.cs: SetBorderStyle implemented.
16843
16844 2005-05-18  Peter Bartok  <pbartok@novell.com>
16845
16846         * DataObject.cs: Entries are not global but particular to the
16847           DataObject, now it behaves that way
16848         * XplatUIWin32.cs: Implemented Clipboard methods
16849         * Clipboard.cs: Implemented
16850         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
16851         * XplatUIOSX.cs: Updated to final clipboard prototypes
16852         * XplatUIX11.cs: Implemented Clipboard methods
16853         * XplatUIDriver.cs: Updated to final clipboard prototypes
16854         * XplatUIStructs.cs:
16855           - Added BITMAPINFOHEADER struct
16856           - Added ClipboardFormats enum
16857         * X11Structs.cs:
16858           - Added ClipboardStruct
16859           - Added Atom enum items for clipboard types
16860           - Fixed atom types for Selection event structures
16861         * DataFormats.cs:
16862           - Added internal properties and methods for drivers to enumerate
16863             all known formats
16864           - Switched initialization method to allow drivers to assign their
16865             own IDs even for the MS predefined clipboard IDs
16866         * XplatUI.cs: Updated to final clipboard interface
16867
16868 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16869         * PropertyGridView.cs: Fixed compiler warnings.
16870
16871 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
16872         * PropertyGrid.cs: Added some event calls
16873         * PropertyGridView.cs: Change drawing code to use double buffering
16874         * PropertyGridTextBox.cs: Changed Text property name
16875         * GridItem.cs: Added Bounds property.
16876         * GridEntry.cs: Added Bounds property.
16877
16878 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
16879
16880         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
16881         since GetType() may not return the correct type if the object is
16882         a remoting proxy.
16883
16884 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
16885
16886         * TreeNodeCollection.cs: fixes get/set item ranges
16887         
16888 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16889
16890         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
16891                 
16892 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
16893
16894         * ComboBox.cs: Fix item range comparation
16895         * ListView.cs: Fix item range comparation
16896
16897 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
16898
16899         * FontDialog.cs:
16900           - Clear example panel when OnPaint is called
16901           - Better solution for displaying the example panel text
16902           - Select default indexes in the ListBoxes
16903
16904 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16905
16906         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
16907
16908 2005-05-11  Peter Bartok  <pbartok@novell.com>
16909
16910         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
16911         * SelectionRangeConverter.cs: Implemented
16912         * PropertyGrid.cs: Fixed attribute value
16913         * Control.cs:
16914           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
16915           - Added Sebastien Pouliot's CAS Stack Propagation fixes
16916         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
16917           that's common to all drivers. First methods to go there are
16918           Sebastien Pouliot's CAS Stack Propagation helper methods
16919         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
16920           Sebastien Pouliot for CAS Stack Propagation
16921
16922 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
16923
16924         * OSXStructs.cs:
16925           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
16926
16927 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
16928
16929         * DataGridTextBoxColumn.cs: fixed some members
16930         * GridColumnStylesCollection.cs: indexed column is case insensitive
16931         * DataGridTableStyle.cs: fixes
16932         * ThemeWin32Classic.cs: add new theme parameter
16933         * Theme.cs: add new theme parameter
16934         * DataGridDrawingLogic.cs: Datagrid's drawing logic
16935         * DataGrid.cs: fixes, new internal properties, etc.
16936         * DataGridColumnStyle.cs: allows to set grid value
16937         *
16938
16939 2005-05-10  Peter Bartok  <pbartok@novell.com>
16940
16941         * AccessibleObject.cs:
16942           - Removed MonoTODO attribute on help, method is correct
16943           - Fixed Bounds property
16944         * AxHost.cs: Moved MonoTODO
16945         * ButtonBase.cs: Now setting AccessibleObject properties
16946         * RadioButton.cs: Setting proper AccessibleObject role
16947         * CheckBox.cs: Setting proper AccessibleObject role
16948         * ControlBindingsCollection.cs: Added properties, methods and attributes
16949         * DataFormats.cs: Fixed awkward internal API, and changed to enable
16950           userdefined DataFormats.Format items as well
16951         * ListControl.cs: Removed data_member from the public eye
16952         * OpenFileDialog.cs:
16953           - Made class sealed
16954           - Added missing attributes
16955         * SaveFileDialog.cs: Added missing attributes
16956         * ImageListStreamer.cs: Fixed code that caused warnings
16957         * LinkLabel.cs: Removed unreachable code
16958         * TreeView.cs: Fixed code that caused warnings
16959         * PropertyGridView.cs: Fixed code that caused warnings
16960         * GridColumnStylesCollection.cs: Added missing attributes
16961         * GridTableStylesCollection: Added missing attribute
16962         * PropertyManager: Added .ctor
16963         * SecurityIDType: Added
16964         * DataObject.cs: Implemented class
16965         * LinkArea.cs: Added missing attribute
16966
16967 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
16968
16969         * RadioButton.cs: call base method to allow to fire OnClick event
16970         * UpDownBase.cs: OnMouseUp call base method
16971         * CheckedListBox.cs: call base method before returning
16972         * TrackBar.cs: call base method before returning
16973         
16974
16975 2005-05-10  Peter Bartok  <pbartok@novell.com>
16976
16977         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
16978           for messages
16979
16980 2005-05-10  Peter Bartok  <pbartok@novell.com>
16981
16982         * DataFormats.cs: Implemented
16983         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
16984           XplatUIX11.cs: Added Clipboard APIs
16985         * XplatUIWin32.cs: Implemented Clipboard APIs
16986         * FolderBrowserDialog.cs: Added missing event, attributes
16987
16988 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
16989
16990         * CheckBox.cs: call base method to allow to fire OnClick event
16991
16992 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
16993
16994         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
16995
16996 2005-05-06  Peter Bartok  <pbartok@novell.com>
16997
16998         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
16999         * Screen.cs: Implemented
17000         * HelpNavigator.cs: Added
17001         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
17002           property
17003         * HelpProvider.cs: Implemented all we can do until we have a CHM
17004           help library (which means that "What's This" does work now)
17005
17006 2005-05-06  Jackson Harper  <jackson@ximian.com>
17007
17008         * XplatUIX11.cs: Fix waking up the main loop.
17009                 
17010 2005-05-05  Peter Bartok  <pbartok@novell.com>
17011
17012         * XplatUI.cs: Updated revision
17013         * Form.cs: Removed enless loop
17014         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
17015         * Label.cs (OnPaint): Added call to base.OnPaint()
17016         * ToolTip.cs: Made ToolTipWindow reusable for other controls
17017         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
17018         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
17019         * AxHost.cs: Added
17020         * ButtonBase.cs: Moved base.OnPaint() call to end of method
17021         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
17022           to ToolTip.ToolTipWindow for drawing and size methods; this allows
17023           reuse of ToolTipWindow by other controls
17024         * SizeGrip.cs: Moved base.OnPaint() call to end of method
17025         * XplatUIX11.cs: Now clipping drawing area (experimental)
17026         * PictureBox.cs: Moved base.OnPaint() call to end of method
17027         * Theme.cs: Fixed ToolTip abstracts to match new format
17028         * ErrorProvider.cs: Implemented
17029
17030 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
17031
17032         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
17033         * LinkLabel.cs:
17034                 - Adds cursors
17035                 - Handles focus
17036                 - Implements LinkBehavior
17037                 - Fixes many issues
17038
17039 2005-05-03  Jackson Harper  <jackson@ximian.com>
17040
17041         * ListView.cs: Calculate the scrollbar positioning on resize and
17042         paint, so they get put in the correct place.
17043
17044 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17045
17046         * ColorDialogs.cs: The small color panels are now handled by
17047           SmallColorControl. This fixes drawing of the focus rectangle
17048           and adds a 3D border.
17049
17050 2005-05-03  Peter Bartok  <pbartok@novell.com>
17051
17052         * Control.cs: Modified version of Jonathan Chamber's fix for
17053           double-buffering
17054
17055 2005-05-03  Jackson Harper  <jackson@ximian.com>
17056
17057         * ListView.cs: Remove redraw variable. Control now handles whether
17058         or not a redraw needs to be done, and will only raise the paint
17059         event if redrawing is needed.
17060
17061 2005-05-03  Jackson Harper  <jackson@ximian.com>
17062
17063         * Splitter.cs: No decorations for the splitter form. Cache the
17064         hatch brush.
17065
17066 2005-05-03  Jackson Harper  <jackson@ximian.com>
17067
17068         * TreeView.cs: Use dashed lines to connect nodes. Use the
17069         ControlPaint method for drawing the focus rect instead of doing
17070         that in treeview.
17071
17072 2005-05-02  Peter Bartok  <pbartok@novell.com>
17073
17074         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17075
17076 2005-04-29  Jackson Harper  <jackson@ximian.com>
17077
17078         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17079         entire image buffer. Just clear the clipping rectangle.
17080
17081 2005-04-29  Jackson Harper  <jackson@ximian.com>
17082
17083         * ThemeWin32Classic.cs: Don't draw list view items that are
17084         outside the clipping rectangle.
17085
17086 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17087
17088         * ListBox.cs: added horizontal item scroll
17089
17090 2005-04-29  Jackson Harper  <jackson@ximian.com>
17091
17092         * ThemeWin32Classic.cs: Remove some old debug code that was
17093         causing flicker with the new double buffering code.
17094
17095 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17096
17097         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17098         behave like combobox and comboboxlist (still not sure if this is
17099         correct though).
17100
17101 2005-04-28  Jackson Harper  <jackson@ximian.com>
17102
17103         * ThemeWin32Classic.cs: Don't fill the middle of progress
17104         bars. This fills areas outside of the clip bounds that don't need
17105         to be filled.
17106
17107 2005-04-28  Jackson Harper  <jackson@ximian.com>
17108
17109         * Control.cs: Don't expose functionality to touch the image buffers.
17110         * ProgressBar.cs:
17111         * ListView.cs: We do not need to (and no longer can) manipulate
17112         the image buffers directly. All of this is handled by Control.
17113
17114 2005-04-28  Peter Bartok  <pbartok@novell.com>
17115
17116         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17117           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17118           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17119
17120 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17121
17122         * Combobox:
17123                 - Adjust control's height for non-simple comboboxes (bug fix)
17124                 - Remove dead code
17125         * MenuAPI.cs: remove unused var
17126         * ScrollBar.cs: remove unsed var
17127                  
17128         * ListBox.cs: unselect items when clearing
17129
17130 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17131
17132         * ListControl.cs: honors OnPositionChanged and default Selected Item
17133         * ListBox.cs: unselect items when clearing
17134
17135 2005-04-27  Jackson Harper  <jackson@ximian.com>
17136
17137         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17138         if a "correct" keyboard is not found. This will make us not crash,
17139         but might give some users bad keyboard layouts...seems to be the
17140         same thing rewind does.
17141
17142 2005-04-27  Jackson Harper  <jackson@ximian.com>
17143
17144         * BindingManagerBase.cs: Attach the current/position changed
17145         handlers to their respective events.
17146
17147 2005-04-27  Jackson Harper  <jackson@ximian.com>
17148
17149         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17150         not just a blit.
17151         * ThemeWin32Classic.cs: Don't fill the background for picture
17152         boxes. This could overright user drawing.
17153         * ComboBox.cs: Just fill the clipping rect not the entire client
17154         rect when drawing the background. This prevents pieces of the
17155         image buffer from getting overwritten and is theoretically faster.
17156
17157 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17158
17159         * ComboBox.cs: Databinding support fixes, fire missing events
17160         * ListControl.cs: implement missing methods and properties, fixes
17161         * ThemeWin32Classic.cs: Databiding support on Drawing
17162         * CheckedListBox.cs: Databinding support fixes, fire missing events
17163         * ListBox.cs: Databinding support fixes, fire missing events
17164         
17165 2005-04-25  Peter Bartok  <pbartok@novell.com>
17166
17167         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17168
17169 2005-04-25  Jackson Harper  <jackson@ximian.com>
17170
17171         * TreeView.cs: Use the horizontal scrollbars height not width when
17172         determining how much of the client area is available.
17173
17174 2005-04-25  Jackson Harper  <jackson@ximian.com>
17175
17176         * Control.cs: Double buffering is handled differently now. As per
17177         the spec, the extra buffer is created in the WM_PAINT message and
17178         passed down to the control's drawing code.
17179         * GroupBox.cs:
17180         * Label.cs:
17181         * CheckBox.cs:
17182         * ProgressBar.cs:
17183         * RadioButton.cs:
17184         * ColorDialog.cs:
17185         * ComboBox.cs:
17186         * PropertyGridView.cs:
17187         * UpDownBase.cs:
17188         * MessageBox.cs:
17189         * MenuAPI.cs:
17190         * ListView.cs:
17191         * ButtonBase.cs:
17192         * SizeGrip.cs:
17193         * ScrollBar.cs:
17194         * ListBox.cs:
17195         * TrackBar.cs:
17196         * ToolBar.cs:
17197         * PictureBox.cs:
17198         * DateTimePicker.cs:
17199         * StatusBar.cs:
17200         * TreeView.cs: Update to new double buffering system.
17201         * MonthCalendar.cs: Uncomment block, as Capture is now
17202         working. Update to new double buffering
17203         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17204         * PaintEventArgs.cs: New internal method allows us to set the
17205         graphics object. This is used for double buffering.
17206         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17207         rectangle. The internal paint_area var has been removed from
17208         StatusBar. The clipping rect should be used instead.
17209         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17210         * TabPage.cs: The RefreshTabs method was removed, so just call the
17211         tab controls Refresh method now.
17212         * TabControl.cs: Update to new double buffering. Make sure the
17213         handle is created before sizing the tab pages, otherwise we will
17214         get stuck in a loop.
17215
17216 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17217
17218         * LinkLabel.cs: Fix typo, bug #74719; patch
17219           from Borja Sanchez Zamorano
17220
17221 2005-04-22  Jackson Harper  <jackson@ximian.com>
17222
17223         * TreeNode.cs: Implement Handle stuff.
17224         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17225
17226 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17227
17228         * DataGridTextBoxColumn.cs: call base constructors, fixes
17229         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17230         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17231         * DataGridTableStyle.cs: implements create default column styles
17232         * DataGridBoolColumn.cs: which types can handle
17233         * DataGrid.cs: missing methods, fixes, new functionality
17234         * DataGridColumnStyle.cs: fixes
17235
17236 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17237         * FolderBrowserDialog.cs:
17238         - Use a thread to fill the TreeView
17239         - Adjusted some sizes
17240
17241 2005-04-19  Peter Bartok  <pbartok@novell.com>
17242
17243         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17244           property. Fixes #74360.
17245
17246 2005-04-19  Jackson Harper  <jackson@ximian.com>
17247
17248         * XEventQueue.cs: Lock when getting the lockqueue size.
17249         * PictureBox.cs: Call base OnPaint
17250         
17251 2005-04-19  Peter Bartok  <pbartok@novell.com>
17252
17253         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17254           messages were no longer being processed (this broke BeginInvoke)
17255
17256           
17257 2005-04-18  Jackson Harper  <jackson@ximian.com>
17258
17259         * TreeView.cs: buglet that caused node images to get drawn
17260         regardless of whether or not they were in the clipping rectangle.
17261
17262 2005-04-18  Jackson Harper  <jackson@ximian.com>
17263
17264         * CurrencyManager.cs: There are four rules for GetItemProperties:
17265         - If the type is an array use the element type of the array
17266         - If the type is a typed list, use the type
17267         - If the list contains an Item property that is not an object, use
17268         that property
17269         - use the first element of the list if there are any elements in
17270         the list.
17271         
17272 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17273
17274         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17275         click. This handles offsets for scrolling properly and reduces
17276         memory. Also fixed GetNode to not offset now that TopNode works
17277         properly.
17278         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17279         
17280 2005-04-17  Jackson Harper  <jackson@ximian.com>
17281
17282         * CursorConverter.cs: Initial implementation.
17283
17284 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17285
17286         * ListControl.cs: work towards complex data binding support on ListControl
17287         * CurrencyManager.cs: work towards complex data binding support on ListControl
17288         * ListBox.cs: work towards complex data binding support on ListControl
17289
17290
17291 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17292
17293         * GridTableStylesCollection.cs: fixes name and constructor
17294         * DataGridTableStyle.cs: fixes
17295         * DataGridBoolColumn.cs: fixes names and constructors
17296         * DataGrid.cs: define methods and properties. Some init implementations
17297         * DataGridCell.cs: define methods and properties. Some init implementations
17298         * GridTablesFactory.cs: Define methods and properties
17299
17300 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17301
17302         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17303         graphics port changes.  We still want the coordinates in global screen
17304         coordinates.
17305
17306 2005-04-14  Jackson Harper  <jackson@ximian.com>
17307
17308         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17309         check plus minus or checkbox clicks unless those features are enabled.
17310
17311 2005-04-14  Jackson Harper  <jackson@ximian.com>
17312
17313         * TreeView.cs: Add methods for setting the top and bottom visible
17314         nodes. TreeNode::EnsureVisible uses these methods.
17315         * TreeNode.cs: Implement EnsureVisible
17316
17317 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17318
17319         * Form.cs: Pospone menu assignation if the window has not been created yet
17320         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17321         size and position
17322
17323 2005-04-12  Jackson Harper  <jackson@ximian.com>
17324
17325         * TreeView.cs: Set the TopNode properly when scrolling
17326         occurs. This has the added benifit of reducing the amount of
17327         walking that needs to be done when drawing. Also removed an old
17328         misleading TODO.
17329         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17330         
17331 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17332
17333         * Timer.cs: fixes interval setting when the timer is already enabled
17334         
17335 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17336
17337         * FolderBrowserDialog.cs: First approach
17338
17339 2005-04-09  Peter Bartok  <pbartok@novell.com>
17340
17341         * FolderBrowserDialog: Added
17342
17343 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17344
17345         * LinkLabel.cs: move drawing code into the theme
17346         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17347         * Theme.cs: define DrawLinkLabel method
17348
17349 2005-04-05  Jackson Harper  <jackson@ximian.com>
17350
17351         * BindingContext.cs: Use weak references so these bad actors don't
17352         stay alive longer then they need to.
17353
17354 2005-04-05  Jackson Harper  <jackson@ximian.com>
17355
17356         * ListControl.cs: Basic implementation of complex databinding.
17357         * ComboBox.cs:
17358         * ListBox.cs: Add calls to ListControl databinding methods.
17359
17360 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17361
17362         * FileDialog.cs:
17363           - Don't change PopupButtonState to Normal when the
17364             PopupButton gets pressed several times.
17365           - Renamed ButtonPanel to PopupButtonPanel
17366
17367 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17368
17369         * ColorDialog.cs: Use cached objects instead of creating them
17370         * LinkLabel.cs: Use cached objects instead of creating them
17371         * Splitter.cs: Use cached objects instead of creating them
17372         * FontDialog.cs: Use cached objects instead of creating them
17373         * PropertyGridView.cs: Use cached objects instead of creating them
17374         * MessageBox.cs: Use cached objects instead of creating them
17375         * FileDialog.cs: Use cached objects instead of creating them
17376         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17377         * TreeView.cs: Use cached objects instead of creating them
17378         
17379 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17380
17381         * Control.cs: use Equals to compare the font since no == op
17382         * ScrollBar.cs: use Equals to compare the font since no == op
17383
17384 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17385
17386         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17387
17388 2005-04-01  Jackson Harper  <jackson@ximian.com>
17389
17390         * Binding.cs: Implement IsBinding.
17391         * BindingManagerBase.cs:
17392         * PropertyManager.cs:
17393         * CurrencyManager.cs: Add IsSuspended property.
17394
17395 2005-04-01  Jackson Harper  <jackson@ximian.com>
17396
17397         * Binding.cs: Had some IsAssignableFrom calls backwards.
17398
17399 2005-04-01  Jackson Harper  <jackson@ximian.com>
17400
17401         * Binding.cs: Handle null data members when pulling data.
17402         * PropertyManager.cs: Handle the data member being a property that
17403         does not exist.
17404
17405 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17406
17407         * DataGridTextBoxColumn.cs: fixes signature
17408         * DataGrid.cs: calls right constructor
17409
17410 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17411
17412         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17413         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17414         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17415         * DataGridTableStyle.cs: implements DataGridTableStyle
17416         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17417         * DataGridTextBox.cs: implements DataGridTextBox
17418         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17419
17420 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17421
17422         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17423
17424 2005-03-29  Peter Bartok  <pbartok@novell.com>
17425
17426         * Application.cs:
17427           - Properly implemented CompanyName property
17428           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17429             returns a path that includes CompanyName, ProductName and
17430             Version (fixes bug #70330)
17431
17432 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17433
17434         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17435           fixes bug #72588.
17436
17437 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17438
17439         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17440         
17441           - Added ReadOnly CheckBox
17442           - Further refactoring: moved some code from Open-/SaveFileDialog
17443             to FileDialog
17444
17445 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17446
17447         * OpenFileDialog.cs: Fixed CheckFileExists
17448         * FileDialog.cs:
17449           Moved FileView and DirComboBox outside FileDialog class.
17450           They can now be used outside FileDialog
17451
17452 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17453
17454         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17455         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17456
17457 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17458
17459         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17460           - Added missing CreatePrompt property in SaveDialog
17461           - Overall SaveDialog handling should be better now
17462           - Added non standard ShowHiddenFiles property
17463           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17464           - Added InitialDirectory and RestoreDirectory support
17465
17466 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17467
17468         * FileDialog.cs: Made dirComboBox usable
17469
17470 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17471
17472         * FileDialog.cs: Added Filter support (case sensitiv)
17473
17474 2005-03-24  Jackson Harper  <jackson@ximian.com>
17475
17476         * TabControl.cs: Need a couple more pixels for the lines.
17477
17478 2005-03-23  Jackson Harper  <jackson@ximian.com>
17479
17480         * TabControl.cs: Give the tab page focus when it is selected.
17481
17482 2005-03-23  Jackson Harper  <jackson@ximian.com>
17483
17484         * TabControl.cs: Account for the drawing of tabs borders when
17485         invalidating. If the slider was clicked dont do click detection on
17486         the tabs.
17487
17488 2005-03-23  Jackson Harper  <jackson@ximian.com>
17489
17490         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17491
17492 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17493
17494         * CategoryGridEntry.cs: Added
17495         * GridItem.cs: Added helper properties
17496         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17497         * GridEntry.cs: Updated code for collection
17498         * PropertyGrid.cs: Cleaned up some formatting
17499         * PropertyGridView.cs: Added drop down functionality for enums.
17500         * GridItemCollection.cs: Added enumerator logic
17501         * PropertyGridEntry.cs: Added
17502
17503 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17504
17505         * FileDialog.cs:
17506           - Removed unnecessary commented code
17507           - Fixed handling for entering the filename manually in the combobox
17508
17509 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17510
17511         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17512
17513 2005-03-18  Peter Bartok  <pbartok@novell.com>
17514
17515         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17516           them being touching the border
17517
17518 2005-03-18  Peter Bartok  <pbartok@novell.com>
17519
17520         * TextControl.cs: Quick hack to center text better
17521
17522 2005-03-18  Peter Bartok  <pbartok@novell.com>
17523
17524         * ControlPaint.cs:
17525           - Don't throw NotImplemented exceptions, just print a notice once
17526             instead (requested by Miguel). This makes running existing SWF
17527             apps a bit easier
17528         * Control.cs:
17529           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17530           - Added context menu trigger on right click
17531         * Panel.cs: Trigger invalidate on resize
17532         * StatusBar.cs:
17533           - Removed old double-buffer drawing
17534           - Added ResizeRedraw style to force proper update of statusbar
17535         * ListView.cs:
17536           - Removed debug output
17537         * ThemeWin32Classic.cs:
17538           - Fixed drawing of status bar, now draws Text property if there
17539             are no defined panels
17540
17541 2005-03-18  Jackson Harper  <jackson@ximian.com>
17542
17543         * ImageList.cs: When the image stream is set pull all the images
17544         from it.
17545         * ImageListStreamer.cs: Implement reading image list streams.
17546
17547 2005-03-18  Peter Bartok  <pbartok@novell.com>
17548
17549         * ThemeWin32Classic.cs (DrawPictureBox):
17550           - Fixed calculations for centered drawing
17551           - Fixed drawing for normal mode, not scaling the image on normal
17552
17553 2005-03-18  Peter Bartok  <pbartok@novell.com>
17554
17555         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17556           textbox
17557         * FileDialog.cs:
17558           - Made Open/Save button the accept button for FileDialog
17559           - Tied the cancel button to the IButtonControl cancel button
17560           - Save/Open now properly builds the pathname
17561           - Now handles user-entered text
17562           - Preventing crash on right-click if no item is selected
17563           - Fixed Text property, now uses contents of textbox
17564           - Fixed SelectedText property, now just returns the text part that
17565             is selected in the text box
17566
17567 2005-03-18  Jackson Harper  <jackson@ximian.com>
17568
17569         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17570         rect, make sure to de-adjust the interior rect after drawing the
17571         tab text.
17572
17573 2005-03-18  Peter Bartok  <pbartok@novell.com>
17574
17575         * MenuAPI.cs: Remove menu *before* executing selected action to
17576           prevent the menu from 'hanging around'
17577           
17578 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17579
17580         * XplatUIOSX.cs: Implemented WorkingArea property
17581
17582 2005-03-17  Peter Bartok  <pbartok@novell.com>
17583
17584         * XplatUIX11.cs: Fixed menu coord calculations
17585         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17586           for calculating offsets
17587
17588 2005-03-17  Peter Bartok  <pbartok@novell.com>
17589
17590         * Hwnd.cs: Do not consider menu presence for default client
17591           rectangle location/size
17592         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17593           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17594           translation functions
17595         * FileDialog.cs: Fixed (what I presume is a) typo
17596
17597 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17598
17599         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17600           X access (avoids X-Async errors)
17601
17602 2005-03-16  Jackson Harper  <jackson@ximian.com>
17603
17604         * TabControl.cs: Raise the SelectedIndexChanged event.
17605
17606 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17607
17608         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17609           - Removed vertical ToolBar and replaced it with a custom panel
17610             (desktop and home button already work)
17611           - Added Help button (some controls get resized or relocated then)
17612           - Draw correct text depending on Open or Save.
17613           - Fixed some typos...
17614
17615 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17616
17617         * ScrollBar.cs:
17618           - Only change Maximum and Minimum when need it (bug fix)
17619
17620 2005-03-15  Peter Bartok  <pbartok@novell.com>
17621
17622         * Form.cs: Use Handle for icon, to trigger creation if
17623           the window does not yet exist
17624         * Control.cs:
17625           - CanSelect: Slight performance improvement
17626           - Focus(): Preventing possible recursion
17627           - Invalidate(): Removed ControlStyle based clear flag setting
17628           - WM_PAINT: fixed logic for calling OnPaintBackground
17629           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17630             EraseWindowBackground if the control doesn't paint background
17631         * XplatUIWin32.cs:
17632           - Moved EraseWindowBackground() method to internal methods
17633           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17634             is sent via SendMessage on BeginPaint call on Win32
17635         * XplatUIX11.cs:
17636           - Added EraseWindowBackground() method
17637           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17638             PaintEventStart, which more closely matches Win32 behaviour
17639           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17640           - Fixed SetFocus() to properly deal with client and whole windows
17641         * Hwnd.cs: Added ErasePending property
17642         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17643         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17644
17645 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17646
17647         * XplatUIOSX.cs:
17648           - Fix hard loop when timers exist.
17649           - Fix bugs with middle and right click for 3 button mice.
17650
17651 2005-03-11  Peter Bartok  <pbartok@novell.com>
17652
17653         * XplatUIX11.cs:
17654           - get_WorkingArea: Need to call X directly, GetWindowPos only
17655             returns cached data now
17656           - Added sanity check to GetWindowPos hwnd usage
17657
17658 2005-03-11  Jackson Harper  <jackson@ximian.com>
17659
17660         * BindingManagerBase.cs: This method isn't used anymore as
17661         PullData now updates the data in the control.
17662
17663 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17664
17665         * Form.cs: fixes menu drawing on X11
17666         * MenuAPI.cs:  fixes menu drawing on X11
17667
17668 2005-03-11  Peter Bartok  <pbartok@novell.com>
17669
17670         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17671           from Jonathan Gilbert; should fix bug #73606
17672         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17673           in Screen coordinates. Thanks, Jordi.
17674         * Form.cs: Added missing attribute
17675
17676 2005-03-11  Peter Bartok  <pbartok@novell.com>
17677
17678         * Form.cs:
17679           - Rudimentary Mdi support
17680           - Removed outdated FormParent code
17681           - Implemented lots of missing properties and methods, still missing
17682             transparency support
17683           - Added missing attributes
17684           - Implemented support for MaximumBounds
17685           - Added firing of various events
17686         * XplatUI.cs: Added SetIcon() method
17687         * XplatUIDriver.cs: Added SetIcon() abstract
17688         * XplatUIOSX.cs: Stubbed out SetIcon() method
17689         * XplatUIX11.cs:
17690           - Implemented SetIcon() support
17691           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17692           - Switched to unix line endings
17693         * XplatUIWin32.cs:
17694           - Made POINT internal so for can access it as part of MINMAX
17695           - Implemented SetIcon() support
17696           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17697             native Mdi support again, might have to go managed)
17698         * Control.cs: Now fires the StyleChanged event
17699         * MdiClient.cs: Added; still mostly empty
17700
17701 2005-03-10  Peter Bartok  <pbartok@novell.com>
17702
17703         * SaveFileDialog.cs: Added emtpy file
17704
17705 2005-03-08  Peter Bartok  <pbartok@novell.com>
17706
17707         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
17708           in turn triggers OnCreateContro) when creating a handle for the
17709           first time.
17710         * TextControl.cs: Fixed endless loop in certain cases when
17711           replacing the current selection
17712
17713 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
17714
17715         * ScrollBar.cs:
17716           - Honors NewValue changes in Scroll events allowing apps to change it
17717           - Adds First and Last Scroll events
17718           - Fixes Thumb events
17719
17720 2005-03-07  Peter Bartok  <pbartok@novell.com>
17721
17722         * Hwnd.cs: Added DefaultClientRectangle property
17723         * XplatUI.cs: Now using the X11 driver Where() method, which provides
17724           more detailed debug information
17725         * XplatUIX11.cs:
17726           - Fixed size-change feedback loop, where we would pull an old size
17727             off the queue and mistakenly change our window's size to an
17728             earlier value
17729           - Now compressing ConfigureNotify events, to reduce looping and
17730             redraw issues
17731         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
17732           is called
17733
17734 2005-03-07  Jackson Harper  <jackson@ximian.com>
17735
17736         * Binding.cs: Push data pushes from data -> property. Check if the
17737         property is readonly when attempting to set it.
17738
17739 2005-03-07  Jackson Harper  <jackson@ximian.com>
17740
17741         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
17742         instead of IsSubclassOf. Pulling data now sets the value on the
17743         control.
17744         * PropertyManager.cs:
17745         * CurrencyManager.cs: Just need to pull data when updating now,
17746         because PullData will set the value on the control.
17747
17748 2005-03-04  Jackson Harper  <jackson@ximian.com>
17749
17750         * Binding.cs: Implement data type parsing and converting on pulled
17751         data. TODO: Are there more ways the data can be converted?
17752
17753 2005-03-04  Jackson Harper  <jackson@ximian.com>
17754
17755         * Binding.cs: Support <Property>IsNull checks. Also bind to the
17756         controls Validating method so we can repull the data when the
17757         control loses focus.
17758
17759 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
17760
17761         * ColumnHeader.cs:
17762           - Fixes null string format
17763           
17764         * ListView.cs:
17765           - Adds enum type checks
17766           - Fixes redrawing and recalc need after changing some properties
17767           - Fixes on focus_item set after the event
17768           - Fixes adding columns after the control has been created
17769           
17770         * ThemeWin32Classic.cs:
17771           - Fixes CheckBox focus rectangle
17772           - Fixes ColumnHeader drawing
17773
17774
17775 2005-03-03  Jackson Harper  <jackson@ximian.com>
17776
17777         * Binding.cs: Bind to <Property>Changed events so we can detect
17778         when properties are changed and update the data.
17779
17780 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
17781
17782         * ImageList.cs:
17783           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
17784           - Fixes ImageList constructor with ImageList container
17785           - Fixes image scaling (wrong parameters at DrawImage)
17786
17787 2005-02-02  Jackson Harper  <jackson@ximian.com>
17788
17789         * Binding.cs: Make property searches case-insensitive. Eliminate
17790         some duplicated code.
17791
17792 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
17793
17794         * ComboBox.cs:
17795                 - Handle focus event
17796                 - Fix scrollbar events
17797                 - Discard highlighted item if remove it
17798                 - Fixes SelectedItem with strings
17799
17800 2005-03-01  Peter Bartok  <pbartok@novell.com>
17801
17802         * Control.cs:
17803           - Fixed Visible property, now follows (once again) parent chain
17804             to return false if any control in the chain is visible=false
17805           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
17806           - Fixed several places where is_visible instead of Visible was used
17807           - Implemented FIXME related to focus selection when setting focused
17808             control to be invisible
17809
17810         * XplatUIWin32.cs: Now using proper method to find out if window is
17811           visible. Thanks to Jordi for pointing it out
17812
17813 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
17814
17815         * ComboBox.cs: show/hide scrollbar instead of creating it
17816
17817 2005-02-27  Jackson Harper  <jackson@ximian.com>
17818
17819         * CurrencyManager.cs: Add PositionChanged stuff.
17820
17821 2005-02-27  Peter Bartok  <pbartok@novell.com>
17822
17823         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
17824         * XplatUIOSX.cs: Added GetMenuOrigin() stub
17825         * XplatUIWin32.cs: Implemented GetMenuOrigin()
17826         * XplatUIX11.cs:
17827           - Implemented GetMenuDC()
17828           - Implemented GetMenuOrigin()
17829           - Implemented ReleaseMenuDC()
17830           - Implemented generation of WM_NCPAINT message
17831           - Implemented generation and handling of WM_NCCALCSIZE message
17832         * Form.cs: Added debug helper message for Jordi's menu work
17833         * Hwnd.cs:
17834           - Modified ClientRect property; added setter, fixed getter to handle
17835             setting of ClientRect
17836           - Added MenuOrigin property
17837
17838 2005-02-26  Peter Bartok  <pbartok@novell.com>
17839
17840         * XplatUIX11.cs:
17841           - Destroys the caret if a window that's being destroyed contains it
17842           - Ignores expose events coming from the X11 queue for windows that
17843             already are destroyed
17844           - Now uses the proper variable for handling DestroyNotify, before we
17845             marked the wrong window as destroyed
17846           - Improved/added some debug output
17847
17848 2005-02-26  Peter Bartok  <pbartok@novell.com>
17849
17850         * X11Keyboard.cs: Fixes to work on 64bit systems
17851
17852 2005-02-26  Peter Bartok  <pbartok@novell.com>
17853
17854         * Control.cs:
17855           - Now calling OnHandleDestroyed from DestroyHandle()
17856             instead of Dispose()
17857           - Removed bogus call to controls.Remove() from DestroyHandle()
17858
17859 2005-02-26  Peter Bartok  <pbartok@novell.com>
17860
17861         * Control.cs: Properly destroy child windows when our handle is
17862           destroyed
17863
17864 2005-02-25  Peter Bartok  <pbartok@novell.com>
17865
17866         * XplatUI.cs:
17867           - Added 'DriverDebug' define to allow tracing XplatUI API calls
17868           - Alphabetized Static Methods and Subclasses
17869
17870         * XplatUIX11.cs:
17871           - Added XException class to allow custom handling of X11 exceptions
17872           - Created custom X11 error handler, tied into XException class
17873           - Added support for MONO_XEXCEPTIONS env var to allow the user
17874             to either throw an exception on X errors or continue running
17875             after displaying the error
17876           - Added handling of DestroyNotify message
17877           - Added handler for CreateNotify message (still disabled)
17878           - Improved (tried to at least) Where method to provide file and lineno
17879         * X11Structs.cs:
17880           - Added XErrorHandler delegate
17881           - Added XRequest enumeration (to suppor translation of errors)
17882
17883 2005-02-25  Jackson Harper  <jackson@ximian.com>
17884
17885         * PropertyManager.cs: Implement editing features
17886         * CurrencyManager.cs:
17887         * Binding.cs: First attempt at UpdateIsBinding
17888         * BindingManagerBase.cs: Call UpdateIsBinding before
17889         pushing/pulling data.
17890
17891 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
17892
17893         * MenuAPI.cs: Respect disabled items
17894         * ThemeWin32Classic.cs
17895                 - Caches ImageAttributes creation for DrawImageDisabled
17896                 - Fixes vertical menu line drawing
17897                 - Draws disabled arrows in disable menu items
17898
17899 2005-02-24  Peter Bartok  <pbartok@novell.com>
17900
17901         * Hwnd.cs:
17902           - Added UserData property to allow associating arbitrary objects
17903             with the handle
17904           - Fixed leak; now removing Hwnd references from static windows array
17905         * XplatUIWin32.cs:
17906           - Fixed Graphics leak in PaintEventEnd
17907           - Removed usage of HandleData, switched over to Hwnd class
17908         * HandleData.cs: Removed, obsoleted by Hwnd.cs
17909
17910 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17911
17912         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
17913         * ScrollBar.cs: Fixes bug
17914         * TrackBar.cs: removes death code, clipping, mimize refreshes,
17915          keyboard navigation enhancements
17916
17917 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
17918
17919         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
17920         * GroupBox.cs: Add control styles
17921         * Label.cs: Add control styles
17922         * UpDownBase.cs: Add control styles
17923         * ListBox.cs: Add control styles
17924         * XplatUIWin32.cs: Fixes wrong parameter order
17925
17926
17927 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
17928
17929         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
17930
17931 2005-02-23  Jackson Harper  <jackson@ximian.com>
17932
17933         * PropertyManager.cs: Implement property binding. This doesn't
17934         seem to work yet though as (I think) there are some bugs in
17935         System.ComponentModel.PropertyDescriptor.
17936         * BindingContext.cs: Use new PropertyManager constructor.
17937
17938 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
17939
17940         * ProgressBar.cs: use clip region in ProgressBar
17941         * ThemeWin32Classic.cs: use clip region in ProgressBar
17942
17943 2004-02-22  Jackson Harper  <jackson@ximian.com>
17944
17945         * BindingsCollection.cs: Remove some debug code.
17946
17947 2005-02-22  Jackson Harper  <jackson@ximian.com>
17948
17949         * BindingContext.cs:
17950         * ControlBindingsCollection.cs:
17951         * CurrencyManager.cs:
17952         * Binding.cs:
17953         * BindingManagerBase.cs: Initial implementation
17954         * BindingsCollection.cs: Add an internal contains method that the
17955         BindingManagerBase uses to ensure bindings aren't added twice to
17956         the collection.
17957         * PropertyManager.cs: Stubbed out.
17958         * Control.cs:
17959         * ContainerControl.cs: Hook up databinding
17960         
17961 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
17962
17963         * XplatUIOSX.cs:
17964           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
17965           Fixed Invalidate/Update chain.
17966           Fixed tons of other minor bugs (this is almost a complete rewrite).
17967
17968 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
17969
17970         * ComboBox.cs: do subcontrol creation when the control is created
17971
17972 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17973
17974         * Label.cs: fixes image drawing (image and imagelist)
17975         * ThemeWin32Classic.cs: cache brushes
17976         
17977 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
17978
17979         * Form.cs: Move menu drawing code to Theme class
17980         * ComboBox.cs: Move ComboBox drawing code to Theme class
17981         * MenuItem.cs: Move menu drawing code to Theme class
17982         * MenuAPI.cs: Move menu drawing code to Theme class
17983         * ThemeWin32Classic.cs: New methods
17984         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
17985         * ListBox.cs: Move Listbox drawing code to Theme class
17986         * Theme.cs: New methods
17987
17988 2005-02-20  Peter Bartok  <pbartok@novell.com>
17989
17990         * Control.cs:
17991           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
17992             only process mnemonics on those)
17993           - Fixed event sequence for key handling; first calling
17994             ProcessKeyEventArgs now
17995         * TextBoxBase.cs:
17996           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
17997             for processing non-character keys
17998           - Fixed WM_CHAR to generate proper event sequence before processing
17999         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
18000           generation
18001
18002 2005-02-19  Peter Bartok  <pbartok@novell.com>
18003
18004         * UserControl.cs: Added TextChanged event; added attributes
18005         * SizeGrip.cs: Implemented resizing and optional display of grip
18006         * Form.cs: Fixed attribute
18007         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
18008           Changed meaning of ScrollWindow bool argument; instead of the
18009           clear attribute (which will be true usually anyway), it gives the
18010           option of moving child controls as well.
18011         * XplatUIX11.cs:
18012           - Changed to match new ScrollWindow argument
18013           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
18014             now handles the implicit parent window a WM puts around us
18015         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
18016           to work)
18017         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
18018         * TreeView.cs: Adjusted to new ScrollWindow arguments
18019
18020 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18021
18022         * Form.cs: Menu integration with non-client area
18023         * MenuItem.cs: Menu integration with non-client area
18024         * MenuAPI.cs: Menu integration with non-client area
18025
18026 2005-02-18  Peter Bartok  <pbartok@novell.com>
18027
18028         * MethodInvoker.cs: Added
18029         * MdiLayout.cs: Added
18030         * SendKeys.cs: Started implementation
18031         * ErrorIconAlignment.cs: Added
18032
18033 2005-02-18  Peter Bartok  <pbartok@novell.com>
18034
18035         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
18036         * Form.cs: Added handling for Menu-related Non-client messages
18037
18038 2005-02-17  Peter Bartok  <pbartok@novell.com>
18039
18040         * UpDownBase.cs: Fixed typo, compilation errors
18041         * DomainUpDown.cs: Fixed attribute value
18042
18043 2005-02-16  Miguel de Icaza  <miguel@novell.com>
18044
18045         * UpDownBase.cs: Attach entry events.
18046         Propagate events.
18047         Add ForeColor property, Focused, InterceptArrowKeys (interception
18048         does not work yet).
18049
18050 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
18051
18052         * Form.cs:
18053                 - Redraw non client are on Setmenu
18054                 - Calc proper menu starting point
18055
18056 2005-02-17  Peter Bartok  <pbartok@novell.com>
18057
18058         * Application.cs: Fixed message_filter check
18059
18060 2005-02-17  Peter Bartok  <pbartok@novell.com>
18061
18062         * Application.cs: Now calls registered message filters
18063         * DockStyle.cs: Fixed attribute
18064         * Form.cs: Fixed attribute
18065         * Menu.cs: Fixed attribute
18066         * ToolTip.cs: Fixed attribute
18067         * TreeNode.cs: Added missing attributes and arranged in regions
18068         * PropertyGrid.cs: Fixed signatures
18069         * TreeNodeCollection.cs: Added attributes
18070         * Splitter.cs: Added missing attributes; arranged into regions
18071         * TabPage.cs: Added missing attributes; arranged into regions
18072         * TextBoxBase.cs: Added missing attributes
18073         * TextBox.cs: Added missing attributes
18074         * ArrangeDirection.cs: Added missing attributes
18075         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18076         * ToolBarButton.cs: Fixed attributes
18077         * AnchorStyles.cs: Fixed attribute
18078         * TrackBar.cs: Fixed attributes
18079         * TabControl.cs: Added missing attributes and arranged into regions
18080         * ToolBar.cs: Fixed attribute
18081         * StatusBar.cs: Fixed signature, organized into regions and added
18082           attributes
18083         * StatusBarPanel.cs: Fixed attributes
18084         * ContentsResizedEventArgs.cs: Implemented
18085         * ContentsResizedEventHandler.cs: Implemented
18086         * DateBoldEventArgs.cs: Implemented
18087         * DateBoldEventHandler.cs: Implemented
18088         * UpDownEventArgs.cs: Implemented
18089         * UpDownEventHandler.cs: Implemented
18090         
18091 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18092
18093         * Form.cs: first Menu NC refactoring
18094         * MenuAPI.cs: first Menu NC refactoring
18095         
18096 2005-02-16  Peter Bartok  <pbartok@novell.com>
18097
18098         * ImeMode.cs: Added missing attributes
18099         * Menu.cs: Fixed attribute
18100         * GroupBox.cs: Fixed attribute
18101         * Label.cs: Fixed attribute
18102         * ColorDialog.cs (RunDialog): Removed TODO attribute
18103         * ComboBox.cs: Fixed attributes
18104         * ListControl.cs: Added missing attributes
18105         * PropertyGrid.cs: Fixed attributes
18106         * Control.cs: Fixed attributes
18107         * ListViewItem.cs: Added TypeConverter attribute
18108         * NotifyIcon.cs: Fixed attributes
18109         * ListView.cs: Fixed attributes
18110         * ButtonBase.cs: Fixed attribute
18111         * ImageList.cs: Added missing attributes
18112         * ContainerControl.cs: Fixed signature
18113         * CheckedListBox.cs: Fixed attribute; added missing attributes
18114         * Panel.cs: Fixed attributes
18115         * PropertyTabChangedEventArgs.cs: Added missing attribute
18116         * PropertyValueChangedEventArgs.cs: Added missing attribute
18117         * Binding.cs: Fixed attribute
18118         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18119         * ListBox.cs: Fixed attribute; added missing attributes;
18120         * ScrollableControl.cs: Added missing attributes
18121         * PictureBox.cs: Added missing attributes; implemented missing property
18122         * DateTimePicker.cs: Added missing attributes
18123         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18124         * MonthCalendar.cs: Fixed attributes
18125         * StatusBarPanel.cs: Added missing attributes
18126         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18127
18128 2005-02-16  Peter Bartok  <pbartok@novell.com>
18129
18130         * TextBoxBase.cs: The previous method to enforce height yet remember
18131           the requested high was less than ideal, this is an attempt to do
18132           it better.
18133         * Control.cs: Added comment about possible problem
18134         * Copyright: Updated format
18135         * GridItemType.cs: Fixed swapped values
18136
18137 2005-02-15  Jackson Harper  <jackson@ximian.com>
18138
18139         * BaseCollection.cs: Use property so we never access an
18140         uninitialized list. Also initialize the list in the property.
18141
18142 2005-02-15  Peter Bartok  <pbartok@novell.com>
18143
18144         * GroupBox.cs (ProcessMnemonic): Implemented
18145         * Label.cs (ProcessMnemonic): Implemented
18146         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18147           hotkeys
18148
18149 2005-02-15  Peter Bartok  <pbartok@novell.com>
18150
18151         * RadioButton.cs (ProcessMnemonic): Implemented
18152         * CheckBox.cs (ProcessMnemonic): Implemented
18153         * Control.cs:
18154           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18155             handling
18156           - Added internal method to allow calling ProcessMnemonic from other
18157             controls
18158         * ContainerControl.cs:
18159           - Started support for handling validation chain handling
18160           - Implemented ProcessMnemonic support
18161           - Added Select() call to Active, to make sure the active control
18162             receives focus
18163         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18164           FormParent rewrite)
18165         * ThemeWin32Classic.cs:
18166           - DrawCheckBox(): Fixed stringformat to show hotkeys
18167           - DrawRadioButton(): Fixed stringformat to show hotkeys
18168         * CommonDialog.cs: Removed WndProc override, not needed
18169
18170 2005-02-14  Peter Bartok  <pbartok@novell.com>
18171
18172         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18173           missed those in the rewrite
18174
18175 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18176
18177         * NumericUpDown.cs (Increment, ToString): Add.
18178         (DecimalPlaces): implement.
18179         
18180         Add attributes.
18181         
18182         * UpDownBase.cs: Add the designer attributes.
18183
18184 2005-02-13  Peter Bartok  <pbartok@novell.com>
18185
18186         * Panel.cs: Removed border_style, now in Control
18187         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18188           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18189
18190 2005-02-13  Peter Bartok  <pbartok@novell.com>
18191
18192         * MouseButtons.cs: Added missing attributes
18193         * XplatUIStructs.cs: Added enumeration for title styles
18194         * LeftRightAlignment.cs: Added missing attributes
18195         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18196           it compatible with Graphics.FromHwnd()
18197         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18198         * Keys.cs: Added missing attributes
18199         * SelectionRange.cs: Added missing attributes
18200         * SelectionRangeConverter.cs: Added
18201         * XplatUI.cs:
18202           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18203             ReleaseMenuDC methods
18204           - Renamed ReleaseWindow to UngrabWindow
18205           - Added proper startup notice to allow version identification
18206         * Form.cs:
18207           - Added missing attributes
18208           - Removed FormParent concept
18209         * Label.cs: Removed border_style field, now in Control
18210         * RadioButton.cs: Now properly selects RadioButton when focus is
18211           received
18212         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18213         * Control.cs:
18214           - Added missing attributes
18215           - Added borderstyle handling
18216           - Removed FormParent concept support
18217           - Fixed calls to XplatUI to match changed APIs
18218           - Fixed bug that would case us to use disposed Graphics objects
18219           - Removed unneeded internal methods
18220           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18221           - SelectNextControl(): Fixed to properly check common parents
18222         * TextBoxBase.cs: Removed border_style field (now in Control)
18223         * MessageBox.cs:
18224           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18225             fixed calculations for form size
18226           - Added support for localized strings and icons
18227           - Improved form size calculations, added border
18228         * ListView.cs: Removed border_style field (now in Control)
18229         * X11Structs.cs: Moved several structs from X11 driver here
18230         * X11Keyboard.cs: Changed debug message
18231         * Application.cs: Removed FormParent concept support
18232         * CommonDialog.cs:
18233           - Resetting end_modal flag
18234           - Removed FormParent concept support
18235         * NativeWindow.cs: Removed FormParent concept support
18236         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18237           Client area and Non-Client whole window to allow support for WM_NC
18238           messages
18239         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18240           prevent using it until it supports Hwnd as per Geoff Norton's request
18241         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18242         * PictureBox.cs: Removed border_style field, now in Control
18243         * XplatUIWin32.cs: Added new driver methods
18244
18245 2005-02-12  Peter Bartok  <pbartok@novell.com>
18246
18247         * OpacityConverter.cs: Implemented
18248         * Hwnd.cs: Internal class to support drivers that need to emulate
18249           client area/non-client area window behaviour
18250
18251 2005-02-11  Peter Bartok  <pbartok@novell.com>
18252
18253         * KeysConverter.cs: Implemented
18254
18255 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18256
18257         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18258         * LinkLabel: Added missing attributes
18259         * MainMenu.cs: fixes ToString
18260         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18261         * ListBox.cs: fixes event position
18262         * TrackBar.cs: adds missing attributes and events
18263         
18264 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18265
18266         * MenuItem.cs: Use SystemInformation and bug fixes
18267         * MenuAPI.cs: Use SystemInformation and bug fixes
18268
18269 2005-02-09  Jackson Harper  <jackson@ximian.com>
18270
18271         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18272         their keystate otherwise things like VK_MENU get stuck "on".
18273
18274 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18275
18276         * ListBox.cs: Fixes AddRange bug
18277         
18278 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18279
18280         * ProgressBar.cs
18281                 - Add missing attributes
18282                 - Add missing method
18283                 
18284         * CheckedListBox.cs: Added missing attributes
18285                 - Add missing attributes
18286                 - Remove extra method
18287         
18288         * ComboBox.cs: Added missing attributes
18289         * VScrollBar.cs: Added missing attributes
18290         * ScrollBar.cs:  Added missing attributes
18291         * ListBox.cs: Fixes signature, add missing consts
18292         * LinkArea.cs:   Added missing attributes
18293         
18294
18295 2005-02-08  Peter Bartok  <pbartok@novell.com>
18296
18297         * Menu.cs: Added missing attributes
18298         * MainMenu.cs: Added missing attributes
18299         * GroupBox.cs: Added missing attributes
18300         * Label.cs: Added missing attributes
18301         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18302         * ColorDialog.cs:
18303           - Added Instance and Options properties
18304           - Added missing attributes
18305         * Cursor.cs: Made Serializable
18306         * NotifyIcon: Added missing attributes
18307         * MenuItem.cs: Added missing attributes
18308         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18309         * Panel.cs: Added Missing attributes
18310         * MonthCalendar.cs: Fixed CreateParams
18311
18312 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18313         
18314         * LinkLabel.cs:
18315                 - Fixes signature
18316                 - Fixes issues with links
18317                 - Adds the class attributes
18318
18319 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18320         
18321         * ComboBox.cs:
18322                 - Fixes button when no items available in dropdown
18323                 - Fixes repainting problems
18324                 - Adds the class attributes
18325                 
18326 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18327
18328         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18329         the current theme.  Cache these on startup.
18330
18331 2005-02-07  Jackson Harper  <jackson@ximian.com>
18332
18333         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18334         the scrollbar buttons when they are depressed.
18335
18336 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18337
18338         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18339         Get the display size from the main displayid.  We currently dont
18340         support multiple display configurations.
18341
18342 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18343
18344         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18345
18346 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18347
18348         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18349
18350 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18351
18352         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18353
18354 2005-02-04  Jackson Harper  <jackson@ximian.com>
18355
18356         * ThemeWin32Classic.cs: Respect the clipping rect when
18357         drawing. Only fill the intersection of clips and rects so there
18358         isn't a lot of large fills.
18359         * ScrollBar.cs: Pass the correct clipping rect to the theme
18360         engine. Remove some debug code.
18361
18362 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18363         
18364         * DateTimePicker.cs:
18365                 - Fixed crash on DateTime.Parse, use Constructor instead
18366
18367 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18368         
18369         * MenuItem.cs:
18370         * MenuAPI.cs:
18371                 - Owner draw support (MeasureItem and DrawItem)
18372
18373 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18374         
18375         *  Menu.cs:
18376                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18377                 - Fixes MenuItems.Add range
18378         * MenuItem.cs:
18379                 - MergeMenu and Clone and CloneMenu functions
18380
18381 2005-02-03  Jackson Harper  <jackson@ximian.com>
18382
18383         * ScrollBar.cs: Make abstract
18384         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18385         is abstract.
18386
18387 2005-02-03  Jackson Harper  <jackson@ximian.com>
18388
18389         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18390         all the unneeded refreshes and uses invalidates with properly
18391         computed rects.
18392
18393 2005-02-03  Peter Bartok  <pbartok@novell.com>
18394
18395         * ComponentModel.cs: Added
18396         * IDataGridEditingService.cs: Added
18397         * Timer.cs: Added missing attributes
18398         * ToolTip.cs: Added missing attributes
18399
18400 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18401
18402         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18403
18404 2005-02-03  Peter Bartok  <pbartok@novell.com>
18405
18406         * ListBox.cs: Added missing attributes
18407
18408 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18409         
18410         * ListBox.cs:
18411                 - Fixes font height after font change
18412                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18413                 
18414 2005-02-02  Peter Bartok  <pbartok@novell.com>
18415
18416         * HandleData.cs: Introduced static methods to allow class
18417           to be more self-contained and track it's own HandleData objects
18418         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18419           HandleData to use new static methods
18420
18421 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18422
18423         * Combobox.cs:
18424                 - Fixes default size and PreferredHeight
18425                 - Missing events
18426                 - ObjectCollection.Insert implementation
18427                 
18428         * ListControl.cs
18429                 - Fixes signature
18430         * ListBox.cs:
18431                 - Several fixes
18432                 - ObjectCollection.Insert implementation
18433                 - No selection after clean
18434                 - Small fixes
18435
18436 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18437
18438         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18439
18440 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18441
18442         * Combobox.cs:
18443                 - Caches ItemHeight calculation for OwnerDrawVariable
18444                 - Handles dropdown properly
18445                 - Fixes several minor bugs
18446
18447 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18448
18449         * ListBox.cs:
18450                 - Fixes 71946 and 71950
18451                 - Fixes changing Multicolumn on the fly
18452                 - Fixes keyboard navigation on Multicolumn listboxes
18453
18454 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18455         
18456         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18457         crash reporter log.
18458
18459 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18460
18461         * XplatUIOSX.cs: Allow applications to actually exit.
18462
18463 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18464
18465         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18466         their parent at creation time rather than lazily later.  Fixes a major
18467         regression we were experiencing.
18468
18469 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18470
18471         * ThemeWin32Classic.cs: more date time picker painting fixes
18472         * DateTimePicker.cs: more monthcalendar drop down fixes
18473         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18474
18475 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18476
18477         * ScrollBar.cs:
18478                 - When moving the thumb going outside the control should stop the moving
18479                 - Adds the firing of missing events
18480                 - Fixes no button show if Size is not specified
18481                 - End / Home keys for keyboard navigation
18482
18483 2005-01-30  Peter Bartok  <pbartok@novell.com>
18484
18485         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18486           sanity check to prevent theoretical loop
18487         * XplatUIWin32.cs (SetVisible): Removed debug output
18488         * XplatUIX11.cs (SystrayChange): Added sanity check
18489         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18490         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18491           behaviour, valid until the X11 client window rewrite is done
18492         * TextBox.cs (ctor): Setting proper default foreground and background
18493           colors
18494
18495 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18496
18497         * Theme: Added DrawDateTimePicker to interface
18498         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18499         * DateTimePicker.cs: Created (still needs keys and painting code)
18500         * DateTimePickerFormat.cs: added
18501         * MonthCalendar.cs: fixed CreateParams for popup window mode
18502           
18503 2005-01-29  Peter Bartok  <pbartok@novell.com>
18504
18505         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18506           this should also the calculations for ligher/darker
18507         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18508
18509 2005-01-29  Peter Bartok  <pbartok@novell.com>
18510
18511         * ArrangeDirection.cs: Added
18512         * ArrangeStartingPositon.cs: Added
18513         * SystemInformation.cs: Implemented
18514         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18515           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18516           used by SystemInformation class
18517         * X11Strucs.cs: Added XSizeHints structure
18518         * MenuAPI.cs:
18519           - Fixed CreateParams to make sure the menu window is always visible
18520           - TrackPopupMenu: Added check to make sure we don't draw the
18521             menu offscreen
18522
18523 2005-01-29  Peter Bartok  <pbartok@novell.com>
18524
18525         * HandleData.cs: Added method for altering invalid area
18526         * TextBoxBase.cs: Implemented TextLength
18527
18528 2005-01-28  Peter Bartok  <pbartok@novell.com>
18529
18530         * XplatUIX11.cs: Improvement over last patch, not sending
18531           the WM_PAINT directly anymore, instead we scroll any pending
18532           exposed areas and let the system pick out the WM_PAINT later
18533
18534 2005-01-28  Peter Bartok  <pbartok@novell.com>
18535
18536         * SWF.csproj: Deleted, no longer used. Instead,
18537           Managed.Windows.Forms/SWF.csproj should be used
18538         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18539           directly, to avoid a potential race condition with the next
18540           scroll
18541
18542 2005-01-28  Peter Bartok  <pbartok@novell.com>
18543
18544         * XplatUI.cs: Made class internal
18545
18546 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18547
18548         * CheckedListBox.cs:
18549                 - Draw focus
18550                 - Fixed Drawing
18551                 - Missing methods and events
18552
18553 2005-01-27  Peter Bartok  <pbartok@novell.com>
18554
18555         * Application.cs (Run): Don't use form if we don't have one
18556
18557 2005-01-27  Peter Bartok  <pbartok@novell.com>
18558
18559         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18560
18561 2005-01-27  Peter Bartok  <pbartok@novell.com>
18562
18563         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18564         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18565         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18566         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18567         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18568         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18569         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18570         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18571         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18572         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18573         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18574         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18575
18576 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18577
18578         * Combobox.cs:
18579                 - Draw focus on Simple Combobox
18580                 - Fixes drawing issues
18581                 - fixes 71834
18582
18583 2005-01-27  Peter Bartok  <pbartok@novell.com>
18584
18585         * Form.cs:
18586           - Place window in default location, instead of hardcoded 0/0
18587           - Send initial LocationChanged event
18588         * Control.cs:
18589           - UpdateBounds after creation to find out where the WM placed us
18590           - Make sure that if the ParentForm changes location the Form
18591             is notified
18592         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18593             to the root, but to whatever the WM placed around us.
18594             Translate to root coordinates before returning toplevel
18595             coordinates
18596         * XplatUIWin32.cs: Removed debug output
18597         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18598           flag to GetWindowPos, to allow translation of coordinates on X11
18599
18600 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18601
18602         * ListBox.cs: connect LostFocus Event
18603
18604 2005-01-27  Peter Bartok  <pbartok@novell.com>
18605
18606         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18607           XplatUIX11.cs: Extended the Systray API
18608         * Form.cs: Removed debug output
18609         * Application.cs: Fixed focus assignment, always need to call
18610           XplatUI.Activate() since Form.Activate() has rules that may
18611           prevent activation
18612         * NotifyIcon.cs: Should be complete now
18613         * ToolTip.cs: Worked around possible timer bug
18614
18615 2005-01-27  Jackson Harper  <jackson@ximian.com>
18616
18617         * TabControl.cs:
18618         - Only invalidate the effected tabs when the
18619         selected index changes. This reduces drawing and gets rid of some
18620         flicker.
18621         - Only refresh if the tabs need to be shifted, otherwise only
18622         invalidate the slider button.
18623         - On windows the tabs are not filled to right if the slider is
18624         visible.
18625         
18626 2005-01-27  Jackson Harper  <jackson@ximian.com>
18627
18628         * TabControl.cs: Only refresh on mouseup if we are showing the
18629         slider. Also only invalidate the button whose state has changed.
18630
18631 2005-01-26  Peter Bartok  <pbartok@novell.com>
18632
18633         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18634         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18635           and SystrayRemove() methods
18636         * XplatUIOSX.cs: Stubbed Systray methods
18637         * XplatUIX11.cs:
18638           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18639             methods
18640           - Fixed broken XChangeProperty calls (marshalling messed up things)
18641         * X11Structs.cs: Added enums and structs required for Size hinting
18642         * NotifyIcon.cs: Added & implemented
18643
18644 2005-01-26  Jackson Harper  <jackson@ximian.com>
18645
18646         * TabControl.cs: Space vertically layed out tabs properly.
18647
18648 2005-01-26  Peter Bartok  <pbartok@novell.com>
18649
18650         * Form.cs (CreateClientParams): Always set the location to 0,0
18651           since we're a child window.
18652
18653         * Control.cs (SetVisibleCore): Always explicitly setting the location
18654           of a toplevel window, apparently X11 doesn't like to move windows
18655           while they're not mapped.
18656
18657 2005-01-26  Jackson Harper  <jackson@ximian.com>
18658
18659         * TabControl.cs: Implement FillToRight size mode with vertically
18660         rendered tabs.
18661
18662 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18663
18664         * ControlPaint.cs, ThemeWin32Classic.cs
18665                 - Fixes DrawFocusRectangle
18666
18667 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18668
18669         * MenuAPI.cs:
18670                 - MenuBar tracking only starts when item is first clicked
18671                 - Fixes menu hidding for multiple subitems
18672                 - Unselect item in MenuBar when item Executed
18673                 - Fixes bug 71495
18674
18675 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18676
18677         * ListControl.cs:
18678                 - IsInputKey for ListBox
18679         * ListBox.cs:
18680                 - Focus item
18681                 - Shift and Control item selection
18682                 - Implement SelectionMode.MultiExtended
18683                 - Fixes RightToLeft
18684         * ComboBox.cs:
18685                 - IsInputKey implemented
18686                 - Do not generate OnTextChangedEdit on internal txt changes
18687                 
18688 2005-01-23  Peter Bartok  <pbartok@novell.com>
18689
18690         * AccessibleObject.cs: Partially implemented Select()
18691         * MonthCalendar.cs: Added missing attributes and events
18692         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18693           form can properly override CreateParams.
18694         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18695           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18696           Control performs Invalidate & Update
18697         * NativeWindow (CreateHandle): Added special handling for Form
18698           and Form.FormParent classes to allow overriding of From.CreateParams
18699         * Control.cs:
18700           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18701             name 'owner'
18702           - ControlNativeWindow: Added Owner property
18703           - Removed usage of Refresh() on property changes, changed into
18704             Invalidate(), we need to wait until the queue is processed for
18705             updates, direct calls might cause problems if not all vars for
18706             Paint are initialized
18707           - Added call to UpdateStyles() when creating the window, to set any
18708             styles that CreateWindow might have ignored.
18709           - Added support for Form CreateParent overrides to UpdateStyles()
18710         * MessageBox.cs: Removed no longer needed FormParent override stuff,
18711           CreateParams are now properly overridable
18712         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
18713           CreateParams are now properly overridable
18714
18715 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
18716
18717         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
18718         OnTextBoxChanged.
18719
18720         Capture LostFocus and OnTextBoxChanged.  The later introduces a
18721         recursive invocation that I have not figured out yet.
18722
18723         Reset the timer when not using (it was accumulating).
18724
18725
18726         (OnTextBoxChanged): Set UserEdit to true here to track whether the
18727         user has made changes that require validation.
18728
18729         Reset changing to avoid loops.
18730
18731 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
18732
18733         * NumericUpDown.cs: Display value at startup.
18734
18735         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
18736         ValidateEditText.
18737
18738         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
18739         filled in.  Added some basic parsing of text.
18740
18741         Still missing the OnXXX method overrides, and figuring out the
18742         events that must be emitted.
18743
18744         * UpDownBase.cs: Handle UserEdit on the Text property.
18745         
18746 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
18747
18748         * ComboBox.cs:
18749           - Fixes IntegralHeight
18750           - ToString method
18751
18752 2005-01-21  Jackson Harper  <jackson@ximian.com>
18753
18754         * TabControl.cs: Set the SelectedIndex property when SelectedTab
18755         is set so that the page visibility is updated and the tabs are
18756         sized correctly.
18757
18758 2005-01-21  Jackson Harper  <jackson@ximian.com>
18759
18760         * TabControl.cs: Use cliping rectangle for blitting. Give the
18761         theme the clipping rect so we can do clipping while
18762         drawing. Remove some debug code.
18763
18764 2005-01-21  Jackson Harper  <jackson@ximian.com>
18765
18766         * TabPage.cs: Add a new method so tab pages can force the tab
18767         control to recalculate the tab page sizes.
18768         * TabControl.cs: UpdateOwner needs to make the tab control recalc
18769         sizes.
18770
18771 2005-01-20  Jackson Harper  <jackson@ximian.com>
18772
18773         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
18774
18775 2005-01-20  Jackson Harper  <jackson@ximian.com>
18776
18777         * TreeView.cs: Set the bounds for nodes properly. They were
18778         getting screwed up when checkboxes were not enabled, but images
18779         were.
18780
18781 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
18782
18783         * ListBox.cs:
18784                 - Owner draw support
18785                 - Fixes
18786                 
18787 2005-01-20  Jackson Harper  <jackson@ximian.com>
18788
18789         * XplatUIStructs.cs: More misc keys
18790         * X11Keyboard.cs: Ignore some control keys.
18791
18792 2005-01-20  Jackson Harper  <jackson@ximian.com>
18793
18794         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
18795         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
18796
18797 2005-01-19  Peter Bartok  <pbartok@novell.com>
18798
18799         * Control.cs: Un-selecting the control when it is loosing focus
18800
18801 2005-01-19  Jackson Harper  <jackson@ximian.com>
18802
18803         * TreeView.cs: Hook up to the text controls leave event so we can
18804         end editing when the users clicks outside the text box.
18805         
18806 2005-01-19  Jackson Harper  <jackson@ximian.com>
18807
18808         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
18809         get set in the conversion array.
18810
18811 2005-01-19  Peter Bartok  <pbartok@novell.com>
18812
18813         * Application.cs (ModalRun): Added a call to CreateControl to ensure
18814           focus is properly set
18815         * Button.cs:
18816           - Added missing attributes
18817           - removed styles, those are already set in the base class
18818         * ButtonBase.cs:
18819           - Added missing attributes
18820           - Added clip window styles
18821         * CheckBox.cs: Added missing attributes
18822         * CommonDialog.cs:
18823           - FormParentWindow.CreateParams: Added required clip styles
18824         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
18825           also filters modifier keys
18826         * MessageBox.cs:
18827           - Added assignment of Accept and Cancel button to enable Enter
18828             and Esc keys in MessageBox dialogs
18829           - FormParentWindow.CreateParams: Added required clip styles
18830         * RadioButton.cs: Added missing attributes
18831         * TextControl.cs: No longer draws selection if control does not
18832           have focus
18833         * TextBoxBase.cs:
18834           - Now draws simple rectangle around test area to make it obvious
18835             there's a control. This is a hack until we properly support borders
18836           - A few simple fixes to support selections better, now erases selected
18837             text when typing, and resets selection when using movement keys
18838
18839 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
18840
18841         * UpDownBase.cs: Added some new properties.
18842
18843         * DomainUpDown.cs: Implement a lot to get my test working.
18844
18845 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18846
18847         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
18848
18849 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18850
18851         * OSXStructs (WindowAttributes): Fixed csc complaints
18852
18853 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18854
18855         * XplayUIOSX.cs:
18856           OSXStructs.cs: Initial refactor to move enums and consts into
18857           OSXStructs and use them in the driver for greater readability.
18858
18859 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
18860
18861         * XplatUIOSX.cs: Initial support for Standard Cursors.
18862         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
18863
18864 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
18865
18866         * ComboBox.cs: ability to change style when the ctrl is already
18867         created, missing methods and events, bug fixes, signature fixes
18868
18869 2005-01-19  Peter Bartok  <pbartok@novell.com>
18870
18871         * Cursors.cs (ctor): Added ctor to fix signature
18872
18873 2005-01-18  Peter Bartok  <pbartok@novell.com>
18874
18875         * Button.cs: Implemented DoubleClick event
18876         * ButtonBase.cs:
18877           - Fixed keyboard handling to behave like MS, where the press of
18878             Spacebar is equivalent to a mousedown, and the key release is
18879             equivalent to mouseup. Now a spacebar push will give the same
18880             visual feedback like a mouse click.
18881           - Added missing attributes
18882           - Added ImeModeChanged event
18883           - Added support for generating DoubleClick event for derived classes
18884         * CheckBox.cs:
18885           - Implemented DoubleClick event
18886           - Added missing attributes
18887         * CommonDialog.cs: Added missing attribute
18888         * ContextMenu.cs: Added missing attributes
18889         * RadioButton.cs:
18890           - AutoChecked buttons do not allow to be unselected when clicked
18891             (otherwise we might end up with no selected buttons in a group)
18892           - Added missing attributes
18893           - Implemented DoubleClickEvent
18894         * ThreadExceptionDialog.cs: Enabled TextBox code
18895
18896 2005-01-18  Peter Bartok  <pbartok@novell.com>
18897
18898         * Form.cs: Removed debug output
18899         * Button.cs: Added support for DoubleClick method
18900
18901 2005-01-18  Peter Bartok  <pbartok@novell.com>
18902
18903         * Form.cs:
18904           - Added method to parent window that allows triggering size
18905             calculations when a menu is added/removed
18906           - set_Menu: Cleaned up mess from early days of Form and Control,
18907             now properly triggers a recalc when a menu is added/removed
18908           - Added case to select form itself as focused form if no child
18909             controls exist
18910           - Added PerformLayout call when showing dialog, to ensure properly
18911             placed controls
18912         * Control.cs:
18913           - Select(): Made internal so Form can access it
18914           - Focus(): Only call Xplat layer if required (avoids loop), and sets
18915             status
18916         * Application.cs (Run): Removed hack and calls PerformLayout instead
18917           to trigger calculation when Form becomes visible
18918
18919 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
18920
18921         * ComboBox.cs: fixes for ownerdraw
18922
18923 2005-01-18  Peter Bartok  <pbartok@novell.com>
18924
18925         * TextControl.cs:
18926           - Sentinel is no longer static, each Document gets it's own, this
18927             avoids locking or alternatively overwrite problems when more
18928             than one text control is used simultaneously.
18929           - Switched to use Hilight and HilightText brushes for text selection
18930
18931         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
18932
18933 2005-01-18  Peter Bartok  <pbartok@novell.com>
18934
18935         * Control.cs:
18936           - Hooked up the following events:
18937                 o ControlAdded
18938                 o ControlRemoved
18939                 o HandleDestroyed
18940                 o ImeModeChanged
18941                 o ParentChanged
18942                 o TabStopChanged
18943                 o Invalidated
18944                 o SystemColorsChanged
18945                 o ParentFontChanged
18946                 o Move
18947           - Removed debug output
18948           - Added a call to the current theme's ResetDefaults when a color change
18949             is detected
18950         * Form.cs: Now setting the proper ImeMode
18951         * Theme.cs: Defined a method to force recreation of cached resources
18952           and rereading of system defaults (ResetDefaults())
18953         * ThemeWin32Classic.cs: Added ResetDefaults() stub
18954
18955 2005-01-17  Peter Bartok  <pbartok@novell.com>
18956
18957         * Control.cs: Added missing attributes
18958
18959 2005-01-17  Jackson Harper  <jackson@ximian.com>
18960
18961         * TreeNode.cs: Implement editing. Add missing properties selected
18962         and visible.
18963         * TreeView.cs: Implement node editing. Also some fixes to use
18964         Invalidate (invalid area) instead of Refresh when selecting.
18965
18966 2005-01-17  Peter Bartok  <pbartok@novell.com>
18967
18968         * Control.cs:
18969           - Implemented InvokeGotFocus() method
18970           - Implemented InvokeLostFocus() method
18971           - Implemented InvokePaint() method
18972           - Implemented InvokePaintBackground() method
18973           - Implemented InvokeClick() method
18974           - Implemented FindForm() method
18975           - Implemented RectangleToClient() method
18976           - Implemented ClientToRectangle() method
18977           - Implemented ResetBackColor() method
18978           - Implemented ResetCursor() method
18979           - Implemented ResetFont() method
18980           - Implemented ResteForeColor() method
18981           - Implemented ResetImeMode() method
18982           - Implemented ResetLeftToRight() method
18983           - Implemented ResetText() method
18984           - Implemented Scale() methods
18985           - Implemented ScaleCore() method
18986           - Implemented Update() method
18987           - Removed unused variables
18988           - Stubbed AccessibilityNotifyClients and
18989             ControlAccessibleObject.NotifyClients() methods (dunno what to do
18990             with those yet)
18991           - Now setting proper default for RightToLeft property
18992           - Fixed bug in SetClientSizeCore that would cause windows to get
18993             really big
18994           - Now sending Click/DoubleClick events
18995           - Now selecting controls when left mouse button is clicked on
18996             selectable control
18997         * AccessibleEvents.cs: Added
18998         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
18999         * XplatUIOSX.cs: Stubbed UpdateWindow() method
19000         * XplatUIWin32.cs: Implemented UpdateWindow() method
19001         * XplatUIX11.cs: Implemented UpdateWindow() method
19002         * Form.cs: Removed stray semicolon causing CS0162 warning
19003         * ThemeWin32Classic.cs: Fixed unused variable warnings
19004         * ScrollableControl.cs: Now calls base method for ScaleCore
19005         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
19006           style to avoid interference with internal click handler (which is
19007           different than standard Control click handling)
19008         * RadioButton.cs:
19009           - Now unchecks all sibling radio buttons when control is
19010             selected (Fixes #68756)
19011           - Removed internal tabstop variable, using the one inherited from
19012             Control
19013
19014 2005-01-17  Jackson Harper  <jackson@ximian.com>
19015
19016         * NavigateEventArgs.cs: Fix base type.
19017         * LinkLabel.cs: Sig fix
19018         
19019 2005-01-17  Jackson Harper  <jackson@ximian.com>
19020
19021         * TreeView.cs: Only invalidate the effected nodes bounds when
19022         selecting nodes.
19023
19024 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19025
19026         * XplatUIWin32.cs: fixes Win32 marshaling
19027         * XplatUIX11.cs: fixes method signature
19028
19029 2005-01-17  Peter Bartok  <pbartok@novell.com>
19030
19031         * XplatUIX11.cs: Clean up resources when we no longer need them
19032
19033 2005-01-17  Peter Bartok  <pbartok@novell.com>
19034
19035         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
19036           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
19037           and DestroyCursor() methods.
19038         * Cursor.cs: Partially implemented, now supports standard cursors;
19039           still contains some debug code
19040         * Cursors.cs: Implemented class
19041         * Control.cs:
19042           - WndProc(): Added handling of WM_SETCURSOR message, setting the
19043             appropriate cursor
19044           - Implemented Cursor property
19045           - Replaced break; with return; more straightforwar and possibly
19046             faster
19047           - Now properly setting the result for WM_HELP
19048         * X11Structs.cs: Added CursorFontShape enum
19049         * XplatUIStructs.cs:
19050           - Added StdCursor enum (to support DefineStdCursor() method)
19051           - Added HitTest enum (to support sending WM_SETCURSOR message)
19052         * XplatUIX11.cs:
19053           - Now sends the WM_SETCURSOR message
19054           - Implemented new cursor methods
19055         * XplatUIOSX.cs: Stubbed new cursor methods
19056         * XplatUIWin32.cs:
19057           - Implemented new cursor methods
19058           - Added GetSystemMetrics function and associated enumeration
19059
19060 2005-01-15  Peter Bartok  <pbartok@novell.com>
19061
19062         * Control.cs:
19063           - WndProc(): Now handles EnableNotifyMessage
19064           - SelectNextControl(): Fixed bug where if no child or sibling
19065             controls exist we looped endlessly
19066
19067 2005-01-14  Jackson Harper  <jackson@ximian.com>
19068
19069         * TreeView.cs: Recalculate the tab pages when a new one is added
19070         so that the proper bounding rects are created.
19071
19072 2005-01-14  Jackson Harper  <jackson@ximian.com>
19073
19074         * TreeView.cs: Draw a gray box instead of a grip in the lower
19075         right hand corner when there are both horizontal and vertical
19076         scroll bars.
19077
19078 2005-01-14  Jackson Harper  <jackson@ximian.com>
19079
19080         * Control.cs: When erasing backgrounds use FromHwnd instead of
19081         FromHdc when there is a NULL wparam. This occurs on the X driver.
19082         * XplatUIX11.cs: Set the wparam to NULL.
19083
19084 2005-01-13  Jackson Harper  <jackson@ximian.com>
19085
19086         * PictureBox.cs: Implement missing methods (except ToString, need
19087         to test that on windows) and events. When visibility is changed we
19088         need to redraw the image because the buffers are killed. When size
19089         is changed refresh if the sizemode needs it.
19090
19091 2005-01-13  Peter Bartok  <pbartok@novell.com>
19092
19093         * Control.cs (SelectNextControl): Was using wrong method to select
19094           a control
19095
19096 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19097
19098         * ComboBox.cs: fixes dropstyle
19099
19100 2005-01-13  Peter Bartok  <pbartok@novell.com>
19101
19102         * Form.cs:
19103           - Implemented Select() override
19104           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19105           - Now sets keyboard focus on startup
19106         * Control.cs (SelectNextControl): Now properly handles directed=true
19107         * TextBoxBase.cs:
19108           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19109           - Added (really bad) focus rectangle (mostly for testing)
19110         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19111           to enforce redraw on focus changes
19112         * ContainerControl.cs:
19113           - Fixed detection of Shift-Tab key presses
19114           - Fixed traversal with arrow keys
19115         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19116           gonna keep this or if it's complete yet
19117         
19118 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19119
19120         * ComboBox.cs: missing properties, fixes
19121
19122 2005-01-13  Peter Bartok  <pbartok@novell.com>
19123
19124         * Panel.cs (ctor): Setting Selectable window style to off
19125         * Splitter.cs (ctor): Setting Selectable window style to off
19126         * GroupBox.cs (ctor): Setting Selectable window style to off
19127         * Label.cs (ctor): Setting Selectable window style to off
19128
19129 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19130
19131         * UpDownBase.cs (InitTimer): If the timer has been already
19132         created, enable it.
19133
19134         Use a TextBox instead of a Label.
19135
19136 2005-01-12  Jackson Harper  <jackson@ximian.com>
19137
19138         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19139         draw the connecting node lines (when ShowLines is true).
19140         * TreeNode.cs: The nodes index can now be updated. This is used
19141         when a node collection is sorted.
19142         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19143         insert or an existing unsorted node collection can be sorted.
19144         
19145 2005-01-12  Peter Bartok  <pbartok@novell.com>
19146
19147         * ContainerControl.cs: Implemented ProcessDialogKeys()
19148
19149 2005-01-12  Peter Bartok  <pbartok@novell.com>
19150
19151         * Control.cs:
19152           - Implemented SelectNextControl() method
19153           - Several focus related bug fixes
19154           - Fixed Docking calculations to match MS documentation and
19155             behaviour
19156
19157 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19158
19159         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19160         bug fixes
19161
19162 2005-01-12  Peter Bartok  <pbartok@novell.com>
19163
19164         * Control.cs:
19165           - Fixed broken Contains() method
19166           - Implemented GetNextControl() method. Finally. This is the pre-
19167             requisite for focus handling.
19168
19169 2005-01-12  Peter Bartok  <pbartok@novell.com>
19170
19171         * OSXStrucs.cs: Added
19172
19173 2005-01-12  Peter Bartok  <pbartok@novell.com>
19174
19175         * XplatUIWin32.cs:
19176           - Removed PeekMessageFlags
19177           - Implemented SetWindowStyle() method
19178         * XplatUIStructs.cs: Added PeekMessageFlags
19179         * X11Structs: Added missing border_width field to XWindowChanges struct
19180         * XplatUIX11.cs:
19181           - PeekMessage: Now throws exception if flags which are not yet
19182             supported are passed
19183           - Implemented SetWindowStyle() method
19184           - Fixed SetZOrder to handle AfterHwnd properly
19185         * XplatUI.cs: Added SetWindowStyle() method
19186         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19187         * Control.cs:
19188           - Implemented UpdateStyles() method
19189           - Implemented UpdateZOrder() method
19190         * XplatUIOSX.cs: Added SetWindowStyle() stub
19191
19192 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19193
19194         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19195         button mouse).
19196
19197
19198 2005-01-11  Jackson Harper  <jackson@ximian.com>
19199
19200         * TreeView.cs: Still need to draw lines to siblings even if out of
19201         the current node is out of the clip.
19202
19203 2005-01-11  Jackson Harper  <jackson@ximian.com>
19204
19205         * TreeView.cs: When setting the hbar/vbar/grip position use
19206         SetBounds so that perform layout is only called once. Also suspend
19207         and resume layout so layout is only done once for all controls.
19208         - Removed some debug fluff
19209         * SizeGrip.cs: Call base implmentation in overriding methods.
19210         - When visibility is changed the drawing buffers are killed so we
19211         need to redraw.
19212
19213 2005-01-11  Jackson Harper  <jackson@ximian.com>
19214
19215         * TreeView.cs: Calculate the open node count while drawing. This
19216         saves us an entire tree traversal for every paint operation. Use
19217         a member var for the open node count so less vars are passed around.
19218
19219 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19220
19221         * MonthCalendar.cs:
19222         - fixed selection to use mousemove, not mouse polling on timer
19223         * ThemeWin32Classic.cs
19224         - removed redundant unused variable "no_more_content"
19225         
19226 2005-01-11  Peter Bartok  <pbartok@novell.com>
19227
19228         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19229           are pending, so it now calls PeekMessage instead of GetMessage;
19230           implemented a incomplete version of PeekMessage
19231         
19232 2005-01-11  Peter Bartok  <pbartok@novell.com>
19233
19234         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19235           I18n issues
19236         * TextBoxBase.cs: Added sending of TextChanged event
19237
19238 2005-01-10  Jackson Harper  <jackson@ximian.com>
19239
19240         * TreeView.cs: Try not to draw outside the clipping rectangle on
19241         each node element.
19242
19243 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19244
19245         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19246
19247 2005-01-10  Jackson Harper  <jackson@ximian.com>
19248
19249         * TreeView.cs:
19250         - Implement fast scrolling. Now only the newly
19251         exposed nodes are drawn and the old image is moved using the
19252         XplatUI::ScrollWindow method.
19253         - Factor in height of nodes when calculating whether or not the
19254         node is in the clipping rect.
19255
19256 2005-01-10  Jackson Harper  <jackson@ximian.com>
19257
19258         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19259
19260 2005-01-10  Peter Bartok  <pbartok@novell.com>
19261
19262         * Application.cs: Added temporary hack to resolve all our resize
19263           required issues on startup. This will get fixed properly at
19264           some point in the future
19265
19266 2005-01-10  Jackson Harper  <jackson@ximian.com>
19267
19268         * SizeGrip.cs: New internal class that is used as a sizing
19269         grip control...hence the name.
19270
19271 2005-01-10  Peter Bartok  <pbartok@novell.com>
19272
19273         * Control.cs: Implemented proper TabIndex handling, now assigning
19274           a tabindex when a control is added to a container
19275         * GroupBox.cs (ctor): Now sets the Container style bit, required
19276           for Control.GetNextControl()
19277
19278 2005-01-09  Jackson Harper  <jackson@ximian.com>
19279
19280         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19281
19282 2005-01-09  Peter Bartok <pbartok@novell.com>
19283
19284         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19285           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19286           an overload for ScrollWindow to allow only scrolling a rectangle
19287
19288 2005-01-09  Peter Bartok <pbartok@novell.com>
19289
19290         * Form.cs:
19291           - Implemented SetDesktopBounds method
19292           - Implemented SetDesktopLocation method
19293
19294 2005-01-08  Jackson Harper  <jackson@ximian.com>
19295
19296         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19297         the node count has changed, this removes to VScroll::Refresh calls
19298         when drawing.
19299
19300 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19301
19302         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19303
19304 2005-01-07  Jackson Harper  <jackson@ximian.com>
19305
19306         * TreeNode.cs: Just update the single node when it is
19307         checked. Don't refresh after toggling, the Expand/Collapse already
19308         handles this.
19309         * TreeView.cs: Respect clipping a little more when drawing. Try
19310         not to redraw things that don't need to be redrawn. Just hide the
19311         scrollbars when they are no longer needed instead of removing
19312         them, so they don't have to be created again and again.
19313         
19314 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19315
19316         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19317         coordinates to window space to place the caret properly, FIXED.
19318         Implement GetWindowState & SetWindowState
19319
19320 2005-01-06  Peter Bartok <pbartok@novell.com>
19321
19322         * Form.cs:
19323           - Implemented ClientSize property
19324           - Implemented DesktopBounds property
19325           - Implemented DesktopLocation property
19326           - Implemented IsRestrictedWindow property
19327           - Implemented Size property
19328           - Implemented TopLevel property
19329           - Implemented FormWindowState property
19330         * Control.cs:
19331           - Implemented GetTopLevel() method
19332           - Implemented SetTopLevel() method
19333         * X11Structs.cs (Atom):
19334           - Added AnyPropertyType definition
19335           - Added MapState definiton and updated XWindowAttribute struct
19336         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19337         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19338         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19339         * XplatUIWin32.cs:
19340           - Implemented GetWindowState() and SetWindowState() methods
19341           - Fixed Win32GetWindowLong return type
19342         * XplatUIX11.cs:
19343           - Introduced central function for sending NET_WM messages
19344           - Implemented GetWindowState() and SetWindowState() methods
19345         * TextBoxBase.cs (set_Lines):
19346           - Now uses Foreground color for text added via Text property (Duh!)
19347           - Added code to remember programmatically requested size (fixes
19348             behaviour when Multiline is set after Size)
19349           - Added AutoSize logic
19350
19351 2005-01-06  Jackson Harper  <jackson@ximian.com>
19352
19353         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19354
19355 2005-01-06  Jackson Harper  <jackson@ximian.com>
19356
19357         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19358         set to less then 0.
19359
19360 2005-01-06  Jackson Harper  <jackson@ximian.com>
19361
19362         * ScrollableControl.cs: Lazy init the scrollbars.
19363         
19364 2005-01-06  Jackson Harper  <jackson@ximian.com>
19365
19366         * Theme.cs: Speed up getting pens and solid brushes, by using
19367         their ARGB as a hash instead of tostring and not calling Contains.
19368
19369 2005-01-06  Peter Bartok <pbartok@novell.com>
19370
19371         * Form.cs:
19372           - Implemented OnActivated and OnDeactivate event trigger
19373           - Implemented Activate() method
19374           - Fixed ShowDialog() to activate the form that was active before
19375             the dialog was shown
19376         * XplatUIX11.cs:
19377           - Added global active_window var that tracks the currently active
19378             X11 window
19379           - Now always grabs Property changes from the root window to always
19380             catch changes on the active window property
19381           - Added code to PropertyNotify handler to send Active/Inactive
19382             messages when state changes. This puts X11 and Win32 en par on
19383             WM_ACTIVATE notifications (except for double notifications when
19384             the user clicks away from our modal window to another one of our
19385             windows)
19386
19387 2005-01-05  Jackson Harper  <jackson@ximian.com>
19388
19389         * ImageList.cs: Implment ctor
19390
19391 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19392
19393         * XplatUIOSX.cs: Implement Activate/SetTopmost
19394
19395 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19396
19397         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19398
19399 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19400
19401         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19402
19403 2005-01-05  Peter Bartok <pbartok@novell.com>
19404
19405         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19406           XplatUIOSX.cs: Added GetActive method to return the currently
19407           active window for the application (or null, if none is active)
19408         * Form.cs:
19409           - Implemented ActiveForm
19410           - Commented out owner assignment for modal dialogs (causes problems
19411             on Win32, since the owner will be disabled)
19412           - Reworked some Active/Focus handling (still incomplete)
19413         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19414           (causes problems on Win32, since the owner will be disabled)
19415         * IWin32Window: Added ComVisible attribute
19416
19417 2005-01-05  Peter Bartok <pbartok@novell.com>
19418
19419         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19420           required XplatUI functions.
19421
19422 2005-01-05  Peter Bartok <pbartok@novell.com>
19423
19424         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19425           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19426           to implement focus and activation handling; still incomplete and
19427           with debug output
19428
19429 2005-01-04  Peter Bartok <pbartok@novell.com>
19430
19431         * TextBoxBase.cs: Changed access level for Document property to
19432           match switch to internal for TextControl
19433
19434 2005-01-04  Peter Bartok <pbartok@novell.com>
19435
19436         * AccessibleObject: Added ComVisible attribute
19437
19438 2005-01-04  Jackson Harper  <jackson@ximian.com>
19439
19440         * X11Keyboard.cs: Remove unneeded var.
19441
19442 2005-01-04  Jackson Harper  <jackson@ximian.com>
19443
19444         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19445         but PAINT.
19446         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19447         ClientMessage. This makes apps exit cleanly (more often).
19448         
19449 2005-01-04  Jackson Harper  <jackson@ximian.com>
19450
19451         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19452         handling focus, return correct colors and fonts,
19453         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19454         handle selection, horizontal scrolling, and mouse interaction.
19455
19456 2005-01-04  Peter Bartok <pbartok@novell.com>
19457
19458         * ICommandExecutor.cs: Added
19459         * IDataGridColumnStyleEditingNotificationService.cs: Added
19460         * IFeatureSupport.cs: Added
19461         * IFileReaderService.cs: Added
19462         * IDataObject.cs: Added ComVisible attribute
19463         * AmbientProperties.cs: Added
19464         * BaseCollection.cs: Added missing attributes
19465         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19466         * BaseCollection.cs: Added missing attributes
19467         * Binding.cs: Added TypeConverter attribute
19468         * BindingContext.cs: Added DefaultEvent attribute
19469         * BindingsCollection.cs: Added DefaultEvent attribute
19470         * Button.cs: Added DefaultValue attribute
19471         * DragEventArgs.cs: Added ComVisible attribute
19472         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19473         * KeyEventArgs.cs: Added ComVisible attribute
19474         * KeyPressEventArgs.cs: Added ComVisible attribute
19475         * MouseEventArgs.cs: Added ComVisible attribute
19476         * NavigateEventArgs.cs: Added
19477         * NavigateEventHandler.cs: Added
19478         * FeatureSupport.cs: Added
19479         * OSFeature.cs: Added
19480         * Theme.cs: Added abstract Version property to support OSFeature
19481         * ThemeWin32Classic.cs: Added Version property to
19482           support OSFeature.Themes
19483         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19484           the proper styles to avoid background drawing are set, also doesn't
19485           match MS signature
19486         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19487         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19488         * ScrollEventArgs.cs: Added ComVisible attribute
19489         * SplitterEventArgs.cs: Added ComVisible attribute
19490         * AccessibleSelection.cs: Added Flags attribute
19491         * Appearance.cs: Added ComVisible attribute
19492         * Border3DSide.cs: Added ComVisible attribute
19493         * Border3DStyle.cs: Added ComVisible attribute
19494         * BorderStyle.cs: Added ComVisible attribute
19495         * DragAction.cs: Added ComVisible attribute
19496         * ErrorBlinkStyle.cs: Added
19497         * ScrollEventType.cs: Added ComVisible attribute
19498         * AnchorStyles.cs: Added Editor attribute
19499         * DockStyle.cs: Added Editor attribute
19500         * HorizontalAlignment.cs: Added ComVisible attribute
19501         * HelpEventArgs.cs: Added ComVisible attribute
19502         * PaintEventArgs.cs: Added IDisposable
19503
19504 2005-01-04  Peter Bartok <pbartok@novell.com>
19505
19506         * TextControl.cs: Switched Line, LineTag and Document classes to
19507           internal
19508
19509 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19510
19511         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19512         Simple mode, fixes, IntegralHeight, etc.
19513
19514 2005-01-04  Peter Bartok <pbartok@novell.com>
19515
19516         * TextBoxBase.cs: Using proper font variable now
19517
19518 2005-01-04  Peter Bartok <pbartok@novell.com>
19519
19520         * Form.cs (ShowDialog): Set parent to owner, if provided
19521         * GroupBox.cs: Removed unused vars
19522         * TextControl.cs:
19523           - Added GetHashCode() for Document and LineTag classes
19524           - Removed unused variables
19525           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19526             to allow translation between continuous char position and line/pos
19527         * CheckBox.cs: Removed vars that are provided by base class
19528         * RadioButton.cs: Removed vars that are provided by base class, added
19529           new keyword where required
19530         * LinkLabel.cs: Added new keyword where required
19531         * Control.cs (WndProc): Removed unused variable
19532         * TextBoxBase.cs:
19533           - Finished SelectionLength property
19534           - Implemented SelectionStart property
19535           - Implemented Text property
19536           - Removed unused vars
19537         * MessageBox.cs: Added new keyword where required
19538         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19539           WndProc signature
19540         * MenuAPI.cs: Added new keyword where required
19541         * ButtonBase.cs: Removed vars that are provided by base class, added
19542           new keyword where required
19543         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19544           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19545           into this)
19546         * Application.cs (Run): Now triggers the ThreadExit event
19547         * CommonDialog.cs: Added new keyword where required; now properly sets
19548           parent (owner) for dialog
19549         * XplatUIX11.cs: Commented out unused vars
19550         * StatusBar.cs: Fixed signature for Text property
19551         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19552
19553 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19554
19555         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19556         TrackBar.cs, MonthCalendar.cs: remove unused vars
19557
19558 2005-01-03  Jackson Harper  <jackson@ximian.com>
19559
19560         * ThemeWin32Classic.cs:
19561         * X11Keyboard.cs: Remove unused vars.
19562
19563 2005-01-03  Peter Bartok  <pbartok@novell.com>
19564
19565         * TextBox.cs:
19566           - set_Text: Tied into TextControl
19567           - set_TextAlignment: Tied into TextControl
19568         * TextControl.cs:
19569           - Added alignment properties and implemented alignment handling
19570             and drawing (still has a bug, not generating proper expose events)
19571           - Added new Line() constructor to allow passing the line alignment
19572           - Fixed selection setting, properly handling end<start now
19573           - Added aligment considerations to RecalculateDocument()
19574         * TextBoxBase.cs:
19575           - Now properly enforces control height for single line controls
19576           - Added support for CharacterCasing
19577           - Added IsInputKey override
19578           - Fixed Keys.Enter logic
19579           - Added SetBoundsCore override
19580           - Fixed mouse selection handling
19581
19582 2005-01-03  Jackson Harper  <jackson@ximian.com>
19583
19584         * TreeView.cs:
19585           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19586           - Checkboxes are always aligned to the bottom of the node,
19587           regardless of item height.
19588           - Use the node bounds to draw the text so we can center it when
19589           the item height is greater then the font height.
19590           - Node::Bounds are only the text part of the node.
19591         * TreeNode.cs: New method to combine collapsing and unchecking all
19592           nodes recursively.
19593
19594 2005-01-02  Jackson Harper  <jackson@ximian.com>
19595
19596         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19597         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19598         tree when a check is changed. TODO: Only refresh the checked node.
19599
19600 2004-12-30  Jackson Harper  <jackson@ximian.com>
19601
19602         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19603         * TreeNode.cs: When collapsing make sure to never collapse the
19604         root node.
19605
19606 2004-12-29  Jackson Harper  <jackson@ximian.com>
19607
19608         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19609         
19610 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19611
19612         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19613
19614 2004-12-28  Peter Bartok  <pbartok@novell.com>
19615
19616         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19617           not yet assigned
19618
19619 2004-12-28  Peter Bartok  <pbartok@novell.com>
19620
19621         * Control.cs (WndProc): Added WM_HELP handler, now generates
19622           HelpRequested event
19623         * Form.cs: Added HelpButton property and required support code
19624         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19625
19626 2004-12-28  Peter Bartok  <pbartok@novell.com>
19627
19628         * CommonDialog.cs:
19629           - Made DialogForm.owner variable internal
19630           - Added check to ensure owner form is set before setting
19631             owner properties in CreateParams
19632
19633 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19634
19635         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19636           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19637           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19638           system to support borderless/titleless windows (implements menus).
19639           Fix GetWindowPos.  Implement initial background color support for
19640           views.
19641
19642 2004-12-28  Peter Bartok  <pbartok@novell.com>
19643
19644         * Form.cs (get_CreateParams): Make sure we have an owner before using
19645           the owner variable. Implement proper default if no owner exists
19646
19647 2004-12-28  Peter Bartok  <pbartok@novell.com>
19648
19649         * In preparation for making Managed.Windows.Forms the default build target
19650           for System.Windows.Forms, the following stubbed files were added.
19651           Dialogs are currently being implemented by contributors and are only
19652           short-term place holders.
19653         * ColorDialog.cs: Initial check-in (minmal stub)
19654         * DataGrid.cs: Initial check-in (minimal stub)
19655         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19656         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19657         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19658         * FontDialog.cs: Initial check-in (minimal stub)
19659         * FileDialog.cs: Initial check-in (minimal stub)
19660         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19661         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19662         * OpenFileDialog: Initial check-in (minimal stub)
19663         * IComponentEditorPageSite.cs: Initial check-in
19664         * Splitter.cs: Initial check-in (for Jackson)
19665         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19666         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19667         * TextBox.cs: Initial check-in; still needs some wiring to
19668           TextControl backend
19669         * Form.cs: Implemented ControlBox property
19670         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19671         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19672         * TextControl.cs: Added selection functionality; added todo header
19673         * TextBoxBase.cs:
19674           - Implemented Lines property
19675           - Implemented TextHeight property
19676           - Implemented SelectedText property
19677           - Implemented SelectionLength property
19678           - Implemented SelectAll method
19679           - Implemented ToString method
19680           - Removed and cleaned up some debug code
19681           - Implemented (still buggy) mouse text selection
19682
19683 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19684
19685         * ComboBox.cs: Complete DropDownList implementation, fixes.
19686
19687 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19688
19689         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19690         * ComboBoxStyle.cs: ComboBoxStyle enum
19691         * ComboBox.cs: Initial work on ComboBox control
19692
19693 2004-12-21  Peter Bartok  <pbartok@novell.com>
19694
19695         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19696           forward so that anything that creates a window gets the default,
19697           also no longer uses Visible property in CreateParams to avoid
19698           walking up the parent chain and possibly get the wrong visible
19699           status. Fixed IsVisible to no longer walk up to the parent.
19700
19701 2004-12-21  Peter Bartok  <pbartok@novell.com>
19702
19703         * Form.cs (ShowDialog): Unset modality for the proper window
19704  
19705 2004-12-20  Peter Bartok  <pbartok@novell.com>
19706
19707         * CommonDialog.cs: Initial check-in
19708
19709 2004-12-20  Peter Bartok  <pbartok@novell.com>
19710
19711         * Control.cs (Visible): Now uses the parent window instead of the
19712           client area window for the property
19713
19714         * Form.cs
19715           - ShowDialog(): Now uses the proper window for modality
19716           - The default visibility state for the form parent is now false. This
19717             will prevent the user from seeing all the changes to the form and
19718             its controls before the application hits Application.Run()
19719           - Removed some stale commented out code
19720
19721         * NativeWindow.cs:
19722           - Added FindWindow() method to have a method to check for existence
19723             of a window handle
19724           - Added ability to override default exception handling (for example
19725             when debugging with VS.Net; to do this the ExternalExceptionHandler
19726             define must be set
19727           - Removed some useless debug output
19728
19729         * XplatUIX11.cs:
19730           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
19731             not working as expected
19732           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
19733             property to allow switching back to the modal window if focus is
19734             given to another one of our windows (Application Modal)
19735           - Now only sets override_redirect if we create a window
19736             without WS_CAPTION
19737           - Moved EventMask selection before mapping of newly created window
19738             so we can catch the map event as well
19739           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
19740           - Added various Atom related DllImports
19741           - Implemented Exit() method
19742           - .ctor() : No longer shows window if WS_VISIBLE is not defined
19743             in the CreateParams
19744
19745         * MessageBox.cs: Now properly deals with the FormParent window by
19746           providing an override the FormParent CreateParams property to
19747           set as POPUP instead of OVERLAPPED window.
19748
19749 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19750
19751         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
19752         Minor code cleanup.
19753
19754 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
19755         
19756         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
19757
19758 2004-12-18  Peter Bartok  <pbartok@novell.com>
19759
19760         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
19761           implementing SetModal() method
19762
19763 2004-12-18  Peter Bartok  <pbartok@novell.com>
19764
19765         * X11Structs.cs (XGCValues): Fixed type of function element
19766         * XplatUI.cs: Added ScrollWindow() method
19767         * XplatUIDriver.cs: Added ScrollWindow() abstract
19768         * XplatUIWin32.cs: Implemented ScrollWindow() method
19769         * XplatUIX11.cs: Implemented ScrollWindow() method
19770         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
19771
19772 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19773
19774         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
19775         Some more keyboard support (INCOMPLETE)
19776
19777 2004-12-17  Peter Bartok  <pbartok@novell.com>
19778
19779         * TextControl.cs:
19780         - Added color attribute to line tags.
19781         - Added color argument to all functions dealing with tags
19782         - Added color argument support to various functions
19783         - Fixed miss-calculation of baseline/shift in certain circumstances
19784
19785         * TextBoxBase.cs: Added new color option to test code
19786
19787 2004-12-17  Jackson Harper  <jackson@ximian.com>
19788
19789         * TreeNode.cs:
19790         * MonthCalendar.cs: Signature fixes
19791
19792 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19793
19794         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
19795         keyboard event moved it.  Create a new graphics context for each paint resolves this
19796
19797 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
19798
19799         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
19800         Make caret exist and go blink blink.  Initial keyboard support.
19801         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
19802         works.
19803
19804 2004-12-17  Jackson Harper  <jackson@ximian.com>
19805
19806         * XplatUIStructs.cs: Updated set of virtual keycodes.
19807         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
19808
19809 2004-12-17  Jackson Harper  <jackson@ximian.com>
19810
19811         * XplatUIX11.cs: Prune old keyboard code.
19812
19813 2004-12-17  Jackson Harper  <jackson@ximian.com>
19814
19815         * XplatUIX11.cs: When generating mouse wparams get the modifier
19816         keys from the ModifierKeys property.
19817
19818 2004-12-17  Jackson Harper  <jackson@ximian.com>
19819
19820         * X11Keyboard.cs: Send up/down input when generating
19821         messages. Remove some unused vars.
19822
19823 2004-12-17  Jackson Harper  <jackson@ximian.com>
19824
19825         * TabControl.cs:
19826         * TreeView.cs: get rid of warnings.
19827
19828 2004-12-17  Jackson Harper  <jackson@ximian.com>
19829
19830         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
19831
19832 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
19833
19834         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
19835           CheckedListBox.cs: Implementation
19836
19837 2004-12-17  Peter Bartok  <pbartok@novell.com>
19838
19839         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
19840
19841 2004-12-16  Peter Bartok  <pbartok@novell.com>
19842
19843         * TextControl.cs:
19844           - InsertCharAtCaret(): Fixed start pos fixup
19845           - CaretLine_get: No longer derives the line from the tag, the tag
19846             could be stale if lines in the document have been added or deleted
19847           - RebalanceAfterDelete(): Fixed bug in balancing code
19848           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
19849           - Line.Streamline(): Now can also elminate leading empty tags
19850           - DumpTree(): Added a few more tests and prevented exception on
19851             uninitialized data
19852           - Added Debug section for Combining lines
19853           - Delete(): Now copies all remaining properties of a line
19854           
19855         * TextBoxBase.cs:
19856           - Left mousebutton now sets the caret (and middle button still acts
19857             as formatting tester, which must go away soon)
19858           - Added Debug section for Deleting/Combining lines
19859           - Fixed calculations for UpdateView after Combining lines
19860
19861 2004-12-16  Peter Bartok  <pbartok@novell.com>
19862
19863         * TextControl.cs: Now properly aligns text on a baseline, using the
19864           new XplatUI.GetFontMetrics() method. Simplified several calculations
19865         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
19866           defined
19867
19868 2004-12-16  Peter Bartok  <pbartok@novell.com>
19869
19870         * XplatUI.cs: Added GetFontMetrics() method
19871         * XplatUIDriver.cs: Added GetFontMetrics() abstract
19872         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
19873           into libgdiplus, our private GetFontMetrics function
19874         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
19875         * XplatUIWin32.cs: Implemented GetFontMetrics() method
19876
19877 2004-12-16  Jackson Harper  <jackson@ximain.com>
19878
19879         * XplatUIStruct.cs: Add enum for dead keys
19880         * X11Keyboard.cs: Map and unmap dead keys.
19881
19882 2004-12-16  Jackson Harper  <jackson@ximian.com>
19883
19884         * X11Keyboard.cs: Detect and use the num lock mask.
19885
19886 2004-12-16  Peter Bartok  <pbartok@novell.com>
19887
19888         * Control.cs (CreateGraphics): Added check to make sure the
19889           handle of the window exists before calling Graphics.FromHwnd()
19890
19891 2004-12-16  Peter Bartok  <pbartok@novell.com>
19892
19893         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
19894           contains a lot of code that's not supposed to be there for the
19895           real thing, but required for developing/testing the textbox
19896           backend.
19897
19898 2004-12-16  Peter Bartok  <pbartok@novell.com>
19899
19900         * TextControl.cs:
19901         - Fixed Streamline method
19902         - Added FindTag method to Line
19903         - Added DumpTree method for debugging
19904         - Added DecrementLines() method for deleting lines
19905         - Fixed UpdateView to update the cursor to end-of-line on single-line
19906           updates
19907         - Added PositionCaret() method
19908         - Fixed MoveCaret(LineDown) to move into the last line, too
19909         - Added InsertChar overload
19910         - Fixed InsertChar tag offset calculations
19911         - Added DeleteChar() method
19912         - Added Combine() method for folding lines
19913         - Fixed Delete() method, no longer allocates wasted Line object and
19914           now copies all properties when swapping nodes
19915         - Delete() method now updates document line counter
19916
19917 2004-12-15  Jackson Harper  <jackson@ximian.com>
19918
19919         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
19920         * X11Keyboard.cs: Expose the currently selected modifier keys
19921         through a property.
19922
19923 2004-12-15  Peter Bartok  <pbartok@novell.com>
19924
19925         * TextControl.cs: Initial check-in. Still incomplete
19926
19927 2004-12-15  Jackson Harper  <jackson@ximian.com>
19928
19929         * TreeNode.cs:
19930         * TreeView.cs: Fix build on csc (second time today ;-))
19931
19932 2004-12-15  Jackson Harper  <jackson@ximian.com>
19933
19934         * TreeView.cs: Store the treenodes plus/minus box bounds when it
19935         is calculated and use this for click testing.
19936         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
19937
19938 2004-12-15  Jackson Harper  <jackson@ximian.com>
19939
19940         * TreeView.cs: Pass the nodes image index to the image list when
19941         drawing that image.
19942
19943 2004-12-15  Jackson Harper  <jackson@ximian.com>
19944
19945         * X11Keyboard.cs: Set messages hwnd.
19946         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
19947         post_message calls.
19948
19949 2004-12-15  Jackson Harper  <jackson@ximian.com>
19950
19951         * X11Keyboard.cs: Fix to compile with csc.
19952         
19953 2004-12-15  Jackson Harper  <jackson@ximian.com>
19954
19955         * X11Structs.cs: Add key mask values
19956         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
19957         * X11Keyboard.cs: New file - Extrapolates and interpolates key
19958         down/up foo into WM_CHAR foo
19959         * KeyboardLayouts.cs: Common keyboard layouts
19960         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
19961         post messages into the main queue.
19962
19963 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
19964
19965         * Button.cs: implement ProcessMnemonic
19966         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
19967           brushes everytime
19968         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
19969         * ButtonBase.cs: Show HotkeyPrefix (not the &)
19970
19971 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
19972         
19973         * MonthCalendar.cs: Implemented click-hold for next/previous month
19974           and date selection
19975           
19976 2004-12-11  Peter Bartok  <pbartok@novell.com>
19977
19978         * X11Structs.cs:
19979           - Added XKeyboardState (moved from XplatUIX11.cs)
19980           - Added XCreateGC related enums and structures
19981           - Added GXFunction for XSetFunction
19982
19983         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
19984
19985         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
19986           CaretVisible() calls
19987
19988         * ToolTip.cs: Added code to prevent stealing focus from app windows
19989
19990         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
19991           DestroyCaret, SetCaretPos and CaretVisible)
19992
19993         * XplatUIX11.cs:
19994           - Added implementation for caret functions
19995           - Moved hover variables into a struct, to make it a bit easier
19996             on the eyes and to debug
19997           - Removed XKeyboardState (moved to XplatUIX11.cs)
19998           - Moved Keyboard properties into the properties region
19999
20000         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
20001           call to get a graphics context for our control
20002
20003         * XplatUIOSX.cs: Added empty overrides for the new caret functions
20004
20005         * TreeView.cs: Fixed bug. No matter what color was set it would always
20006           return SystemColors.Window
20007
20008         * XplatUIWin32.cs: Implemented caret overrides
20009
20010 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
20011
20012         * ListBox.cs: fire events, implement missing methods and properties,
20013         sorting.
20014
20015 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
20016
20017         * MonthCalendar.cs: invalidation bug fixing
20018         * ThemeWin32Classic.cs: paint fixing
20019
20020 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
20021
20022         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
20023         prepare the CGContextRef there now.
20024
20025 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
20026
20027         * MonthCalendar.cs:
20028           - optimisationL only invalidate areas that have changed
20029         * ThemeWin32Classic.cs:
20030           - only paint parts that intersect with clip_area
20031
20032 2004-12-09  Peter Bartok  <pbartok@novell.com>
20033
20034         * Application.cs: Undid changes from r37004 which cause problems
20035         on X11
20036
20037 2004-12-09  Ravindra  <rkumar@novell.com>
20038
20039         * ToolBar.cs: Added support for displaying ContextMenu
20040         attached to a button on ToolBar.
20041         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
20042         property.
20043
20044 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20045
20046         * Label.cs: autosize works in text change and removes unnecessary
20047         invalidate
20048
20049 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20050
20051         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
20052         remove warnings
20053
20054 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
20055
20056         * XplatUIOSX.cs: Added mouse move/click/grab support
20057         Remove some debugging WriteLines not needed anymore.
20058         Add window resizing/positioning.
20059         Fix visibility on reparenting.
20060
20061 2004-12-08  Peter Bartok  <pbartok@novell.com>
20062
20063         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
20064
20065 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
20066
20067         * XplatUIOSX.cs: Initial checkin
20068         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
20069
20070 2004-12-03  Ravindra <rkumar@novell.com>
20071
20072         * ListView.cs: Added some keybindings and fixed scrolling.
20073         ScrollBars listen to ValueChanged event instead of Scroll
20074         Event. This would let us take care of all changes being
20075         done in the scrollbars' values programmatically or manually.
20076         * ListView.cs (CanMultiselect): Added a check for shift key.
20077         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20078         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20079         of ListViewSubItemCollection as well.
20080
20081 2004-12-06  Peter Bartok <pbartok@novell.com>
20082
20083         * Control.cs (Parent): Added check and exception to prevent
20084         circular parenting
20085
20086 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20087
20088         * ListBox.cs: implemented clipping, selection single and multiple,
20089         bug fixing
20090
20091 2004-12-03  Ravindra <rkumar@novell.com>
20092
20093         * ListView.cs (ListView_KeyDown):
20094         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20095         when CTRL key is pressed.
20096         * ListViewItem.cs (Selected): Fixed setting the property.
20097
20098 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20099
20100         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20101
20102         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20103         MinimizeBox, ShowInTaskbar, TopMost properties.
20104
20105         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20106         will be implemented).
20107
20108 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20109
20110         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20111
20112         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20113         tests.
20114         
20115         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20116         
20117         * TreeView.cs: BackColor is Colors.Window.
20118
20119 2004-12-01  Jackson Harper  <jackson@ximian.com>
20120
20121         * TreeView.cs: When resizing the tree if the user is making it
20122         smaller we don't get expose events, so we need to handle adding
20123         the horizontal scrollbar in the size changed handler as well as
20124         the expose handler.
20125
20126 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20127
20128         * DrawItemState.cs: fixes wrong enum values
20129
20130 2004-12-01  Jackson Harper  <jackson@ximian.com>
20131
20132         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20133
20134 2004-12-01  Jackson Harper  <jackson@ximian.com>
20135
20136         * NodeLabelEditEventArgs.cs:
20137         * NodeLabelEditEventHandler.cs:
20138         * OpenTreeNodeEnumerator.cs:
20139         * TreeNode.cs:
20140         * TreeNodeCollection.cs:
20141         * TreeView.cs:
20142         * TreeViewAction.cs:
20143         * TreeViewCancelEventArgs.cs:
20144         * TreeViewCancelEventHandler.cs:
20145         * TreeViewEventArgs.cs:
20146         * TreeViewEventHandler.cs: Initial implementation.
20147
20148 2004-12-01  Ravindra <rkumar@novell.com>
20149
20150         * ListView.cs (CalculateListView): Fixed scrolling related
20151         calculations. Also, removed some debug statements from other
20152         places.
20153         * ListViewItem.cs: Changed access to 'selected' instance variable
20154         from private to internal.
20155         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20156
20157 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20158
20159         * ThemeWin32Classic.cs: remove cache of brush and pens for
20160         specific controls and use the global system, fixes scrollbutton
20161         bugs (for small sizes, disabled, etc)
20162         
20163         * ScrollBar.cs: does not show the thumb for very small controls
20164         (as MS) and allow smaller buttons that the regular size
20165
20166 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20167
20168         * UpDownBase.cs: Add abstract methods for the interface.
20169         Add new virtual methods (need to be hooked up to TextEntry when it
20170         exists).
20171         Add override methods for most features.
20172         Computes the size, forces the height of the text entry.
20173
20174         * NumericUpDown.cs: Put here the current testing code.
20175
20176         * Set eol-style property on all files that do not have mixed line
20177         endings, to minimize the future problems.  There are still a few
20178         files with mixed endings, and someone should choose whether they
20179         want to move it or not.
20180
20181 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20182
20183         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20184         System.Colors
20185         
20186 2004-11-30  Ravindra <rkumar@novell.com>
20187
20188         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20189         drawing and replaced use of SystemColors by theme colors.
20190         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20191         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20192         same ListViewItem is being added more than once.
20193
20194 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20195
20196         * MonthCalendar.cs:
20197           - ControlStyles love to make the control not flicker
20198           
20199 2004-11-30  Peter Bartok  <pbartok@novell.com>
20200
20201         * CharacterCasing.cs: Added
20202
20203 2004-11-29  Peter Bartok  <pbartok@novell.com>
20204
20205         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20206           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20207           I am removing these files as they conflict with already completed
20208           work. While it is fantastic to get contributions to MWF, I
20209           respectfully ask that everyone please coordinate their contributions
20210           through mono-winforms-list or #mono-winforms at this time. We're
20211           explicitly avoiding stubbing and don't want controls that don't have
20212           their basic functionality implemented in svn. Please also see
20213           http://www.mono-project.com/contributing/winforms.html
20214
20215
20216 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20217
20218         * Application.cs (ModalRun): Don't hang after exit.
20219
20220         * Theme.cs: New TreeViewDefaultSize property.
20221
20222         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20223         with less hardcoded SystemColors constant.
20224         Implemented TreeViewDefaultSize.
20225
20226         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20227         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20228
20229
20230 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20231
20232         * MonthCalendar.cs:
20233           - Fix NextMonthDate and PrevMonthDate click moving calendar
20234
20235 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20236
20237         * MonthCalendar.cs:
20238           - Fix usage of ScrollChange Property when scrolling months
20239
20240 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20241
20242         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20243          - Fixes menu destroying
20244          - Support adding and removing items on already created menus
20245
20246 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20247
20248         * MonthCalendar.cs:
20249           - Re-worked all bolded dates handling to match win32
20250         * ThemeWin32Classic.cs:
20251           - Fixed rendering with bolded dates
20252
20253 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20254
20255         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20256         - Horizontal scroolbar
20257         - Multicolumn
20258         - Fixes
20259
20260
20261 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20262
20263         * MonthCalendar.cs:
20264           - Fix Usage of MaxSelectionCount from SelectionRange
20265           - Fixed Shift + Cursor Selection
20266           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20267           - Fixed normal cursor selection to be compat with win32
20268           - Fixed Shift + Mouse Click selection
20269
20270 2004-11-24  Peter Bartok <pbartok@novell.com>
20271
20272         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20273         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20274         * XplatUIX11.cs:
20275           - CreatedKeyBoardMsg now updates keystate with Alt key
20276           - Added workaround for timer crash to CheckTimers, Jackson will
20277             develop a proper fix and check in later
20278           - Implemented DispatchMessage
20279           - Removed calling the native window proc from GetMessage (call
20280             now moved to DispatchMessage)
20281
20282         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20283           the keydata (Fixes bug #69831)
20284
20285         * XplatUIWin32.cs:
20286           - (DispatchMessage): Switched to return IntPtr
20287           - Added DllImport for SetFocus
20288
20289 2004-11-24  Ravindra <rkumar@novell.com>
20290
20291         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20292         background drawing.
20293         * ListViewItem.cs: Fixed various properties, calculations
20294         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20295         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20296         and some internal properties. Fixed MouseDown handler and Paint
20297         method.
20298
20299 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20300
20301         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20302
20303 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20304
20305         * ContainerControl.cs: correct accidental check in of local changes
20306
20307 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20308
20309         * ThemeWin32Classic.cs:
20310                 - Fixed Drawing Last month in grid (sometimes not showing)
20311         * MonthCalendar.cs:
20312                 - Fixed title width calculation bug (makeing title small)
20313
20314 2004-11-23  Peter Bartok <pbartok@novell.com>
20315
20316         * XplatUIX11.cs:
20317           - Added generation of WM_MOUSEHOVER event
20318           - Added missing assignment of async_method atom
20319           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20320
20321 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20322
20323         * ThemeWin32Classic.cs:
20324                 - Fixed Drawing of today circle when showtodaycircle not set
20325                 - fixed drawing of first and last month in the grid (gay dates)
20326         * MonthCalendar.cs:
20327                 - Fixed Drawing of today circle
20328                 - Fixed drawing of grady dates
20329                 - Fixed HitTest for today link when ShowToday set to false
20330                 - Fixed DefaultSize to obey ShowToday
20331
20332 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20333
20334         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20335         * System.Windows.Forms/Theme.cs
20336         * MonthCalendar.cs: added for MonthCalendar
20337         * SelectionRange.cs: added for MonthCalendar
20338         * Day.cs: added for MonthCalendar: added for MonthCalendar
20339         * DateRangeEventArgs.cs: added for MonthCalendar
20340         * DateRangeEventHandler.cs: added for MonthCalendar
20341
20342 2004-11-22  Ravindra <rkumar@novell.com>
20343
20344         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20345         property.
20346
20347 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20348
20349         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20350         event handler.
20351         
20352         * NumericUpDown.cs: Added new implementation.
20353         * UpDownBase.cs: Added new implementation.
20354
20355         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20356         implementations.
20357         
20358         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20359         implementations.
20360
20361         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20362         methods.
20363
20364 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20365
20366         * Timer.cs  (Dispose): Should call the base dispose when
20367         overriding.
20368
20369 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20370
20371         * ScrollBar.cs: updates thumb position when max, min or increment
20372         is changed
20373
20374 2004-11-21  Ravindra <rkumar@novell.com>
20375
20376         * ListView.cs: Implemented item selection, activation and
20377         column header style. Fixed properties to do a redraw, if
20378         required. Added support for MouseHover, DoubleClick, KeyDown
20379         and KeyUp event handling and some minor fixes.
20380         * ListViewItem.cs: Fixed constructor.
20381         * ThemeWin32Classic.cs: Improved drawing for ListView.
20382
20383 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20384
20385         * ThemeWin32Classic.cs: initial listbox drawing code
20386         * DrawMode.cs: new enumerator
20387         * ListControl.cs: stubbed class
20388         * ListBox.cs: initial implementation
20389         * Theme.cs: new methods definitions
20390         * SelectionMode.cs: new enumerator
20391
20392 2004-11-17  Peter Bartok  <pbartok@novell.com>
20393
20394         * XplatUIWin32.cs: Added double-click events to the class style
20395         * Control.cs (WndProc):
20396           - Added handling of click-count to MouseDown/ MouseUp events.
20397           - Added handling of middle and right mouse buttons
20398           - Removed old debug code
20399
20400 2004-11-17  Jackson Harper  <jackson@ximian.com>
20401
20402         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20403
20404 2004-11-17  Ravindra <rkumar@novell.com>
20405
20406         * ListView.cs: Added event handling for MouseMove/Up/Down.
20407         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20408         * ThemeWin32Classic.cs: We need to clear the graphics context and
20409         draw column header in a proper state.
20410
20411
20412 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20413
20414         *  Menu.cs: fixes signature
20415
20416 2004-11-16  Peter Bartok  <pbartok@novell.com>
20417
20418         * XplatUIX11.cs (GetMessage): Implemented generation of
20419           double click mouse messages
20420
20421 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20422
20423         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20424         not by menu
20425
20426 2004-11-11  Peter Bartok  <pbartok@novell.com>
20427
20428         * HandleData.cs: Added Visible property
20429         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20430           HandleData
20431         * XplatUIX11.cs: Removed old debug leftovers
20432         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20433         * Control.cs (WndProc): Removed old debug leftovers,
20434           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20435           needed WM_SIZE handling
20436
20437 2004-11-11  Jackson Harper  <jackson@ximian.com>
20438
20439         * OwnerDrawPropertyBag.cs:
20440         * TreeViewImageIndexConverter.cs: Initial implementation
20441
20442 2004-11-10  Jackson Harper  <jackson@ximian.com>
20443
20444         * ThemeWin32Classic.cs:
20445         * TabControl.cs: instead of moving tabs by the slider pos just
20446         start drawing at the tab that is offset by the slider. This way
20447         scrolling always moves by exactly one tab.
20448
20449 2004-11-10  Jackson Harper  <jackson@ximian.com>
20450
20451         * TabControl.cs: You can only scroll left when the slider has
20452         already ben moved right.
20453         
20454 2004-11-10  Jackson Harper  <jackson@ximian.com>
20455
20456         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20457         the clip area.
20458         
20459 2004-11-10  Jackson Harper  <jackson@ximian.com>
20460
20461         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20462         clip area.
20463         
20464 2004-11-09  Jackson Harper  <jackson@ximian.com>
20465
20466         * TabControl.cs (CalcXPos): New helper method so we can determine
20467         the proper place to start drawing vertical tabs.
20468         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20469         
20470 2004-11-09  Jackson Harper  <jackson@ximian.com>
20471
20472         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20473         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20474         and Bottom, left and right are illegal values for this and
20475         multiline is enabled when the alignment is set to left or right.
20476         (DrawTab): Each alignment block should draw the text itself now
20477         because Left requires special love. Also add rendering for Left
20478         aligned tabs.
20479         
20480 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20481
20482         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20483         does not destroy the windows, removes debugging messages
20484
20485 2004-11-09  jba  <jba-mono@optusnet.com.au>
20486
20487         * ThemeWin32Classic.cs
20488         (DrawButtonBase): Fix verticle text rect clipping in windows
20489         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20490         rendering and incorrect text rect clipping
20491         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20492         rendering and incorrect text rect clipping
20493         
20494 2004-11-08  Jackson Harper  <jackson@ximian.com>
20495
20496         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20497         bottom when they are bottom aligned so the bottoms of the tabs get
20498         displayed.
20499         * TabControl.cs (DropRow): Move rows up instead of down when the
20500         tab control is bottom aligned.
20501
20502 2004-11-08 13:59  pbartok
20503
20504         * XplatUIX11.cs:
20505           - Added handling for various window styles
20506           - Added handling for popup windows
20507           - Added SetTopmost handling
20508
20509 2004-11-08 13:55  pbartok
20510
20511         * XplatUIWin32.cs:
20512           - Added argument to SetTopmost method
20513           - Fixed broken ClientToScreen function
20514
20515 2004-11-08 13:53  pbartok
20516
20517         * XplatUIStructs.cs:
20518           - Added missing WS_EX styles
20519
20520 2004-11-08 13:53  pbartok
20521
20522         * XplatUI.cs, XplatUIDriver.cs:
20523           - Added argument to SetTopmost
20524
20525 2004-11-08 13:52  pbartok
20526
20527         * X11Structs.cs:
20528           - Added XSetWindowAttributes structure
20529           - Improved XWindowAttributes structure
20530           - Added SetWindowValuemask enum
20531           - Added window creation arguments enum
20532           - Added gravity enum
20533           - Added Motif hints structure
20534           - Added various Motif flags and enums
20535           - Added PropertyMode enum for property functions
20536
20537 2004-11-08 13:50  pbartok
20538
20539         * Form.cs:
20540           - Fixed arguments for updated SetTopmost method
20541
20542 2004-11-08 13:49  pbartok
20543
20544         * ToolTip.cs:
20545           - Fixed arguments for updated SetTopmost function
20546           - Fixed usage of PointToClient
20547
20548 2004-11-08 13:44  pbartok
20549
20550         * MenuAPI.cs:
20551           - Added Clipping of children and siblings
20552
20553 2004-11-08 13:41  pbartok
20554
20555         * MainMenu.cs:
20556           - Removed SetMenuBarWindow call. We do this in Form.cs
20557
20558 2004-11-08 13:40  jackson
20559
20560         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20561           scrolling jimmi in the correct location with bottom aligned tabs
20562
20563 2004-11-08 13:36  pbartok
20564
20565         * ContainerControl.cs:
20566           - Implemented BindingContext
20567           - Implemented ParentForm
20568
20569 2004-11-08 12:46  jackson
20570
20571         * TabControl.cs: Put bottom rendered tabs in the right location
20572
20573 2004-11-08 07:15  jordi
20574
20575         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20576           removes dead code
20577
20578 2004-11-05 17:30  jackson
20579
20580         * TabControl.cs: When selected tabs are expanded make sure they
20581           don't go beyond the edges of the tab control
20582
20583 2004-11-05 14:57  jackson
20584
20585         * TabControl.cs: Reset show_slider so if the control is resized to
20586           a size where it is no longer needed it's not displayed anymore
20587
20588 2004-11-05 13:16  jackson
20589
20590         * TabControl.cs: Make tab pages non visible when added to the
20591           control
20592
20593 2004-11-05 12:42  jackson
20594
20595         * TabControl.cs: Implement SizeMode.FillToRight
20596
20597 2004-11-05 12:16  jackson
20598
20599         * Control.cs: Do not call CreateHandle if the handle is already
20600           created
20601
20602 2004-11-05 11:46  jackson
20603
20604         * TabControl.cs: Remove superflous call to CalcTabRows
20605
20606 2004-11-05 09:07  jackson
20607
20608         * XplatUIX11.cs: Update for Mono.Posix changes
20609
20610 2004-11-05 07:00  ravindra
20611
20612         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20613           scrolling.
20614
20615 2004-11-04 22:47  jba
20616
20617         * ThemeWin32Classic.cs:
20618           - Fix Button rendering for FlatStyle = Flat or Popup
20619           - Fix RadioButton and CheckBox rendering when Appearance = Button
20620             (normal and flatstyle).
20621           - Correct outer rectangle color when drawing focus rectangle
20622           - Adjust button bounds to be 1 px smaller when focused
20623           - Make button not draw sunken 3d border when pushed (windows compat)
20624           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20625           - Offset the text in RadioButton and Checkbox when being rendered as
20626           a button.
20627           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20628           radiobuttons
20629           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20630           - Fixed disabled text rendering for normally rendered radiobuttons
20631
20632 2004-11-04 10:26  jackson
20633
20634         * TabControl.cs: Recalculate tab rows when resizing
20635
20636 2004-11-04 07:47  jordi
20637
20638         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20639           collection completion, drawing issues, missing features
20640
20641 2004-11-04 05:03  ravindra
20642
20643         * ScrollBar.cs:
20644                 - We need to recalculate the Thumb area when
20645                 LargeChange/maximum/minimum values are changed.
20646           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20647                 than minimum. This is required to handle the case if large_change is
20648                 more than max, and use LargeChange property instead of large_change
20649                 variable.
20650           - We return max+1 when large_change is more than max, like MS does.
20651
20652 2004-11-04 04:29  ravindra
20653
20654         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20655                 - Changed default value signatures (prefixed all with ListView).
20656                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20657                 ListView.
20658           - Fixed calculations for ListViewItem and implemented Clone()
20659           method.
20660
20661 2004-11-04 04:26  ravindra
20662
20663         * Theme.cs, ThemeWin32Classic.cs:
20664                 - Changed default ListView values signatures (prefixed all with
20665                 ListView).
20666           - Fixed default size values for VScrollBar and HScrollBar.
20667                 - Fixed DrawListViewItem method.
20668
20669 2004-11-04 04:05  ravindra
20670
20671         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20672
20673 2004-11-04 04:04  ravindra
20674
20675         * ImageList.cs: Implemented the missing overload for Draw method.
20676
20677 2004-11-03 19:29  jackson
20678
20679         * TabControl.cs: Handle dropping rows on selection properly
20680
20681 2004-11-03 11:59  jackson
20682
20683         * TabControl.cs: remove debug code
20684
20685 2004-11-03 11:52  jackson
20686
20687         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20688           the scrolly widgerywoo
20689
20690 2004-11-02 13:52  jackson
20691
20692         * TabControl.cs: Resize the tab pages and tabs when the tab control
20693           is resized
20694
20695 2004-11-02 13:40  jackson
20696
20697         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20698           selected tab to the bottom
20699
20700 2004-11-02 13:39  jackson
20701
20702         * TabPage.cs: Store the tab pages row
20703
20704 2004-11-02 12:33  jordi
20705
20706         * MenuItem.cs: fixes handle creation
20707
20708 2004-11-02 11:42  jackson
20709
20710         * TabControl.cs: signature fix
20711
20712 2004-11-02 08:56  jackson
20713
20714         * TabControl.cs: Calculate whether the tab is on an edge properly.
20715           Remove top secret debugging code
20716
20717 2004-11-01 19:57  jackson
20718
20719         * TabControl.cs: Add click handling, and proper sizing
20720
20721 2004-11-01 19:47  jackson
20722
20723         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
20724           tab controls
20725
20726 2004-11-01 19:39  jackson
20727
20728         * TabPage.cs: add internal property to store the bounds of a tab
20729           page
20730
20731 2004-10-30 04:23  ravindra
20732
20733         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
20734           values.
20735
20736 2004-10-30 04:21  ravindra
20737
20738         * ListView.cs, ListViewItem.cs: Added support for scrolling and
20739           fixed calculations.
20740
20741 2004-10-30 03:06  pbartok
20742
20743         * XplatUIX11.cs:
20744           - Removed extension of DllImported libs
20745
20746 2004-10-29 09:55  jordi
20747
20748         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
20749           navigation, itemcollection completion, menu fixes
20750
20751 2004-10-27 22:58  pbartok
20752
20753         * XplatUIX11.cs:
20754           - Now throws a nice error message when no X display could be opened
20755
20756 2004-10-26 13:51  jordi
20757
20758         * ListView.cs: removes warning
20759
20760 2004-10-26 03:55  ravindra
20761
20762         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
20763           ThemeWin32Classic.cs: Some formatting for my last checkins.
20764
20765 2004-10-26 03:36  ravindra
20766
20767         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
20768           control and default values.
20769
20770 2004-10-26 03:35  ravindra
20771
20772         * Theme.cs: Added some default values for ListView control.
20773
20774 2004-10-26 03:33  ravindra
20775
20776         * ToolBar.cs: ToolBar should use the user specified button size, if
20777           there is any. Added a size_specified flag for the same.
20778
20779 2004-10-26 03:33  ravindra
20780
20781         * ColumnHeader.cs: Added some internal members and calculations for
20782           ColumnHeader.
20783
20784 2004-10-26 03:32  ravindra
20785
20786         * ListViewItem.cs: Calculations for ListViewItem.
20787
20788 2004-10-26 03:31  ravindra
20789
20790         * ListView.cs: Added some internal members and calculations for
20791           ListView.
20792
20793 2004-10-22 13:31  jordi
20794
20795         * MenuAPI.cs: speedup menus drawing
20796
20797 2004-10-22 13:16  jackson
20798
20799         * XplatUIX11.cs: Make sure to update exposed regions when adding an
20800           expose event
20801
20802 2004-10-22 11:49  jackson
20803
20804         * Control.cs: oops
20805
20806 2004-10-22 11:41  jackson
20807
20808         * Control.cs: Check to see if the window should have its background
20809           repainted by X when drawing.
20810
20811 2004-10-22 11:31  jackson
20812
20813         * XplatUIX11.cs: When invalidating areas only use XClearArea if
20814           clear is true, this way we do not get flicker from X repainting the
20815           background
20816
20817 2004-10-22 11:28  jackson
20818
20819         * XEventQueue.cs: Queue properly
20820
20821 2004-10-21 09:38  jackson
20822
20823         * XEventQueue.cs: Fix access modifier
20824
20825 2004-10-21 09:36  jackson
20826
20827         * XEventQueue.cs: Don't loose messages
20828
20829 2004-10-21 09:22  jackson
20830
20831         * XEventQueue.cs: Don't loose messages
20832
20833 2004-10-20 04:15  jordi
20834
20835         * BootMode.cs: enum need it by SystemInfo
20836
20837 2004-10-19 21:58  pbartok
20838
20839         * XplatUIWin32.cs:
20840           - Small sanity check
20841
20842 2004-10-19 21:56  pbartok
20843
20844         * Form.cs:
20845           - Added private FormParentWindow class which acts as the container
20846             for our form and as the non-client area where menus are drawn
20847           - Added/Moved required tie-ins to Jordi's menus
20848           - Fixed/Implemented the FormStartPosition functionality
20849
20850 2004-10-19 21:52  pbartok
20851
20852         * Control.cs:
20853           - Removed unneeded locals
20854           - Added code to all size and location properties to understand and
20855             deal with the parent container of Form
20856
20857 2004-10-19 21:33  pbartok
20858
20859         * Application.cs:
20860           - Fixed to deal with new Form subclasses for menus
20861
20862 2004-10-19 17:48  jackson
20863
20864         * XEventQueue.cs: commit correct version of file
20865
20866 2004-10-19 16:50  jackson
20867
20868         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
20869
20870 2004-10-19 16:15  jordi
20871
20872         * MenuAPI.cs: MenuBarCalcSize returns the height
20873
20874 2004-10-19 08:31  pbartok
20875
20876         * Control.cs:
20877           - Added missing call to PreProcessMessage before calling OnXXXKey
20878           methods
20879
20880 2004-10-19 00:04  ravindra
20881
20882         * ToolTip.cs: Fixed constructor.
20883
20884 2004-10-18 09:31  jordi
20885
20886         * MenuAPI.cs: menuitems in menubars do not have shortcuts
20887
20888 2004-10-18 09:26  jordi
20889
20890         * MenuItem.cs: fixes MenuItem class signature
20891
20892 2004-10-18 08:56  jordi
20893
20894         * MenuAPI.cs: prevents windows from showing in the taskbar
20895
20896 2004-10-18 00:28  ravindra
20897
20898         * ToolTip.cs: Suppressed a warning message.
20899
20900 2004-10-18 00:27  ravindra
20901
20902         * Control.cs: Default value of visible property must be true.
20903
20904 2004-10-17 23:19  pbartok
20905
20906         * ToolTip.cs:
20907           - Complete implementation
20908
20909 2004-10-17 23:19  pbartok
20910
20911         * XplatUIX11.cs:
20912           - Added EnableWindow method
20913           - Added SetModal stub
20914           - Added generation of WM_ACTIVATE message (still needs testing)
20915           - Added SetTopMost stub
20916           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
20917
20918 2004-10-17 23:17  pbartok
20919
20920         * XplatUIWin32.cs:
20921           - Removed VirtualKeys to XplatUIStructs
20922           - Implemented SetTopMost method
20923           - Implemented EnableWindow method
20924           - Bugfix in ScreenToClient()
20925           - Bugfixes in ClientToScreen()
20926
20927 2004-10-17 22:51  pbartok
20928
20929         * XplatUIStructs.cs:
20930           - Added WS_EX styles to WindowStyles enumeration
20931
20932 2004-10-17 22:50  pbartok
20933
20934         * XplatUI.cs, XplatUIDriver.cs:
20935           - Added method for enabling/disabling windows
20936           - Added method for setting window modality
20937           - Added method for setting topmost window
20938
20939 2004-10-17 22:49  pbartok
20940
20941         * ThemeWin32Classic.cs:
20942           - Added ToolTip drawing code
20943
20944 2004-10-17 22:49  pbartok
20945
20946         * Theme.cs:
20947           - Added ToolTip abstracts
20948
20949 2004-10-17 22:47  pbartok
20950
20951         * Form.cs:
20952           - Fixed Form.ControlCollection to handle owner relations
20953           - Added Owner/OwnedForms handling
20954           - Implemented Z-Ordering for owned forms
20955           - Removed unneeded private overload of ShowDialog
20956           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
20957             so I hope)
20958           - Fixed Close(), had wrong default
20959           - Added firing of OnLoad event
20960           - Added some commented out debug code for Ownership handling
20961
20962 2004-10-17 22:16  pbartok
20963
20964         * Control.cs:
20965           - Fixed/implemented flat list of controls
20966
20967 2004-10-17 22:14  pbartok
20968
20969         * Application.cs:
20970           - Added code to simulate modal dialogs on Win32
20971
20972 2004-10-17 16:11  jordi
20973
20974         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
20975           mouse event
20976
20977 2004-10-17 13:39  jordi
20978
20979         * MenuAPI.cs: menu drawing fixes
20980
20981 2004-10-15 09:10  ravindra
20982
20983         * StructFormat.cs: General Enum.
20984
20985 2004-10-15 09:09  ravindra
20986
20987         * SizeGripStyle.cs: Enum for Form.
20988
20989 2004-10-15 09:08  ravindra
20990
20991         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
20992           in Theme for ListView.
20993
20994 2004-10-15 09:06  ravindra
20995
20996         * ColumnHeader.cs: Flushing some formatting changes.
20997
20998 2004-10-15 09:05  ravindra
20999
21000         * ListViewItem.cs: Implemented GetBounds method and fixed coding
21001           style.
21002
21003 2004-10-15 09:03  ravindra
21004
21005         * ListView.cs: Implemented Paint method and fixed coding style.
21006
21007 2004-10-15 07:34  jordi
21008
21009         * MenuAPI.cs: fix for X11
21010
21011 2004-10-15 07:32  ravindra
21012
21013         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
21014                 - Renamed Paint() method to Draw() for clarity. Also, moved
21015                 DrawImage() to OnPaint().
21016
21017 2004-10-15 07:25  ravindra
21018
21019         * CheckBox.cs, RadioButton.cs:
21020                 - Removed Redraw (), we get it from ButtonBase.
21021                 - Implemented Paint (), to do class specific painting.
21022
21023 2004-10-15 07:16  ravindra
21024
21025         * ButtonBase.cs:
21026                 - Redraw () is not virtual now.
21027                 - Added an internal virtual method Paint (), so that
21028                 derived classes can do their painting on their own.
21029                 - Modified OnPaint () to call Paint ().
21030
21031 2004-10-15 06:43  jordi
21032
21033         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
21034           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
21035
21036 2004-10-15 00:30  ravindra
21037
21038         * MessageBox.cs:
21039                 - MessageBox on windows does not have min/max buttons.
21040                 This change in CreateParams fixes this on Windows. We
21041                 still need to implement this windowstyle behavior in
21042                 our X11 driver.
21043
21044 2004-10-14 05:14  ravindra
21045
21046         * ToolBar.cs:
21047                 - Changed Redraw () to do a Refresh () always.
21048                 - Fixed the MouseMove event handling when mouse is pressed,
21049                 ie drag event handling.
21050                 - Replaced the usage of ToolBarButton.Pressed property to
21051                 ToolBarButton.pressed internal variable.
21052
21053 2004-10-14 05:10  ravindra
21054
21055         * ToolBarButton.cs:
21056                 - Added an internal member 'inside' to handle mouse move
21057                 with mouse pressed ie mouse drag event.
21058                 - Changed 'Pressed' property to return true only when
21059                 'inside' and 'pressed' are both true.
21060                 - Some coding style love.
21061
21062 2004-10-14 00:17  ravindra
21063
21064         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
21065           public method.
21066
21067 2004-10-14 00:15  ravindra
21068
21069         * ButtonBase.cs: Redraw () related improvements.
21070
21071 2004-10-14 00:14  ravindra
21072
21073         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21074           removed unnecessary calls to Button.Show () method.
21075
21076 2004-10-13 17:50  pbartok
21077
21078         * XplatUIX11.cs:
21079           - Formatting fix
21080           - Removed destroying of window until we solve the problem of X
21081             destroying the window before us on shutdown
21082
21083 2004-10-13 16:32  pbartok
21084
21085         * ButtonBase.cs:
21086           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21087
21088 2004-10-13 14:18  pbartok
21089
21090         * XplatUIX11.cs:
21091           - Added code to destroy the X window
21092
21093 2004-10-13 14:18  pbartok
21094
21095         * XplatUIWin32.cs:
21096           - Added code to destroy a window
21097
21098 2004-10-13 14:12  pbartok
21099
21100         * ButtonBase.cs:
21101           - Added the Redraw on Resize that got dropped in the last rev
21102
21103 2004-10-13 09:06  pbartok
21104
21105         * ThemeWin32Classic.cs:
21106           - Path from John BouAntoun:
21107             * Fix check rendering (centre correctly for normal style, offset
21108               correctly for FlatStyle).
21109             * Fix border color usage (use backcolor) for FlatStyle.Popup
21110             * Use checkbox.Capture instead of checkbox.is_pressed when
21111               rendering flatstyle states.
21112
21113 2004-10-12 21:48  pbartok
21114
21115         * ThemeWin32Classic.cs:
21116           - Removed all occurences of SystemColors and replaced them with the
21117             matching theme color
21118
21119 2004-10-12 21:41  pbartok
21120
21121         * ThemeWin32Classic.cs:
21122           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21123             him using the function for flatstyle drawing
21124           - Changed functions to use the new version of CPDrawBorder3D
21125
21126 2004-10-12 21:15  pbartok
21127
21128         * ControlPaint.cs:
21129           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21130             match MS documentation. They need to return defined colors if the
21131             passed color matches the configured control color. Thanks to John
21132             BouAntoun for pointing this out.
21133
21134 2004-10-12 20:57  pbartok
21135
21136         * Control.cs:
21137           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21138             color is changed
21139
21140 2004-10-12 20:46  pbartok
21141
21142         * CheckBox.cs:
21143           - Fix from John BouAntoun: Now properly sets the Appearance property
21144
21145 2004-10-12 20:45  pbartok
21146
21147         * ThemeWin32Classic.cs:
21148           - Fixes from John BouAntoun: now handles forecolors and backcolors
21149             for flatstyle rendered controls much better; It also fixes normal
21150             checkbox rendering when pushed or disabled.
21151
21152 2004-10-08 02:50  jordi
21153
21154         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21155           work
21156
21157 2004-10-07 08:56  jordi
21158
21159         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21160
21161 2004-10-06 03:59  jordi
21162
21163         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21164           XplatUIWin32.cs: removes warnings from compilation
21165
21166 2004-10-05 12:23  jackson
21167
21168         * RadioButton.cs: Fix ctor
21169
21170 2004-10-05 11:10  pbartok
21171
21172         * MessageBox.cs:
21173           - Partial implementation by Benjamin Dasnois
21174
21175 2004-10-05 10:15  jackson
21176
21177         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21178           by John BouAntoun
21179
21180 2004-10-05 03:07  ravindra
21181
21182         * ToolBar.cs:
21183                 - Removed a private method, Draw ().
21184                 - Fixed the ButtonDropDown event handling.
21185                 - Fixed MouseMove event handling.
21186
21187 2004-10-05 03:04  ravindra
21188
21189         * ThemeWin32Classic.cs:
21190                 - Added DrawListView method and ListViewDefaultSize property.
21191                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21192                 - Changed DOS style CRLF to Unix format (dos2unix).
21193
21194 2004-10-05 03:03  ravindra
21195
21196         * Theme.cs:
21197                 - Added DrawListView method and ListViewDefaultSize property.
21198
21199 2004-10-05 02:42  ravindra
21200
21201         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21202           clicks on DropDown arrow.
21203
21204 2004-10-04 22:56  jackson
21205
21206         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21207           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21208           Control handle the buffers, derived classes should not have to
21209           CreateBuffers themselves.
21210
21211 2004-10-04 21:20  jackson
21212
21213         * StatusBar.cs: The control handles resizing the buffers now.
21214
21215 2004-10-04 21:18  jackson
21216
21217         * Control.cs: When resizing the buffers should be invalidated. This
21218           should be handled in Control not in derived classes.
21219
21220 2004-10-04 14:45  jackson
21221
21222         * TabPage.cs: oops
21223
21224 2004-10-04 02:14  pbartok
21225
21226         * LeftRightAlignment.cs:
21227           - Initial check-in
21228
21229 2004-10-04 01:09  jordi
21230
21231         * ThemeWin32Classic.cs: fixes right button position causing right
21232           button not showing on horizontal scrollbars
21233
21234 2004-10-02 13:12  pbartok
21235
21236         * XplatUIX11.cs:
21237           - Simplified the Invalidate method by using an X call instead of
21238             generating the expose ourselves
21239           - Added an expose when the window background is changed
21240           - Implemented ClientToScreen method
21241
21242 2004-10-02 13:08  pbartok
21243
21244         * XplatUIWin32.cs:
21245           - Added Win32EnableWindow method (test for implementing modal
21246           dialogs)
21247           - Added ClientToScreen method and imports
21248
21249 2004-10-02 13:07  pbartok
21250
21251         * XplatUI.cs, XplatUIDriver.cs:
21252           - Added ClientToScreen coordinate translation method
21253
21254 2004-10-02 13:06  pbartok
21255
21256         * KeyPressEventArgs.cs:
21257           - Fixed access level for constructor
21258
21259 2004-10-02 13:06  pbartok
21260
21261         * NativeWindow.cs:
21262           - Changed access level for the window_collection hash table
21263
21264 2004-10-02 13:05  pbartok
21265
21266         * Form.cs:
21267           - Added KeyPreview property
21268           - Added Menu property (still incomplete, pending Jordi's menu work)
21269           - Implemented ProcessCmdKey
21270           - Implemented ProcessDialogKey
21271           - Implemented ProcessKeyPreview
21272
21273 2004-10-02 13:02  pbartok
21274
21275         * Control.cs:
21276           - Added private method to get the Control object from the window
21277           handle
21278           - Implemented ContextMenu property
21279           - Implemented PointToScreen
21280           - Implemented PreProcessMessage
21281           - Implemented IsInputChar
21282           - Implemented IsInputKey
21283           - Implemented ProcessCmdKey
21284           - Completed ProcessKeyEventArgs
21285           - Fixed message loop to call the proper chain of functions on key
21286           events
21287           - Implemented ProcessDialogChar
21288           - Implemented ProcessDialogKey
21289           - Implemented ProcessKeyMessage
21290           - Implemented ProcessKeyPreview
21291           - Added RaiseDragEvent stub (MS internal method)
21292           - Added RaiseKeyEvent stub (MS internal method)
21293           - Added RaiseMouseEvent stub (MS Internal method)
21294           - Added RaisePaintEvent stub (MS Internal method)
21295           - Added ResetMouseEventArgs stub (MS Internal method)
21296           - Implemented RtlTranslateAlignment
21297           - Implemented RtlTranslateContent
21298           - Implemented RtlTranslateHorizontal
21299           - Implemented RtlTranslateLeftRight
21300           - Added generation of KeyPress event
21301
21302 2004-10-02 05:57  ravindra
21303
21304         * ListViewItem.cs: Added attributes.
21305
21306 2004-10-02 05:32  ravindra
21307
21308         * ListView.cs: Added attributes.
21309
21310 2004-10-01 11:53  jackson
21311
21312         * Form.cs: Implement the Close method so work on MessageBox can
21313           continue.
21314
21315 2004-09-30 14:06  pbartok
21316
21317         * XplatUIX11.cs:
21318           - Bug fixes
21319
21320 2004-09-30 11:34  jackson
21321
21322         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21323
21324 2004-09-30 07:26  ravindra
21325
21326         * ListViewItemConverter.cs: Converter for ListViewItem.
21327
21328 2004-09-30 07:26  ravindra
21329
21330         * SortOrder.cs: Enum for ListView control.
21331
21332 2004-09-30 07:25  ravindra
21333
21334         * ColumnHeader.cs: Supporting class for ListView control.
21335
21336 2004-09-30 07:24  ravindra
21337
21338         * ListView.cs, ListViewItem.cs: Initial implementation.
21339
21340 2004-09-30 07:20  ravindra
21341
21342         * ItemActivation.cs: Enum for ListView Control.
21343
21344 2004-09-29 20:29  pbartok
21345
21346         * XplatUIX11.cs:
21347           - Added lookup of pixel value for background color; tries to get a
21348             color 'close' to the requested color, it avoids having to create a
21349             colormap.  Depending on the display this could mean the used color
21350             is slightly off the desired color. Might have to change it to a more
21351             resource intensive colormap approach, but it will work as a
21352           workaround to avoid red screens.
21353
21354 2004-09-29 14:27  jackson
21355
21356         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21357
21358 2004-09-28 12:44  pbartok
21359
21360         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21361           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21362           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21363           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21364           TrackBar.cs, VScrollBar.cs:
21365           - Streamlined Theme interfaces:
21366             * Each DrawXXX method for a control now is passed the object for
21367               the control to be drawn in order to allow accessing any state the
21368               theme might require
21369
21370             * ControlPaint methods for the theme now have a CP prefix to avoid
21371               name clashes with the Draw methods for controls
21372
21373             * Every control now retrieves it's DefaultSize from the current
21374             theme
21375
21376 2004-09-28 12:17  jackson
21377
21378         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21379           drawing
21380
21381 2004-09-24 14:57  jackson
21382
21383         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21384           Gives us a nice little performance boost.
21385
21386 2004-09-24 12:02  jackson
21387
21388         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21389           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21390           Control and supporting classes. Initial checkin
21391
21392 2004-09-23 13:08  jackson
21393
21394         * Form.cs: Temp build fixage
21395
21396 2004-09-23 01:39  ravindra
21397
21398         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21399           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21400           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21401           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21402           EventHandlers needed by ListView Control.
21403
21404 2004-09-22 14:12  pbartok
21405
21406         * ScrollableControl.cs:
21407           - Implemented DockPadding property
21408           - Implemented AutoScroll property
21409           - Implemented AutoScrollMargin property
21410           - Implemented AutoScrollMinSize property
21411           - Implemented AutoScrollPosition property
21412           - Implemented DisplayRectangle property (still incomplete)
21413           - Implemented CreateParams property
21414           - Implemented HScroll property
21415           - Implemented VScroll property
21416           - Implemented OnVisibleChanged property
21417
21418 2004-09-22 14:09  pbartok
21419
21420         * Form.cs:
21421           - Added Form.ControllCollection class
21422           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21423             RemoveOwnedForm (still incomplete, missing on-top and common
21424             minimize/maximize behaviour)
21425           - Added StartPosition property (still incomplete, does not use when
21426             creating the form)
21427           - Added ShowDialog() methods (still incomplete, missing forcing the
21428             dialog modal)
21429
21430 2004-09-22 14:05  pbartok
21431
21432         * Application.cs:
21433           - Added message loop for modal dialogs
21434
21435 2004-09-22 14:02  pbartok
21436
21437         * GroupBox.cs:
21438           - Fixed wrong types for events
21439
21440 2004-09-22 14:00  pbartok
21441
21442         * Shortcut.cs, FormWindowState.cs:
21443           - Fixed wrong values
21444
21445 2004-09-22 12:01  jackson
21446
21447         * Control.cs: Text is never null
21448
21449 2004-09-20 22:14  pbartok
21450
21451         * XplatUIWin32.cs:
21452           - Fixed accessibility level for Idle handler
21453
21454 2004-09-20 18:54  jackson
21455
21456         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21457           XplatUIX11.cs: New message loop that uses poll so we don't get a
21458           busy loop
21459
21460 2004-09-17 10:43  pbartok
21461
21462         * ScrollBar.cs:
21463           - Fixed behaviour of arrow buttons. Now properly behaves like
21464             Buttons (and like Microsoft's scrollbar arrow buttons)
21465
21466 2004-09-17 10:14  pbartok
21467
21468         * ScrollBar.cs:
21469           - Added missing release of keyboard/mouse capture
21470
21471 2004-09-17 06:18  jordi
21472
21473         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21474           Theme.cs: Very early menu support
21475
21476 2004-09-16 17:45  pbartok
21477
21478         * XplatUIWin32.cs:
21479           - Fixed sending a window to the front
21480           - Added overload for SetWindowPos to avoid casting
21481
21482 2004-09-16 17:44  pbartok
21483
21484         * Control.cs:
21485           - Added SendToBack and BringToFront methods
21486
21487 2004-09-16 07:00  ravindra
21488
21489         * Copyright: Added Novell URL.
21490
21491 2004-09-16 07:00  ravindra
21492
21493         * ToolBar.cs: Invalidate should be done before redrawing.
21494
21495 2004-09-15 21:19  ravindra
21496
21497         * ColumnHeaderStyle.cs: Enum for ListView Control.
21498
21499 2004-09-15 21:18  ravindra
21500
21501         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21502           ListView Control.
21503
21504 2004-09-13 18:26  jackson
21505
21506         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21507           properly
21508
21509 2004-09-13 18:13  jackson
21510
21511         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21512           a second thread and post messages into the main threads message
21513           queue. This makes timing much more consistent. Both win2K and XP
21514           have a minimum timer value of 15 milliseconds, so we now do this
21515           too.
21516
21517 2004-09-13 15:18  pbartok
21518
21519         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21520           XplatUIX11.cs:
21521           - Added Z-Ordering methods
21522
21523 2004-09-13 10:56  pbartok
21524
21525         * Form.cs:
21526           - Fixed #region names
21527           - Moved properties and methods into their proper #regions
21528
21529 2004-09-13 10:51  pbartok
21530
21531         * Form.cs:
21532           - Added Accept and CancelButton properties
21533           - Added ProcessDialogKey() method
21534
21535 2004-09-13 08:18  pbartok
21536
21537         * IWindowTarget.cs:
21538           - Initial check-in
21539
21540 2004-09-10 21:50  pbartok
21541
21542         * Control.cs:
21543           - Added DoDragDrop() [incomplete]
21544           - Properly implemented 'Visible' handling
21545           - Added SetVisibleCore()
21546           - Implemented FindChildAtPoint()
21547           - Implemented GetContainerControl()
21548           - Implemented Hide()
21549
21550 2004-09-10 19:28  pbartok
21551
21552         * Control.cs:
21553           - Moved methods into their appropriate #regions
21554           - Reordered methods within regions alphabetically
21555
21556 2004-09-10 18:57  pbartok
21557
21558         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21559           - Added method to retrieve text from window
21560
21561 2004-09-10 18:56  pbartok
21562
21563         * Control.cs:
21564           - Moved some internal functions into the internal region
21565           - Implemented FontHeight
21566           - Implemented RenderRightToLeft
21567           - Implemented ResizeRedraw
21568           - Implemented ShowFocusCues
21569           - Implemented ShowKeyboardCues
21570           - Implemented FromChildHandle
21571           - Implemented FromHandle
21572           - Implemented IsMnemonic
21573           - Implemented ReflectMessage
21574           - All public and protected Static Methods are now complete
21575
21576 2004-09-10 16:54  pbartok
21577
21578         * Control.cs:
21579           - Implemented remaining missing public instance properties
21580           - Alphabetized some out of order properties
21581
21582 2004-09-10 05:51  ravindra
21583
21584         * PictureBox.cs: Added a check for null image.
21585
21586 2004-09-10 00:59  jordi
21587
21588         * GroupBox.cs: remove cvs tag
21589
21590 2004-09-09 05:25  ravindra
21591
21592         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21593
21594 2004-09-09 05:23  ravindra
21595
21596         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21597           parent redraw.
21598
21599 2004-09-09 02:28  pbartok
21600
21601         * ThemeWin32Classic.cs:
21602           - Improve disabled string look
21603
21604 2004-09-09 01:15  jordi
21605
21606         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21607           args and handler
21608
21609 2004-09-08 23:56  ravindra
21610
21611         * ItemBoundsPortion.cs: It's enum, not a class!
21612
21613 2004-09-08 23:47  ravindra
21614
21615         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21616           Enums for Form.
21617
21618 2004-09-08 21:13  ravindra
21619
21620         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21621           ListView control.
21622
21623 2004-09-08 21:03  ravindra
21624
21625         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21626           avoid crash.
21627
21628 2004-09-08 21:01  ravindra
21629
21630         * ScrollableControl.cs: Removed unreachable code.
21631
21632 2004-09-08 06:45  jordi
21633
21634         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21635
21636 2004-09-08 01:00  jackson
21637
21638         * XplatUIX11.cs: Only run the timers when updating the message
21639           queue. This effectively gives X messages a higher priority then
21640           timer messages. Timers still need love though
21641
21642 2004-09-07 14:01  jackson
21643
21644         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21645           this for us and the handle is no longer valid.
21646
21647 2004-09-07 13:59  jackson
21648
21649         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21650           loop that manages to not crash. TODO: Add poll and cleanup timers
21651
21652 2004-09-07 11:12  jordi
21653
21654         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21655
21656 2004-09-07 03:40  jordi
21657
21658         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21659           fixes, methods, multiple links
21660
21661 2004-09-06 06:55  jordi
21662
21663         * Control.cs: Caches ClientRectangle rectangle value
21664
21665 2004-09-05 02:03  jordi
21666
21667         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21668           certain situations
21669
21670 2004-09-04 11:10  jordi
21671
21672         * Label.cs: Refresh when font changed
21673
21674 2004-09-02 16:24  pbartok
21675
21676         * Control.cs:
21677           - Added sanity check to creation of double buffer bitmap
21678
21679 2004-09-02 16:24  pbartok
21680
21681         * ButtonBase.cs:
21682           - Fixed selection of text color
21683           - Fixed handling of resize event; now properly recreates double
21684             buffering bitmap
21685           - Added missing assignment of TextAlignment
21686           - Added proper default for TextAlignment
21687
21688 2004-09-02 14:26  pbartok
21689
21690         * RadioButton.cs:
21691           - Added missing RadioButton.RadioButtonAccessibleObject class
21692
21693 2004-09-02 14:26  pbartok
21694
21695         * Control.cs:
21696           - Added missing Control.ControlAccessibleObject class
21697           - Started to implement Select()ion mechanisms, still very incomplete
21698
21699 2004-09-02 14:25  pbartok
21700
21701         * AccessibleObject.cs:
21702           - Added missing methods
21703
21704 2004-09-02 14:23  pbartok
21705
21706         * AccessibleNavigation.cs, AccessibleSelection.cs:
21707           - Initial check-in
21708
21709 2004-09-02 10:32  jordi
21710
21711         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
21712           pool for pens, brushes, and hatchbruses
21713
21714 2004-09-01 15:30  jackson
21715
21716         * StatusBar.cs: Fix typo
21717
21718 2004-09-01 14:44  pbartok
21719
21720         * RadioButton.cs:
21721           - Fixed state
21722
21723 2004-09-01 14:39  pbartok
21724
21725         * Button.cs, RadioButton.cs:
21726           - Functional initial check-in
21727
21728 2004-09-01 14:01  pbartok
21729
21730         * CheckBox.cs:
21731           - Added missing default
21732           - Added missing region mark
21733
21734 2004-09-01 09:10  jordi
21735
21736         * Label.cs: fixes method signatures, new methods, events, fixes
21737           autosize
21738
21739 2004-09-01 07:19  jordi
21740
21741         * Control.cs: Init string variables with an empty object
21742
21743 2004-09-01 04:20  jordi
21744
21745         * Control.cs: fires OnFontChanged event
21746
21747 2004-08-31 20:07  pbartok
21748
21749         * ButtonBase.cs:
21750           - Enabled display of strings
21751
21752 2004-08-31 20:05  pbartok
21753
21754         * Form.cs:
21755           - Added (partial) implementation of DialogResult; rest needs to be
21756             implemented when the modal loop code is done
21757
21758 2004-08-31 19:55  pbartok
21759
21760         * CheckBox.cs:
21761           - Fixed to match the removal of the needs_redraw concept
21762
21763 2004-08-31 19:55  pbartok
21764
21765         * ButtonBase.cs:
21766           - Removed the rather odd split between 'needs redraw' and redrawing
21767           - Now handles the events that require regeneration (ambient
21768             properties and size)
21769
21770 2004-08-31 19:41  pbartok
21771
21772         * Control.cs:
21773           - Added firing of BackColorChanged event
21774           - Added TopLevelControl property
21775           - Fixed handling of WM_ERASEBKGRND message
21776
21777 2004-08-31 12:49  pbartok
21778
21779         * ButtonBase.cs:
21780           - Removed debug
21781           - Minor fixes
21782
21783 2004-08-31 12:48  pbartok
21784
21785         * CheckBox.cs:
21786           - Finished (famous last words)
21787
21788 2004-08-31 04:35  jordi
21789
21790         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
21791           scrolling bugs, adds new methods
21792
21793 2004-08-30 14:42  pbartok
21794
21795         * CheckBox.cs:
21796           - Implemented CheckBox drawing code
21797
21798 2004-08-30 14:42  pbartok
21799
21800         * ButtonBase.cs:
21801           - Made Redraw() and CheckRedraw() virtual
21802           - Improved mouse up/down/move logic to properly track buttons
21803
21804 2004-08-30 09:44  pbartok
21805
21806         * CheckBox.cs:
21807           - Updated to fix broken build. Not complete yet.
21808
21809 2004-08-30 09:28  pbartok
21810
21811         * CheckState.cs:
21812           - Initial checkin
21813
21814 2004-08-30 09:17  pbartok
21815
21816         * Appearance.cs:
21817           - Initial check-in
21818
21819 2004-08-27 16:12  ravindra
21820
21821         * ToolBarButton.cs: Added TypeConverter attribute.
21822
21823 2004-08-27 16:07  ravindra
21824
21825         * ImageIndexConverter.cs: Implemented.
21826
21827 2004-08-27 14:17  pbartok
21828
21829         * Control.cs:
21830           - Removed unneeded stack vars
21831           - First attempt to fix sizing issues when layout is suspended
21832
21833 2004-08-25 15:35  jordi
21834
21835         * ScrollBar.cs: more fixes to scrollbar
21836
21837 2004-08-25 14:04  ravindra
21838
21839         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
21840           Added the missing divider code and grip for ToolBar Control.
21841
21842 2004-08-25 13:20  pbartok
21843
21844         * Control.cs:
21845           - Control now properly passes the ambient background color to child
21846             controls
21847
21848 2004-08-25 13:20  jordi
21849
21850         * ScrollBar.cs: small bug fix regarding bar position
21851
21852 2004-08-25 12:33  pbartok
21853
21854         * Timer.cs:
21855           - Now only calls SetTimer or KillTimer if the enabled state has
21856           changed
21857
21858 2004-08-25 12:33  pbartok
21859
21860         * XplatUIWin32.cs:
21861           - Fixed timer handling, now seems to work
21862           - Improved error message for window creation
21863
21864 2004-08-25 12:32  pbartok
21865
21866         * Control.cs:
21867           - Fixed generation of MouseUp message
21868
21869 2004-08-25 12:29  jordi
21870
21871         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
21872           and fixes for progressbar
21873
21874 2004-08-24 18:43  ravindra
21875
21876         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
21877           in ToolBar control.
21878
21879 2004-08-24 17:15  pbartok
21880
21881         * Panel.cs:
21882           - Added #region
21883           - Added missing events
21884           - Alphabetized
21885
21886 2004-08-24 17:14  pbartok
21887
21888         * StatusBar.cs, PictureBox.cs:
21889           - Now uses Control's CreateParams
21890
21891 2004-08-24 16:36  pbartok
21892
21893         * XplatUIX11.cs:
21894           - Fixed background color handling
21895           - Fixed sending of enter/leave events on a grab
21896
21897 2004-08-24 16:35  pbartok
21898
21899         * X11Structs.cs:
21900           - Refined definitions for CrossingEvent
21901
21902 2004-08-24 12:37  jordi
21903
21904         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
21905           formmating, methods signature, and adds missing events
21906
21907 2004-08-24 12:24  jordi
21908
21909         * Control.cs: fire OnEnabledChanged event
21910
21911 2004-08-24 11:17  pbartok
21912
21913         * XplatUIWin32.cs:
21914           - Implemented SetTimer() and KillTimer()
21915
21916 2004-08-24 11:16  pbartok
21917
21918         * XplatUIX11.cs:
21919           - Now uses Remove instead of Add to kill the timer
21920
21921 2004-08-24 10:16  jackson
21922
21923         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
21924           picture boxes in the theme now. Draw picture box borders and obey
21925           sizing modes
21926
21927 2004-08-24 05:49  jackson
21928
21929         * Timer.cs: Remove top secret debugging code
21930
21931 2004-08-24 05:34  jackson
21932
21933         * PictureBox.cs: Temp hack to make picture boxes draw their full
21934           image
21935
21936 2004-08-24 05:29  jackson
21937
21938         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21939           XplatUIX11.cs: Move timers to the driver level. On X they are
21940           queued by the driver and checked on idle.
21941
21942 2004-08-24 01:07  jackson
21943
21944         * XplatUIX11.cs: Use a queue for async messages instead of passing
21945           them as ClientMessages since that was totally broken. Also simply
21946           check for events and return an idle message if none are found. This
21947           gives us an idle handler, and prevents deadlocking when no messages
21948           are in the queue.
21949
21950 2004-08-23 18:19  ravindra
21951
21952         * XplatUIWin32.cs: Removed the unwanted destructor.
21953
21954 2004-08-23 17:27  pbartok
21955
21956         * ButtonBase.cs:
21957           - Finishing touches. Works now, just needs some optimizations.
21958
21959 2004-08-23 16:53  jordi
21960
21961         * ScrollBar.cs: small fix
21962
21963 2004-08-23 16:45  pbartok
21964
21965         * Application.cs:
21966           - Removed debug output
21967           - Simplifications
21968
21969 2004-08-23 16:43  jordi
21970
21971         * ScrollBar.cs: [no log message]
21972
21973 2004-08-23 16:10  pbartok
21974
21975         * Form.cs:
21976           - Fixed handling of WM_CLOSE message
21977           - Removed debug output
21978
21979 2004-08-23 16:09  pbartok
21980
21981         * Application.cs:
21982           - Added handling of Idle event
21983           - Added handling of form closing
21984           - Fixed reporting of MessageLoop property
21985           - Removed some unneeded code, should provide a bit of a speedup
21986
21987 2004-08-23 15:22  pbartok
21988
21989         * Control.cs:
21990           - Added InitLayout() method
21991           - Added code to properly perform layout when Anchor or Dock property
21992             is changed
21993           - Changed 'interpretation' of ResumeLayout. MS seems to have a
21994             LAMESPEC, tried to do it in a way that makes sense
21995
21996 2004-08-23 14:10  jordi
21997
21998         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
21999           properties and methods
22000
22001 2004-08-23 13:55  pbartok
22002
22003         * Control.cs:
22004           - Properly fixed Jordi's last fix
22005           - Now uses Cursor's Position property instead of calling XplatUI
22006           directly
22007
22008 2004-08-23 13:44  jordi
22009
22010         * PaintEventHandler.cs: Adding missing attribute
22011
22012 2004-08-23 13:39  pbartok
22013
22014         * Cursor.cs:
22015           - Implemented Position property
22016
22017 2004-08-23 13:39  pbartok
22018
22019         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22020           - Added method to move mouse cursor
22021
22022 2004-08-23 13:39  pbartok
22023
22024         * XplatUIX11.cs:
22025           - Fixed setting of background color
22026           - Added method to move mouse cursor
22027
22028 2004-08-23 13:16  jordi
22029
22030         * Control.cs: avoids null exception
22031
22032 2004-08-22 17:46  jackson
22033
22034         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
22035           PictureBox
22036
22037 2004-08-22 17:40  jackson
22038
22039         * XplatUIX11.cs: Add some missing locks
22040
22041 2004-08-22 15:10  pbartok
22042
22043         * Control.cs, Form.cs:
22044           - Removed OverlappedWindow style from Control, instead it's default
22045             now is child
22046           - Made form windows OverlappedWindow by default
22047
22048 2004-08-22 13:34  jackson
22049
22050         * ScrollBar.cs: Update the position through the Value property so
22051           the OnValueChanged event is raised.
22052
22053 2004-08-22 12:04  pbartok
22054
22055         * SWF.csproj:
22056           - Added Cursor.cs and UserControl.cs
22057
22058 2004-08-22 12:03  pbartok
22059
22060         * Cursor.cs:
22061           - Started implementation, not usable yet
22062
22063 2004-08-22 12:00  pbartok
22064
22065         * UserControl.cs:
22066           - Implemented UserControl (complete)
22067
22068 2004-08-21 19:20  ravindra
22069
22070         * ToolBar.cs: Correcting the formatting mess of VS.NET.
22071
22072 2004-08-21 18:49  ravindra
22073
22074         * ToolBar.cs: Probably this completes the missing attributes in
22075           toolbar control.
22076
22077 2004-08-21 18:03  ravindra
22078
22079         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22080           Fixed toolbar control signatures.
22081
22082 2004-08-21 16:32  pbartok
22083
22084         * LinkLabel.cs:
22085           - Signature Fixes
22086
22087 2004-08-21 16:30  pbartok
22088
22089         * Label.cs:
22090           - Signature fixes
22091
22092 2004-08-21 16:19  pbartok
22093
22094         * Control.cs, Label.cs:
22095           - Signature fixes
22096
22097 2004-08-21 15:57  pbartok
22098
22099         * ButtonBase.cs:
22100           - Added loads of debug output for development
22101           - Fixed typo in method name
22102
22103 2004-08-21 15:52  pbartok
22104
22105         * ToolBarButtonClickEventArgs.cs:
22106           - Added missing base class
22107
22108 2004-08-21 14:53  pbartok
22109
22110         * Control.cs:
22111           - Updated to match new GrabWindow signature
22112
22113 2004-08-21 14:51  pbartok
22114
22115         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22116           - Added method to get default display size
22117
22118 2004-08-21 14:23  pbartok
22119
22120         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22121           - Added method to query current grab state
22122           - Added argument to allow confining a grab to a window
22123
22124 2004-08-21 14:22  pbartok
22125
22126         * Keys.cs:
22127           - Added [Flags] attribute so that modifiers can be used in bitwise
22128           ops
22129
22130 2004-08-21 14:21  pbartok
22131
22132         * TrackBar.cs, ScrollBar.cs:
22133           - Replaced direct XplatUI calls with their Control counterpart
22134
22135 2004-08-21 13:32  pbartok
22136
22137         * Control.cs:
22138           - Implemented Created property
22139
22140 2004-08-21 13:28  pbartok
22141
22142         * Control.cs:
22143           - Implemented ContainsFocus
22144
22145 2004-08-21 13:26  pbartok
22146
22147         * Control.cs:
22148           - Implemented CausesValidation
22149
22150 2004-08-21 13:21  pbartok
22151
22152         * Control.cs:
22153           - Implemented CanFocus
22154           - Implemented CanSelect
22155           - Implemented Capture
22156
22157 2004-08-21 12:35  pbartok
22158
22159         * XplatUIWin32.cs:
22160           - Fixed bug with Async message handling
22161           - Implemented getting the ModifierKeys
22162
22163 2004-08-21 12:32  jackson
22164
22165         * AsyncMethodResult.cs: Make sure we have the mutex before we
22166           release it. Fixes BeginInvoke on windows
22167
22168 2004-08-21 11:31  pbartok
22169
22170         * XplatUIWin32.cs, XplatUIX11.cs:
22171           - Drivers now return proper mouse state
22172
22173 2004-08-21 10:54  jackson
22174
22175         * Control.cs: Implement EndInvoke
22176
22177 2004-08-21 10:48  jackson
22178
22179         * Timer.cs: Remove unneeded finalizer
22180
22181 2004-08-20 19:52  ravindra
22182
22183         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22184           in mouse event handling in the ToolBar control.
22185
22186 2004-08-20 19:50  ravindra
22187
22188         * ImageList.cs: Changed draw method to use the arguments passed in
22189           to draw the image.
22190
22191 2004-08-20 18:58  pbartok
22192
22193         * XplatUIStructs.cs:
22194           - Added private message for async communication
22195
22196 2004-08-20 17:38  ravindra
22197
22198         * Control.cs: Made RightToLeft property virtual and removed a
22199           Console.WriteLine.
22200
22201 2004-08-20 14:39  jordi
22202
22203         * ThemeGtk.cs: use style_attach
22204
22205 2004-08-20 14:39  pbartok
22206
22207         * XplatUIWin32.cs:
22208           - Added jackson's Async code from X11 to Win32
22209
22210 2004-08-20 14:09  pbartok
22211
22212         * SWF.csproj:
22213           - Added all new files
22214
22215 2004-08-20 14:09  pbartok
22216
22217         * Control.cs:
22218           - Added call to set window background color
22219
22220 2004-08-20 14:03  pbartok
22221
22222         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22223           - Added method for setting the window background
22224
22225 2004-08-20 14:02  pbartok
22226
22227         * XplatUIWin32.cs:
22228           - Added method for setting the background color
22229           - Added handling for erasing the window background
22230
22231 2004-08-20 13:45  jordi
22232
22233         * TrackBar.cs: fixes timer, new properties and methods
22234
22235 2004-08-20 13:34  jackson
22236
22237         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22238           correct thread
22239
22240 2004-08-20 13:22  jackson
22241
22242         * Timer.cs: Timer Tick events are now handed through Controls Async
22243           mechanism so the callbacks are executed in the same thread as X
22244
22245 2004-08-20 13:19  jackson
22246
22247         * XplatUIDriver.cs: Expose functionality to send async messages
22248           through the driver
22249
22250 2004-08-20 13:18  jackson
22251
22252         * Control.cs: Implement Begininvoke
22253
22254 2004-08-20 13:14  jackson
22255
22256         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22257           messages through the driver
22258
22259 2004-08-20 13:12  jackson
22260
22261         * XplatUIX11.cs: Lock before all X operations. Also added Async
22262           method functionality through XSendEvent
22263
22264 2004-08-20 13:11  jackson
22265
22266         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22267           This will screw up on 64 bit systems)
22268
22269 2004-08-20 13:10  jackson
22270
22271         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22272           Async messages through X/Win32
22273
22274 2004-08-19 19:39  pbartok
22275
22276         * XplatUIX11.cs:
22277           - Updated code to match new HandleData.DeviceContext type
22278
22279 2004-08-19 19:38  pbartok
22280
22281         * HandleData.cs:
22282           - Made DeviceContext a generic object to allow usage from various
22283           drivers
22284           - Added support for queueing Windows messages
22285
22286 2004-08-19 19:37  pbartok
22287
22288         * XplatUIWin32.cs:
22289           - Added generation of MouseEnter, MouseLeave and MouseHover events
22290           - Added cleanup on EndPaint
22291
22292 2004-08-19 19:17  pbartok
22293
22294         * Control.cs:
22295           - Added handling of WM_MOUSEHOVER
22296           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22297           code
22298
22299 2004-08-19 18:55  jordi
22300
22301         * ThemeGtk.cs: fixes button order
22302
22303 2004-08-19 18:12  jordi
22304
22305         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22306
22307 2004-08-19 17:09  pbartok
22308
22309         * Control.cs:
22310           - Added Right property
22311           - Added RightToLeft property
22312
22313 2004-08-19 16:27  jordi
22314
22315         * ThemeGtk.cs: experimental GTK theme support
22316
22317 2004-08-19 16:26  jordi
22318
22319         * ITheme.cs, Theme.cs: move themes from an interface to a class
22320
22321 2004-08-19 16:25  jordi
22322
22323         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22324           theme enhancaments
22325
22326 2004-08-19 16:04  pbartok
22327
22328         * XplatUIX11.cs:
22329           - Added colormap basics
22330           - Added a way to re-initialize with a different display handle
22331           - Fixed setting of the window background color
22332           - Added various X11 imports related to colors and colormaps
22333
22334 2004-08-19 15:51  pbartok
22335
22336         * X11Structs.cs:
22337           - Removed packing hints (Paolo suggested this a while back)
22338           - fixed colormap type
22339           - Added default Atom types
22340           - Added Screen and color structs and enums
22341
22342 2004-08-19 15:39  pbartok
22343
22344         * ImageList.cs:
22345           - Added missing Draw() method
22346           - Added missing RecreateHandle event
22347
22348 2004-08-19 15:30  pbartok
22349
22350         * Form.cs:
22351           - Added handling of WM_CLOSE
22352
22353 2004-08-18 13:16  jordi
22354
22355         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22356           a table
22357
22358 2004-08-18 09:56  jordi
22359
22360         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22361
22362 2004-08-17 15:31  ravindra
22363
22364         * SWF.csproj: Updated project.
22365
22366 2004-08-17 15:25  pbartok
22367
22368         * Control.cs:
22369           - Drawing improvement; don't call UpdateBounds if we are not visible
22370             (or have been minimized)
22371
22372 2004-08-17 15:24  pbartok
22373
22374         * XplatUIWin32.cs:
22375           - Finished IsVisible
22376           - Added Win32GetWindowPlacement
22377
22378 2004-08-17 15:08  jackson
22379
22380         * Panel.cs: Initial checkin of the Panel
22381
22382 2004-08-17 14:25  pbartok
22383
22384         * Control.cs:
22385           - Fixed broken handling of default window sizes
22386
22387 2004-08-17 13:29  jackson
22388
22389         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22390           has a large startup time.
22391
22392 2004-08-17 10:25  jackson
22393
22394         * HandleData.cs: union areas properly
22395
22396 2004-08-17 10:12  jackson
22397
22398         * HandleData.cs: union areas properly
22399
22400 2004-08-16 20:00  ravindra
22401
22402         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22403
22404 2004-08-16 18:48  ravindra
22405
22406         * ToolBar.cs: Added attributes.
22407
22408 2004-08-16 17:17  ravindra
22409
22410         * SWF.csproj: Updated project.
22411
22412 2004-08-16 17:16  jackson
22413
22414         * XplatUIX11.cs: Check for more expose events before sending a
22415           WM_PAINT so they can all be grouped together. This makes dragging a
22416           window across another window redraw in a sane way.
22417
22418 2004-08-16 15:47  pbartok
22419
22420         * Control.cs:
22421           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22422             support OnMouseEnter/Leave()
22423           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22424             exposure handling
22425
22426 2004-08-16 15:46  pbartok
22427
22428         * XplatUIStructs.cs, XplatUIX11.cs:
22429           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22430           OnMouseEnter/Leave()
22431
22432 2004-08-16 15:34  jackson
22433
22434         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22435           sure messages get the message field set to WM_NULL if they are not
22436           handled.
22437
22438 2004-08-16 15:24  jackson
22439
22440         * HandleData.cs: HandleData is used for storing message information
22441           for window handles
22442
22443 2004-08-15 17:23  ravindra
22444
22445         * ColorDepth.cs: Added attribute.
22446
22447 2004-08-15 17:23  ravindra
22448
22449         * SWF.csproj: Updated project for ToolBar Control.
22450
22451 2004-08-15 17:20  ravindra
22452
22453         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22454           control and also dos2unix format.
22455
22456 2004-08-15 17:13  ravindra
22457
22458         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22459           ToolBarButtonClickEventArgs.cs,
22460           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22461           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22462
22463 2004-08-15 15:31  pbartok
22464
22465         * ButtonBase.cs:
22466           - First (mostly) working version
22467
22468 2004-08-13 16:15  pbartok
22469
22470         * Control.cs:
22471           - Fixed Anchor default
22472
22473 2004-08-13 15:43  pbartok
22474
22475         * Control.cs:
22476           - Changed GetCursorPos signature
22477
22478 2004-08-13 15:42  pbartok
22479
22480         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22481           - Changed signature for GetCursorPos
22482
22483 2004-08-13 15:25  pbartok
22484
22485         * XplatUIX11.cs:
22486           - Cleanup
22487           - Fixed resizing/exposure handling
22488
22489 2004-08-13 15:22  jordi
22490
22491         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22492           with tickposition
22493
22494 2004-08-13 14:55  jordi
22495
22496         * TrackBar.cs: change from wndproc to events
22497
22498 2004-08-13 13:00  jordi
22499
22500         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22501           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22502
22503 2004-08-13 12:53  pbartok
22504
22505         * XplatUIWin32.cs:
22506           - Changed GetWindowPos to also provide client area size
22507           - Fixed broken prototypes for several win32 functions
22508
22509 2004-08-13 12:53  pbartok
22510
22511         * XplatUI.cs, XplatUIDriver.cs:
22512           - Changed GetWindowPos to also provide client area size
22513
22514 2004-08-13 12:52  pbartok
22515
22516         * XplatUIX11.cs:
22517           - Added generation of WM_POSCHANGED
22518           - Changed GetWindowPos to also provide client area size
22519
22520 2004-08-13 12:52  pbartok
22521
22522         * Control.cs:
22523           - Added Dispose() and destructor
22524           - Fixed resizing and bounds calculation
22525           - Fixed Layout
22526           - Added memory savings for invisible windows
22527
22528 2004-08-13 12:46  jordi
22529
22530         * TrackBar.cs: adds timer and grap window
22531
22532 2004-08-13 10:25  jackson
22533
22534         * Timer.cs: SWF Timer
22535
22536 2004-08-12 16:59  pbartok
22537
22538         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22539           - Implemented method to get current mouse position
22540
22541 2004-08-12 14:29  jordi
22542
22543         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22544           enhancement, fix mouse problems, highli thumb, etc
22545
22546 2004-08-12 13:31  pbartok
22547
22548         * Control.cs:
22549           - Fixed Anchoring bugs
22550
22551 2004-08-12 13:01  jackson
22552
22553         * StatusBar.cs: Don't forget things
22554
22555 2004-08-12 12:54  jackson
22556
22557         * ThemeWin32Classic.cs: Handle owner draw status bars
22558
22559 2004-08-12 12:54  jackson
22560
22561         * StatusBar.cs: Implement missing properties, events, and methods.
22562           Handle mouse clicking
22563
22564 2004-08-12 10:19  jackson
22565
22566         * StatusBarPanelClickEventArgs.cs,
22567           StatusBarPanelClickEventHandler.cs: Classes for handling status
22568           bar panel click events
22569
22570 2004-08-12 10:10  jackson
22571
22572         * Control.cs: Add missing properties
22573
22574 2004-08-12 09:46  pbartok
22575
22576         * BindingsManagerBase.cs:
22577           - Name changed to BindingManagerBase.cs
22578
22579 2004-08-12 09:25  jordi
22580
22581         * ScrollableControl.cs: calls ctrlbase instead of exeception
22582
22583 2004-08-11 16:28  pbartok
22584
22585         * InputLanguageChangingEventArgs.cs:
22586           - Never check in before compiling. Fixes the last check-in
22587
22588 2004-08-11 16:26  pbartok
22589
22590         * InputLanguageChangingEventArgs.cs:
22591           - More signature fixes
22592
22593 2004-08-11 16:20  pbartok
22594
22595         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22596           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22597           ImageListStreamer.cs, InputLanguage.cs,
22598           InputLanguageChangedEventArgs.cs,
22599           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22600           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22601           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22602           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22603           - Signature fixes
22604
22605 2004-08-11 16:16  pbartok
22606
22607         * Application.cs:
22608           - Fixed Signature
22609           - Added .Net 1.1 method
22610
22611 2004-08-11 15:25  pbartok
22612
22613         * SWF.csproj:
22614           - Fixed BindingManagerBase.cs filename
22615
22616 2004-08-11 15:22  pbartok
22617
22618         * BindingManagerBase.cs:
22619           - Was checked in with wrong filename
22620
22621 2004-08-11 14:50  pbartok
22622
22623         * SWF.csproj:
22624           - Updated
22625
22626 2004-08-11 13:41  jordi
22627
22628         * XplatUIWin32.cs: Fixes ClientRect
22629
22630 2004-08-11 13:19  pbartok
22631
22632         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22633           XplatUIX11.cs:
22634           - We had SetWindowPos and MoveWindow to set window positions and
22635             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22636             keep SetWindowPos as matching counterpart
22637           - Added some X11 sanity checking
22638
22639 2004-08-11 12:59  pbartok
22640
22641         * Control.cs:
22642           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22643             (It seems that SetBounds is just a front for SetBoundsCore and
22644              SetBoundsCore updates the underlying window system and
22645              UpdateBounds is responsible for updating the variables associated
22646              with the Control and sending the events)
22647           - Major cleanup of Size handling; we now have two sizes, client_size
22648             and bounds. Bounds defines the window with decorations, client_size
22649             without them.
22650
22651 2004-08-11 12:55  pbartok
22652
22653         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22654           - Added method to calculate difference between decorated window and
22655             raw client area
22656
22657 2004-08-11 12:54  pbartok
22658
22659         * Label.cs:
22660           - Forcing redraw on resize
22661
22662 2004-08-11 11:43  pbartok
22663
22664         * ImageList.cs:
22665           - Removed disposing of the actual images when the list is disposed
22666
22667 2004-08-11 09:13  pbartok
22668
22669         * Control.cs:
22670           - Now properly reparents windows
22671
22672 2004-08-11 08:37  pbartok
22673
22674         * Control.cs:
22675           - Duh!
22676
22677 2004-08-11 07:47  pbartok
22678
22679         * Control.cs:
22680           - Rewrote the collection stuff. Might not be as fast now, not
22681             keeping the number of children around and accessible directly, but
22682             it's more straightforward
22683
22684 2004-08-11 07:44  pbartok
22685
22686         * AccessibleObject.cs:
22687           - Fixed to match ControlCollection rewrite
22688
22689 2004-08-11 07:43  pbartok
22690
22691         * ImageList.cs:
22692           - Added missing creation of the collection list
22693
22694 2004-08-10 20:08  jackson
22695
22696         * StatusBar.cs: Get the paint message from WndProc
22697
22698 2004-08-10 19:31  jackson
22699
22700         * ThemeWin32Classic.cs: Create Brushes as little as possible
22701
22702 2004-08-10 19:20  jackson
22703
22704         * UICues.cs: Add Flags attribute
22705
22706 2004-08-10 19:19  jackson
22707
22708         * StatusBarPanel.cs: Signature cleanup
22709
22710 2004-08-10 19:10  jackson
22711
22712         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
22713           Initial implementation of status bar item drawing
22714
22715 2004-08-10 17:27  jordi
22716
22717         * TrackBar.cs: add missing methods, properties, and restructure to
22718           hide extra ones
22719
22720 2004-08-10 16:24  jackson
22721
22722         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
22723           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
22724           attribute
22725
22726 2004-08-10 13:21  jordi
22727
22728         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
22729           enhancements and standarize on win colors defaults
22730
22731 2004-08-10 12:52  jackson
22732
22733         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
22734           ThemeWin32Classic.cs: Implement DrawItem functionality
22735
22736 2004-08-10 12:47  jordi
22737
22738         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
22739
22740 2004-08-10 12:32  jordi
22741
22742         * Control.cs: throw ontextchange event
22743
22744 2004-08-10 11:43  pbartok
22745
22746         * Control.cs:
22747           - Added more to the still unfinished Dock/Anchor layout code
22748
22749 2004-08-10 11:39  pbartok
22750
22751         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22752           - Added GetWindowPos method
22753
22754 2004-08-10 11:36  pbartok
22755
22756         * XplatUIWin32.cs:
22757           - Implemented several methods
22758
22759 2004-08-10 09:47  jackson
22760
22761         * TrackBar.cs: Allow control to handle buffering
22762
22763 2004-08-10 09:41  jackson
22764
22765         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
22766
22767 2004-08-10 09:24  jackson
22768
22769         * Label.cs, LinkLabel.cs: Let Control handle buffering.
22770
22771 2004-08-10 09:09  jackson
22772
22773         * StatusBar.cs: Let Control handle all the buffering.
22774
22775 2004-08-10 09:08  jackson
22776
22777         * Control.cs: Control will now handle the buffering code, so each
22778           control does not have to implement this.
22779
22780 2004-08-10 08:34  jackson
22781
22782         * XplatUIDriver.cs: Use default colors from the theme
22783
22784 2004-08-09 17:12  pbartok
22785
22786         * ImageList.cs:
22787           - Fixed several bugs Ravindra pointed out
22788
22789 2004-08-09 16:11  pbartok
22790
22791         * Control.cs:
22792           - Added incomplete dock layout code
22793           - Added support for mouse wheel
22794
22795 2004-08-09 16:09  pbartok
22796
22797         * XplatUIX11.cs:
22798           - Added handling for middle and right mousebutton
22799           - Added handling for mouse wheel
22800           - Added handling for key state and mouse state and position
22801           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
22802           messages
22803
22804 2004-08-09 15:40  jackson
22805
22806         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
22807           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
22808           checkin
22809
22810 2004-08-09 15:37  jackson
22811
22812         * StatusBar.cs: Initial implementation of StatusBar
22813
22814 2004-08-09 15:36  jackson
22815
22816         * ITheme.cs: Add support for drawing status bar and getting status
22817           bar item sizes
22818
22819 2004-08-09 15:35  pbartok
22820
22821         * MouseButtons.cs:
22822           - Fixed values
22823
22824 2004-08-09 15:34  jackson
22825
22826         * ThemeWin32Classic.cs: Add support for drawing status bar and get
22827           status bar item sizes
22828
22829 2004-08-09 15:21  jackson
22830
22831         * ThemeWin32Classic.cs: Use known colors for default control
22832           colours
22833
22834 2004-08-09 15:12  jackson
22835
22836         * ThemeWin32Classic.cs: Make the default font static, it is static
22837           in control so this doesn't change functionality and creating fonts
22838           is sloooooow.
22839
22840 2004-08-09 14:56  pbartok
22841
22842         * X11Structs.cs:
22843           - Added GrabMode enum
22844
22845 2004-08-09 14:55  pbartok
22846
22847         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22848           - Removed Run method, was only required for initial development
22849
22850 2004-08-09 14:51  pbartok
22851
22852         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22853           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
22854           capture
22855
22856 2004-08-09 13:48  pbartok
22857
22858         * XplatUIX11.cs:
22859           - Fixed default sizing for child windows
22860
22861 2004-08-09 12:56  pbartok
22862
22863         * XplatUIX11.cs:
22864           - Added generation of WM_DESTROY message
22865           - Added handling of window manager induced shutdown
22866
22867 2004-08-09 11:31  jackson
22868
22869         * ThemeWin32Classic.cs: New names for control properties
22870
22871 2004-08-09 11:25  jackson
22872
22873         * Control.cs: Use new color names
22874
22875 2004-08-09 11:02  jackson
22876
22877         * XplatUI.cs: Get default window properties from the theme
22878
22879 2004-08-09 11:01  jackson
22880
22881         * ITheme.cs: The theme engine now controls default window
22882           properties
22883
22884 2004-08-09 11:00  jackson
22885
22886         * ThemeWin32Classic.cs: Add default window color properties
22887
22888 2004-08-09 10:17  jackson
22889
22890         * ThemeWin32Classic.cs: Use correct default back color
22891
22892 2004-08-09 10:05  jackson
22893
22894         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
22895           the theme now.
22896
22897 2004-08-09 09:56  jackson
22898
22899         * XplatUI.cs: Remove defaults, these are handled by the theme now.
22900
22901 2004-08-09 09:54  jackson
22902
22903         * Control.cs: Get default properties from the theme.
22904
22905 2004-08-09 09:53  jackson
22906
22907         * ITheme.cs: Themes now handle default control properties
22908
22909 2004-08-09 09:53  jackson
22910
22911         * ThemeWin32Classic.cs: Themes now handle default control
22912           properties so coloring will be consistent
22913
22914 2004-08-08 16:54  jordi
22915
22916         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
22917
22918 2004-08-08 15:08  jordi
22919
22920         * XplatUIX11.cs: fixes keyboard crash
22921
22922 2004-08-08 13:47  jordi
22923
22924         * Label.cs: add cvs header info
22925
22926 2004-08-08 12:09  jackson
22927
22928         * ThemeWin32Classic.cs: Add pen_buttonface
22929
22930 2004-08-08 11:52  jordi
22931
22932         * Label.cs, LinkLabel.cs: [no log message]
22933
22934 2004-08-08 11:34  jordi
22935
22936         * ThemeWin32Classic.cs: Use Windows Standard Colours
22937
22938 2004-08-07 17:32  jordi
22939
22940         * TrackBar.cs: throw exceptions of invalid enums values
22941
22942 2004-08-07 17:31  jordi
22943
22944         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
22945           draw method name
22946
22947 2004-08-07 16:56  jackson
22948
22949         * HorizontalAlignment.cs: Initial checkin
22950
22951 2004-08-07 13:16  jordi
22952
22953         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
22954           methods
22955
22956 2004-08-07 13:05  jordi
22957
22958         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
22959           GetSysColor defines
22960
22961 2004-08-06 18:01  pbartok
22962
22963         * ThemeWin32Classic.cs:
22964           - Fixed some rounding issues with float/int
22965
22966 2004-08-06 18:00  jackson
22967
22968         * DockStyle.cs, AnchorStyles.cs:
22969
22970                   Add flags and serializable attributes.
22971
22972 2004-08-06 17:46  pbartok
22973
22974         * XplatUIX11.cs:
22975           - Implemented GetParent
22976
22977 2004-08-06 17:18  pbartok
22978
22979         * TrackBar.cs:
22980           - Fixed some rounding issues with float/int
22981
22982 2004-08-06 17:17  pbartok
22983
22984         * X11Structs.cs, XplatUIX11.cs:
22985           - Fixed Refresh and Invalidate
22986
22987 2004-08-06 15:30  pbartok
22988
22989         * Control.cs, X11Structs.cs, XplatUIX11.cs:
22990           - Fixed recursive loop when resizing
22991           - Improved/fixed redrawing on expose messages
22992
22993 2004-08-06 09:53  jordi
22994
22995         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
22996           keyboard navigation
22997
22998 2004-08-06 08:02  pbartok
22999
23000         * X11Structs.cs, XplatUIX11.cs:
23001           - Fixed reparenting
23002           - Fixed window border creation
23003
23004 2004-08-05 15:38  pbartok
23005
23006         * XplatUIX11.cs:
23007           - Attempted fix for reparenting problems
23008
23009 2004-08-04 15:14  pbartok
23010
23011         * Control.cs:
23012           - Fixed Invalidation bug (calculated wrong client area)
23013           - Added ClientSize setter
23014
23015 2004-08-04 15:13  pbartok
23016
23017         * Form.cs:
23018           - Added AutoScale properties
23019
23020 2004-08-04 15:13  pbartok
23021
23022         * SWF.csproj:
23023           - Added latest files
23024
23025 2004-08-04 14:11  pbartok
23026
23027         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
23028           XplatUIX11.cs:
23029           - Added Invalidate handling
23030
23031 2004-08-03 17:09  jordi
23032
23033         * XplatUIDriver.cs: fixes spelling mistake
23034
23035 2004-07-27 09:53  jordi
23036
23037         * TrackBar.cs: fixes trackbar events, def classname, methods
23038           signature
23039
23040 2004-07-27 09:29  jordi
23041
23042         * ScrollBar.cs: fixes scrollbar events
23043
23044 2004-07-27 04:38  jordi
23045
23046         * Control.cs: changes to be able to run winforms samples
23047
23048 2004-07-26 11:42  jordi
23049
23050         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
23051           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
23052
23053 2004-07-26 05:41  jordi
23054
23055         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
23056           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
23057           implementation
23058
23059 2004-07-22 09:22  jordi
23060
23061         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
23062           check link overlapping, implement events, and fixes
23063
23064 2004-07-21 10:28  jordi
23065
23066         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
23067
23068 2004-07-21 10:19  jordi
23069
23070         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
23071           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23072           LinkLabelLinkClickedEventArgs.cs,
23073           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23074           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23075           implementation
23076
23077 2004-07-19 13:09  jordi
23078
23079         * Control.cs, Label.cs: label control re-written: added missing
23080           functionlity, events, and properties
23081
23082 2004-07-19 10:49  jordi
23083
23084         * Control.cs: fixes SetBounds logic
23085
23086 2004-07-19 01:29  jordi
23087
23088         * Control.cs: Call RefreshWindow only if the window has created
23089
23090 2004-07-15 14:05  pbartok
23091
23092         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23093           - Implemented ImageList and ImageList.ImageCollection classes
23094           - Added ColorDepth enumeration
23095           - Updated SWF VS.Net project
23096
23097 2004-07-15 11:06  jordi
23098
23099         * XplatUIStructs.cs: added MsgButons enum
23100
23101 2004-07-15 11:03  jordi
23102
23103         * Control.cs: added basic mouse handeling events
23104
23105 2004-07-15 03:38  jordi
23106
23107         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23108           Vertical TrackBar control implementation
23109
23110 2004-07-13 09:33  jordi
23111
23112         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23113
23114 2004-07-13 09:31  jordi
23115
23116         * Control.cs, Form.cs: commit: new properties and fixes form size
23117           problems
23118
23119 2004-07-09 14:13  miguel
23120
23121         * ProgressBar.cs: Spelling
23122
23123 2004-07-09 11:25  pbartok
23124
23125         * ProgressBar.cs:
23126           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23127           faster
23128
23129 2004-07-09 11:17  miguel
23130
23131         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23132
23133                 * ProgressBar.cs: Fixed spelling for `block'
23134
23135                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23136                 style guidelines.
23137
23138                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23139
23140 2004-07-08 23:21  pbartok
23141
23142         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23143           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23144           BaseCollection.cs, Binding.cs, BindingContext.cs,
23145           BindingMemberInfo.cs, BindingsCollection.cs,
23146           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23147           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23148           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23149           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23150           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23151           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23152           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23153           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23154           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23155           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23156           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23157           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23158           InputLanguageChangedEventArgs.cs,
23159           InputLanguageChangedEventHandler.cs,
23160           InputLanguageChangingEventArgs.cs,
23161           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23162           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23163           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23164           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23165           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23166           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23167           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23168           QueryAccessibilityHelpEventArgs.cs,
23169           QueryAccessibilityHelpEventHandler.cs,
23170           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23171           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23172           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23173           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23174           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23175           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23176           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23177           XplatUIX11.cs, lang.cs:
23178           - Initial check-in
23179