2007-05-29 Andreia Gaita <avidigal@novell.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-05-30  Andreia Gaita  <avidigal@novell.com>
2
3         * UserControl.cs: Add 2.0 AutoSizeMode
4
5 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
6
7         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
8
9 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
10
11         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
12         lines. Fixes #80285. 
13
14 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
15
16         * DataGridColumnStyle.cs: Add char trimming column header text format. 
17
18 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
19
20         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
21         Fixes #80147.
22
23 2007-05-29  Jackson Harper  <jackson@ximian.com>
24
25         * TreeNode.cs: Fix off by one on calculating whether or not a node
26         is visible.
27
28 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
29
30         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
31         * ScrollableControl.cs: Force an UpdateDistances when we move the
32         scrollbars.
33         [Fixes bug #80605]
34
35 2007-05-29  Andreia Gaita  <avidigal@novell.com>
36
37         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
38         update the page setup screen.
39
40 2007-05-29  Andreia Gaita  <avidigal@novell.com>
41
42         * PageSetupDialog.cs: Fix landscape mode.
43
44 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
45
46         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
47         IconSizeHorizontalSpacing.
48
49 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
50
51         * ListView.cs: The declaration of prev_tooltip_item should be inside
52         a NET_2_0 conditional (avoid a warning).
53
54 2007-05-28  Andreia Gaita  <avidigal@novell.com>
55
56         * PageSetupDialog.cs: Implement PrintPreview control to display
57         the preview thumbnail. Change unit conversion to use 
58         PrinterUnitConvert methods.
59         
60         Note: there is a huge bug in ms.net where the default margins are 
61         interpreted as centimeters (?), when in fact they are set in inches. When 
62         loading the page setup dialog initially (ms.net), the default margins 
63         are set to 1 inch, and the dialog shows them with value 10, when in fact 
64         it should be 25 (properly converted). Our dialog doesn't have this bug.
65         
66         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
67         RectangleF.
68         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
69
70 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
71
72         * ListView.cs:
73         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
74         items.
75
76 2007-05-28  Andreia Gaita  <avidigal@novell.com>
77
78         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
79         an IntPtr on csc (it builds fine on mcs, could it be a compiler
80         bug?), convert the ptr to Int32 first.
81
82 2007-05-28  Jackson Harper  <jackson@ximian.com>
83
84         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
85         recieved, we will exit the dnd tracking loop.
86
87 2007-05-28  Jackson Harper  <jackson@ximian.com>
88
89         * X11Dnd.cs: Keep tracking until the xdnd finished event is
90         recieved. TODO: I should probably stick a timer on the dropped
91         event, and finish the drag if the XDND Finished event never shows
92         (because some apps don't seem to send it).
93
94 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
95
96         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
97         #81733.
98
99 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
100
101         * MonthCalendar.cs: Only mark the keypresses we actually handle as
102           handled.
103
104 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
105
106         * MonthCalendar.cs: Set the size after initializing all the relevant
107           variables. Fixes #81742.
108
109 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
110
111         * KeyEventArgs.cs: Fix typo.
112
113 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
114
115         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
116         to match MS. Fixed MinDate to only accept value less than or equal
117         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
118         Removed TODO's that are now verified by unit tests.
119
120 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
121
122         * TreeNodeCollection.cs: Minor corrections to exceptions to match
123         MS.
124
125 2007-05-25  Jackson Harper  <jackson@ximian.com>
126
127         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
128         it's own message loop.
129         * XplatUIX11.cs: Remove some of the dnd hooks
130
131 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
132
133         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
134         instead of MinimizedWindowSize.
135
136 2007-05-25  Jackson Harper  <jackson@ximian.com>
137
138         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
139
140 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
141
142         * KeyEventArgs.cs: Added SuppressKeyPress.
143         * Control.cs: Added support for SuppressKeyPress.
144
145 2007-05-24  Andreia Gaita  <avidigal@novell.com>
146
147         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
148         problems with PieChart. suppress_validation should not be a counter,
149         if there are several BeginInit calls, the first EndInit will 
150         activate validation. Fix exceptions thrown by set_Value.
151         * UpDownBase.cs: ValidateText only if it's the user editing it.
152
153 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
154
155         * ListControl.cs: FilterItemOnProperty should return the filtered
156         item proeprty even if DataSource is null. The same applies for
157         GetItemText. Fixes #80427.
158
159 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
160
161         * Control.cs: If a control doesn't have a parent when it's Dock is
162         set, but it has children, it needs to do a layout.  Fixes some nested
163         controls issues.  [Fixes bug #81199]
164
165 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
166
167         * ComboBox.cs: If there are few items in the drop down list, make it
168           the exact size the items need, no bigger. Fixes #81612.
169
170 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
171
172         * Application.cs: When we have captured the keyboard for a menu,
173         check for mouse down events in case we need to close the menu.
174         * Control.cs, Form.cs: Remove mouse down checks for menus.
175
176 2007-05-24  Jackson Harper  <jackson@ximian.com>
177
178         * TextControl.cs: Handle tabs in non multiline mode a little
179         differently.
180
181 2007-05-24  Jackson Harper  <jackson@ximian.com>
182
183         * TextControl.cs: We need to manually break apart tabbed text and
184         move the tabs, since the system.drawing tabbing mechanism relies
185         on tab stops.
186         * TextBoxBase.cs: Move the caret properly when the user enters a
187         tab.
188
189 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
190
191         * ContainerControl.cs: Don't check CanSelect before calling
192         ProcessMnemonic.
193         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
194         release a KeyboardActive on click if it's not ours.
195
196 2007-05-23  Andreia Gaita  <avidigal@novell.com>
197
198         * ColumnHeader.cs: Add TypeConverter
199
200 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
201
202         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
203
204 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
205
206         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
207
208 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
209
210         * LinkLabel.cs: Implement public Padding property.
211
212 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
213
214         * LinkLabel.cs: Implement public FlatStyle.
215
216 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
217
218         * Control.cs: Apply patch from George to call parent.PerformLayout
219         when Visible is changed.  [Fixes bugs #81118, 81718]
220
221 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
222
223         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
224
225 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
226
227         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
228
229 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
230
231         * ContextMenu.cs: Implement Collapse.
232
233 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
234
235         * ToolBarButton.cs: Implement Name.
236
237 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
238
239         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
240         use current_item, it prevents some NRE. Fixes #81675.  
241
242 2007-05-22  Andreia Gaita  <avidigal@novell.com>
243
244         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
245         without updating the text.
246
247 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
248
249         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
250         without calling DeleteObject.  [Should fix bug #81709]
251
252 2007-05-22  Jackson Harper  <jackson@ximian.com>
253
254         * RichTextBox.cs: Set the line endings correctly, when flushing
255         RTF text.
256
257 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
258
259         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
260          {Width=0,Height=0}.
261
262 2007-05-22  Jackson Harper  <jackson@ximian.com>
263
264         * TreeView.cs: Setting top with a null node should set to the very
265         top.
266
267 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
268
269         * Form.cs: ShowDialog: destroy the handle when message loop is
270           finished, matches MS behaviour. Refactor parts of WmClose into
271           RaiseCloseEvents, that only raises events if they haven't already
272           been raised. Fixes #81688 and #81521.
273         * Application.cs: Don't call close on the form when exiting a modal
274           loop, it will raise all the (Form)Closed/Closing events again if
275           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
276           which doesn'r raise any events it they have been raised before.
277
278 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
279
280         * Control.cs: Add OnPrint.
281         * ToolStrip.cs: Add GetChildAtPoint.
282         * ToolStripContainer.cs: Add OnRightToLeftChanged.
283         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
284
285 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
286
287         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
288
289 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
290
291         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
292           isn't visible anymore. Fixes #81651.
293
294 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
295
296         * Control.cs: WmShowWindow: Update children's z-order after setting
297           their parent. SetParent may show the window, thereby corrupting
298           z-order, since the window will be shown on top.
299         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
300           multiple (and redundant) WM_SHOWWINDOW messages.
301         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
302           event has already been raised.
303         * Form.cs: Change is_changing_visible_state to a counter, since
304           SetVisibleCore can be called recursively. CreateHandle: when
305           creating mdi children, send (De)Activated events.
306         * MdiClient.cs: Update use of is_changing_visible_state.
307         * Application.cs: OnThreadException: Surround exception handling with
308           try/finally to ensure we always reset the error-handling state
309           before leaving.
310
311 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
312
313         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
314           (#81704).
315
316 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
317
318         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
319         SmallIcon views, now that we have a standarized horizontal spacing.
320
321         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
322         4, just like the other views (Match .Net).
323
324 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
325
326         * Control.cs: Delay calculating anchor distances until we actually layout.
327         Always query the WM for the actual size and location it put us at instead of
328         only when we send negative values.
329         [Fixes bugs #81694, 81695]
330
331 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
332
333         * Application.cs: Avoid a possible stack overflow when trying to exit
334           the application.
335
336 2007-05-19  Marek Safar  <marek.safar@gmail.com>
337
338         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
339         enum value.
340
341 2007-05-19  Andreia Gaita  <avidigal@novell.com>
342
343         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
344         * NumericUpDownAcceleration.cs, 
345           NumericUpDownAccelerationCollection.cs: Added 2.0
346           implementation.
347
348 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
349
350         * RichTextBox.cs: Recalculate the document after the ScrollBars
351         property is changed. Fixes bug #81681.
352
353 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
354
355         * DataObject.cs: Implement 2.0 methods.
356
357 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
358
359         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
360         in the center of the checkbox, not in the left-top corner. 
361         Fixes #80037.
362
363 2007-05-18  Jackson Harper  <jackson@ximian.com>
364
365         * RichTextBox.cs: Recalculate the document after the scrollbars
366         property is changed.
367         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
368         81486.
369
370 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
371
372         * CreateParams.cs: Make HasWindowManager marginally faster.
373         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
374           into Hwnd so that other drivers can use it as well.
375         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
376           the default location from Hwnd. Fixes MDI client windows always
377           showing up at (0,0) in Windows (Win32 won't set the default
378           location since the window styles aren't correct).
379
380 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
381
382         * TreeView.cs: Modified DoubleBuffered to just use the base
383         implementation.
384
385 2007-05-18  Jackson Harper  <jackson@ximian.com>
386
387         * TreeView.cs: Set the top node to the last child node when
388         expanding all
389         - When we get focus, if there is no selected node, use the top
390         node.
391
392 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
393
394         * KeysConverter.cs: Add CanConvertTo.
395         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
396         * LinkConverter.cs: Added.
397
398 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
399
400         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
401         it prevents error when file dont have write access. Fixes #81669 and #81667.  
402
403 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
404
405         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
406         button text. Fixes #79640.  
407
408 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
409
410         * Control.cs: According to MSDN controls created in the designer theres 
411         keyboard accelerators visible by default. So included check for design
412         in ShowKeyboardCuesInternal.  
413
414 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
415
416         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
417         text. Fixes #81621.  
418
419 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
420
421         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
422         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
423
424 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
425
426         * Control.cs: Finish implementation of UI State using WmChangeUIState
427         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
428         in some controls to check for show_keyboard_cues to draw accell keys "_".  
429
430 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
431
432         * ListBox.cs: When calculating the horizontal scrollbar
433         in single column mode, don't use values less than 0 for
434         Maximum. Fixes #81474.
435
436 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
437
438         * ListBox.cs: Throw the some missing exceptions in
439         ListBox.ObjectCollection methods.
440
441 2007-05-17  Jackson Harper  <jackson@ximian.com>
442
443         * TextBoxBase.cs: Recalculate the document when the word wrap
444         value has changed. This fixes 81488.
445
446 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
447
448         * Clipboard.cs: Implement missing GetText overload.
449
450 2007-05-17  Chris Toshok  <toshok@ximian.com>
451
452         * Control.cs (CheckDataBindings): remove the binding_context arg
453         to binding.Check.
454
455         * CurrencyManager.cs (OnItemChanged): fix this now that
456         BindingManagerBase is fixed. also remove the comment telling where
457         the fix should go.  We set transfering_data to true/false around
458         the call to PushData to keep UpdateIsBinding from being called.
459         (ListChangedHandler): remove the extra OnMetaDataChanged call for
460         PropertyDescriptorAdded in the 1.1 case.  The extra call is
461         actually generated by System.Data generating 2 metadata changed
462         events of its own per column add.  The fix should go there.  Add a
463         comment to that affect in our test's Assert.Ignore.
464
465         * BindingManagerBase.cs: Rework PullData and PushData slightly.
466         we keep a boolean flag (transfering_data) that keeps us from
467         calling UpdateIsBinding multiple times if we re-enter either of
468         them.
469
470         * ControlBindingsCollection.cs (AddCore): remove the
471         binding_context arg to binding.Check.
472
473         * Binding.cs (IsBinding): don't check if we're binding here, just
474         return our cached value.  we update it in UpdateIsBinding.
475         (Check): don't take the binding_context arg, we'll just use our
476         control's.  Also, for some reason MS doesn't use the data member
477         field when getting the bindingmanager for this binding.  it just
478         uses the datasource.  Make this method callable multiple times,
479         and only do the is_null_desc stuff if manager.Position != -1 (so
480         we don't get an exception accessing manager.Current).
481         (UpdateIsBinding): move the code from IsBinding here.
482         (PositionChangedHandler): call Check here to we can initialize
483         things that require a non- -1 position.
484
485 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
486
487         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
488         control.
489
490 2007-05-17  Andreia Gaita  <avidigal@novell.com>
491
492         * TabControl.cs: Add 2.0 methods and events, including
493         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
494         * TabPage.cs: Add 2.0 methods
495
496 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
497
498         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
499         keyboard_cues is properly handled by message method.  
500
501 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
502
503         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
504
505 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
506
507         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
508
509 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
510
511         * Control.cs: 
512         - WmUpdateUIState added to handle state changes, it make call to
513         OnChangeUICues event.
514         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
515         SystemInformation.
516
517 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
518
519         * ImageKeyConverter.cs: Added.
520         * TreeViewImageKeyConverter.cs: Added.
521
522 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
523         
524         * ToolTips.cs: Update Text if SetToolTip is called for a control
525         already showing the tooltip, as well as restarting its timer; show
526         tooltip if we are inside the control bounds by the time of calling
527         SetToolTip. Inside ShowTooltip remove the check to not show the 
528         tooltip again for the active control (it is allowed by .Net to 
529         show the tooltip on the same control multiple times).
530
531 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
532
533         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
534
535 2007-05-16  Andreia Gaita <avidigal@novell.com> 
536
537         * ContainerControl.cs: only process tab key if there are no 
538         modifier keys present, otherwise the control does the 
539         tab processing, if it needs to. Fixes #81622
540         * TabControl.cs: Fixes calculation for which tab to select on
541         shift+ctrl+tab.
542
543 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
544
545         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
546
547 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
548
549         * Control.cs: Make IsInputCharInternal to allow controls to
550         override it and still match MS API.
551         * TextBoxBase.cs: Override IsInputCharInternal and always
552         return true.
553         [Fixes bug #81616]
554
555 2007-05-15  Jackson Harper  <jackson@ximian.com>
556
557         * TextBox.cs: Disable some of the menu options when using a
558         readonly textbox.
559
560 2007-05-15  Jackson Harper  <jackson@ximian.com>
561
562         * TextBox.cs:
563         * TextBoxBase.cs:
564         * RichTextBox.cs: Some new 2.0 methods
565
566 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
567
568         * FileDialog.cs: On 1.0 profile, do not support multidotted 
569         extensions.
570
571 2007-05-14  Jackson Harper  <jackson@ximian.com>
572
573         * TextBoxBase.cs: Implement some of the new 2.0 methods.
574         * RichTextBox.cs: We need to override these methods on 2.0.
575         * MaskedTextBox.cs: These are implemented now
576         * TextControl.cs: This was off by one.
577
578 2007-05-14  Jackson Harper  <jackson@ximian.com>
579
580         * TextControl.cs: Because the line endings are including in the
581         text, we don't need to add them in anymore.
582
583 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
584
585         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
586         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
587
588 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
589
590         * ToolBar.cs: Adjust size to default size when button theres no text and
591         image, it fixes remaining issues from #81524.
592
593 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
594
595         * ToolBar.cs: 
596         - When not flat call redraw to recalculate sizes on creare handle to match
597         win32 behavior.
598         - Revert 77220 because it causes some regressions in toobar
599         button.
600
601 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
602
603         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
604           now actually enters a usable state.
605
606 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
607
608         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
609         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
610         3 buttons.
611
612 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
613
614         * ToolBar.cs: Save default_size on create handle to use later for buttons
615         without text, needed to mimic win32 behavior.
616
617 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
618
619         * ToolBar.cs: Fix button layour to best fit width or height according to
620         vertical or not. Fixes #81524.
621
622 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
623
624         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
625         toolbar size info because different styles theres different sizes.
626         Fixes #81522.
627
628 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
629
630         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
631         if we are using checkboxes, checked is true, and we have less
632         than two images in StateImageList; for the 1.1 in the same scenario
633         draw the first image if we have at least one image in StateImageList.
634         Fixes part of #81191.
635
636 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
637
638         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
639         the owner's Items collection on merge.
640
641 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
642
643         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
644         * ToolStripItemCollection.cs: Lots of fixes to when events get called
645         and parent/owner gets changed based on gert's unit tests.
646
647 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
648
649         * MaskedTextBox.cs: Started implementing parts of it.
650
651 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
652
653         * ListView.cs: When clicking the checkbox on the items
654         take into account the double clicks even if we have only
655         one image in StateImageList (only for 1.0/1.1). Also 
656         generate an extra change of checked state when we receive
657         the second click on checkbox (match .Net behaviour). 
658         Fixes part of #81191.
659
660 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
661
662         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
663
664 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
665
666         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
667         even if OnLoad is overriden and base.OnLoad is not called.
668         [Fixes bug #81582]
669
670 2007-05-10  Andreia Gaita  <avidigal@novell.com>
671
672         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
673         shame. (I blame my ever-persisting and annoying cold)
674
675 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
676
677         * ListView.cs: Don't eat navigation keys.  Let them flow through to
678         KeyDown/KeyPress routines.  [Fixes bug #81569]
679
680 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
681
682         * ListView.cs: When handling keys for selecting the item based off
683         keyboard input, do not consider keys pressed with Alt or Control.  Also,
684         correctly handle keys when the Shift key is down. [Fixes bug #81578]
685
686 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
687
688         * Control.cs: When using UseWaitCursor, we have to store the requested
689         Cursor to use when UseWaitCursor is turned off.
690
691 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
692
693         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
694         to false.
695         * Application.cs: Use PreProcessControlMessage instead of
696         PreProcessMessage.
697         * PreProcessControlMessage.cs: Make internal for 1.1.
698
699 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
700
701         * Control.cs: Add InternalContains focus property, which hast the same
702         functionality of ContainsFocus, but also including implicit controls.
703         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
704         since we need to know if the focus is contained in our implicit
705         ItemControl when calculating Layout. Fixes part of #80888.
706
707 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
708
709         * ToolTip.cs: Remove center form string alignment as it must be align to
710         left.
711
712 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
713
714         * ToolStripItemCollection.cs: Set the new item's parent and owner
715         in Insert like we do in Add.  [Fixes bug #81568]
716
717 2007-05-08  Jackson Harper  <jackson@ximian.com>
718
719         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
720         - Off by one error in SetTop
721         - Disable DoubeBuffering
722         
723 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
724
725         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
726           control as much as necessary in order to make it entirely visible,
727           instead of centering the control in the container (matches MS
728           behaviour). CalculateCanvasSize: we need to take the current scroll
729           position into account when calculating the maximum canvas,
730           otherwise the following scenario will fail: resize so that the
731           scrollbars appear, use the scrollbars to scroll, resize again
732           smaller, and now the canvas size is too small. Recalculate: when
733           showing scrollbars make sure they start off at 0, and try to scroll
734           the active control into view. Fixes #79540. HandleScrollBar: don't
735           scroll anywhere if the scrollbar isn't visible.
736
737 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
738
739         * ListView.cs: When focus changed, call Layout/Invalidate
740         in the focused item to update the selected state (should show
741         entire label when ListView is focused, and a part of it if is not).
742         * ListViewItem.cs: When doing layout for LargeIcon, take into account
743         for displaying the entire label not only the Focused state of the
744         item, but also the Focused state of the ListView (match .Net
745         behaviour).
746
747 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
748
749         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
750         Implement UseWaitCursor. 
751
752 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
753         Applying contributed patch from Sergey Volk.
754
755         * Clipboard.cs: Implement SetDataObject retry logic and new overload
756         of SetDataObject.
757         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
758
759 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
760
761         * Control.cs: Implement DrawToBitmap.
762
763 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
764         Applying contributed patch from Stefan Noack.
765         
766         * Control.cs: Add [Get|Set]AutoSizeMode.
767
768 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
769
770         * MdiClient.cs: Unmerge menus when the last child is closed.
771
772 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
773
774         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
775         * ToolStripManager.cs: Call Merge on DropDowns.
776         [Fixes bug #81477]
777
778 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
779
780         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
781           uints.
782         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
783           visibility. We can't create forms visible, since we have to set the
784           owner before making the form visible (otherwise Win32 will do
785           strange things with task bar icons). The problem is that we set the
786           internal is_visible to true before creating the control, so
787           is_changing_visible_state is the only way of determining if we're
788           in the process of creating the form due to setting Visible=true -
789           this works because SetVisibleCore explicitly makes the form
790           visibile afterwards anyways. Fixes #80775.
791
792 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
793
794         * ThemeWin32Classic.cs: When drawing ListViewItems,
795         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
796         or LargeIcon _and_ item is not focused (match .Net behaviour).
797
798 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
799
800         * Control.cs, Form.cs: Fix some obsolete method warnings.
801
802 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
803
804         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
805         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
806
807 2007-05-04  Andreia Gaita  <avidigal@novell.com>
808
809         * ContainerControl.cs: Fix active_control attribution when going
810         up the parent chain so that the first parent container gets the control
811         and the rest of the parent containers get the child containers (skips
812         non-containers). Fixes #80729
813
814 2007-05-04  Randolph Chung  <tausq@debian.org>
815
816         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
817         [Fixes bug #81499]
818
819 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
820
821         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
822           takes a size parameter, since the CreateParam's size isn't true for
823           minimized forms. Fixes #81518,
824
825 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
826
827         * Form.cs: Add OnDeactivateInternal.
828         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
829
830 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
831
832         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
833           accessing the parent. Fixes #81508.
834
835 2007-05-03  Chris Toshok  <toshok@ximian.com>
836
837         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
838         2.0 block, pass listposition + 1 to ChangeRecordState when a row
839         was added before the current listposition.  Fixes the
840         TestInsertRowBeforeCurrent unit test.
841
842 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
843
844         * Application.cs: Add RaiseIdle.
845         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
846         XplatUIX11.cs: Implement RaiseIdle.
847
848 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
849         corcompare work: N - Z
850         * NotifyIcon.cs
851         * ProgressBar.cs
852         * RadionButton.cs
853         * ScrollableControl.cs
854         * SplitContainer.cs
855         * SplitterPanel.cs
856         * StatusBar.cs
857         * SystemInformation.cs
858         * TabControl.cs
859         * TableLayoutControlCollection.cs
860         * TableLayoutPanel.cs
861         * TabPage.cs
862         * ToolBar.cs
863         * ToolBarButton.cs
864         * ToolStrip.cs
865         * ToolStripComboBox.cs
866         * ToolStripContainer.cs
867         * ToolStripContentPanel.cs
868         * ToolStripDropDown.cs
869         * ToolStripDropDownItem.cs
870         * ToolStripDropDownMenu.cs
871         * ToolStripItem.cs
872         * ToolStripItemCollection.cs
873         * ToolStripMenuItem.cs
874         * ToolStripPanel.cs
875         * ToolStripSplitButton.cs
876         * ToolTip.cs
877         * TreeNode.cs
878         * TreeNodeCollection.cs
879         * TreeNodeMouseHoverEventArgs.cs
880         * TreeView.cs
881
882 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
883
884         * ContextMenu.cs: Add public method Show with alignment property to 2.0
885         stuff. Thanks aatdark for the patch. 
886
887 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
888
889         * GridItem.cs: Implement 2.0 Tag property.
890
891 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
892
893         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
894         count instead of Nodes.Length.  [Fixes bug #81448]
895
896 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
897
898         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
899         [Fixes bug #81506]
900
901 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
902         corcompare work: A - M
903         * BindingNavigator.cs
904         * Button.cs
905         * ButtonBase.cs
906         * CheckBox.cs
907         * Control.cs
908         * FlowLayoutPanel.cs
909         * Form.cs
910         * Label.cs
911         * LinkLabel.cs
912         * ListView.cs
913
914 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
915
916         * Application.cs: Give toolstrips a chance to process mnemonics.
917         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
918         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
919         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
920
921 2007-05-01  Jackson Harper  <jackson@ximian.com>
922
923         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
924         wider area too.
925         - Don't set the BoundsSpecified
926
927 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
928
929         * Application.cs: When using the toolstrip shortcut mechanism, allow the
930         message to pass through to a regular control if it hosted by a toolstrip.
931         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
932         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
933
934 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
935
936         * TextRenderer.cs: Use the flags argument when using the MeasureString
937         fallback algorithm.
938
939 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
940
941         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
942         the MDI menu item.  [Fixes bug #81483]
943
944 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
945
946         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
947         string. When setting Name to null, use zero-length string instead.
948
949 2007-04-29  Andreia Gaita  <avidigal@novell.com>
950
951         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
952         DeselectTab). Implement missing 2.0 TabPageCollection methods
953         (Add, ContainsKey, RemoveByKey, IndexOfKey)
954
955 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
956
957         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
958
959 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
960
961         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
962         Fixes bug #81479. Include details of exception when LoadFile fails.
963
964 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
965
966         * DrawListViewSubItemEventArgs.cs: Added missing setter
967
968 2007-04-27  Andreia Gaita  <avidigal@novell.com>
969
970         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
971         Hide methods (not complete). Implement missing 2.0 OnPopup event.
972
973 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
974
975         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
976         removed in ly last commit (it was breaking the Label edit feature).
977
978         * ThemeWin32Classic.cs: When drawing a ListViewItem use
979         StringAlignment.Near for LineAlignment (match .Net).
980
981 2007-04-27  Andreia Gaita  <avidigal@novell.com>
982
983         * TabControl.cs: Change SetTab so it adds the tabpage to the list
984         of controls if it isn't already there - was blowing up when doing
985         tabcontrol.TabPages[i]=new TabPage(). 
986         SetTab now does a replace by removing the page at the index. 
987         Add a new InsertTab method that inserts a page in a given index 
988         instead of replacing. 
989         Implements TabPageCollection.Insert(int, TabPage).
990
991 2007-04-27  Chris Toshok  <toshok@ximian.com>
992
993         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
994         internal handler that can be invoked from our subclasses.)  Also,
995         add a comment to PushData about how we need to fix it.
996
997         * CurrencyManager.cs: tons of changes here.  trying to get things
998         matching the behavior of .net wrt event orders (ItemChanged,
999         CurrentChanged, PositionChanged.)  I've implemented a private .net
1000         symbol (ChangeRecordState) that appears in stack traces because
1001         it's actually easier to do this than to effective inline all its
1002         various behaviors at every call site.
1003
1004         * RelatedPropertyManager.cs: guard against an exception here by
1005         not using parent.Current if the position is set to -1 (if the
1006         parent datasource is cleared, for instance).
1007
1008         * Binding.cs: don't parse data in PushData (this might be wrong,
1009         but it jives with MS's behavior.)  Also, don't call PushData when
1010         we get a CurrentChanged event.
1011
1012 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1013
1014         * WebBrowser.cs,
1015           WebBrowserBase.cs,
1016           WebBrowserSiteBase.cs,
1017           HtmlDocument.cs: Added stubbed out classes, no real implementations 
1018           yet.
1019
1020 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1021
1022         * MainMenu.cs: In draw method without parameters call draw method with 
1023         PaintEvent, another one (just rect) adjust rectangle and we dont need it
1024         as Rect property is already adjusted. Fixes #80694.
1025
1026 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
1027
1028         * Application.cs: Need to handle keyboard menu deselection here.
1029         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
1030         navigation, allowing keyboard to work on X11.
1031         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
1032
1033 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1034
1035         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
1036         menu bar. It fixes some drawing issues in menu bar.
1037
1038 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1039
1040         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
1041         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
1042         when <alt> key is pressed.
1043
1044 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1045
1046         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
1047         example just set visible to false and make this prevent from other problems.
1048         In SystrayAdd always remove pending expose. Fixes #81072.
1049
1050 2007-04-26  Marek Safar  <marek.safar@gmail.com>
1051
1052         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
1053         value is set.
1054
1055 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1056
1057         * ListView.cs: Added three missing 2.0 events and corresponding
1058         EventHandlers. Added the OwnerDraw property.
1059         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
1060
1061 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1062
1063         * DrawListViewItemEventArgs.cs
1064         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
1065
1066 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1067
1068         * TextControl.cs: Fixed typo in constructor
1069
1070 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
1071
1072         * Application.cs: Create a shortcut path so that currently selected
1073         MenuStrips can intercept keyboard events without having focus.
1074         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
1075         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
1076         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
1077         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
1078         generate WM_SYSCOMMAND message in X11 for other platforms.
1079         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
1080         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
1081         * ToolStripSplitButton.cs: Add DefaultItem property.
1082         
1083 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1084
1085         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
1086         fixes some menu draw problem on Windows with border diferent from default
1087         it also fixes #81403.
1088
1089 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1090
1091         * Form.cs: Refactor WndProc into separate methods, just like Control is
1092           doing it.
1093
1094 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1095
1096         * Control.cs: set_Text: move the call to the driver into a seperate
1097           virtual method so that Form can override it.
1098         * MaskedTextBox.cs: Corcompare fixes.
1099         * Form.cs: Override UpdateWindowText and only update the styles if the
1100           form has been shown (fixes #81405).
1101
1102 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1103
1104         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
1105         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
1106         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
1107         the form lost focus or another control was clicked.
1108
1109 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
1110
1111         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
1112         fixed.
1113
1114 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1115
1116         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
1117           DrawListViewItemEventHandler.cs,
1118           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
1119           Added.
1120         * X11Structs.cs: More ToString implementation.
1121
1122 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1123
1124         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
1125         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
1126
1127 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1128
1129         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
1130           handle.
1131         * FormCollection.cs: Don't add a form if it's already in the
1132           collection.
1133         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
1134           according to behaviour and MSDN. The ownerWin32 is the active
1135           window at the moment when we call ShowDialog, not the context's
1136           main form (the context's main form may open another form that opens
1137           a form with ShowDialog, the win32 owner is the second form). Add
1138           and remove forms to the Application.OpenForms in other places to
1139           better match MS behaviour. Add an IsActive property that raises
1140           On(de)Activated only if the active state has changed (we were
1141           raising OnDeactivated before OnActivated while creating forms).
1142         * Application.cs: Refactor Enabling/Disabling of windows for modal
1143           dialog loops out to separate methods, and restore the thread
1144           context when we quit the method. Fixes #81407.
1145
1146 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1147
1148         * ListView.cs: In ItemControl.HandleClicks, also fire 
1149         2.0 MouseClick or MouseDoubleClick events on the parent,
1150         not only the Click/DoubleClick events.
1151
1152 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1153
1154         * TableLayoutSettings.cs: 
1155         - Added a GetControls method and a support structure to help the 
1156         TypeConverter to enumerate the controls for     serialization. 
1157         - Added a new serialization constructor. 
1158         - Added a isSerialized flag initialized to true on the 
1159         serialization constructor so that the TableLayoutPanel.LayoutSettings 
1160         setter does not throw the designed NotSupportedOperation exception
1161         when the object is built through deserialization.
1162         - Implemented GetObjectData
1163         
1164         * TableLayoutPanel.cs: Added check on LayoutSettings.
1165
1166 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1167
1168         * ListView.cs: Report Click and DoubleClick events to the parent
1169         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
1170         from breaking the click count state when using dialog forms (Control
1171         reports the clicks in a similar fashion). In the previous behaviour
1172         the last WM_LBUTTONUP message in a  double click was sent to the
1173         ListView's form, instead of the ListView, which was breaking the click
1174         count for it. Fixes #80387.
1175
1176 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1177
1178         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
1179
1180 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1181
1182         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
1183         us from created dropdowns for menu items that do not have subitems.
1184         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
1185         Check HasDropDownItems before calling DropDown so a dropdown will not be
1186         created if it isn't needed.
1187
1188 2007-04-24  Jackson Harper  <jackson@ximian.com>
1189
1190         * TreeView.cs: Set the first node to the selected node when we get
1191         focus if there is no selected node.
1192
1193 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1194
1195         * MimeIcon.cs: remove using blocks so that image streams are
1196         not disposed of. Fixes #80151
1197
1198 2007-04-24  Jackson Harper  <jackson@ximian.com>
1199
1200         * TextBoxBase.cs: Fixup the height of textboxes when the control
1201         is created.
1202
1203 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1204
1205         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
1206         for each ToolStripItem when the parent's RightToLeftChanged is called.
1207
1208 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1209
1210         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
1211           Fixes #80163.
1212         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
1213           property, so that the setter can be overriden too.
1214         * TextBox.cs: Change GetContextMenuInternal() to use
1215           ContextMenuInternal.
1216
1217 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1218
1219         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1220           #81406.
1221
1222 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1223
1224         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1225           #81406.
1226
1227 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1228
1229         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
1230           avoid duplicate work. Mostily skeleton code, it's not working at
1231           all yet.
1232
1233 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
1234
1235         * NotifyIcon.cs : stub for MouseClick event
1236         * Application.cs: stub for SetUnhandledExceptionMode
1237
1238 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1239
1240         * BindingNavigator.cs : Initial (partial) implementation
1241
1242 2007-04-23  Jackson Harper  <jackson@ximian.com>
1243
1244         * TreeView.cs: Do not create the treeview's handle when setting
1245         the scroll position.
1246         - ExpandAll needs to compute the scrollbars so it knows which
1247         position to set the bar too.
1248         * TreeNode.cs: 
1249         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
1250
1251 2007-04-23  Jackson Harper  <jackson@ximian.com>
1252
1253         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
1254         key. Fixes #81408.
1255
1256 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
1257
1258         * ToolStripItem.cs: Make GetImageSize internal.
1259         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
1260         need to draw an item.  Fixes a reported issue where images on menus
1261         that were not 16x16 were drawing incorrectly.
1262
1263 2007-04-21  Miguel de Icaza  <miguel@novell.com>
1264
1265         * Padding.cs: Use the converter, fixes the resgen2 issue with
1266         XMLNotePad. 
1267
1268 2007-04-21  Jackson Harper  <jackson@ximian.com>
1269
1270         * TreeView.cs: Dont try to unhighlight the selected node if there
1271         isn't a selected node.
1272
1273 2007-04-21  Jackson Harper  <jackson@ximian.com>
1274
1275         * UpDownBase.cs:
1276         * TextBoxBase.cs:
1277         * ListView.cs:
1278         * ListBox.cs:
1279         * TreeView.cs: Use the InternalBorderStyle property to set the
1280         initial border style, this forces the client rectangle to be sized
1281         correctly.
1282
1283 2007-04-20  Jackson Harper  <jackson@ximian.com>
1284
1285         * TreeView.cs: Simplify scrolling to the last node after expanding
1286         all.
1287         - Fix some off by ones with setting the bottom.
1288
1289 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1290
1291         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
1292         that.  We were incorrectly doing it the other way around.  Also,
1293         update ClientSize if we change the BorderStyle before the control
1294         is created.
1295
1296 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1297
1298         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1299         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1300         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
1301         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1302         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1303         Caption to CaptionHeight.
1304         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
1305         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
1306         and FixedFrameBorderSize to return value from current XplatUI driver.
1307         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
1308         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
1309         and FixedFrameBorderSize using win32 API. Renamed Caption to
1310         CaptionHeight.
1311         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
1312         * SystemInformation.cs: Fixed typo in BorderSize.
1313
1314 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1315
1316         * XplatUI.cs: Added MenuAccessKeysUnderlined.
1317         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
1318         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
1319         returning false.
1320         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
1321         value from XplatUI driver.
1322         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
1323         SystemParametersInfo.
1324         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
1325         override.
1326         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
1327         returning false.
1328
1329 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1330
1331         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
1332
1333 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1334
1335         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
1336
1337 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1338
1339         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
1340         MenuStrips that contain ToolStripSeparators.
1341
1342 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1343
1344         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
1345           DefineStdCursorBitmap.
1346         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
1347           has been created off a standard cursor. This is used to get a
1348           bitmap of the standard cursor when Draw or DrawStretched is called
1349           in order to draw the cursor.
1350         * X11Structs.cs: Added XcursorImage and XcursorImages.
1351         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
1352           DefineStdCursorBitmap.
1353         * Cursors.cs: Update all relevant creations of Cursor to use the new
1354           internal constructor.
1355
1356 2007-04-19  Jackson Harper  <jackson@ximian.com>
1357
1358         * TextBox.cs: Move the has_been_focused into the base control, so
1359         some of the text adding methods can manipulate it (probably time
1360         for a better name for this flag too).
1361         - Call a new version of selectall that doesn't scroll
1362         * TextBoxBase.cs: When we append text, if the document is empty,
1363         don't scroll.  If the document has text already, we scroll to the
1364         end of the appended text.
1365         - When the text is changed, we reset the has_been_focused, so the
1366         next time the control gets focused, all the text is selected.
1367
1368 2007-04-19  Jackson Harper  <jackson@ximian.com>
1369
1370         * TextControl.cs: Move the margins to the document, add a method
1371         so the margin sizes can be updated.
1372         * TextBoxBase.cs: When the border style is changed, update the
1373         border sizes.
1374
1375 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
1376
1377         * Control.cs: Respect DefaultPadding.
1378         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
1379         padding into account.
1380         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
1381
1382 2007-04-19  Jackson Harper  <jackson@ximian.com>
1383
1384         * TextControl.cs: Oops, we need to use the ClientRect not the
1385         bounds here.
1386
1387 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1388
1389         * ListView.cs: In ItemControl.ItemsMouseDown, take into
1390         account the double clicks when CheckBoxes are used and
1391         the pointer is inside the checkbox. Fixes part of #81191.
1392
1393 2007-04-18  Jackson Harper  <jackson@ximian.com>
1394
1395         * TextControl.cs: Pressing the end key shouldn't move the caret
1396         past the line ending.
1397         * TextBoxBase.cs: We can still delete if we are in the line
1398         ending and the combine will just kill the existing line ending.
1399
1400 2007-04-18  Jackson Harper  <jackson@ximian.com>
1401
1402         * TextControl.cs: We can't move lines, then invalidate their
1403         bounds, we need to get the old bounds and combine that with the
1404         new bounds.
1405         * TextBoxBase.cs: Before combining two lines for a delete, we need
1406         to invalidate the area of the old line, since that will be moved
1407         in the combine operation.
1408
1409 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
1410
1411         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
1412         with transparent background. Fixes #80482.
1413
1414 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
1415
1416         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
1417         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
1418         [Fixes bug #81391]
1419
1420 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1421
1422         * CreateParams.cs: Add a couple of helper methods and do a less string
1423           concatenation in ToString.
1424         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
1425           overload that takes a Control parameter, since this method may be
1426           called before a control is assigned to the hwnd (from
1427           CreateWindow), and update CreateWindow to use the new overload. In
1428           GetMenuOrigin subtract the title bar from the y position if the
1429           form has a window manager (since we're painting it and not X).
1430         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
1431           CreateParams to calculate the origin (since border sizes may vary).
1432           In ScreenToMenu only subtract the title height if we actually have
1433           a title.
1434         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
1435           mdi children never have menus of themselves.
1436         * InternalWindowManager.cs: Implement menu handling like form does.
1437           Added GetMenuOrigin to calculate the menu origin, can't use the
1438           CreateParams from the form like normally since it's lying.
1439         * Hwnd.cs: Implement GetBorderSize better (in the sense more
1440           windows-like) and add Inflate and comparison operators to the
1441           Borders type. When calculating MenuOrigin and it's a form with a
1442           window manager, use the window manager to calculate it.
1443
1444 2007-04-17  Chris Toshok  <toshok@ximian.com>
1445
1446         * Control.cs (CreateControl): turns out in 2.0 we don't need this
1447         OnBindingContextChanged thing here.  It's only generated from
1448         ContainerControl.OnCreateControl.  Fixes a newly written unit test
1449         - BindingTest.BindingContextChangedTest4.
1450         
1451 2007-04-17  Jackson Harper  <jackson@ximian.com>
1452
1453         * ScrollBar.cs: When setting values, make sure the current
1454         position stays within the new values range.
1455
1456 2007-04-17  Chris Toshok  <toshok@ximian.com>
1457
1458         * Control.cs (CreateControl): talk about a bizarre corner case.
1459         Don't emit OnBindingContextChanged here if we're a parentless
1460         control (i.e. if we're a form.).  Fixes
1461         BindingTest.BindingContextChangedTest2.
1462
1463 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1464
1465         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
1466         from win32. Fixes #81255.
1467
1468 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1469
1470         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
1471         already present in CalculateButtonTextAndImageLayout.
1472
1473 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1474
1475         * XplatUIX11.cs: When setting min/max size for a window we need to
1476           translate the coordinates to x coordinates. Create an overload of
1477           SetWindowMinMax that takes a CreateParams handling this, and change
1478           SetWMStyles to call this function (can't use Control.FromHandle in
1479           the SetWindowMinMax to get the control/CreateParams from the handle
1480           because the handle might not have been assigned to the control
1481           yet). Fixes #81371.
1482
1483 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1484
1485         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
1486         if StateImageList is non-null and it has less than two items (match MS
1487         behaviour). Also, in HandleNavKeys handle the Space key, calling
1488         the new ToggleItemsCheckState method, which tries to change the
1489         checked state of the selected items. Fixes part of #81191.
1490
1491 2007-04-16  Jackson Harper  <jackson@ximian.com>
1492
1493         * RichTextBox.cs: namespace cleanup.
1494
1495 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1496
1497         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
1498
1499 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1500
1501         [Fixes #79447]
1502         * Control.cs: Call invalidate in set_Region.
1503
1504         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
1505         it dont works here.
1506
1507 2007-04-16  Jackson Harper  <jackson@ximian.com>
1508
1509         * TextBoxBase.cs: When enter is pressed, we need to update all
1510         lines below the current.
1511
1512 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
1513
1514         * MdiClient.cs: Implement implicit menu merging for MDI
1515         children.  When a child form is active, if it has a menustrip
1516         and the parent form has a MainMenuStrip, automatically merge
1517         the menus.
1518
1519 2007-04-15  Andreia Gaita  <avidigal@novell.com>
1520
1521         * TabControl.cs: Refactored sizing methods to not repeat
1522         code all over the place. Tab bounds are now calculated
1523         as if alignment is top and single line, and only when 
1524         setting the bounds are the positions adjusted according
1525         to alignment. Replaced hardcoded positions, spacings and
1526         paddings by getting the values the ThemeEngine. 
1527         Fixes #79619.
1528         
1529         * Theme.cs: Change TabControl properties and methods so
1530         that all start with TabControl*. Added more properties
1531         to help remove hardcoded values on tabcontrol.
1532         Add CPDrawBorder3D declaration so the Theming classes
1533         can access it.
1534         
1535         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
1536
1537         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
1538         on the Theming namespace, and call the appropriate methods here.
1539         Change CPDrawBorder3D to public.
1540
1541 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1542
1543         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
1544         the control after firing the OnMouseUp event, instead of sending
1545         the message before the mentioned event. This is so we can match the
1546         MS behaviour. Fixes part of #80385.
1547
1548 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1549
1550         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
1551         RightToLeft property.
1552
1553 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1554
1555         * ToolStrip.cs: Add properties and internal methods to support merging.
1556         * ToolStripItem.cs: Add MergeAction and MergeIndex.
1557         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
1558         not trigger reparenting or layouts.
1559         * ToolStripManager.cs: Add Merge and RevertMerge methods.
1560         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
1561         is hosting the overflow menu.
1562
1563 2007-04-13  Jackson Harper  <jackson@ximian.com>
1564
1565         * TextControl.cs: Set the line ending correctly for the first
1566         inserted line.
1567
1568 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
1569
1570         * Theme.cs: Update GetMethod to get the new definition for 
1571         KnownColors.Update (and fix theme color updates).
1572
1573 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
1574
1575         * MessageBox.cs: Fix some test and button position.
1576
1577 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1578
1579         * Form.cs: Consider the implicit controls in
1580         GetRealChildAtPoint. We need it since this method
1581         is called on Form when handling the some messages in
1582         WndProc, and need to consider those implicit ones too.
1583         Fixes #80385.
1584
1585 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
1586
1587         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
1588         if there are no ShortcutKeys set.
1589         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
1590         set, use it when painting.
1591
1592 2007-04-12  Jackson Harper  <jackson@ximian.com>
1593
1594         * TextControl.cs: Fix some off-by-one issues in line duplication
1595         and insertion in the undo manager. Also, overwrite the first tag
1596         of a line on insert, if it is just a zero lengthed tag. This
1597         prevents us from getting an extra stranded tag at the beginning of
1598         the first line.
1599
1600 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
1601
1602         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
1603         to calculated proper size including when handle was not created yet.
1604
1605 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1606
1607         * MdiWindowManager.cs: When moving a form, allow the form to be moved
1608           when the mouse is outside of it's parent's client rectangle. Fixes
1609           #79982 (take 3, part 2).
1610
1611 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1612
1613         * X11Structs.cs: Add a few ToString() overrides.
1614         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
1615           the window location in a window-manager independent way. Reworked
1616           FrameExtents, it now actually works. Reworked AddConfigureNotify
1617           and ReparentNotify handling to use GetTopLevelWindowLocation
1618           instead of the earlier, more hacky solution. Reworked SetWMStyles,
1619           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
1620           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
1621           for all other windows (fixes #81281 part 1), a toolwindow is hidden
1622           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
1623           and generally refactored to do as few calculations as possible
1624           inside the lock.
1625
1626 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
1627
1628         * Theme.cs: Change "reflective-contract" between MWF and SD to 
1629         minimize # of calls, avoid Color serialization and avoid updating 
1630         every "known colors" each time a single one is updated.
1631
1632 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1633
1634         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
1635         when not readonly and the text is explicitly set. Code style updates.
1636         * DataGridTableStyle.cs: Removed extra line.
1637         * DataGrid.cs: Code style updates. Removed extra whitespace.
1638         * DataGridColumnStyle.cs: Code style updates. Removed extra 
1639         whitespace.
1640
1641 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1642
1643         * XplatUIX11.cs: Added comment that "fixes" #80021.
1644
1645 2007-04-09  Jackson Harper  <jackson@ximian.com>
1646
1647         * TextControl.cs: We don't need this -1 on the line count anymore.
1648
1649 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1650
1651         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
1652         entered value to underlying type, and convert it back to a string to
1653         apply formatting. Modified GetFormattedValue to use TypeConverter
1654         if available.
1655
1656 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
1657
1658         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
1659         Use SubItems property when we want to ensure there's at least one
1660         subitem. Modified SubItems property to ensure there's always at least
1661         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
1662         the NRE's reported by MS.
1663
1664 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
1665
1666         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
1667         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
1668         Spaces to tabs. Removed extra tabs.
1669
1670 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
1671
1672         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
1673         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
1674
1675 2007-04-06  Jackson Harper  <jackson@ximian.com>
1676
1677         * TextBoxBase.cs: When a delete removes a line, recalculate all
1678         lines below that line (they need to get offsets setup correctly)
1679         and invalidate.
1680
1681 2007-04-05  Jackson Harper  <jackson@ximian.com>
1682
1683         * TextControl.cs: We need to invalidate across the width of the
1684         document when we are invalidating multiple lines.
1685         * TextBoxBase.cs: Don't delete into the line ending.
1686
1687 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1688
1689         * ListView.cs: Restore the check for the MouseHover event
1690         in ListView. It looks like the ListView fires more than one MouseHover
1691         event when HoverSelection is true  _only_ in weird-corner scenarios, but
1692         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
1693         event.
1694
1695 2007-04-05  Mike Kestner  <mkestner@novell.com>
1696
1697         * ListView.cs : raise MouseDown before updating selection.
1698         [Fixes #80373 tab 1&3]
1699
1700 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1701
1702         * ToolStripRenderer.cs: Add static method to mirror image.
1703         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
1704         and RightToLeftAutoMirrorImage.
1705         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
1706
1707 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1708
1709         * ToolStripSplitStackLayout.cs: Support Alignment property.
1710         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
1711
1712 2007-04-05  Jackson Harper  <jackson@ximian.com>
1713
1714         * TextControl.cs: Move around the line endings when crossing line
1715         boundaries.
1716         - When combining lines, strip the ending text off the first line.
1717
1718 2007-04-05  Jackson Harper  <jackson@ximian.com>
1719
1720         * TextControl.cs:
1721         * TextBoxBase.cs: Try to never move the cursor into the line
1722         ending.
1723         
1724 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1725
1726         * ToolStripItem.cs: Make sure we aren't firing mouse events when
1727         the item is disabled.  Also add a few missing methods.
1728
1729 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1730
1731         * ListView.cs: We don't need the MouseEnter/MouseLeave check
1732         to fire just one MouseHover event when HoverSelection is true, since
1733         .Net does fire more than one MouseHover event in that scenario. Also,
1734         fix the selection in HoverSelection, by invoking UpdateMultiSelect
1735         if MultiSelect is true, instead of only setting ListViewItem.Selected.
1736         Finally, we need to reset the Hover logic in MouseMove, even when we
1737         don't have a selected item.
1738
1739 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1740
1741         * ToolStrip.cs: Add several missing methods, properties, and events.
1742
1743 2007-04-04  Chris Toshok  <toshok@ximian.com>
1744
1745         * DataGridTextBoxColumn.cs: set the bounds of the text box to
1746         (0,0,0,0) in Commit, as MS does.
1747
1748         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
1749         make sure we set CurrentRow on a row header click *before* calling
1750         Select.  This moves the current cell (and the textbox) to the new
1751         row.  The call to Select then hides the textbox, giving us the
1752         correct behavior.  Fixes #80362.
1753
1754         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
1755         (ListChangedHandler): reorder the position/current changed events,
1756         and call UpdateIsBinding in the ItemAdded case.
1757
1758         * GridColumnStylesCollection.cs: add some columns events, one of
1759         which raises the CollectionChanged event.
1760
1761 2007-04-04  Jackson Harper  <jackson@ximian.com>
1762
1763         * TextControl.cs: When we delete multiple selection lines
1764         invalidate the selection area, don't need to do that for single
1765         lines because the final update view will handle it.
1766
1767 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1768
1769         * Control.cs: When we CreateControl, we need to also create all of the
1770         control's children.  The child's OnLoad must also fire before the parent's
1771         OnLoad.  Fixes the toolbox size in PDN.
1772
1773 2007-04-04  Jackson Harper  <jackson@ximian.com>
1774
1775         * TextBoxBase.cs: When the user presses enter, insert a line
1776         ending into the text. (Maybe this would be a good spot for
1777         Environment.NewLine).
1778         * TextControl.cs: Remove undo manager hack, line endings get
1779         inserted properly now.
1780         
1781 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1782
1783         * MenuAPI.cs: 
1784         - Remove unneeded parameters in UpdateCursor.
1785         - Fix UpdateCursor to check if menu is active.
1786         - Call UpdateCursor when menu deactivate my click.
1787         [Fixes remaining issues from #80410]
1788
1789 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1790
1791         * Control.cs: GetRealChildAtPoint method added, it make an
1792         recursive child control search for the point. 
1793
1794         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
1795         menu.
1796
1797         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
1798
1799 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1800
1801         * Form.cs: Fix mouse position when send back mouse event after closes
1802         menu.
1803
1804 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1805
1806         * Form.cs: Simplify the BUTTONDOWN for active tracker.
1807
1808 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1809
1810         * Control.cs: Fix an issue where if a user resized a control inside
1811         a sizing method like OnResize, we would overwrite their explicit
1812         value.  Also, only call DefaultSize once in the constructor instead
1813         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
1814         nothing actually changed.
1815
1816 2007-04-03  Jackson Harper  <jackson@ximian.com>
1817
1818         * TextControl.cs: Don't attempt to copy text for lines with no
1819         text in them (technically this shouldn't happen, but we aren't
1820         always inserting line endings when we should be).
1821
1822 2007-04-03  Jackson Harper  <jackson@ximian.com>
1823
1824         * TextBoxBase.cs: Calculate the scrollbars before calculating the
1825         document, because this sets some of the document size properties
1826         that are needed.
1827
1828 2007-04-03  Jackson Harper  <jackson@ximian.com>
1829
1830         * TextBoxBase.cs: We need to calculate maximums even if this is
1831         not a multiline control, because the maxs are used for scrolling.
1832         - Display the caret after doing a page up/down, we need to
1833         manually display it because a proper CaretMoved event isn't
1834         triggered (this is because of the way the math is done to
1835         determine how far to scroll).
1836
1837 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1838
1839         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
1840         (ToolBar was relying on SetBoundsCore to default the values sent 
1841         base off of BoundsSpecified.)
1842
1843 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1844
1845         * DateTimePicker.cs: Change Text so that when a null value or empty
1846           string is assigned to the test we always raise ValueChanged and
1847           TextChanged (earlier implementation would only raise ValueChanged
1848           if the current date value was different from DateTime.Now).
1849
1850 2007-04-03  Andreia Gaita <avidigal@novell.com> 
1851
1852         * ButtonBase: Call update after invalidation, fixes #80194
1853
1854 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1855
1856         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
1857           #79335.
1858
1859 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1860
1861         * XplatUIX11.cs: SetWMStyles: If the control is a form with
1862           FormBorderStyle = None, don't give the window any decorations.
1863           Fixes #81276.
1864
1865 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1866
1867         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
1868         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
1869           to check for is a mix of several styles (such as WS_CAPTION for
1870           instance).
1871         * Control.cs: Don't paint an area bigger than the client area when
1872           painting the background colour. Add an internal GetCreateParams.
1873           Update calls to XplatUI.CalculateWindowRect due to API change.
1874         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
1875           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
1876           the size if it hasn't been handled by any windows. When creating
1877           and moving windows, X wants the location of the entire window, but
1878           the size of the client window, so add
1879           TranslateClientRectangleToXClientRectangle,
1880           TranslateWindowSizeToXWindowSIze and
1881           TranslatedXWindowSizeToWindowSize to cope with this, and call them
1882           before every window creation and move. Update CalculateWIndowRect
1883           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
1884           In AddConfigureNotify don't do anything if the hwnd is a zombie
1885           (fixes the BadWindow we were getting while running the tests),
1886           always calculate the offsets when it's a parentless window, not
1887           only when reparented, and translate the window size, since we're
1888           getting the client size of the whole window, excluding entire
1889           window.
1890         * Theme.cs: Added BorderSizableSize.
1891         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
1892           anymore. Update calls to XplatUI.CalculateWindowRect due to API
1893           chang
1894         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
1895           change. Fake the window styles here instead of in XplatUIWin32 so
1896           that all back-ends get the same window styles (and it's Form that's
1897           deciding when to use wm, not the Win32 backend anyways)
1898         * Hwnd.cs: Completely reworked GetWindowRectangle and
1899           GetClientRectangle - they are now passed a CreateParams and they
1900           only use Style and ExStyle to determine the rectangles (they should
1901           now work just like Win32AdjustWindowRectEx - though quite a few
1902           special cases are probably missing). They should also be 100%
1903           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
1904           == rect), and all numbers (borders, menu sizes) are taken from the
1905           current theme. Added a GetBorders helper function that will return
1906           the borders for any given CreateParams (including captions and
1907           menus), and GetBorderSize that returns the given border size only.
1908         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
1909           Hwnd.GetClientRectangle.
1910
1911 2007-04-02  Chris Toshok  <toshok@ximian.com>
1912
1913         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
1914         logic between the values we present to the user and the values
1915         which are stored in the column's property.  Also, don't call
1916         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
1917
1918 2007-04-02  Jackson Harper  <jackson@ximian.com>
1919
1920         * TextBoxBase.cs: Scroll faster!
1921
1922 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
1923
1924         * StatusStrip.cs: Layout fixes for PDN.
1925         * ToolStrip.cs: Set item's available to true, and placement to main when
1926         added.
1927         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
1928         changing in setter before doing any work, add InternalVisible.
1929         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
1930         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
1931         infinite loop.
1932
1933 2007-04-02  Jackson Harper  <jackson@ximian.com>
1934
1935         * TextBox.cs: LBUTTON does not make the textbox select all of it's
1936         text on focus.
1937
1938 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1939
1940         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
1941           Makes ToolStripComboBoxes show up again.
1942
1943 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1944
1945         * ListView.cs: Add a hover_pending field in ListView
1946         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
1947         cycle (we are resetting the MouseHover logic in XplatUI
1948         to handle HoverSelection). Fixes #80429.
1949
1950 2007-04-02  Jackson Harper  <jackson@ximian.com>
1951
1952         * TextControl.cs: Make sure the attributes get set on the last
1953         tag.
1954         - Still have to do the end tag if we have stepped all the ways to
1955         the end.
1956
1957 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
1958
1959         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
1960         on an internal libgdiplus call when the information is already 
1961         available via the public API.
1962
1963 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1964
1965         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
1966           control is removed from a control collecftion.
1967         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
1968           Fixes FormPropertyTest (failed on rare occasions).
1969         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
1970           of Win32SetParent (when changing from no parent to a parent it
1971           might add the new parent's location in screen coordinates to this
1972           window's location).
1973         * Form.cs: Rework ChangingParent once again, now the handle is
1974           recreated whenever a FormWindowManager is added or removed (that is
1975           whenever a normal form is parented or abandoned). Also change
1976           CreateParams so that all non-toplevel windows always get the
1977           specified sice (StartupPosition is never considered for
1978           non-TopLevel forms).
1979         * ContainerControl.cs: Add ChildControlRemoved, the container control
1980           needs to be notified when a control is removed from it's
1981           collection, in the case the removed control is the active control.
1982
1983 2007-04-02  Jackson Harper  <jackson@ximian.com>
1984
1985         * RichTextBox.cs: Use the new methods for setting the font and
1986         color, these methods set the specified attribute without
1987         overriding the other attributes.
1988
1989 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
1990
1991         * ToolStripPanel.cs: Fixes for better layouts in PDN.
1992
1993 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
1994
1995         * TextBox.cs: Added internal ChangeBackColor method to special-case
1996         Color.Empty. Added check for invalid ScrollBars value.
1997         * TextBoxBase.cs: Added internal ChangeBackColor method.
1998         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
1999         internal ChangeBackColor method to special-case Color.Empty. Added
2000         check for invalid ScrollBars value.
2001
2002 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
2003
2004         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
2005
2006 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2007
2008         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
2009         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
2010         [Based on submitted patch from Olivier Duff.]
2011
2012 2007-03-30  Jackson Harper  <jackson@ximian.com>
2013
2014         * TextBox.cs: Only select all on initial focus if the user has not
2015         specified a selection area.
2016
2017 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2018
2019         * UserControl.cs: Override CreateParams.
2020
2021 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2022
2023         [ Fixes #80995 ]
2024
2025         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
2026         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
2027           check for is a mix of several styles (such as WS_CAPTION for instance).
2028         * Control.cs: Don't paint an area bigger than the client area when painting
2029           the background colour. Add an internal GetCreateParams. Update calls to
2030           XplatUI.CalculateWindowRect due to API change.
2031         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
2032           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
2033           hasn't been handled by any windows. When creating and moving windows, X
2034           wants the location of the entire window, but the size of the client
2035           window, so add TranslateClientRectangleToXClientRectangle,
2036           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
2037           to cope with this, and call them before every window creation and move.
2038           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
2039           removing DeriveStyles). In AddConfigureNotify don't do anything if the
2040           hwnd is a zombie (fixes the BadWindow we were getting while running the
2041           tests), always calculate the offsets when it's a parentless window, not
2042           only when reparented, and translate the window size, since we're getting
2043           the client size of the whole window, excluding entire window.
2044         * Theme.cs: Added BorderSizableSize.
2045         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
2046           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
2047         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
2048           Fake the window styles here instead of in XplatUIWin32 so that all
2049           back-ends get the same window styles (and it's Form that's deciding when
2050           to use wm, not the Win32 backend anyways)
2051         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
2052           they are now passed a CreateParams and they only use Style and ExStyle
2053           to determine the rectangles (they should now work just like
2054           Win32AdjustWindowRectEx - though quite a few special cases are probably
2055           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
2056           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
2057           sizes) are taken from the current theme. Added a GetBorders helper
2058           function that will return the borders for any given CreateParams
2059           (including captions and menus), and GetBorderSize that returns the given
2060           border size only.
2061         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
2062           Hwnd.GetClientRectangle.
2063
2064 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2065
2066         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
2067           layout of the mdi children is handled by CreateParams. Fixes
2068           #79964,
2069
2070 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2071
2072         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
2073         processed.
2074
2075         * Form.cs: When active tracker mouse down is not processed, send event 
2076         back to control inside mouse position. [Fixes #81227]
2077
2078 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2079
2080         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
2081         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
2082         stealing focus from the active form on Windows.  (Control will be made
2083         visible in ShowWindow.)
2084
2085 2007-03-29  Mike Kestner  <mkestner@novell.com>
2086
2087         * ImageList.cs : add internal Changed event.
2088         * ListView.cs : hook up to StateImageList.Changed to perform
2089         invalidations when the the state icon list changes. [Fixes #81191]
2090
2091 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2092
2093         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
2094         to prevent tooltips from stealing focus from the active form on Windows.
2095
2096 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2097
2098         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
2099
2100         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
2101
2102 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2103
2104         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
2105         balloons.
2106
2107 2007-03-29  Jackson Harper  <jackson@ximian.com>
2108
2109         * TextControl.cs: When deleting text from non multiline textboxes,
2110         we need to update the entire document, because line offsets will
2111         be shifting.
2112
2113 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2114
2115         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
2116         added to theme, now we can create themes that uses diferent notify engines
2117         like notification-daemon from galago project or growl for Mac OS.
2118
2119 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2120
2121         * NotifyIcon.cs: Prevent Balloon to show in task bar.
2122
2123 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2124
2125         * XplatUIX11.cs: Prevent system to open more than one balloon.
2126
2127         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
2128         some compiler warning messages.
2129
2130 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2131
2132         [Fixes #79149]
2133
2134         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
2135
2136         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
2137         implemented, this methods is used by NotifyIcon.BalloonWindow class.
2138
2139         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
2140         systems.
2141
2142 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2143
2144         * ListViewItem.cs: Forgot to make Invalidate internal.
2145
2146 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2147
2148         * ListView.cs: Add a InvalidateSelection method to
2149         invalidate methods which are currently selected, and call
2150         it when setting FullRowSelect and HideSelection, instead of
2151         calling Redraw.
2152
2153 2007-03-28  Chris Toshok  <toshok@ximian.com>
2154
2155         * XplatUIX11.cs (UnmapWindow): reindent this block.
2156
2157         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
2158         the selection_start if we're moving the selection (that is, not
2159         extending it). Fixes bug #80461.
2160
2161 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2162
2163         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
2164         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
2165         create private ControlCollection.
2166
2167 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2168
2169         * Control.cs: We need to call OnVisibleChanged for our implicit
2170         children as well as our normal children.  Fixes scrollbars in
2171         comboboxes not showing up.
2172
2173 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2174
2175         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
2176         the check for IsHandleCreated first.  The check in CreateHandle is not
2177         good enough because CreateHandle can be overriden, and the override 
2178         should not be called if the handle is already created.
2179
2180 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2181
2182         * ToolStrip.cs: Remove MonoTODO for tooltips.
2183         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
2184         * ToolStripContainer.cs: Add custom ControlCollection class.
2185         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
2186         * ToolStripDropDown.cs: Add some missing properties/methods.
2187         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
2188         * ToolStripItem.cs: Remove MonoTODO for tooltips.
2189         * ToolStripManager.cs: Add IsShortcutDefined.
2190         * ToolStripOverflow.cs: Override LayoutEngine.
2191         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
2192         * ToolStripSeparator.cs: Add ImageKey.
2193
2194 2007-03-28  Jackson Harper  <jackson@ximian.com>
2195
2196         * TextControl.cs: If a char delete removes a line ending, we need
2197         to update the ending style.
2198         - Make sure the line ending calcs get called.
2199
2200 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2201
2202         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
2203           it was making the new code not work. Fixed a typo in the new code
2204           as well. Fixes #79826.
2205
2206 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2207
2208         * XplatUIWin32.cs:
2209         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
2210         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
2211         - SystrayBalloon method implemented.
2212         [Add support for notifyicon balloon on win32, #79149]
2213
2214 2007-03-27  Mike Kestner  <mkestner@novell.com>
2215
2216         * ThemeWin32Classic.cs : update StateImageList selection to mirror
2217         the ms behavior when only one image is added to the list.
2218         [Fixes #81191]
2219
2220 2007-03-27  Jackson Harper  <jackson@ximian.com>
2221
2222         * TextControl.cs: Improvements to non multiline line ending
2223         drawing/measuing.
2224
2225 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2226
2227         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
2228
2229 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2230
2231         * NotifyIcon.cs: 
2232         - Balloon message handling added.
2233         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
2234
2235         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2236         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
2237         to SystrayBalloon to me like other Systray method, also a
2238         handle parameter added.
2239
2240 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2241
2242         * ListView.cs: Show scrollbars even when items.Count == 0
2243         but the columns Width is bigger than the ListView.Width.
2244         Also, when columns.Count == 0 set layout_wd and layout_ht
2245         to the ClientRectangle values, so we don't show any scrollbar
2246         in that case.
2247
2248 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2249
2250         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
2251
2252 2007-03-27  Jackson Harper  <jackson@ximian.com>
2253
2254         * RichTextBox.cs: The RTF library decodes the text properly for us
2255         now.
2256
2257 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2258
2259         * ListView.cs: Display HeaderControl even when columns.Count == 0.
2260         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
2261         ListView header (HeaderControl), instead of Control.BackColor.
2262
2263 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2264
2265         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
2266         Fixes tab control issues where controls would not show up because they
2267         never received their OnVisibleChanged call.
2268
2269 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2270
2271         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
2272         BalloonTipShown).
2273
2274 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2275
2276         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
2277         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
2278         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
2279         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
2280         the handle.  Fix WindowState by using the internal variable until we are 
2281         sure that we've been shown.
2282         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
2283         max or min.
2284         [Fixes bug #81198]
2285
2286 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2287
2288         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
2289           (at least borders). Fixes #79386 on Linux (with a small difference
2290           in behaviour: when trying to resize a caption-less window metacity
2291           shows the sysmenu. Resizing is still possible though).
2292         * XplatUIWin32.cs: When setting window styles send request an extra
2293           WM_NCCALCSIZE when it's a form without title (due to no text and no
2294           caption), since Win32 seems to calculate it wrong the first time we
2295           get the message, though the second time things work as they should.
2296         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
2297           newly reparented window might show up unparented. Update
2298           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
2299           there's no title text. Fixes #79386.
2300
2301 2007-03-27  Mike Kestner  <mkestner@novell.com>
2302
2303         * ListBox.cs : don't perform invalidations if the handle hasn't been
2304         created.  [Fixes #80753]
2305
2306 2007-03-27  Mike Kestner  <mkestner@novell.com>
2307
2308         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
2309         [Fixes #80428]
2310
2311 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2312
2313         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
2314         needed to implement Balloon.
2315
2316 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2317
2318         * ListViewItem.cs: In the constructors that take
2319         an array of strings, don't use ListViewSubItemCollection.AddRange
2320         method to add items, since we need to have a different behaviour (in
2321         the constructors we add an item for each null string, opposed to
2322         the behaviour of AddRange, which adds nothing).
2323
2324 2007-03-26  Andreia Gaita  <avidigal@novell.com>
2325
2326         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
2327
2328 2007-03-26  Jackson Harper  <jackson@ximian.com>
2329
2330         * TextControl.cs: Draw and measure line endings when in non
2331         multiline mode.
2332         - When searching the text, count the end of the last line as a
2333         word boundary.
2334
2335 2007-03-26  Jackson Harper  <jackson@ximian.com>
2336
2337         * RichTextBox.cs: The selection_start and selection_end don't
2338         really track the correct tags for the selection. So we'll manually
2339         compute the correct tag here.
2340
2341 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2342
2343         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
2344           and Continuous styles. Fixes #79469.
2345
2346 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2347
2348         * ToolStrip.cs: Implement Tooltips.
2349         * ToolStripItem.cs: Create internal method for determining tooltip.
2350
2351 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2352
2353         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
2354
2355 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2356
2357         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
2358         it prevents a problem thak keeps icon visible after application 
2359         closes on win32.
2360
2361 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2362
2363         * NotifyIcon.cs: Balloon properties and methods created.
2364
2365         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2366         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
2367
2368 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
2369
2370         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
2371
2372 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2373
2374         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
2375         parameter indicates which aspects were explicit/user-set.
2376         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
2377
2378 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2379
2380         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
2381         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
2382         SmallChange, and Value (2.0).
2383         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
2384
2385 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2386
2387         * ListView.cs: Always set item_control.Width in LayoutDetails
2388         if View is Details. Setting it later in CalculateScrollBars
2389         in a not-so-corner scenario (the sum of columns width is
2390         not bigger than the ListView width when handle is created, and then
2391         that sum gets bigger by increasing the width of the columns)
2392         causes a very weird recursion path (which shouldn't be happening,
2393         since header_control sets it in CalculateScrollBars too). This bug
2394         appeared after Chris' fixes for handle created issues, so probably
2395         it's related to some handle-creation time.
2396
2397 2007-03-23  Chris Toshok  <toshok@ximian.com>
2398
2399         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
2400         case where there's an add row, just so we don't end up in a case
2401         where it's not displayed (this happens when the row is partially
2402         obscured).  Fixes bug #79574.
2403
2404 2007-03-23  Jackson Harper  <jackson@ximian.com>
2405
2406         * TextControl.cs:
2407         * TextBoxBase.cs:
2408         * RichTextBox.cs: Preserve line endings in the lines text buffer,
2409         also added an enum that represents the line ending type. 
2410
2411 2007-03-23  Andreia Gaita  <avidigal@novell.com>
2412
2413         * NumericUpDown.cs: Fix logic so Text and Value properties are not
2414         messed with in every method call, but only from DownButton, 
2415         UpButton, UpdateEditText() and ValidateText. Fixes #80346
2416
2417 2007-03-23  Chris Toshok  <toshok@ximian.com>
2418
2419         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
2420         format objects if the format spec is "".  Fixes bug #80889.
2421
2422 2007-03-22  Miguel de Icaza  <miguel@novell.com>
2423
2424         * ToolStripPanel.cs (Join): added stubs to build PDN3
2425
2426         * Control.cs (AutoScrollOffset): Add.
2427
2428         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
2429         property, its only implemented for Win32, on X11 it defaults to
2430         some hardcoded value.
2431
2432         * ToolStripItem.cs (AllowDrop): Add property
2433
2434 2007-03-22  Mike Kestner  <mkestner@novell.com>
2435
2436         * ListView.cs : in FullRowSelect Details mode, only enable box
2437         selection if the user clicks over the "item" column outside of the
2438         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
2439
2440 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2441
2442         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
2443           handle is not created yet.
2444         * Form.cs: Select: Don't call CreateHandle if the handle is already
2445           created, avoids a stack overflow on Windows when we are recreating
2446           controls.
2447         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
2448           they are made visible, and override AfterTopMostControl to keep
2449           them on top when other controls are brought to front.
2450           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
2451           or force_*scroll_visible is true (old implementation always shows
2452           scrollbars when needed, no matter what auto_scroll was set to).
2453         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
2454           IsHandleCreated check.
2455
2456 2007-03-22  Andreia Gaita  <avidigal@novell.com>
2457
2458         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
2459         row or col separator.
2460         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
2461
2462 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2463
2464         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
2465
2466 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2467
2468         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
2469         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
2470         every time. Fixes #80410.
2471
2472 2007-03-22  Chris Toshok  <toshok@ximian.com>
2473
2474         * BindingSource.cs (AddNew): partially implement.
2475
2476         remove a couple of NotImplementedException's
2477         to get bug #81148 closed.
2478
2479 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2480
2481         [Fixes #80380]
2482         
2483         * Control.cs:
2484         - UpdateCursor method added to update the screen cursor.
2485         - GetAvailableCursor method added to return cursor for enabled tree,
2486         it searches for cursor on control and it's parent's for enabled control.
2487         - Call UpdateCursor method on setter of Cursor property.
2488         - On setter of Enabled call UpdateCursor when it is false, we need to
2489         change cursor to normal (or to this parent cursor) because cursor 
2490         setting theres no effect to disabled controls.
2491         - Some minor source changes to follow the coding style guidelines.
2492
2493         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
2494         controls.
2495
2496 2007-03-22  Chris Toshok  <toshok@ximian.com>
2497
2498         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
2499         generates.
2500
2501 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2502
2503         * XplatUIX11.cs: Implement default locations for forms.
2504         * Form.cs: Completely rework startup location for forms. Fixes #79964.
2505         * Hwnd.cs: Add previous_child_startup_location (to track the current
2506           startup location for any child forms of the current form) and
2507           previous_main_startup_location (to track the startup location for
2508           the current toplevel form).
2509
2510 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2511
2512         * Control.cs: Don't trigger a layout if an implicit control is added
2513         that isn't visible.  Also, don't notify the owner when an implicit control
2514         is added.  (Owners shouldn't even know about their implicit controls.)
2515
2516 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2517
2518         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
2519         to save some re-layouts.
2520
2521 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
2522
2523         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
2524         [Fixes #81203]
2525
2526 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2527
2528         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
2529         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
2530
2531 2007-03-21  Mike Kestner  <mkestner@novell.com>
2532
2533         * ListView.cs : disable selection update for non-left button clicks
2534         with mods and over selected items.  [Fixes #80524]
2535
2536 2007-03-20  Jackson Harper  <jackson@ximian.com>
2537
2538         * TextControl.cs:
2539         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
2540         \r\r\n, \n.
2541
2542 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2543
2544         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
2545           very probably a more complicated calculation there. Update the
2546           textbox' ForeColor and BackColor when the ComboBox' colors are
2547           changed. Change the border change in LayoutComboBox to only affect
2548           the textbox, not all the calculations there. Seems to fix most of
2549           #79436.
2550
2551 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2552
2553         * ComboBox.cs: Handle Home and End keys as well as all combinations of
2554           modifiers + navigation keys as input keys, enables advanced text
2555           selection in the combobox (like Shift+Left Arrow for instance).
2556           ComboTextBox now overrides Focused and returns whatever
2557           ComboBox.Focused returns, since it really should be focused
2558           whenever the ComboBox is. Fixes #80795. Also make the border around
2559           the text box one pixel bigger, as mentioned in #79436.
2560
2561 2007-03-20  Jackson Harper  <jackson@ximian.com>
2562
2563         * TreeView.cs: Don't offset the images, this was causing some
2564         artifacts when expanding/collapsing with images that were the
2565         exact height of the treenode.
2566
2567 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2568
2569         * TrackBar.cs: Query the theme for the correct value when the mouse
2570           moves and the thumb is pressed. 
2571         * Theme.cs: Added TrackBarValueFromMousePosition
2572         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
2573           implementation was updating the trackbar value when drawing, now
2574           the drawing methods only draw. Fixes #80900. Refactored the
2575           calculations out to TrackBarValueFromMousePosition and
2576           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
2577           according to the mouse position whenever it wants to. Changed the
2578           light coloured pen when drawing the thumb from ControlLight to
2579           ControlLightLight, because the ControlLight is the same colour as
2580           the background so the 3D effect is lost. 
2581
2582 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2583
2584         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
2585         defined. Fixes #80784.
2586
2587 2007-03-20  Marek Habersack  <mhabersack@novell.com>
2588
2589         * ContextMenuStrip.cs: align with the change introduced in
2590         revision 74664.
2591
2592 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2593
2594         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
2595         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
2596         in SetTopmost.
2597
2598 2007-03-19  Chris Toshok  <toshok@ximian.com>
2599
2600         * Control.cs (WmPaint): don't make use of the Handle property
2601         after an event is emitted, as the user could have closed the
2602         form/destroyed the control.  Store the Handle in a local variable
2603         and make use of that.  Fixes bug #80768.
2604
2605 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2606
2607         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
2608         behavior in X11 environments.
2609
2610 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2611
2612         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
2613         because on setter of topmost we dont call SetTopmost when handle is not
2614         created.
2615
2616 2007-03-20  Jackson Harper  <jackson@ximian.com>
2617
2618         * TextControl.cs: Need to use SelectionLength () not
2619         selection_length, since that var is reset to -1.
2620         - Draw the caret when we don't have focus.
2621         * TextBox.cs: The selectall actually doesn't occur until the first
2622         focus.
2623         * TextBoxBase.cs: Need to update the caret position after a
2624         selectall.
2625         
2626 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2627
2628         * ListView.cs: Enable scrolling when using Tile view.
2629
2630 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2631
2632         [Fixes #80902]
2633
2634         * XplatUIDriver.cs: Abstract SetOwner method created.
2635
2636         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
2637         must be implemented and was masked as todo.
2638
2639         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
2640         GWL_HWNDPARENT.
2641
2642         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
2643         cheking for null owner to remove transient. The SetTopmost will be change
2644         on a decond step.
2645
2646         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
2647         SetTopmost. Now owned forms will work properly in win32 and X11.
2648
2649 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2650
2651         * MdiWindowManager.cs: Update function name.
2652         * Form.cs: After closing a form MdiParent is always null.
2653         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
2654           better what it should do: necessary book-keeping when the form is
2655           closed, it should not close the form itself.
2656
2657 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2658
2659         * ListViewItem.cs: Fix back and fore color. The subitems only
2660         use their own colors if they are set, otherwise use the listview's
2661         colors. Don't set default colors on constructor for subitem.
2662         Fixes #79315.
2663
2664 2007-03-19  Mike Kestner  <mkestner@novell.com>
2665
2666         * ListView.cs : make box selection for Details views with 
2667         FullRowSelect conform to MS behavior when clicking in the "item" 
2668         column and clicking outside the defined columns.
2669         [Fixes case 5-6 of #80374]
2670
2671 2007-03-19  Chris Toshok  <toshok@ximian.com>
2672
2673         * ScrollableControl.cs: create the controls from within the ctor,
2674         but don't actually add them until our handle is created.  this
2675         fixes a NRE possibility jpobst found (if you override OnLayout in
2676         a subclass, it's called before your ctor).  Also, add a
2677         IsHandleCreated guard to UpdateSizeGripVisibility as well.
2678
2679 2007-03-19  Jackson Harper  <jackson@ximian.com>
2680
2681         * TextBox.cs: Reduce the amount of invalidation we do.
2682         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
2683         some of them are true by default on MS.
2684         - Add some functions to reduce the amount of invalidates we do.
2685         * TextControl.cs: Less invalidation.
2686
2687 2007-03-19  Chris Toshok  <toshok@ximian.com>
2688
2689         [ Fixes #81773, and *seems* to fix #81553 as well ]
2690
2691         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
2692         AccumulateDestroyedHandles.  We need to do it *after* we send
2693         WM_DESTROY, as the user's code can access Control.Handle in
2694         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
2695         move the WM_DESTROY/zombie handling to before the call to
2696         XDestroyWindow.  For some reason without this ordering
2697         FormTest.RecreateHandle hangs.  This ordering is semantically
2698         equivalent, however, as XDestroyWindow is async anyway.
2699
2700 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
2701
2702         * RichTextBox.cs: Reset backcolor_set after setting default.
2703
2704 2007-03-19  Chris Toshok  <toshok@ximian.com>
2705
2706         * ScrollableControl.cs: the scroll position should not effect the
2707         canvas size.  commit patch from georgegiolfan@yahoo.com, which
2708         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
2709         
2710 2007-03-19  Chris Toshok  <toshok@ximian.com>
2711
2712         * ScrollableControl.cs: clean this up a bit.  create the
2713         scrollbars in the ctor and just show/hide them as needed.  Also,
2714         make hscroll_visible/vscroll_visible internal to Recalculate, and
2715         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
2716         everywhere else.  This seems to fix the scrollbars appearing
2717         beneath the content for me (i have *no* idea why that is,
2718         however.)
2719
2720 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2721
2722         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
2723         some redundacy for stuff in Anchor and Dock that base will take care of.
2724         [Fixes #80762]
2725
2726 2007-03-19  Mike Kestner  <mkestner@novell.com>
2727
2728         * ListView.cs : make box selection for Details views without 
2729         FullRowSelect dependent on the text bounds, not item bounds.
2730         * ListViewItem.cs : add an internal property to obtain the TextBounds
2731         in Details view.  [Fixes case 1-4 of #80374]
2732
2733 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2734
2735         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
2736         we're < 2.0. #78448 && #80316
2737
2738 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2739
2740         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
2741         have the same style available as the previously selected one.  Also,
2742         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
2743
2744 2007-03-19  Jackson Harper  <jackson@ximian.com>
2745
2746         * TextControl.cs: Add an alignment property that all new lines
2747         will be given.
2748         - Make sure to use the align shift when calculating the line's X
2749         position.
2750         * TextBox.cs: Set the alignment on the document as well as on all
2751         the document lines.
2752
2753 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2754
2755         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
2756           throw if setting the parent of an mdichild that already has an
2757           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
2758           AssemblyProductAttribute in the assembly, use the type's namespace (as
2759           MS seems to do). CreateControl: don't create the handle if the control
2760           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
2761           create handle if the control is not a form. Change FocusInternal to
2762           virtual so that it can be overriden by Form.
2763         * TextBox.cs: Update call to FocusInternal.
2764         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
2765           form is not a toplevel form when it's a mdi child, so update is_toplevel
2766           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
2767           hasn't been created. Show (IWin32Window): Don't allow this overload for
2768           toplevel windows. CenterToParent/CenterToScreen/Select: create the
2769           handle as MS does. SetVisibleCore: if called on a MdiChild and the
2770           parent isn't visible yet, save the visibility and restore it when the
2771           parent is made visible.
2772         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
2773           methods, since the visibility of the scrollbars can be changed from
2774           several places, not only from AutoScroll.
2775           [Fixes #81179]
2776
2777 2007-03-19  Jackson Harper  <jackson@ximian.com>
2778
2779         * RichTextBox.cs: Enable shortcuts by default.
2780         * TextBoxBase.cs: Add conditional shortcuts.  
2781
2782 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2783
2784         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
2785
2786 2007-03-19  Chris Toshok  <toshok@ximian.com>
2787
2788         [ Fixes bug #80604]
2789         
2790         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
2791         swallow the message we're waiting on, instead of delivering it, as
2792         this is only used for the WM_SHOWWINDOW raised from
2793         MapWindow/UnmapWindow, and the message needs to be generated
2794         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
2795         before doing the Map/Unmap.  Also make sure that the Hwnd is still
2796         alive after the message has been handled.
2797
2798         *before* the window is shown.
2799
2800         * Control.cs (CreateControl): guard a few more things inside the
2801         if (!is_created) block, as we might end up being called again -
2802         yay .net.
2803         (WmShowWindow): call CreateControl if we're showing the control.
2804
2805 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2806
2807         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
2808           controls without a handle if they have any parent with a handle. In
2809           Dispose add a check whether the handle is created or not before
2810           calling BeginInvoke, this removes the need of the extra disposing
2811           parameter (which was bogus anyway since it didn't prevent the
2812           invoke from happening, it only skipped the check for an existing
2813           handle, meaning that the invoke would call on an inexistent
2814           handle).
2815
2816 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2817
2818         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
2819         appears in taskbar.
2820
2821 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2822
2823         * MessageBox.cs:
2824         - Fixed a problem that dont show help button for messages with 3 buttons.
2825         - Refactory button size and position calculations, now dont use fixed 
2826         values, also fixed button sizes (#80043) and form's border space.
2827         - AddButton method created, now all other AddButton methods call this one.
2828         - Some other source code cosmetic changes.
2829
2830 2007-03-18  Jackson Harper  <jackson@ximian.com>
2831
2832         * RichTextBox.cs: Don't do this all fonts must match check if
2833         there is only one char selected.
2834
2835 2007-03-18  Jackson Harper  <jackson@ximian.com>
2836
2837         * TreeView.cs: ScrollWindow works properly now, so we don't need
2838         to screw around with the scroll area.  This fixes some artifacts
2839         when expanding and collapsing.
2840
2841 2007-03-18  Jackson Harper  <jackson@ximian.com>
2842
2843         * TextBoxBase.cs: Allow updating the selection position when the
2844         cursor is outside the textarea, but we have a capture.
2845         * TextControl.cs: A special case for when the cursor is outside
2846         the bounds of the TB.
2847         
2848 2007-03-18  Jackson Harper  <jackson@ximian.com>
2849
2850         * TextBoxBase.cs: Remove image pasting code for now.  There is no
2851         way to get an image on the clipboard right now anyways.
2852         * TextControl.cs:
2853         * RichTextBox.cs: Use the new RTF Picture class for pictures.
2854
2855 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2856
2857         * MessageBox.cs:
2858         - Set window properties in constructor intead of on CreateParams.
2859         - Remove topmost from Window ExStyle.
2860         - Set ShowInTaskbar to false.
2861         - Set form border to FixedDialog.
2862         - Some cosmetic changes and remove unneeded comments.
2863         - It fixes itens 2,3 and 4 of bug #80043.
2864
2865 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
2866
2867         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
2868         none was explicitly set. Fixes part of bug #79949.
2869
2870 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2871
2872         * ToolStripComboBox.cs: Add AutoComplete*.
2873
2874 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2875
2876         * ToolStripComboBox.cs: Add FlatStyle.
2877
2878 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
2879
2880         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
2881         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
2882
2883 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2884
2885         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
2886           CheckBox.cs, RadioButton.cs, BindingSource.cs,
2887           DataGridColumnStyle.cs: Remove warnings.
2888
2889 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2890
2891         * Menu.cs: MergeMenu: Check menu argument for null before looping over
2892           it.
2893         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
2894           visibility of mdi child forms. FormSizeChangedHandler: update the
2895           maximized size if size has changed while maximized.
2896         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
2897           creating the handle.
2898         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
2899           avoid creating the handle if not created.
2900         * XplatUI.cs: Update debug output.
2901         * XplatUIStructs.cs: Added ToString's for a couple of structs.
2902
2903 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
2904
2905         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
2906         ProcessCmdKey().
2907         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
2908         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
2909         Implement keyboard shortcuts.
2910
2911 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2912
2913         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
2914         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
2915         ColorDialog and all derived classes.
2916
2917 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2918
2919         [ Fixes bug #79828 ]
2920
2921         * ToolBar.cs:
2922         - Rename ToolBarButtonInfor to ToolBarItem.
2923         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
2924         - Maintain an array of ToolBarItem, used instead of ToolBarButton
2925         collection to be able add same button more than one time on a toolbar.
2926         - Refactory all properties and methods to use ToolBarItem. 
2927
2928         * ToolBarButton.cs: 
2929         - Remove all propeties and methods that is now in ToolBarItem.
2930         - Rectangle propery now gets the rectangle from first ToolBarItem to
2931         mimic win32 behavior.
2932         - Size calculation and layout methods also removed.
2933
2934         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
2935         ToolBarItem instead of ToolBarButton to right drawing buttons when
2936         same button/separator was added more than one time to ToolBar.
2937
2938         * ThemeNice.cs: Same as above. 
2939
2940 2007-03-15  Andreia Gaita  <avidigal@novell.com>
2941
2942         * XplatUIX11.cs: Fire extra MouseMove events right after
2943         MouseDown and MouseUp, emulating win32's <censored> behaviour
2944         for apps that rely on it.
2945
2946 2007-03-15  Jackson Harper  <jackson@ximian.com>
2947
2948         * TextControl.cs:
2949         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
2950         it is drawn on the controls client window and there is no NC
2951         area.
2952         - Set the background color to gray on 2.0 when we are readonly.
2953
2954 2007-03-15  Chris Toshok  <toshok@ximian.com>
2955
2956         [ Fixes bug #81144 ]
2957         
2958         * XplatUIX11.cs: implement VirtualScreen independently of
2959         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
2960         property.
2961
2962 2007-03-15  Chris Toshok  <toshok@ximian.com>
2963
2964         * Hwnd.cs: add an internal field for the cached_window_state.
2965
2966         * XplatUIX11.cs: cache the window state, invalidating the cache
2967         (and thus re-querying the X server) only when we see an update to
2968         the _NET_WM_STATE property.
2969
2970 2007-03-15  Chris Toshok  <toshok@ximian.com>
2971
2972         * BindingSource.cs: get a lot of the unit tests working.
2973
2974 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
2975
2976         * Control.cs: Modify UpdateStyles to store distances when bounds >=
2977         0 instead of just bounds > 0.  [Fixes bug #80912]
2978
2979 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
2980
2981         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
2982         and methods.
2983
2984 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
2985         
2986         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
2987         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
2988         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
2989         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
2990
2991 2007-03-15  Chris Toshok  <toshok@ximian.com>
2992
2993         [ Fixes #81101 ]
2994         
2995         * Control.cs: add Ivan's fix for 81101, with a slight modification
2996         - you can set control.Target to null.
2997
2998 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
2999
3000         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
3001         HideDropDown, use Hide instead to prevent an NRE.
3002         [Fixes bug #81147]
3003
3004 2007-03-14  Jackson Harper  <jackson@ximian.com>
3005
3006         * TextBoxBase.cs: Mess with the creation stuff a little. We need
3007         to calculate the document before the handle is created, in some
3008         cases. (Actually just one case).
3009
3010 2007-03-14  Jackson Harper  <jackson@ximian.com>
3011
3012         * TextBoxBase.cs: Need to display the caret after letting the base
3013         wndproc handle the focus methods, because the caret display
3014         methods check the focus state.
3015         - Try to display the caret after updating it's position with SelectWord.
3016         - Don't need to do an immediate update on this recalc, since there
3017         will be an invalidate anyways.
3018
3019 2007-03-14  Jackson Harper  <jackson@ximian.com>
3020
3021         * TreeView.cs: Some workarounds so that we can match event order a
3022         little better.
3023
3024 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
3025
3026         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
3027         #80803. Avoid NullReferenceException when Control does not have
3028         parent. Fixed different blinkstyle issues. Only subscribe to Tick
3029         event a single time. Only draw error icon when control is created and
3030         visible. Fixes failing unit tests.
3031
3032 2007-03-14  Andreia Gaita  <avidigal@novell.com>
3033
3034         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
3035         Selecting events. Fire Leave and Enter events when changing tabs.
3036
3037 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
3038
3039         * TreeView.cs: Add TreeViewNodeSorter.
3040         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
3041
3042 2007-03-14  Chris Toshok  <toshok@ximian.com>
3043
3044         * Form.cs: go ahead and remove the RecreateHandles that jpobst
3045         removed earlier and I had him add back it.  It turns out metacity
3046         *does* in fact handle the MOTIF_WM_HINTS property changing, it
3047         just doesn't redraw the window titlebar until you resize the
3048         window.  This also means we aren't recreating the entire window
3049         hierarchy on X when you change this property.  And it looks better
3050         on windows, too.
3051
3052 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3053
3054         * ListViewItem.cs:
3055         * ListView.cs: Collecting selection information
3056         is now done in SelectedIndexCollection rather than in
3057         SelectedListViewItemCollection. This is done so we can
3058         have the selection information code in one single place
3059         (virtual mode selection information entirely depends on
3060         SelectedIndexCollection).
3061
3062 2007-03-13  Miguel de Icaza  <miguel@novell.com>
3063
3064         * ErrorProvider.cs: Add stubs for ISupportInitialize
3065
3066 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3067
3068         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
3069         in the right order with the right values, from the Checked property, 
3070         just as MS does (instead of triggering them from ListView).
3071
3072         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
3073
3074 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3075
3076         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
3077         the correct handler in OnItemCheck method (ItemCheckEventHandler 
3078         instead of EventHandler). This used to throw an InvalidCastException.
3079
3080 2007-03-13  Jackson Harper  <jackson@ximian.com>
3081
3082         * TextBoxBase.cs: Calculate the document before the handle is
3083         created, so there isn't an extra invalidate called.
3084
3085 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
3086
3087         * Form.cs: Don't set owner in ShowDialog until we are sure
3088         that we aren't going to throw an exception.  [Fixes bug #80773]
3089
3090 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
3091
3092         * TreeView.cs: Make it compile.
3093
3094 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3095
3096         * Control.cs: Another place we don't call SizeFromClientSize.
3097         * Form.cs: Another place we don't call SizeFromClientSize.
3098         [Fixes bug #81125]
3099
3100 2007-03-12  Jackson Harper  <jackson@ximian.com>
3101
3102         * TreeView.cs: Basically emulating some strangness here with
3103         exanding nodes and setting node positions when windows aren't
3104         created.
3105         - Also attempting to walk the node tree less than previously, and
3106         just use visible order calculations for determining offsets.
3107         - oops made scrolling backwards.
3108         * TreeNode.cs: We need to start nodes with a zero visible order,
3109         because the order calcs are based on the first nodes order.
3110
3111 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3112
3113         * Form.cs: Don't exit the program if RecreateHandle is called on
3114         the main form.
3115
3116 2007-03-12  Chris Toshok  <toshok@ximian.com>
3117
3118         * XEventQueue.cs: remove the use of PostQuitState.
3119
3120         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
3121         WM_QUIT message in GetMessage, return false (and if we're in the
3122         nested WaitForHwndMessage, repost the WM_QUIT message).
3123
3124 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3125
3126         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
3127         or the MaximizeBox properties.  [Part of bug #80640]
3128
3129 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
3130
3131         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
3132         no links.
3133
3134 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3135
3136         * ToolStripItem.cs: Fix some tests I broke by checking Visible
3137         instead of visible.
3138
3139 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
3140
3141         * FileDialog.cs: Use text of File name combobox to determine what
3142         files the user selected. Added tokenizer to parse the file names.
3143         Fixes bug #81123.
3144
3145 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3146
3147         * Control.cs: We can't call SizeFromClientSize in the constructor,
3148         but we still need to do the same work, so make an internal version.
3149         [Fixes bug #80621]
3150
3151 2007-03-12  Jackson Harper  <jackson@ximian.com>
3152
3153         * TreeView.cs:
3154         * TreeNode.cs:
3155         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
3156         IsExpanded.
3157
3158 2007-03-12  Jackson Harper  <jackson@ximian.com>
3159
3160         * TextBoxBase.cs: Now that the handles are being created a little
3161         later, we need to make sure that the document is recalculated when
3162         the handle is created.
3163
3164 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
3165
3166         * Theme.cs: GetLinkFont abstract method added.
3167         
3168         * LinkLabel.cs: 
3169         - Remove CalcTrimRectangle, no longer needed.
3170         - Factor also remove, position issues must be fixed in libgdiplus.
3171         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
3172         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
3173         care about font used to draw links.
3174         - Set TabStop to true when control is "Selectable", control is selectable
3175         when have one or more links. Fixes #80501 (test case is also added).
3176         - Set the LinkArea values after links change, LinkArea values must be
3177         based in first link position and size, a test case was created.
3178         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
3179         the attribute must be true LinkArea.Length > 0. The same was applied to
3180         TabStop.
3181         
3182         * ThemeWin32Classic.cs: 
3183         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
3184         in draw method.
3185         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
3186         color change.
3187         - Draw focus rectangle for every parts focused, including parts that 
3188         is on another line, its because regions returns various rectangles
3189         and not only one. Needed to mimic W32 look.
3190         - Uses Graphics.Clip to delimite region painted, it mean that now 
3191         complete text is passed to DrawString, with this we solve layout
3192         issues without create another text renderer.
3193         - Uses Region.Intersect to fix some flickers problems, now only needed
3194         parts will redrawed.
3195         - This changes fixes #79614 and some other unreported issues, on Linux 
3196         some layout problems still remain, the problem is under 
3197         MeasureCharacterRanges but it is an libgdiplus bug.
3198
3199 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
3200
3201         * TextBox.cs: Set for foreground color.
3202         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
3203         this is already done in Control.
3204
3205 2007-03-10  Jackson Harper  <jackson@ximian.com>
3206
3207         * TextBox.cs: Set the background color, but reset the
3208         backcolor_set flag which is just for the user setting the
3209         background color.
3210
3211 2007-03-09  Chris Toshok  <toshok@ximian.com>
3212
3213         * Control.cs: really remove the call to XplatUI.SetVisible from
3214         CreateHandle(), like I said I did when I merged the branch.
3215
3216         * BindingSource.cs: implement some more of this stuff.
3217
3218 2007-03-09  Jackson Harper  <jackson@ximian.com>
3219
3220         * TextBox.cs: Don't explicitly set our background colors.
3221         * TextControl.cs:
3222         * TextBoxBase.cs: Draw readonly text.
3223         - Need to invalidate when backcolor or readonly are changed.
3224         
3225 2007-03-09  Jackson Harper  <jackson@ximian.com>
3226
3227         * TextBoxBase.cs: Don't set the forecolor until the handle is
3228         created.
3229         - Do not raise OnPaint, and removed some old debug code.
3230
3231 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
3232
3233         * ScrollableControl.cs: Fix mouse wheel scrolling.
3234
3235 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3236
3237         * Control.cs: Wire up MouseDoubleClick event.
3238
3239 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3240
3241         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
3242         top or bottom.
3243         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
3244         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
3245         item is added.  This logic was moved to ToolStrip.OnItemAdded.
3246         [Fixes bug #81090]
3247
3248 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3249
3250         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
3251
3252 2007-03-08  Jackson Harper  <jackson@ximian.com>
3253
3254         * TreeView.cs: Show the correct image for selected node (this used
3255         to work, not sure how the code got deleted). Also implemented 2.0 feature
3256         SelectedImageKey.
3257
3258 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3259
3260         * ListView.cs:
3261         * ListViewItem.cs: Cache index in items when retrieving them
3262         in VirtualMode.
3263
3264 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3265
3266         * ToolStripItem.cs: Don't return the explicit_size if we are using 
3267         AutoSize.  Fixes invalidation issue when user has explicitly set a
3268         size and has AutoSize = true.
3269
3270 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3271
3272         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
3273
3274 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3275
3276         * DataGridView.cs: Remove event handler from DataView when a
3277         DataTable is used as DataSource.
3278
3279 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3280
3281         * Control.cs: Create internal setter for client_size to allow it to be
3282         set without triggering resizing code.
3283         * Form.cs: Calculate client_size in constructor, only change client_size
3284         in FormBorderStyle property if Handle has been created.
3285         [Fixes #80574, #80791]
3286
3287 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
3288
3289         * SystemInformation.cs: Add TerminalServerSession.
3290
3291 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3292
3293         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
3294         TreeView code.
3295
3296 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3297
3298         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
3299         Handle before we were supposed to.  Now checks ActivateOnShow property
3300         in Control.
3301         * Control.cs: Add internal ActivateOnShow property.
3302         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
3303         for ActivateOnShow.
3304         * Hwnd.cs Remove no longer needed no_activate field.
3305
3306 2007-03-07  Jackson Harper  <jackson@ximian.com>
3307
3308         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
3309         2.0 properties
3310         * DrawTreeNodeEventHandler.cs: Add
3311         * DrawTreeNodeEventArgs.cs: Correct default value.
3312         
3313 2007-03-07  Chris Toshok  <toshok@ximian.com>
3314
3315         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
3316         to be called before NativeWindow.WndProc.  Put the HwndCreating
3317         magic there to hook up our Hwnd's to handles.
3318
3319 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
3320
3321         * DataGridView.cs: Comment out debug code.
3322
3323 2007-03-07  Chris Toshok  <toshok@ximian.com>
3324
3325         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
3326         to make the rest of the world happy]
3327
3328         * Control.cs (CreateHandle): there's no need to call
3329         XplatUI.SetVisible here, it's effectively done by
3330         XplatUI.CreateWindow on X now, and always was on windows.
3331
3332         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
3333         shortcircuit out of the loop if we have a message loop running on
3334         this thread.
3335
3336         [Changelog from merge]
3337
3338         2007-03-05  Chris Toshok  <toshok@ximian.com>
3339
3340                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
3341                 causes handle creation.
3342
3343         2007-02-28  Chris Toshok  <toshok@ximian.com>
3344
3345                 * ApplicationContext.cs: Add a flag to make sure we only raise the
3346                 ThreadExit event once (ExitThreadCore can be indirectly called
3347                 from a few places.)  I don't like the additional flag, but it
3348                 makes the event ordering/count correct.
3349
3350                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
3351                 without locking the collection.  An enumerator doesn't give us any
3352                 protection from modification anyway.  Lock the thread hash and
3353                 replace the complicated enumerator loop with a foreach.
3354                 (Application.CloseForms): make internal so it can be called from
3355                 ApplicationContext.  This should probably be moved to MWFThread.
3356                 (Application.ExitThread): don't call MWFThread.Current.Exit()
3357                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
3358                 when the runloop exits (in response to WM_QUIT.)
3359                 (Application.RunLoop): add a comment (and check) for
3360                 context.MainForm being null after setting context.MainForm.Visible
3361                 = true.  This is because you're perfectly free to dispose of a
3362                 form in VisibilityChanged.  Chalk this up to another case where we
3363                 need to synchronously generate WM_ACTIVATE from Control.Show.
3364                 Also, add handling for WM_QUIT here so we'll exit the loop.
3365                 
3366                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
3367                 fact that we don't wait if we're only unmapping the whole_window
3368                 makes me a bit nervous, but it doesn't seem to cause any problems
3369                 yet.
3370
3371                 also, add a comment about the stupid, broken and wrong resetting
3372                 of PostQuitState to false in GetMessage().
3373
3374                 In PostQuitMessage, we need to add a WM_QUIT message to the
3375                 thread's queue.  We use the FosterParent to get the right
3376                 handle/hwnd/queue.
3377
3378                 Lastly, in SetVisible, we need to unmap both windows, since the
3379                 waiting only happens when we're unmapping the client window.  So
3380                 now, the *only* time we unmap just the whole_window is in the hack
3381                 for resizing a control to 0,0.
3382                 
3383         2007-02-21  Chris Toshok  <toshok@ximian.com>
3384
3385                 * Application.cs (CloseForms): rewrite this so that we don't
3386                 modify the list while we're traversing it.
3387
3388         2007-02-20  Chris Toshok  <toshok@ximian.com>
3389
3390                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
3391                 of OnHandleCreated.
3392                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
3393                 handle is created.  otherwise we'll create it here.
3394                 (VerticalScrollEvent): same here.
3395
3396                 * Application.cs (CloseForms): call Form.Dispose, don't post
3397                 WM_CLOSE_INTERNAL.
3398
3399                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
3400                 here. Application should Dispose() of the Form's.
3401
3402                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
3403                 WM_DESTROY as well.
3404                 (MapWindow,UnmapWindow): only actually do the waiting for
3405                 SHOWWINDOW if the control we're dealing with is a Form.
3406                 (CreateWindow): if the control isn't a form, SendMessage
3407                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
3408
3409                 * Control.cs (SetVisibleCore): always use is_visible here, not
3410                 value.  If we use value, we can end up re-setting something
3411                 visible if, for instance, you do Control.Hide() in a delegate
3412                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
3413
3414         2007-02-20  Chris Toshok  <toshok@ximian.com>
3415
3416                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
3417                 the message we need.  PeekMessage returning false should not be a
3418                 condition under which we exit the loop.
3419
3420         2007-02-15  Chris Toshok  <toshok@ximian.com>
3421
3422                 * Control.cs (Refresh): only refresh if we've got a handle and are
3423                 visible.
3424                 (CreateAccessibilityInstance): CreateControl() here.
3425                 (UpdateChildrenZOrder): complicate the code loop even more by
3426                 taking into account controls that haven't had their handle
3427                 created, and those that aren't visible.  But on the flip side,
3428                 simplify the code by splitting it into two loops.  one which
3429                 builds up the list of child controls we're interested in, and the
3430                 other that sets the z order of those children.
3431
3432         2007-02-14  Chris Toshok  <toshok@ximian.com>
3433
3434                 * Control.cs: Control.AccessibilityObject causes the control to be
3435                 created, not just the handle.
3436
3437         2007-02-14  Chris Toshok  <toshok@ximian.com>
3438
3439                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
3440                 problem on X where a window might have its handle created (and be
3441                 visible) while the window is unmapped.  calling XConfigureWindow
3442                 on an unmapped window is bad, and generates X errors.
3443
3444         2007-02-13  Chris Toshok  <toshok@ximian.com>
3445
3446                 * Control.cs (CreateHandle): don't loop over our children setting
3447                 their parent here.  do it when in WndProc when we're shown.
3448                 (UpdateChildrenZOrder): make this internal so we can call it from
3449                 ScrollableControl.
3450                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
3451                 creating its handle.  Also, remove the calls to PerformLayout from
3452                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
3453                 OnVisibleChanged only seems to be called directly here for the
3454                 toplevel control.  It's propagated down the window hierarchy by
3455                 calls to child.OnParentVisibleChanged.
3456                 (OnVisibleChanged): don't do layout here - it's done (oddly
3457                 enough, according to a glance at stack traces on ms.net..) in
3458                 ScrollableControl.
3459                 
3460                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
3461                 z order of our children before calling PerformLayout.
3462
3463         2007-02-12  Chris Toshok  <toshok@ximian.com>
3464
3465                 [big change, fixes #80020]
3466                 
3467                 * AccessibleObject.cs: we need to make owner internal again to fix
3468                 some of ControlAccessibleObject.
3469
3470                 * Control.cs: lots of changes here.  add support for WM_CREATE,
3471                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
3472                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
3473                 we create child controls.  leave the MonoTODO's for the
3474                 accessibility calls, but fix the exceptions so the tests pass.
3475
3476                 Add the InvalidOperationExceptions to Invoke methods, and remove a
3477                 couple of InvokeInternal methods we aren't using.
3478                 
3479                 Also, add a couple of CreateHandle calls in places where we know
3480                 the handles are being created but our code doesn't reference
3481                 .Handle.
3482
3483                 Make SetVisibleCore call OnVisibleChange if the handle isn't
3484                 created.  If the handle is created, we rely on XplatUI.SetVisible
3485                 generating the event synchronously.
3486                 
3487                 Lastly, make sure we don't use this.Handle inside CreateHandle,
3488                 because we can call back into client (and that code can dispose of
3489                 the control).
3490
3491                 * XplatUIStructs.cs: misc/cleanup.
3492
3493                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
3494                 although we don't populate the wParam properly.
3495                 (CreateWindow): generate WM_CREATE.
3496                 (MapWindow,UnmapWindow): make these calls synchronous, at great
3497                 performance expense (particularly in the unmap case), to match
3498                 win32 behavior.
3499
3500                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
3501                 to call it.
3502                 (set_MdiParent): don't recreate the handle unless it's been
3503                 created already.
3504                 
3505                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
3506                 it's created.
3507
3508                 * NativeWindow.cs: this is probably the weirdest part of the
3509                 patch.  We need a way to link up the window being created to the
3510                 WM_CREATE message.  Since we can only be creating one window at a
3511                 time on a given thread, we keep track of a per-thread reference so
3512                 we can dispatch it properly.  We also need to keep track of the
3513                 Hwnd currently being created so that the win32 backend doesn't
3514                 have problems.
3515                 
3516                 * XplatUIWin32.cs: a similar change to the one we made in
3517                 NativeWindow.cs.
3518
3519 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3520
3521         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
3522         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
3523         to draw the menu shortcut string.
3524
3525 2007-03-07  Jackson Harper  <jackson@ximian.com>
3526
3527         * TreeNode.cs: Add the 2.0 collapse method.
3528
3529 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3530
3531         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
3532
3533 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3534
3535         * DataGridView.cs: Change DataSource will clear column and row
3536         lists. Call Invalidate() to reflect DataSource change.
3537
3538 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3539
3540         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
3541         and a new row is added to it.
3542
3543 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3544
3545         * DataGridView.cs: Add columns when DataSource is en empty list but
3546         is a System.Data.DataView (from a System.Data.DataTable).
3547
3548 2007-03-06  Andreia Gaita  <avidigal@novell.com>
3549
3550         * Label.cs: Implement AutoEllipsis (2.0)
3551
3552 2007-03-06  Jackson Harper  <jackson@ximian.com>
3553
3554         * TreeView.cs: Implement 2.0 TopNode setter property.
3555         - Use a local var instead of the skipped_nodes field for computing
3556         how many nodes to skip.  Otherwise we won't scroll because the
3557         valuechanged handler checks if skipped_nodes is equal to the new
3558         value.
3559         - Implement 2.0 Sort method.
3560         - Add useless 2.0 DoubleBuffer property
3561         - Implement 2.0 LineColors property.  Lets you change the color of
3562         the lines in the tree. Terribly useful for creating non cohesive
3563         desktops.
3564         - Implement 2.0 image key feature.
3565
3566 2007-03-06  Jackson Harper  <jackson@ximian.com>
3567
3568         * TreeView.cs: We can't get the bounds of the nodes before raising
3569         the AfterSelect event, because that event could change the node's
3570         bounds (scrolling, font change, etc).
3571
3572 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3573
3574         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
3575         * Form.cs: Don't recreate handle when creating FormWindowManager, just
3576           update window styles. In CreateParams us VisibleInternal instead of
3577           VIsible to get the actual visible flag set for this form.
3578         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
3579           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
3580           handle the case when the form is already maximized, in which case
3581           it should be restored. Fixes #81043.
3582
3583 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3584
3585         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
3586
3587 2007-03-05  Jackson Harper  <jackson@ximian.com>
3588
3589         * TreeViewHitTestInfo.cs: implement.
3590
3591 2007-03-05  Jackson Harper  <jackson@ximian.com>
3592
3593         * InternalWindowManager.cs: class status fix.
3594
3595 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3596
3597         * InternalWindowManager.cs: All windows that have a parent
3598         are confined to their parent when they're being moved.
3599         Fixes #80822.
3600
3601 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
3602
3603         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
3604         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
3605
3606 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3607
3608         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
3609           buttons invisible before deciding which ones should be visible
3610           (fixes minimize/maximize buttons showing up in toolwindows). Remove
3611           an unused variable.
3612         * InternalWindowManager.cs: Remove warning.
3613
3614 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3615
3616         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
3617         to throw an InvalidOperationException is virtual mode is being used.
3618
3619 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3620
3621         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
3622         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
3623         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
3624         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
3625         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
3626         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
3627
3628 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3629
3630         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
3631           driver.KeyboardDelay from XplatUI.KeyboardDelay 
3632         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
3633           (patch by Sergey Volk)
3634
3635 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3636
3637         * ToolWindowManager.cs: Added, contains logic for
3638           tool windows.
3639         * CreateParams.cs: Add a few helper methods and an
3640           internal variable to know which control the CreateParams belongs
3641           to.
3642         * Control.cs: Call Form.ChangingParent when the
3643           parent is about to be changed.
3644         * XplatUIX11.cs: DeriveStyles (): Set
3645           caption_height for all windows that have captions and are children.
3646           Update to use ToolWindowManager instead of InternalWindowManager
3647           for ToolWindows.
3648         * XplatUIWin32.cs: Set fake window styles for all
3649           windows that have window managers.
3650         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
3651           now duplicated for mdi windows when they are
3652           maximized, first for the buttons the window itself has, then for
3653           the buttons that appear in the menu bar. Makes things a little
3654           easier). Updated UpdateWindowDecorations, SetWindowState and the
3655           mouse eventhandlers accordingly.
3656         * Form.cs: Add ChangingParent (), contains the
3657           logic of what should happen when the parent changes. In MdiParent
3658           don't set things that ChangingParent () is doing. When handling
3659           WM_CLOSE, we can close the form if there are any other modal forms
3660           and the current form is a descendent of the modal form.
3661         * InternalWindowManager.cs: A lot of refactoring,
3662           the title buttons are now extracted to a separate container class
3663           that takes care of all button code (clicks, tooltips, etc). Moved
3664           Iconic|Maximized|Normal Bounds properties to this class from
3665           MdiWindowManager, so that the window state logic can succeed for
3666           other than mdi wm's. Implemented general window state change logic.
3667           Moved CreateButtons to ThemeWin32Classic, since the theme might
3668           override which buttons are available when as well as the exact
3669           location.
3670         * FormWindowManager.cs: Added, contains logic for
3671           normal forms.
3672         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
3673           which buttons go where (and if they are at all visible). 
3674           Removed special handling of maximized windows, since they aren't special. 
3675           In DrawManagedWindowDecorations don't try to draw the text if it is
3676           empty.
3677         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
3678           use whatever the wm gives us.
3679
3680 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3681
3682         * ButtonBase.cs: Add 2.0 properties.
3683         * Button.cs: Override Draw for 2.0.
3684         * Control.cs: Add Entered and Selected properties.
3685         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
3686         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
3687         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
3688         buttons.
3689         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
3690
3691 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3692
3693         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
3694
3695 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3696
3697         * XplatUIWin32.cs: Register a new class with Windows each time we get
3698         a new ClassStyle.  [Fixes bugs #79432, #80817]
3699         * Controls.cs: Set the correct ClassStyle in CreateParams.
3700         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
3701
3702 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
3703
3704         * ListView.cs: Add fireEvent argument to ReorderColumn since the
3705         ColumnReordered event must not be signaled when modifying DisplayIndex
3706         of a ColumnHeader. Added internal ReorderColumns method which takes
3707         care of drawing, and updating the internal DisplayIndex of the
3708         ColumnHeader. Added AddColumn method which is invoked from
3709         ColumnHeaderCollection when adding or inserting columns, and which
3710         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
3711         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
3712         Recalculated dispay indices after removing a ColumnHeader.
3713         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
3714         match MS. Allows last display index to be returned after ListView
3715         is disposed. Update actual location of ColumnHeader when DisplayIndex
3716         is modified.
3717
3718 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
3719
3720         * LinkLabel.cs: Improve CalcTrimRectangle.
3721         
3722         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
3723
3724 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3725
3726         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
3727         get rectangle as a result value.
3728
3729 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3730
3731         * LinkLabel.cs: Theres some diferences between rectangle return from 
3732         MeasureCharacterRanges and the area used for DrawString to fix this 
3733         CalcMeasurementFactor method was created, it calcules the diferences
3734         to be use later to adjust rectangle in draw operations. Fixes #80473.
3735         
3736         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
3737         to adjust draw rectangle.
3738
3739 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3740
3741         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
3742         text and some other changes to reduce and optimize source code.
3743
3744 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3745
3746         * RadioButton.cs: Implement 2.0 event.
3747         * RelatedImageListAttribute.cs: Implement new class.
3748
3749 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3750
3751         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
3752
3753 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3754
3755         * CheckBox.cs: Implement 2.0 functionality.
3756
3757 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3758
3759         * ListView.cs: Refactor Add and AddRange methods of
3760         ListViewItemCollection, to not update the ListView
3761         everytime an item is added in AddRange. Also move the update
3762         code to a new CollectionChanged method, and call it
3763         from other methods that need it as well (this should also fix some
3764         bugs when Sorting is used).
3765
3766 2007-02-27  Jackson Harper  <jackson@ximian.com>
3767
3768         * TextControl.cs: Try to never let the caret stay in a non-text
3769         tag.
3770         * TextBoxBase.cs: Update the caret.
3771
3772 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
3773
3774         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
3775         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
3776         delete POINT structure, duplicate of one in XplatUIStructs.
3777         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
3778
3779 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
3780
3781         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
3782         edit box since otherwise the Label would immediately be set (even if
3783         the user did not modify the label). In OnKeyDown set Handled to true
3784         if Return or Escape was pressed. In ColumnHeaderCollection unlink
3785         columns that are to be removed. In ListViewItemCollection unlink items
3786         that are to be removed.
3787
3788 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
3789
3790         * TextRenderer.cs: If we set a GDI clip region, we need to clear
3791         it when we are done.  [Fixes bug #80949]
3792
3793 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3794
3795         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
3796
3797 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3798
3799         * ListView.cs: I forgot to commit the changes for ListView 
3800         in my previous patch.
3801
3802 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3803
3804         * Clipboard.cs: Partially implement an overload of SetDataObject.
3805         * Form.cs: Implement ShowWithoutActivation.
3806         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
3807
3808 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3809
3810         This is a first set of changes to make the Virtual mode works,
3811         by avoiding the retrieval of ListViewItem instances until
3812         draw time.
3813
3814         * ListView.cs: Store item position in the ListView instead of the
3815         ListViewItem, this way we don't request the Bounds property of
3816         ListViewItem inside the ListView calculations, as well as cache the item
3817         size in item_size field. Store indexes instead of ListViewItem
3818         instances in the matrix used by icon view. Add a ItemMatrixLocation
3819         struct to hold the row and col info of the matrix info.
3820
3821         * ListViewItem.cs: Don't store the location anymore, and only cache
3822         the rectangles for GetBounds. Use the ListView.GetItemLocation
3823         method to retrieve the actual location.
3824
3825 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3826
3827         * TextRenderer.cs: Add clipping support, thanks to George.
3828         [Fixes bug #80949]
3829
3830 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3831
3832         * ListViewItem.cs: Cancel label edit when item is removed from 
3833         ListView.
3834         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
3835         event before the edit textbox is displayed.  Added CancelEdit method
3836         which is used end to editing while ignoring the value set by the
3837         user. In EndEdit, set focus to ListView to avoid losing focus to
3838         other controls. In ListViewItemCollection.Clear, cancel editing of
3839         any of the items.  In Remove, cancel editing of item being removed.
3840         Avoid udplicate code by modifing RemoveAt to invoke Remove.
3841
3842 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3843
3844         * FileDialog.cs: Update FSEntry when move is successful. Fixes
3845         bug #80948.  
3846
3847 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3848
3849         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
3850         compatible with non X11 systems. Fixes #80901.
3851
3852 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3853
3854         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
3855         whether the item should be unselected and reselect. We do no want this
3856         when we're starting to edit the label. Do not fire the 
3857         SelectedIndexChanged event from ListView when its already been fired
3858         by modifying ListViewItem.Selected. Fixes bug #80943.
3859
3860 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3861
3862         * TextRenderer.cs: Previos commit logic was backwards.
3863
3864 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3865
3866         * TextRenderer.cs: Don't add padding on MeasureText if we were
3867         sent the NoPadding flag.
3868
3869 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3870
3871         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
3872         after DrawButton. To prevent image overlaps button borders SetClip and 
3873         ResetClip added before and after draw image. Fixes #79129.
3874
3875 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3876
3877         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
3878         window size, it fix problem when you run under win32 that theres
3879         Size diferent than ClientSize. Also fix controls size and positions
3880         to mimic Win32. Fixes #80837.
3881
3882 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
3883
3884         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
3885         menu area to fix some problems for non X11 systems. Fixes #80613.
3886
3887 2007-02-22  Jackson Harper  <jackson@ximian.com>
3888
3889         * TreeNode.cs: When a node is expanded, set its is_expanded flag
3890         even if it doesn't have any children.
3891
3892 2007-02-22  Jackson Harper  <jackson@ximian.com>
3893
3894         * TreeView.cs: Calculate the top node 'on the fly', this
3895         eliminates issues where you need to click on the tree before
3896         scrolling it to get the top node computed correctly.
3897         * TreeNodeCollection.cs: We don't need to mess with the top node
3898         anymore.
3899
3900 2007-02-22  Jackson Harper  <jackson@ximian.com>
3901
3902         * DataGridViewRow.cs: Fix typo so height can actually be set.
3903         Patch by Peter Grimm.
3904
3905 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3906
3907         * FileDialog.cs: Fixed support for renaming files and directories.
3908         * ListView.cs: Do not lose focus when edit is canceled. Process
3909         Escape as regular key (to prevent closing of dialogs).
3910
3911 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3912
3913         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
3914         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
3915
3916 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3917
3918         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
3919         did not modify label.
3920         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
3921         modified the text. Reset Label when user presses Escape in edit mode.
3922         Move focus to ListView after having cancelled or finished editing the
3923         label.
3924
3925 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
3926
3927         * ComboBox.cs: Removed unnecessary initializations. Marked items field
3928         private. Clear textbox when Text is set to null and SelectedIndex is
3929         already -1.
3930         * FileDialog.cs: Removed unnecessary initializations. Removed 
3931         workarounds for ComboBox bugs that are now fixed. Modified
3932         DefaultExt, InitialDirectory and Title property to change null to
3933         zero-length string in getters. Avoid directly accessing fields.
3934
3935 2007-02-20  Jackson Harper  <jackson@ximian.com>
3936
3937         * TextControl.cs: Remove RecalAlignments call, that was some
3938         debugging leftovers.
3939         - Don't use the line indent when we shouldn't.
3940         * RichTextBox.cs: Add support for paragraph left indents.
3941
3942 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3943
3944         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
3945         Seems like the class status pages doesn't catch params differences.
3946
3947 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
3948
3949         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
3950
3951 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
3952
3953         * ComboBox.cs: Setting Text should have no effect if item text of
3954         selected item exactly matches value. First lookup text using
3955         case-sensitive comparison, and fallback to case-insensitive comparison.
3956         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
3957         allow startIndex to be last index. Changed ArgumentOutOfRangeException
3958         paramname to match MS. Restart from first item if string is not found
3959         after startIndex. Fixed paramname of ArgumentNullException that is
3960         thrown for null value in ObjectCollection.Contains.
3961
3962 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
3963
3964         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
3965
3966 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3967
3968         * ListControl.cs: In SelectedValue use value.Equals to compare for
3969         equality instead of ==, otherwise it will fail for strings.
3970         Fixes #80794.
3971
3972 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3973         
3974         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
3975         since the caret won't show up unless ShowSelection is true. 
3976         Fixes #80795.
3977
3978 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3979
3980         * Application.cs: When disabling all forms but the main form, do not
3981           disable any descendants of the main form (such as mdi children or
3982           other parented forms). Fixes #80822 on Windows.
3983         * Form.cs: If we have a parent, set the WS_CHILD style.
3984         * Control.cs: Update the window styles if the control whose parent has
3985           changed is a form (the WS_CHILD style has to be switched).
3986
3987 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
3988
3989         * XplatUIStructs.cs: MsgUIState structure added.
3990
3991 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
3992
3993         * FileDialog.cs: Removed need for separate fileName field. On 2.0
3994         profile, do not check filename(s) for illegal character if filename(s)
3995         were set non-interactively but always check on 1.0 profile. Fixed NRE
3996          in DefaultExt and only strip off first leading dot. Improve exception
3997         message when invalid Filter is set. Do not ignore InitialDirectory if
3998         it does no exist. Store specified Title, and if empty use default
3999         title (depending on type of dialog). Added an internal DialogTitle 
4000         property for retrieving dialog title. Fixed logic of displayed dir to
4001         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
4002         string as its buggy.
4003         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
4004         FileName is a zero-length string (it can never be null). Override 
4005         DialogTitle property to set default title of dialog box.
4006         * SaveFileDialog.cs: Override DialogTitle property to set default
4007         title of dialog box.
4008
4009 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
4010
4011         * FileDialog.cs: Modify default text of filename and filetype labels
4012         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
4013         after we've updated the SelectedIndex. Fixes part of bug #80887.
4014         * SaveFileDialog.cs: Set text of filetype label.
4015
4016 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4017
4018         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
4019         label field. Needed by latest Jackson's fixes for ListView.
4020
4021 2007-02-16  Andreia Gaita  <avidigal@novell.com>
4022
4023         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
4024         print preview images.
4025
4026 2007-02-16  Jackson Harper  <jackson@ximian.com>
4027
4028         * ListView.cs: Make AfterLabelEdit work correctly.
4029         * FileDialog.cs: After changing the name of the folder, we have to
4030         make sure that it is created, or that we pop up an error because
4031         it already exists.
4032
4033 2007-02-16  Jackson Harper  <jackson@ximian.com>
4034
4035         * X11Dnd.cs: Implement aliases on mime handlers, so things like
4036         System.String are mapped to text.
4037         - Handle dataobjects, getting all the possible formats out of them
4038         - We dont need the drag event args before we give feedback. This
4039         allows feedback cursors to be immediate before selections have
4040         been converted.
4041
4042 2007-02-16  Jackson Harper  <jackson@ximian.com>
4043
4044         * TextBoxBase.cs: Modified the method for inserting images to
4045         taking a line and position instead of tag and position.
4046         * RichTextBox.cs: Handle PngBlip data by inserting the png image
4047         into the RTF file.
4048         * TextControl.cs: Allow images to be inserted as the first tag of
4049         a line.
4050         - Fix some off by one issues when we assume the first tag is a
4051         text tag, not an image tag.
4052
4053 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4054
4055         * ListView.cs: Set focus to ListView when ItemControl gets a
4056         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
4057         Fixes part of #80467.
4058
4059 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4060
4061         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
4062           validate Text input (if null or empty string reset Value to default
4063           value). Fixes #80830.
4064
4065 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4066
4067         * ListView.cs: Set owner as null for columns and items when
4068         Dispose is invoked. Fixes #80607.
4069
4070 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
4071
4072         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
4073         showing DropDowns, don't show a Grip when doing Flow layout.
4074         [This fixes the toolbox in PDN 2.72.]
4075         * ToolStripItem.cs: Add Anchor property and some internal properties to
4076         reduces needed changes to FlowLayout.
4077         * ToolStripOverflow.cs: Remove unused variable.
4078         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
4079         use it in the layout calculations.
4080
4081 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4082
4083         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
4084         reported in #79640.
4085         
4086         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
4087         size calculation.
4088
4089 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4090
4091         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
4092         MeasureString format, it can make button very large in some cases, it is
4093         strange but is what win32 do.
4094
4095 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4096
4097         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
4098         size calculation.
4099
4100         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
4101         rendering, the value is based on MenuAccessKeysUnderlined.
4102
4103 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4104
4105         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
4106         for most themes.
4107         
4108         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
4109         
4110         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
4111         and use MenuAccessKeysUnderlined instead.
4112
4113 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4114
4115         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
4116         A selected control would not get a Focus call if:
4117                 - the default active control of the container is the same as
4118                   the one that was selected
4119                 - we are switching from one container to another
4120         Under these conditions, the container being selected already has
4121         an active_control, which is the same as the one being activated, 
4122         so set_ActiveControl would always return and not send the Focus
4123         call. Fix to check if the currently active control of the container
4124         is actually focused.
4125
4126 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
4127
4128         * StatusStrip.cs: Implement the spring layout.
4129         * ToolStripControlHost.cs: Make sure the hosted control's visibility
4130         always matches the host.
4131         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
4132         and TextAfterImage.
4133
4134 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4135
4136         * Control.cs: Code reorganization only.
4137           - Reorganize the WndProc cases so that each case has it's own handling method, 
4138           to help with the no-line-numbering stack traces.
4139           - Formatting changes (it's vstudio's fault, really :p)
4140
4141 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4142
4143         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
4144           Thread.CurrentUICulture to match DateTimePicker's (and MS)
4145           behaviour.
4146
4147 2007-02-12  Jackson Harper  <jackson@ximian.com>
4148
4149         * RichTextBox.cs:
4150         * TextBox.cs: By default we have a non multiline document
4151         - use the multiline property instead of the internal variable
4152         * TextBoxBase.cs: Treat multiline and non multiline the same in
4153         most places.
4154         - Use the documents multiline flag instead of tracking it ourself
4155         * TextControl.cs: Attempt at getting multiline to match MS
4156         behavior.  Lines now track an offset, which is either their X or Y
4157         offset depending on whether or not we are in multiline mode.
4158         - Update all the methods to understand that lines have an X value.
4159         - Fix crash in Undo::Duplicate when empty lines are deleted.
4160
4161 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4162
4163         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
4164         code moved to properties PreferredHeight and PreferredWidth. It solve the
4165         all problems when preferred sizes must be recalculated. Fixes #80801.
4166
4167 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4168
4169         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
4170         font height when compatible_text_rendering is false. Partially fix #80801.
4171
4172 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4173
4174         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
4175
4176 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4177
4178         * Form.cs: Improved exception messages in ShowDialog.
4179
4180 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4181
4182         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
4183         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
4184         if not set. Fixes bug #80764. Avoid accessing current_settings field
4185         directly.
4186
4187 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
4188
4189         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
4190         false.
4191
4192         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
4193         public in 2.0 and for easy maintenance and dont break compatibility it is 
4194         internal in 1.1.
4195         
4196 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4197
4198         * ToolStripItem.cs: Implement using images from ImageList.
4199
4200 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4201
4202         * DateTimePicker.cs: Change default date-formatting culture from
4203           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
4204           seems to be the way MS does it.
4205
4206 2007-02-08  Andreia Gaita  <avidigal@novell.com>
4207
4208         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
4209         (the 6 was cut off on the right side)
4210
4211 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4212
4213         * Form.cs: Tell MenuStrips to close when the form is clicked.
4214         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
4215         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
4216         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
4217         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
4218         support for Overflow, where items that do not fit are automatically
4219         reparented to a drop down menu.
4220         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
4221         Also: fixes bug #80747.
4222
4223 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4224
4225         * ComboBox.cs: Remove warning (unused code).
4226         * ScrollableControl.cs: Remove warning for 1.1 profile.
4227
4228 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4229
4230         * Form.cs: Remove a warning.
4231
4232 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4233
4234         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
4235           'g' specifier, not documented anywhere, but seems to always show up
4236           as a single space (might have something to do with the DateTime 'g'
4237           specifier, which is the era format, but since DateTimePicker can't
4238           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
4239           won't crash if the format has an unmatched quote. Now shows
4240           single-character formats correctly. Fixes #80744.
4241
4242 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4243
4244         * StatusStrip.cs: Stretch property needs to call base.Stretch,
4245         not this.Stretch to fix stack overflow. [Fixes bug #80760]
4246
4247 2007-02-07  Chris Toshok  <toshok@ximian.com>
4248
4249         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
4250         background color.  it overwrites the background image we've
4251         already painted.  Fixes #80599.
4252
4253 2007-02-07  Chris Toshok  <toshok@ximian.com>
4254
4255         * DataGrid.cs: return immediately from Edit() when there are no
4256         columns.  Fixes #80662.
4257
4258 2007-02-07  Chris Toshok  <toshok@ximian.com>
4259
4260         * MessageBox.cs: fix #80625.  don't always show the Help button in
4261         2.0.  use the displayHelpButton parameter to determine if we
4262         should show it. Also, make the internal show_help field private.
4263
4264 2007-02-07  Chris Toshok  <toshok@ximian.com>
4265
4266         * Control.cs (SetVisibleCore): check in the proposed patch for
4267         80604, and set is_visible before calling CreateControl.
4268
4269 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
4270
4271         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
4272         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
4273         on it.
4274
4275 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
4276
4277         * MenuAPI.cs: hotkey_active internal field added, it is required because
4278         we need to know when hotkeys must be draw, before this change a keystate
4279         Navigating was used but we can have menu in navigating state without
4280         hotkeys. Fixes #80694.
4281         
4282         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
4283
4284 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4285
4286         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
4287           corresponding events and methods to be internal for 1.1 profile and
4288           public for 2.0 profile (required by SizeGrip).
4289         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
4290           implicit control list). Don't set the size nor the location of the
4291           SizeGrip anymore as it's not needed.
4292         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
4293           draw directly on the captured control (fixes #80656). Removed
4294           ShowGrip (it wasn't used anywhere), redraw (always true), added
4295           GetDefaultSize and GetDefaultRectangle to calculate defaults.
4296         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
4297           be called from SizeGrip.
4298
4299 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4300
4301         * Timer.cs: Throw ArgumentException if Interval <= 0.
4302
4303 2007-02-05  Jackson Harper  <jackson@ximian.com>
4304
4305         * TreeView.cs: We need to check scrollbar visibility when window
4306         visibility is updated, because non visible trees don't ever add
4307         scrollbars.
4308         * Cursor.cs: We want the override cursor to be reset to NULL when
4309         we set current cursor to the default cursor.
4310
4311 2007-02-05  Jackson Harper  <jackson@ximian.com>
4312
4313         * TextControl.cs: Don't have crlfs when we are non multiline.
4314         - Consolidate the line position.
4315
4316 2007-02-05  Jackson Harper  <jackson@ximian.com>
4317
4318         * X11Keyboard.cs: BACK+CTRL gets a special char code.
4319
4320 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4321
4322         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
4323           handling LeaveNotify->NotifyUngrab in order to send
4324           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
4325           after calling XUngrabPointer, so we call WindowUngrabbed directly
4326           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
4327         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
4328           MouseCaptureChanged correctly. Also create handles if changing
4329           Capture (matches MS behaviour).
4330
4331 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4332
4333         * SizeGrip.cs: Make the last change 2.0 only.
4334
4335 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4336
4337         * SizeGrip.cs: If resizing and the capture is lost, revert any size
4338           changes to initial size (fixes #80597).
4339
4340 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4341
4342         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
4343
4344 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4345
4346         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
4347           background) and only allow dragging if enabled. This way the
4348           sizegrip can be used to fill the open square that otherwise would
4349           have been shown in the bottom right corner of ScrollableControl
4350           when ScrollableControl is not suppose to support sizing.
4351         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
4352           sizegrip is shown and enabled, and hook up with necessary events.
4353
4354 2007-02-01  Chris Toshok  <toshok@ximian.com>
4355
4356         * DataGridTextBoxColumn.cs: clean up the
4357         GetFormattedString/GetColumnValueAtRow combination of functions.
4358         Also fix UpdateUI, and the initial state of
4359         IsInEditOrNavigateMode.
4360
4361         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
4362         aren't supposed to scroll the textbox here, we're supposed to
4363         scroll the datagrid.
4364
4365 2007-02-01  Chris Toshok  <toshok@ximian.com>
4366
4367         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
4368         setting the position.
4369
4370 2007-02-01  Chris Toshok  <toshok@ximian.com>
4371
4372         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
4373         here, since the most recent focus fixes keep us from generating
4374         the Leave event when our textbox gets focus.
4375         (Edit): we should be passing null for the column style's
4376         instantText parameter.
4377         
4378 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
4379
4380         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
4381         raised.  Fixes menu text/icons not showing up in PDN.
4382
4383 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4384
4385         * Control.cs: Remove code in constructor that makes every
4386         control with WS_CHILD set have initial location -1, -1.
4387
4388 2007-01-31  Jackson Harper  <jackson@ximian.com>
4389
4390         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
4391         XplatUIX11.
4392         * XplatUIX11.cs: Give teh keyboard to teh dnd.
4393
4394 2007-01-31  Jackson Harper  <jackson@ximian.com>
4395
4396         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
4397         - Remove some debug code.
4398
4399 2007-01-31  Jackson Harper  <jackson@ximian.com>
4400
4401         * XplatUIX11.cs: If you set the override cursor during a grab, it
4402         should actually override the grab cursor.  This comes into play
4403         when you are setting custom cursors in a DND feedback method.
4404
4405 2007-01-31  Jackson Harper  <jackson@ximian.com>
4406
4407         * X11Dnd.cs: Add support for handling the QueryContinue and
4408         GiveFeedback events.
4409         - Cancel drag and drop actions when the escape key is clicked.
4410         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
4411         can handle the ESCAPE key.
4412         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
4413         done when dnd events are continued after the button is released.
4414         - Add a new helper method so that dnd can translate key events.
4415
4416 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
4417
4418         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
4419         make it more obvious what is happening.
4420
4421 2007-01-30  Jackson Harper  <jackson@ximian.com>
4422
4423         * XplatUIX11.cs: Don't break when handling button release in drag
4424         and drop operations. We need that BUTTONUP message to get through
4425         so capture is released.
4426         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
4427         this is handled automatically when the mouse is down.
4428
4429 2007-01-30  Jackson Harper  <jackson@ximian.com>
4430
4431         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
4432         is closed, so we need to make sure that we aren't changing the
4433         dialog result when the OK (Open or Save) button has been clicked
4434         and we are closing the window ourselves.  Note we don't need to
4435         worry about the cache being written in this case, because it was
4436         already done in the previous FilOk call.
4437
4438 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4439         
4440         * DateTimePicker.cs: Remove a warning.
4441         * ComboBox.cs: Remove a couple of warnings.
4442
4443 2007-01-29  Chris Toshok  <toshok@ximian.com>
4444
4445         * XplatUIX11.cs: don't crash, and remove the icon if the user has
4446         set one, if SetIcon is passed a null icon.
4447
4448 2007-01-29  Andreia Gaita  <avidigal@novell.com>
4449
4450         * TextBox.cs: Redraw when the password characters changes
4451         * TextControl.cs: Check if textbox has a password char and draw 
4452         a line of password chars instead of the text in the line. LineTag gets 
4453         an extra Draw() method which allows document.Draw to override the text 
4454         that will be drawn. Removes 1024 char limitation on length of passworded 
4455         lines.
4456
4457 2007-01-29  Jackson Harper  <jackson@ximian.com>
4458
4459         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
4460         single chars is not.
4461
4462 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
4463
4464         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
4465         one pixel.  Fix a StackOverflowException caused by an overload wrongly
4466         calling itself.
4467
4468 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
4469
4470         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
4471         also remove ProcessArrowKey and put the code inside ProcessKeys.
4472
4473 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
4474
4475         * PaddingConverter.cs: Added.
4476
4477 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4478         
4479         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
4480         ShowPanels is false (fixes #80600). Only draw up to 127 characters
4481         of text (fixes #80601). For panels clip the text to draw to the
4482         panel (fixes #80603).
4483
4484 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4485
4486         * ComboBox.cs: Fixed implementation of ResetText.
4487
4488 2007-01-25  Jackson Harper  <jackson@ximian.com>
4489
4490         * TextControl.cs: For the last char of a line we need to use the
4491         line size, not that chars width, since it won't actually be
4492         computed since the right side of a char is based on the start of
4493         the left side of the next char, and the next char does not exist.
4494
4495 2007-01-25  Chris Toshok  <toshok@ximian.com>
4496
4497         * Splitter.cs: fix the new unit tests, and reindent some switch
4498         statements.
4499
4500 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4501
4502         * ComboBox.cs: Implemented 2.0 methods and events.
4503         * TextBoxBase.cs: Added OnTextUpdate, so that
4504         ComboBox.ComboTextBox can inform ComboBox of it.
4505
4506 2007-01-25  Jackson Harper  <jackson@ximian.com>
4507
4508         * TextControl.cs: Respect ShowSelection when deciding whether or
4509         not to display the caret, this allows comboboxes to have carets
4510         when the combotextbox does not have focus.
4511
4512 2007-01-25  Jackson Harper  <jackson@ximian.com>
4513
4514         * TextControl.cs: Add a Suspend/Resume for updating, basically the
4515         same as the Suspend/Resume for recalc, except this will do actual
4516         Invalidates.
4517         - New Undo manager, works much like the MS version.
4518         - Implemented Redo
4519         * TextBoxBase.cs: The Cut operation is undoable.
4520
4521 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4522         
4523         * TextBoxBase.cs: Don't antialias text. Makes it look way better
4524         on Windows (no difference on Linux).    
4525
4526 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4527
4528         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
4529         we don't want to activate any windows. Fixes #79433.
4530
4531 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
4532
4533         - ButtonBase.cs: Fix capitalization of parameter: disposing.
4534         [Fixes bug #80609]
4535
4536 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
4537
4538         * FileDialog.cs:
4539         - Move to using System.ComponentModel.EventHandlerList
4540         - Replace Refresh with Invalidate
4541         - Clear the mime filecache on closing
4542         - Some other memory reducing work. After beeing closed FD now uses
4543           only about 300 KB for the fdo mime stuff plus the memory of the
4544           cached icons.
4545         * Mime.cs: Changed coding style and removed unnecessary commented
4546         code. Some more memory memory reducing work.
4547
4548 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4549
4550         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
4551         a few other missing 2.0 properties.
4552         * Theme.cs: Added DrawFlatStyleComboBox.
4553         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
4554
4555 2007-01-24  Chris Toshok  <toshok@ximian.com>
4556
4557         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
4558         wake_waiting flag, not just when there's data to be read.  if we
4559         don't, then future wakeup's won't reach us and we'll be doomed to
4560         wait for the entire 1 second timeout forever (unless there are X
4561         events to be had).
4562
4563 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4564
4565         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
4566         until you pass Items.Count, not Items.Count - 1 like 1.1.
4567
4568 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
4569
4570         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
4571
4572 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4573
4574         * ToolStripContainer.cs: The recent Dock fix exposed that I was
4575         adding the panels in the wrong order.
4576
4577 2007-01-24  Jackson Harper  <jackson@ximian.com>
4578
4579         * TextBoxBase.cs: When we move the caret we also need to move the
4580         selection, this fixes some random crashing after doing select
4581         text, unselect, delete a char, paste.
4582
4583 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4584
4585         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
4586
4587 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4588
4589         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
4590         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
4591         * ToolBar.cs: Force redraw in BackgroundImageChanged.
4592
4593 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4594
4595         * ToolBar.cs:
4596         - Implement support for vertical toolbars. Fixes #80539;
4597         - Call LayoutToolBar when resize, it fix some other problems in layout.
4598         - Rename requested_height to requested_size, as we can have width on it
4599         when toolbar is vertical.
4600         - Create a private property "Vertical" that uses Dock to verify when 
4601         toolbar is vertical or not.
4602         - Set ControlStyles when change Dock property.
4603         - Refactory in LayoutToolBar to have better variables names and to support
4604         vertical toolbars.
4605         - Fixes default value for ButtonSize when button count is equal zero, size
4606         must be (39, 36) test case writed.
4607
4608 2007-01-23  Chris Toshok  <toshok@ximian.com>
4609
4610         * Control.cs: fix the checks so that they work correctly for mdi
4611         parents/children.
4612
4613 2007-01-23  Chris Toshok  <toshok@ximian.com>
4614
4615         * Control.cs: ControlCollection seems to have super-secret
4616         abstraction breaking knowledge of Mdi containers.  allow MdiClient
4617         to add toplevel controls.
4618
4619 2007-01-23  Chris Toshok  <toshok@ximian.com>
4620
4621         * Control.cs: throw an ArgumentException if a toplevel control is
4622         added to our control collection from ControlCollection.Add, as
4623         well as from ControlCollection.IList.Add.  This fixes the
4624         ControlSetTopLevelTest.TestTopLevelAdd unit test.
4625
4626         Also, in ControlCollection.IList.Add, don't through an
4627         ArgumentNullException, throw an ArgumentException, when value ==
4628         null.  This matches MS.
4629
4630 2007-01-23  Chris Toshok  <toshok@ximian.com>
4631
4632         * BindingSource.cs: initial, incomplete, implementation of
4633         BindingSource.
4634
4635 2007-01-23  Jackson Harper  <jackson@ximian.com>
4636
4637         * TextControl.cs:
4638         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
4639         that I can fix a broken unit test (TextBoxTest::ClearUndo)
4640         
4641 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4642
4643         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
4644
4645 2007-01-23  Andreia Gaita  <avidigal@novell.com>
4646
4647         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
4648         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
4649         IndexOfKey() for 2.0
4650
4651 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4652
4653         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
4654         to prevent it from changing z-order.
4655         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
4656         leave UI updates in MdiWindowManager.
4657         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
4658         1 sized (NC handling goes weird on Linux otherwise).
4659         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
4660         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
4661         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
4662         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
4663         and SetWindowState(s) to allow for changing the size of an activated child
4664         before activating it (reduces a lot of flicker).
4665
4666 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4667
4668         * Form.cs: Changing FormBorderStyle has different semantics based
4669         on whether the Form is visible or not.  If not visible, don't change
4670         the Size.  But InvalidateNC needs to be called to force the window
4671         to pick up the changes and redraw itself.  [Fixes bug #80574]
4672
4673 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4674
4675         [Moma work]
4676         * ContainerControl.cs: ProcessCmdKey.
4677         * ErrorProvider.cs: new constructor.
4678         * Form.cs: fix AutoValidateEvent compiler warning.
4679         * Label.cs: fix OnAutoSizeChanged compiler warning.
4680         * MenuStrip.cs: fix CanOverflow compiler warning.
4681         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
4682         * TextBox.cs: Dispose.
4683         * ToolStrip.cs: CanOverflow, re-enable double buffering.
4684         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
4685         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
4686         * ToolStripItem.cs: Overflow, RightToLeft properties.
4687
4688 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4689
4690         * Form.cs: Move the layout of the main form to MdiWindowManager.
4691         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
4692         do a layout of the main window to update MdiClient's client area to
4693         the right area. Fixes #80533. Remove the calculation of nc size, 
4694         it was just wrong and the correct one is the same as for 
4695         InternalWindowManager. 
4696
4697 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
4698
4699         * Control.cs: Setting Anchor or Dock needs to reset the other
4700         to its default.  [Fixes bug #80556]
4701
4702 2007-01-20  Chris Toshok  <toshok@ximian.com>
4703
4704         * CheckedListBox.cs: class status changes.
4705
4706         * ScrollableControl.cs: same.
4707
4708         * RichTextBox.cs: same.
4709
4710         * ContainerControl.cs: same.
4711
4712         * ListView.cs: same.
4713
4714         * NotifyIcon.cs: same.
4715
4716         * MenuStrip.cs: same.
4717
4718         * RadioButton.cs: same.
4719
4720         * CheckBox.cs: same.
4721
4722         * PrintPreviewDialog.cs: same.
4723
4724         * Form.cs: same.
4725
4726 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
4727
4728         * TreeNode.cs: Apply Alan's patch for Name property.
4729
4730 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4731         
4732         * Form.cs: Implemented SizeGripStyle.
4733         * SizeGrip.cs: Check for minimum and maximum size for the
4734         control being resized and only resize if size has actually
4735         changed.
4736
4737 2007-01-19  Chris Toshok  <toshok@ximian.com>
4738
4739         * DataGridColumnStyle.cs: stop setting _readonly in the
4740         PropertyDescriptor setter.  fixes a unit test failure.
4741
4742         also, rename ParentReadOnly to TableStyleReadOnly, and have it
4743         just consult our table style (if we have one).  We don't need to
4744         consult the datagrid readonly attribute because that's passed in
4745         as the _ro arg to Edit.  this simplifies things a little.
4746         
4747         * DataGrid.cs: use CurrentColumn instead of
4748         current_cell.ColumnNumber just to simplify some of the code.
4749
4750         switch the order of some things in the CurrentCell setter to keep
4751         the previous cell from getting a textbox again -
4752         EnsureCellVisibility causes scrolling to happen, which calls Edit.
4753         So we need to set the new cell before calling it.
4754         
4755         call Edit in OnEnter, as does Microsoft.
4756         
4757         also, make sure the current table style isn't the one we create
4758         initially when checking to see if it's different than the one
4759         we're setting it to in BindColumns (this fixes #80421).
4760
4761         * GridTableStylesCollection.cs: table styles can have "" for a
4762         mapping name.  part of the fix for #80421.
4763
4764         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
4765         Edit significantly.
4766
4767 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4768
4769         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
4770         and less GDI object leaky-er.
4771
4772 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4773
4774         * LinkLabel.cs: Add opaque control style
4775
4776 2007-01-18  Jackson Harper  <jackson@ximian.com>
4777
4778         * TextControl.cs: Calculate width properly.
4779         - Don't store the tag's X offset, this can be figured out very
4780         easily.
4781         - When getting the caret tag make sure to get the last empty tag.
4782
4783 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4784
4785         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
4786         [Fixes bug #79959]
4787
4788         * Control.cs: Color.Empty shouldn't count for previous transparent
4789         redraw changes.
4790
4791 2007-01-18  Jackson Harper  <jackson@ximian.com>
4792
4793         * TextBox.cs:
4794         * RichTextBox.cs:
4795         * TextControl.cs: Starting to merge in some pieces of my older
4796         undo work.  Basically just some slight cleanup of the undo API.
4797
4798 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4799
4800         * TrackBar.cs: Fix signature of RightToLeftLayout.
4801         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
4802         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
4803         * Application.cs: Implemented UseWaitCursor.
4804
4805 2007-01-18  Jackson Harper  <jackson@ximian.com>
4806
4807         * TextControl.cs: We can't skip tags if any part of the tag is
4808         visible.
4809
4810 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4811
4812         * ContainerControl.cs: Override OnLayout.
4813
4814 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4815
4816         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
4817
4818         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
4819         everything else.
4820
4821 2007-01-18  Chris Toshok  <toshok@ximian.com>
4822
4823         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
4824         (leftover from the container_selected days, I'd wager).  fixes bug
4825         #80546.
4826
4827 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4828
4829         * Control.cs: Apply patch from George to fix the new testcase on
4830         bug #80451.  We can't just check for Color.Transparent, we need 
4831         to check if the back color's alpha channel is < 255.
4832
4833 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4834
4835         * Form.cs: Move setting show_icon = true to before the constructor
4836         so that the base constructor has that information when it calculates
4837         the form's size.  Was causing forms to be (6, 6) bigger than they
4838         were supposed to be.  Thanks for catching this Rolf!
4839
4840 2007-01-18  Jackson Harper  <jackson@ximian.com>
4841
4842         * TextControl.cs: When replacing a selection we need to invalidate
4843         from the initial selection start, because selection start is moved
4844         to the end of the replacement.
4845
4846 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4847
4848         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
4849
4850 2007-01-18  Chris Toshok  <toshok@ximian.com>
4851
4852         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
4853         I just added.
4854
4855 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
4856
4857         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
4858         layout methods and properties from ToolBarButton must be available
4859         into ToolBarButtonInfo.
4860
4861 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4862
4863         * Control.cs: If the control has a transparent background, we
4864         need to refresh it when it moves and when it's parent's background
4865         image changes.  [Fixes bug #80451]
4866
4867 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4868
4869         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
4870
4871 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4872
4873         * XplatUIWin32.cs: Implement proper double buffering for Windows.
4874         [Fixes bug #80447, and probably speeds up things as well]
4875
4876 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4877
4878         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
4879         * XplatUIWin32.cs: We need to recalculate NC size after changing 
4880         window style to toolwindow (otherwise the client rectangle will be
4881         3 pixels to small for some reason).
4882         * MdiWindowManager.cs: Revert NC size calculations to match how
4883         they are calculated only based on window styles (to match
4884         Win32AdjustWindowRectEx, since otherwise when setting size or 
4885         location, Control will call Win32AdjustWindowRectEx to update client 
4886         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
4887         calculate a different value of client size causing another paint 
4888         (and flickering))
4889         * InternalWindowManager.cs: When moving or resizing a window only
4890         update size or location if they actually changed.
4891         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
4892         (seems to match Windows behaviour better). Cleaned up 
4893         ManagedWindowDecorations to draw what's needed and nothing else
4894         (was drawing borders and lines where they shouldn't be)
4895         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
4896         (style = 0xFFFF) and takes into account caption height when 
4897         calculating window rectangle.   
4898
4899 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4900
4901         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
4902         can be added to toolbar multiple times, we need to maintain a list of 
4903         button information for each positions.
4904
4905 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4906
4907         * ToolBar.cs: Some small stetic changes.
4908
4909 2007-01-16  Jackson Harper  <jackson@ximian.com>
4910
4911         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
4912         that allow us to have nested recalc = false blocks.
4913         - Add paste support for images in the RichTextBox
4914         * RichTextBox.cs: flush the text after the color is changed, so
4915         the change takes effect.
4916         - Use SuspendRecalc
4917         - Some extra debugging info
4918         * TextControl.cs: Tags no longer track their length, it is just
4919         computed from the next tags length, this makes things a little
4920         simpler and reduces places that we have to track length changes.
4921         - Refactored the linetag class a little so we could make it
4922         a base class for different kinds of tags
4923         - Created a image tag, a tag that can have a single image inserted
4924         into it
4925         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
4926         that we can call suspend multiple times.
4927         - Add some debugging methods
4928
4929 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4930
4931         * MdiClient.cs: Add ActivatePreviousChild for 
4932         mdi child window navigation.
4933         * Form.cs: Use MdiClient.ActivateNextChild/
4934         ActivatePreviousChild instead of Form.SelectNextControl
4935         to select the next/previous child since 
4936         SelectNextControl doesn't do it in the same order
4937         as mdi children should do it.
4938
4939 2007-01-16  Chris Toshok  <toshok@ximian.com>
4940
4941         * Control.cs: remove container_selected field.
4942
4943 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4944
4945         * MdiClient.cs: Update main form's ActiveChild when
4946         updating keyboard focus for the mdi child.
4947
4948 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
4949
4950         * Control.cs: PreferredSize fix.
4951
4952         * Form.cs: Add several 2.0 events, properties, and methods.
4953
4954 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
4955
4956         * Form.cs: Provide meaningful message when MdiParent is assigned a
4957         Form that is not an MdiContainer.
4958
4959 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4960
4961         * MdiClient.cs: Update main form's ActiveChild when
4962         activating a mdi child.
4963
4964 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4965
4966         * MdiWindowManager.cs: Fix NRE when merging menus and main form
4967         doesn't have a menu.
4968
4969         * Form.cs: Request NCRecalc after creating a mdi child window.
4970         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
4971         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
4972         
4973         * MdiClient.cs: Add new method SendFocusToActiveChild that either
4974         sends keyboard focus to the active child, or to the MdiClient
4975         if there are no child forms.
4976         
4977 2007-01-15  Chris Toshok  <toshok@ximian.com>
4978
4979         * ListView.cs: drop the *Internal overrides, just do our work in
4980         ItemControl's WndProc instead.
4981
4982         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
4983         of the various controls, and forward the events properly (in the
4984         same manner as MS) from the textbox to the UpDown.  Also the
4985         ActiveControl of the UpDownBase gets set properly now.  Finally,
4986         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
4987
4988         * NumericUpDown.cs: set Text in the ctor.
4989
4990         * DomainUpDown.cs: call UpdateEditText in the ctor.
4991         
4992         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
4993         so even a Selectable = false textbox can be focused if you click
4994         in it.  Go figure.
4995
4996         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
4997         just add their handling in their respective WndProc's.  Also add
4998         an explicit FocusInternal method that doesn't consult CanFocus
4999         before calling Select(this).
5000
5001         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
5002         do our work in WndProc instead.
5003
5004         * TabControl.cs: same.
5005
5006         * ComboBox.cs: same.
5007
5008 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5009
5010         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
5011         Fixes #80006.
5012
5013 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5014
5015         * ListViewItem.cs:
5016         * ThemeWin32Classic.cs: Don't draw the item text outside
5017         item bounds in Details view, as well as use trimming.
5018         Fixes bug #80376.
5019
5020 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5021
5022         * Form.cs: Implement Form.ShowIcon.
5023         
5024         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
5025         null, which when combined with the DlgModalFrame window style removes
5026         the icon from the title bar.
5027
5028 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5029
5030         * Control.cs: Call OnMouseClick after OnClick. (2.0)
5031
5032 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5033
5034         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
5035         menu when mdi child windows theres a menu, uses insert to get icon
5036         at first position. Partially fix #80006.
5037
5038 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5039
5040         * Clipboard.cs: Implement 2.0 methods.
5041
5042 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5043
5044         * Menu.cs: Implement Insert method of MenuItemCollection class
5045         to fix MenuMerge.
5046
5047 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5048
5049         * ListView.cs: Implement 2.0 FindItemWithText method.
5050
5051 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5052
5053         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
5054         to calculate menu bar size. Fixes #80290.
5055
5056 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5057
5058         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
5059
5060 2007-01-11  Chris Toshok  <toshok@ximian.com>
5061
5062         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
5063         initial form.
5064
5065 2007-01-11  Chris Toshok  <toshok@ximian.com>
5066
5067         * LinkLabel.cs: make sure to call base.Select in our Select method
5068         if it turns out we're going to be selected (i.e. if we have a link
5069         that is going to receive focus).  That way our container's
5070         ActiveControl is updated properly.
5071
5072 2007-01-11  Chris Toshok  <toshok@ximian.com>
5073
5074         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
5075         they have 1 or more links.  this fixes the crash gert reported.
5076
5077 2007-01-11  Andreia Gaita  <avidigal@novell.com>
5078
5079         * ContainerControl.cs: Remove ContainerSelected flag, not needed
5080         anymore.
5081
5082         * Control.cs (Controls.Add): Check if control to be added to the collection
5083         is a top level control, and throw an ArgumentException if it is.
5084         Remove ContainerSelectedFlag, not needed anymore.
5085
5086         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
5087         top most control doesn't activate the form. This fixes a problem in the
5088         MessageBox, where the default button wouldn't get focus because the form
5089         was activated before being Loaded - when the Owner is set, SetTopMost is
5090         called, and it would activate it.
5091
5092 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
5093
5094         * Button.cs: When clicked and setting the parent form's DialogResult,
5095         use FindForm instead of Parent, since parent could be a container
5096         control and not the Form.  Fixes bug #80495.
5097
5098 2007-01-10  Chris Toshok  <toshok@ximian.com>
5099
5100         * Form.cs: move the call to SendControlFocus into the same
5101         is_loaded check.
5102
5103 2007-01-10  Chris Toshok  <toshok@ximian.com>
5104
5105         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
5106         It breaks in the face of the new ActiveControl stuff, and should
5107         be unnecessary.
5108
5109         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
5110         activecontrol's focus if it's not already set, after we set
5111         ActiveControl, but before we call OnActivated.  Re-fixes #79667
5112         after the previous focus/active control fixes regressed it.
5113
5114         * Control.cs: reindent some code.
5115         
5116 2007-01-10  Chris Toshok  <toshok@ximian.com>
5117
5118         * Splitter.cs: clearing some outstanding changes from my tree.
5119         Replace all accesses (not writes) to the internal dock_style field
5120         with the Dock property.
5121
5122 2007-01-10  Chris Toshok  <toshok@ximian.com>
5123
5124         * Control.cs: make FireEnter, FireLeave, FireValidating, and
5125         FireValidated virtual.
5126
5127         * Form.cs: override and don't chain up calls to FireEnter and
5128         FireLeave.
5129
5130 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5131
5132         * ListView.cs: Add more text padding space when using
5133         auto resize for columns (the previous value didn't work fine).
5134
5135         * ThemeWin32Classic.cs: Update text position inside columns,
5136         to match the appeareance of .Net.
5137
5138         * ColumnHeader.cs: When using auto resize, only the Width should
5139         depend on the sub items, not the Height. Also, set width after
5140         auto resizing (the value of Width should never remain as -1 or -2).
5141
5142 2007-01-10  Chris Toshok  <toshok@ximian.com>
5143
5144         * Application.cs: fix compilation errors when debug is enabled.
5145
5146 2007-01-10  Chris Toshok  <toshok@ximian.com>
5147
5148         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
5149         add some nice ascii art pictures and explanation of the process).
5150         (GetMostDeeplyNestedActiveControl): new utility function we need
5151         because our ActiveControl can refer to a child container with its
5152         own ActiveControl.
5153
5154         * Form.cs (OnActivated): remove the call to SelectActiveControl
5155         from here, since you can override this method and not chain up,
5156         and winforms still sets the active control.
5157         (OnCreateControl): also remove the unnecessary SelectActiveControl
5158         call from here.
5159         (WndProc): it's actually called from the WM_ACTIVATE block, just
5160         before calling OnActivated.
5161
5162         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
5163         inside the else.  the ActiveControl setter will end up setting
5164         focus on @control.  This keeps us from setting it again (and
5165         generating an extra LostFocus/GotFocus pair).
5166         (Select (bool, bool)): reindent.
5167
5168 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
5169
5170         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
5171         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
5172         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
5173         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
5174         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
5175         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
5176         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
5177         ToolStripTextBox.cs: Another wave of corcompare work.
5178
5179 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5180
5181         * ColumnHeader.cs: Implement 2.0 AutoResize method using
5182         the Width property.
5183
5184         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
5185         methods by callling Column.AutoResize method on columns.
5186
5187 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5188
5189         * Control.cs: Provide proper implementations of PreferredSize
5190         and GetPreferredSize (2.0).
5191
5192 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5193
5194         * Form.cs: Remove one character (!) to make my previous OnClosing
5195         stuff work for modal windows like MessageBox.
5196
5197 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5198
5199         * ListView.cs:
5200         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
5201         ListView.Columns to get the last displayed column. Fixes #80452.
5202
5203 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
5204
5205         * Label.cs, LinkLabel.cs: Source code identation fixes.
5206
5207 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
5208
5209         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
5210         we dont need to invalidate only borders because when we invalidate four
5211         border lines the invalidate's generates a complete redraw of button, 
5212         because it now invalidate a complete rect some other redraws operations
5213         are fixed. Fixes #80196.
5214         
5215         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
5216         Remove ToolBarInvalidateEntireButton as it is not used.
5217
5218 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5219         
5220         * Form.cs: Make sure that both OnClosing and OnFormClosing are
5221         called for 2.0 profile.
5222         * CloseReason.cs: Make class internal for 1.1.
5223
5224 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5225
5226         * ToolStripManager.cs: Implement FindToolStrip functionality.
5227         * ToolStrip.cs: Register and unregister with ToolStripManager.
5228
5229 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5230
5231         * Control.cs: This was messy.  2.0 moves much of ControlCollection
5232         to ArrangedElementCollection.  Implemented this with as few #if's as 
5233         possible (which is still too many).
5234
5235 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5236
5237         * Control.cs: Implement SizeFromClientSize() [2.0].
5238
5239 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
5240
5241         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
5242         use Theme.BorderSize to calculate area instead of static value 1, 
5243         by the way use new BorderStaticSize instead     Border3DSize when 
5244         border_static is true. Fixes #79537.
5245         
5246         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
5247         
5248         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
5249         it is not needed.
5250
5251 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5252
5253         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
5254
5255 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5256
5257         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
5258         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
5259         
5260         * Hwnd.cs: 
5261         - border_static field added, it will used to define when a control 
5262         theres 3D border but it must be static (thin).
5263         - In GetWindowRectangle use Theme.BorderSize to calculate area 
5264         instead of static value 1, by the way use new BorderStaticSize instead
5265         Border3DSize when border_static is true.
5266
5267         * XplatUIX11.cs, XplatUIOSX.cs: 
5268         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
5269         
5270         * Theme.cs: BorderStaticSize field added.
5271
5272 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5273
5274         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
5275
5276 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5277
5278         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
5279         mimic same behavior than win32 that set border only in CreateParams,
5280         it fix problems under CreateParams overrides. Fix #79442 and partial
5281         fix #79537.
5282         
5283         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
5284         of thi control you must call recreate handle. 
5285         
5286         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
5287         need to do anything as RecreateHangle will take care about borders.
5288
5289 2007-01-05  Mike Kestner  <mkestner@novell.com>
5290
5291         * ListView.cs: hack to eliminate Lost/Got focus notifications on
5292         cycles between the ItemControl and parent.  Fixes #80388.
5293
5294 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
5295
5296         * Control.cs: Lazy init layout engine. Do not directly use 
5297         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
5298
5299 2007-01-05  Chris Toshok  <toshok@ximian.com>
5300
5301         * DataGrid.cs: don't forceably rebind columns in SetDataSource
5302         unless our list manager has changed (i.e. unless we have reason to
5303         believe our columns have changed).  Fixes #80422.
5304         
5305         also, disable the call do BindColumns in
5306         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
5307         1.1 the event isn't raised in response to a column addition on a
5308         table.)
5309
5310 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5311
5312         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
5313         that inheritors can not call it if they choose.  Fixes bug #80456.
5314
5315 2007-01-05  Andreia Gaita  <avidigal@novell.com>
5316
5317         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
5318         doesn't blow up with a null exception on marshalling.
5319         
5320 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5321
5322         * Control.cs: Implement several 2.0 protected properties and methods.
5323         Ensure that all necessary events are being called when properties
5324         are set.
5325
5326 2007-01-05  Mike Kestner  <mkestner@novell.com>
5327
5328         * ListView.cs: implement PgUp/PgDn for Details view.  Also
5329         fixes First/LastVisibleIndex to use the item_control.ClientRect 
5330         instead of the parent control.  Fixes #80378.
5331
5332 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5333
5334         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
5335           determine whether to use yard-pound or not (bug #78399).
5336
5337 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5338
5339         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
5340         problems. So it is time to bring back the old popupbutton colors.
5341
5342 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5343
5344         * ColumnHeader.cs:
5345         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
5346         property by using the internal information of the
5347         columns order in ListView.
5348
5349 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
5350
5351         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
5352         Add 2.0 Tag properties.
5353
5354         * LinkArea.cs: Add 2.0 ToString method.
5355
5356 2007-01-03  Chris Toshok  <toshok@ximian.com>
5357
5358         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
5359         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
5360         when we're editing, which fixes #80047.
5361
5362 2007-01-03  Chris Toshok  <toshok@ximian.com>
5363
5364         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
5365         #80404.
5366
5367 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
5368
5369         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
5370         property and implementation.
5371
5372         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
5373         for MdiWindowListItem property.
5374
5375         * ToolStripDropDown.cs: Don't consider hidden menu items while
5376         laying out the menu.
5377
5378 2007-01-03  Andreia Gaita  <avidigal@novell.com>
5379
5380         * SendKeys.cs: window handle is not needed in win32, so just
5381         get the active window for X after parsing keys and don't use
5382         it when building the message; it is passed by parameter to the 
5383         Xplat method and used there to build the message instead. Also,
5384         wait for events to be processed on SendWait, as opposed to Send,
5385         which doesn't wait :) Playing with threads and Send() completely 
5386         hangs on ms.net, only SendWait() works.
5387         
5388         XplatUIX11.cs
5389         X11Display.cs: Check for valid window handle.
5390
5391 2007-01-03  Jackson Harper  <jackson@ximian.com>
5392
5393         * TextControl.cs: Need to prevent wrap calculations when replacing
5394         text (this was there before i removed it accidently).
5395         - Don't update the cursor during the positioning, just set it to
5396         selection_start at the end of the operaion.
5397
5398 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5399
5400         * Control.cs:
5401         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
5402         
5403 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5404
5405         * MonthCalendar.cs: Added Click and DoubleClick events again,
5406         but this time they only hide Control's Click and DoubleClick.
5407         
5408 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
5409
5410         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
5411         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
5412
5413 2007-01-02  Jackson Harper  <jackson@ximian.com>
5414
5415         * TextBoxBase.cs: We move the caret with the split now, so we
5416         don't need to explicitly move the caret after splitting.  This
5417         fixes the caret bumping down an extra line on Enter.
5418
5419 2007-01-02  Miguel de Icaza  <miguel@novell.com>
5420
5421         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
5422         2.72). 
5423
5424         * ScrollableControl.cs: Add Scroll event.
5425
5426 2007-01-02  Mike Kestner  <mkestner@novell.com>
5427
5428         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
5429         to fix all hdr height padding codepaths.  Fixes #80207.
5430
5431 2007-01-02  Chris Toshok  <toshok@ximian.com>
5432
5433         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
5434         setting it to the Control defaults anyway, and it being after the
5435         Dock set was screwing up layout.
5436         (set_Dock): don't short circuit out of setting base.Dock.  Also,
5437         no need to call UpdateStatusBar here, as it'll be re-layed out if
5438         it needs to be.
5439
5440 2007-01-02  Mike Kestner  <mkestner@novell.com>
5441
5442         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
5443         to header height for width == -1. Fixes the rest of #80207.
5444
5445 2007-01-02  Mike Kestner  <mkestner@novell.com>
5446
5447         * ListView.cs: rework the mouse event forwarding everaldo added
5448         to translate the coordinates to the parent control not
5449         raise the parent events until after we've done our work. Hover
5450         needs more work, in the case where HoverSelection is on, because
5451         the item control receives more than one MouseHover per Enter
5452         event, so we need to ensure only the "first" hover gets forwarded.
5453         Opening a minor bug for that.
5454
5455 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
5456
5457         * CheckedListBox.cs: Fixed SelectionMode to match MS.
5458         * ListControl.cs: Implemented AllowSelection property. Removed extra
5459         tabs.
5460         * ListBox.cs: Implemented AllowSelection property.
5461
5462 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5463
5464         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
5465         SelectedItem, it prevent for errors when you must disable item
5466         before perform click. Fixes #80409.
5467
5468 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5469
5470         * MenuAPI.cs: Prevent second level and beyond submenus to close
5471         until first level when move out side of popup.
5472         
5473 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5474
5475         * MenuAPI.cs:
5476         - Down submenu positin in three pixels.
5477         - Closes sub menu when mouse leaves from menu. Fixes #80402.
5478
5479 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5480
5481         * ThemeWin32Classic.cs:
5482         - Fix popup menu size adding one pixel on the top.
5483         - Down menu item border from two to one to mimic Win32.
5484         - Some source identation fixes. 
5485
5486 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5487
5488         * ThemeWin32Classic.cs: Use float numbers to calculate size and
5489         position of menu arrows, it fix wrong arrow size.
5490
5491 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5492
5493         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
5494         instead of line, it simplify draw operation and fix it using 3D
5495         borders to mimic Win32.
5496
5497 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
5498
5499         * StatusStrip.cs: Add implementation of the sizing grip.
5500
5501         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
5502         StatusStrip rendering.
5503
5504 2006-12-31  Chris Toshok  <toshok@ximian.com>
5505
5506         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
5507         override the layout style (anchor/dock) of the control.  assign to
5508         Dock instead.  Fixes bug #80416.
5509
5510         * ToolStrip.cs: same.
5511
5512 2006-12-31  Andreia Gaita  <avidigal@novell.com>
5513
5514         * ContainerControl.cs: Use ContainerSelected flag to check if 
5515         a Container is directly selected, or if Select is called on a 
5516         non-container. If a container is directly selected, focus events 
5517         should not be raised.
5518         Apply #80411 patch to throw exception on set_ActiveControl if 
5519         control is the same as the current one.
5520         
5521         * Control.cs: Use ContainerSelected flag (see above).
5522         Add invalidation check to raise event but not invalidate if 
5523         dimensions are 0.       
5524         Apply #80411 patch.
5525         
5526
5527 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
5528
5529         * MenuAPI.cs: After click, dont close popup menu when menu is
5530         ContextMenu. Fixes #80399.
5531
5532 2006-12-30  Chris Toshok  <toshok@ximian.com>
5533
5534         * ContainerControl.cs: make sure we throw the exception if the
5535         container control doesn't contain the control we're setting
5536         ActiveControl to.
5537
5538 2006-12-30  Chris Toshok  <toshok@ximian.com>
5539
5540         * Control.cs (SetTopLevel): fix the exception raised by
5541         SetTopLevel for child controls.
5542         (set_Anchor): call UpdateDistances when setting the anchor type.
5543         This fixes bug #80336.
5544
5545 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5546
5547         * Theme.cs: For now, revert back to 8pt font.
5548
5549 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
5550
5551         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
5552         Fixes #80395.
5553
5554 2006-12-29  Chris Toshok  <toshok@ximian.com>
5555
5556         * Control.cs: reorder the code in OnResize to give the same event
5557         ordering as MS.
5558
5559 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5560
5561         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
5562         TileHorizontally and TileVertically.
5563         
5564 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
5565
5566         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
5567         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
5568         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
5569         Corrected copyright and email adress.
5570
5571 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5572
5573         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
5574         of Exception in FullPath property if no TreeView is associated with
5575         the TreeNode.
5576
5577 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5578
5579         * Theme.cs: Marked default_font as private, and initialize it in ctor
5580         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
5581         on 2.0 profile.
5582         * ThemeGtk.cs: Removed default_font intialization.
5583         * ThemeWin32Classic.cs: Removed default_font initialization.
5584
5585 2006-12-28  Chris Toshok  <toshok@ximian.com>
5586
5587         * Control.cs: fix a couple of place where we were creating handles
5588         more aggressively than we should be.  Fixes ControlRefresh unit
5589         tests.
5590
5591 2006-12-28  Chris Toshok  <toshok@ximian.com>
5592
5593         * Control.cs: contrary to what the comment said, Control.Dock does
5594         not supercede Control.Anchor - the last one you assign to decides
5595         the layout behavior.  so we need to keep track of which was the
5596         last set.  Also, fix some of the affected property arguments in
5597         PerformLayout calls, and remove an redundant parent.PerformLayout
5598         call in OnResized.
5599
5600         Add a VisibleInternal property, which returns is_visible.  We
5601         can/should get rid of all the usage of this field elsewhere.
5602
5603 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5604         
5605         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
5606         control style, not DoubleBuffer. Added UseDoubleBuffering property
5607         that indicates whether doublebuffering is enabled and supported.
5608         (comment from and code based on Gert Driesen's patch in #80324).
5609         Fixes #80324.
5610
5611 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5612         
5613         * Control.cs: Fixed a NRE.
5614
5615 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5616
5617         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
5618         for 2.0.
5619
5620 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5621
5622         * Control.cs: Rewrote double buffering, now a seperate
5623         class handles all the buffering, no Graphics is disposed of
5624         until the painting is finished (earlier implementation 
5625         would crash if the control was resized in the OnPaint, 
5626         since it would cause the double buffer to be recreated
5627         and the old one disposed), a separate Graphics is 
5628         created for every paint (MS behaviour and anyways the state
5629         of the Graphics would have to be saved and restored otherwise)
5630         
5631         * XplatUIDriver.cs: 
5632         * XplatUIX11.cs:
5633         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
5634         so that we can get the graphics for the back buffer without
5635         having to create a new one and remove the offscreen_dc parameter
5636         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
5637         
5638 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5639
5640         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
5641         Also make virtual all the key-related methods.
5642
5643         * ListViewItem.cs: Make virtual the key related methods for
5644         ListViewSubItemCollection.
5645
5646 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5647
5648         * ListView.cs:
5649         * ListViewItem.cs:
5650         * ThemeWin32Classic.cs:
5651         * Theme.cs: Initial support for Tile view in ListView,
5652         as well as the implementation of the required bits for it (Item
5653         and Subitem).
5654
5655 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5656
5657         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
5658         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
5659         Provide useful exception messages.
5660
5661 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5662
5663         * TrackBar.cs: Remove a warning.
5664         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
5665         when used by DateTimePicker, fixes #80287. This also requires that 
5666         MonthCalendar implements it's own drawing for the yearly updown control,
5667         otherwise the Capture tracking would be too complicated. Removed the Click 
5668         and DoubleClick events (according to comments they were hiding the base class
5669         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
5670         raise these events, not that they cannot be raised. It is possible to raise 
5671         them by calling OnClick and OnDoubleClick). Added two internal fields in 
5672         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
5673         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
5674         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
5675         event, no longer needed.
5676         
5677 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5678
5679         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
5680         true if new value differs from current value.
5681
5682 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5683
5684         * Control.cs: ControlCollection.Count must be public. Fixed build of
5685         unit tests.
5686
5687 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5688
5689         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
5690
5691 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5692
5693         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
5694
5695 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5696
5697         * Control.cs: Invalidates control including when Width and Height is 
5698         equal zero or is not visible, only Paint event must be care about 
5699         this. Fixes #79913.
5700
5701 2006-12-26  Chris Toshok  <toshok@ximian.com>
5702
5703         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
5704         more corcompare work.
5705
5706         * DataGridView.cs: fix compiler warning.
5707
5708         * ColumnHeader.cs: some corcompare work, and also take the
5709         opportunity to make the internal fields private.
5710
5711         * ListView.cs: fix the fallout from the above field change.
5712
5713 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5714
5715         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
5716         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
5717         ToolStripTextBox.cs: Fixes to events and corcompare.
5718
5719 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5720
5721         * ListView.cs: Call owner.OnMousexx event to propagate events from
5722         item to ListView. Fixes #80367.
5723
5724 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5725
5726         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
5727         if value is less than one. ItemHeight should not be set to a value
5728         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
5729         Removed extra tabs.
5730
5731 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5732
5733         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
5734         * ToolStripStatusLabel.cs: Add Spring for Moma.
5735
5736 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5737
5738         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
5739         Fixed code formatting. Removed debug code.
5740         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
5741
5742 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5743
5744         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
5745         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
5746         ArgumentOutOfRangeException if ColumnCount is negative. In 
5747         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
5748         less than 4 or higher than 32768.
5749         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
5750         Fixed FormatProvider to return CurrentCulture unless explicitly set.
5751         Fixed IsFormatProviderDefault to return true if FormatProvider has
5752         not been explicitly set.
5753
5754 2006-12-25  Chris Toshok  <toshok@ximian.com>
5755
5756         * Application.cs: add a couple of 2.0 events.
5757
5758 2006-12-25  Chris Toshok  <toshok@ximian.com>
5759
5760         * Control.cs: fix compiler warning.
5761
5762         * AxHost.cs: corcompare fixes.
5763
5764         * ApplicationContext.cs: corcompare fixes.
5765
5766 2006-12-25  Chris Toshok  <toshok@ximian.com>
5767
5768         * Control.cs: only update dist_right/dist_bottom if the
5769         width/height is > 0.  this fixes anchored controls being resized
5770         smaller until they disappear and then resized larger again.
5771
5772 2006-12-25  Chris Toshok  <toshok@ximian.com>
5773
5774         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
5775         since they're nothing more than X/Left and Y/Top, respectively.
5776
5777         Also, move back to a per-control Bitmap/Graphics for
5778         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
5779         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
5780         Height.
5781
5782 2006-12-25  Miguel de Icaza  <miguel@novell.com>
5783
5784         * MessageBox.cs: Implemented overload that takes a new "bool
5785         displayHelpButton" by adding a new internal field "show_help".
5786         When clicked this will raise the HelpRequested on the owner or the
5787         main form. 
5788
5789         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
5790         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
5791
5792         * ListView.cs: Add support ColumnWidthChanged and
5793         ColumnWidthChanging. 
5794
5795         Add support for ColumnReordered event.
5796         (ReorderColumn): Add NET_2_0 specific support for cancelling the
5797         reorder.
5798
5799         Very nice codebase!
5800
5801         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
5802
5803         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
5804
5805 2006-12-24  Chris Toshok  <toshok@ximian.com>
5806
5807         * GridTablesFactory.cs: 2.0 corcompare work.
5808
5809         * ToolStripContainer.cs: add "override" to
5810         ContextMenuStripChanged, and remove the local event object.
5811
5812         * ToolStripDropDown.cs: same with a couple properties.
5813
5814         * ToolStripPanel.cs: same with AutoSizeChanged event.
5815
5816         * TextBoxBase.cs: add "override" to AutoSizeChanged.
5817
5818         * Form.cs: add the remaining 2.0 events, and do some corcompare
5819         attribute work.
5820
5821         * DateTimePicker.cs: add "new" to padding.
5822
5823         * ButtonBase.cs: use Control's use_compatible_text_rendering.
5824
5825         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
5826
5827         * DataGridView.cs: PaddingChanged is overridden.
5828
5829 2006-12-24  Chris Toshok  <toshok@ximian.com>
5830
5831         * Control.cs: corecompare work here too.
5832
5833         * DataGridViewElement.cs, DataGridView.cs,
5834         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
5835         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
5836         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
5837         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
5838         work.
5839
5840 2006-12-24  Miguel de Icaza  <miguel@novell.com>
5841
5842         * Control.cs: Switched the error message on the console for a
5843         todo.  A review of the code will have to cope with this anyways
5844         (since its a large feature, it is in our radar) and it was
5845         producing too much output when running PDN.
5846
5847         * ToolStripComboBox.cs: Set the text when the SelectedIndex
5848         changes.  Applications depend on this (PDN 2.72)
5849
5850 2006-12-23  Chris Toshok  <toshok@ximian.com>
5851
5852         * TableLayoutSettings.cs: finish up the corcompare work for this
5853         class.
5854
5855 2006-12-23  Chris Toshok  <toshok@ximian.com>
5856
5857         * Control.cs: make SetImplicitBounds internal, do some futzing
5858         with LayoutEngine so that it's available in 1.1, and remove the
5859         entire duplicated code mess from PerformLayout.  Use
5860         System.Windows.Forms.Layout.DefaultLayout instead.
5861
5862         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
5863
5864 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5865
5866         * Form.cs: Add MainMenuStrip property.
5867
5868 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5869
5870         * Control.cs: Add ContextMenuStrip property and implementation.
5871         Fix ContextMenu implementation to show menu centered on control when
5872         activated using the keyboard instead of showing at screen (0,0).
5873
5874         * ToolStripDropDown.cs: Fix needed overload of Show ().
5875
5876 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5877
5878         * Menu.cs: Name property added for 2.0 profile.
5879         
5880 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5881
5882         * Menu.cs: Update information about FindMenuItem, method to be
5883         implemented soon.
5884
5885 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5886
5887         * MenuAPI.cs: When deselect items deselect also selected subitems.
5888         
5889 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5890
5891         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
5892         FindSubItemByCoord to found itens that is not active, also an
5893         cheking added to FindSubItemByCoord to search for items only 
5894         in visible popup windows. Fixes #80274.
5895
5896 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
5897
5898         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
5899         internal property, it be care about change ExStyle. 
5900
5901 2006-12-22  Andreia Gaita  <avidigal@novell.com>
5902
5903         * ContainerControl.cs: set activeControl for parent forms up the 
5904         tree when the new activecontrol is a container.
5905         When validating the active control, if it is a container, also
5906         raise up the validation for it's active control. Fixes #80280
5907         
5908         * Control.cs: Add internal property flag and check to prevent
5909         Focus events from getting raised when Select() is called for
5910         a ContainerControl. There are still too many focus events being
5911         raised at the moment though.
5912         Cleaned up the code a bit.
5913
5914 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5915
5916         * Control.cs: Added all missing 2.0 events.and
5917         fixed a couple of corcompare issues.
5918         * TrackBar.cs: Implemented missing 2.0 bits.
5919         * MonthCalendar.cs, 
5920         * DateTimePicker.cs, 
5921         * MdiClient.cs: Fixed some corcompare issues.
5922
5923 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5924
5925         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
5926         SplitterPanel.cs: corecompare work.
5927
5928 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5929
5930         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
5931         Clean up warnings for BackgroundImageChanged and PaddingChanged
5932         events now that they are implemented in Control.cs.
5933
5934 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5935
5936         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
5937         
5938         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
5939         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
5940         of TableLayoutPanel and supporting cast.
5941
5942 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5943
5944         * XplatUIWin32.cs: 
5945         - GrabWindow now confines the mouse pointer to the confine window.
5946         - Added Win32ClipCursor and Win32GetClipCursor.
5947
5948         * Control.cs: 
5949         - Added CaptureWithConfine to be able to capture and confine 
5950         mouse pointer.
5951         
5952         * InternalWindowManager.cs: 
5953         - Call CaptureWithConfine instead of Capture if we're an
5954         MdiChild (fixes #79982).
5955
5956 2006-12-21  Chris Toshok  <toshok@ximian.com>
5957
5958         * DataGrid.cs: guard against the initial state of selection, where
5959         selection_start == -1.  make sure we only select from index >= 0.
5960         Fixes bug #80291.
5961
5962 2006-12-21  Chris Toshok  <toshok@ximian.com>
5963
5964         * Control.cs: we don't need to be so draconian with
5965         UpdateDistances, and we thusly don't need to call it before
5966         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
5967
5968 2006-12-21  Daniel Nauck  <dna@mono-project.de>
5969
5970         * ComboBox.cs,
5971         TextBox.cs: Implemented AutoComplete properties.
5972
5973 2006-12-20  Chris Toshok  <toshok@ximian.com>
5974
5975         * DataGridView*.cs: some corecompare work.
5976
5977 2006-12-20  Jackson Harper  <jackson@ximian.com>
5978
5979         * XplatUIX11.cs: We need to hide the caret when deleting it,
5980         otherwise you get carets left lying around everywhere.
5981         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
5982         prevents getting some weird half drawn caret tracers when
5983         scrolling.
5984         * TextControl.cs: Attempt to reduce the number of times we need to
5985         recreate the caret.
5986
5987 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
5988
5989         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
5990
5991 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5992
5993         * DateTimePicker.cs:
5994         - Implemented missing 2.0 bits.
5995         - Changed some default values to match MS.
5996         
5997 2006-12-20  Jackson Harper  <jackson@ximian.com>
5998
5999         * TextBoxBase.cs: When changing the font across the document we
6000         can't recalculate after changing each line, since that will cahnge
6001         the line count.
6002         - PreferredHeight is a little different than i thought.
6003         - When backspacing, move the caret before we do the actual char
6004         delete, because when that delete crosses a wrap boundary the
6005         positional information will change.
6006
6007 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6008
6009         * Control.cs: Added some missing 2.0 bits: 
6010         BackgroundImageLayout, BackgroundImageLayoutChanged, 
6011         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
6012         add IBindableComponent and IDropTarget implementation.
6013         
6014         * MonthCalendar.cs: 
6015         - Added all missing 2.0 features:
6016         BackgroundImageLayout, RightToLeftLayout, 
6017         OnHandleDestroyed, RightToLeftLayoutChanged, 
6018         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
6019         PaddingChanged.
6020         - Rewrote all the BoldDate code, it was completely broken.
6021         - Fixed all the tests (the tests can now be re-enabled, the
6022         problems were not with the tests, but with the control, it was
6023         mostly broken).
6024         
6025         * DateTimePicker.cs: Changed the location where the 
6026         MonthCalendar is shown.
6027         
6028 2006-12-19  Chris Toshok  <toshok@ximian.com>
6029
6030         * DataGridView.cs: add IDropTarget implementation.
6031
6032         * ToolStripPanel.cs: add IDropTarget implementation.
6033
6034 2006-12-19  Jackson Harper  <jackson@ximian.com>
6035
6036         * TextControl.cs: soft now means something different than what it
6037         used to mean, we want to move the caret regardless of whether or
6038         not this break was soft (would we really have wanted the caret
6039         to not move with the break in the old context?)
6040         * TreeView.cs: Make sure we factor in the vert scrollbar when
6041         calculating the horizontal scrollbar's maximum.
6042
6043 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6044
6045         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
6046         check for keywords in alternate casing, close bug #80049.
6047
6048 2006-12-19  Chris Toshok  <toshok@ximian.com>
6049
6050         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
6051         methods (which all do nothing).
6052
6053         * IDropTarget.cs: add the 4 missing methods.
6054
6055 2006-12-19  Chris Toshok  <toshok@ximian.com>
6056
6057         * TableLayoutRowStyleCollection.cs: corcompare work.
6058         
6059         * TableLayoutSettings.cs: same.
6060
6061         * TableLayoutStyle.cs: same.
6062
6063         * TableLayoutColumnStyleCollection.cs: same.
6064
6065 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
6066
6067         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
6068         TableLayoutPanel I've had in my local tree for way too long.
6069
6070 2006-12-19  Miguel de Icaza  <miguel@novell.com>
6071
6072         * TableLayoutSettings.cs: Finish the public API (still needs all
6073         the logic to update on changes). 
6074
6075         * TableLayoutPanelCellPosition.cs: new file.
6076         
6077         * TableLayoutRowStyleCollection.cs,
6078         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
6079         TableLayoutSettings.cs: Track the final 2.0 table api.
6080
6081 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6082
6083         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
6084         and Image List 2.0 members for ColummnHeader.
6085         * ListView.cs: Add key-related 2.0 methods for
6086         ColumnHeaderCollection.
6087
6088 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6089
6090         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
6091         ArgumentNullException if items argument is null. Ignore null item in
6092         arrays. Removed extra tabs.
6093
6094 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6095
6096         * MonthCalendar.cs: Fixed InvalidCastException.
6097
6098 2006-12-19  Jackson Harper  <jackson@ximian.com>
6099
6100         * TextControl.cs: Don't increment the position here.
6101         - When calculating char positions only add in the line break size
6102         for hard line breaks.
6103
6104 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6105
6106         * SendKeys.cs: Changed some things to match ms.net behaviour
6107         when parsing shifted capital letters.
6108         
6109         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
6110         Add window handle as parameter to SendInput. X11 needs the 
6111         window handle, and the handle being passed      to it in the keys 
6112         queue is the active control handle (which windows needs), not 
6113         the window handle.
6114         
6115         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
6116         to support SendKeys on X.       
6117         
6118         * X11Keyboard: Implement helper method to lookup a linux keycode
6119         given the virtual keycode. Added table of keycode-2-virtualkey
6120         values to support this.
6121
6122 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6123
6124         * ListView.cs: Add support for SelectedIndexCollection
6125         and SelectedItemCollection 2.0 methods. Implement support
6126         for ImageKey too.
6127         * ListViewItem.cs: Add support for ListViewSubItemCollection
6128         2.0 methods. Also, fix an incorrect behavior of AddRange method
6129         (it shouldn't call Clear).
6130         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
6131
6132 2006-12-19  Jackson Harper  <jackson@ximian.com>
6133
6134         * RichTextBox.cs: 
6135         * TextBoxBase.cs: New args for FormatText
6136         * TextControl.cs: Rewrote the main drawing method, this version
6137         feels a little easier to understand and debug to me.  Hopefully it
6138         does to others also
6139         - Fix FormatText to OR in the new formating values.  Added
6140         FormatSpecified param, basically this works in the same way as
6141         BoundsSpecified in Control.
6142         - Set the caret properties when the caret is positioned.
6143         - When wrapping text make sure that we calculate the width of the
6144         last character
6145         - when calculating alignments we might have wrapped down to the
6146         next line, so don't search for an individual tag, search for the
6147         end of the line
6148         - We need to invalidate the selection area when we replace the
6149         selection.
6150         
6151 2006-12-19  Daniel Nauck  <dna@mono-project.de>
6152
6153         * Application.cs: add Restart () 2.0 support
6154
6155 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6156
6157         * MenuItem.cs: Invalidate menu item rectangle after change Enable
6158         property. Fixes #80268.
6159         
6160 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6161
6162         * MenuAPI.cs: Dont trigger select event when closes top menu
6163         item. Fixes #80270.
6164
6165 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6166
6167         * MenuAPI.cs: When you click on menuitem only trigger onselect
6168         event for top menu itens. Fixes #80271.
6169         
6170 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6171
6172         * MdiWindowManager.cs: Make IconicBounds depend on
6173         the bottom of MdiClient, not the top (fixes #80267)
6174         
6175 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6176
6177         * MdiClient.cs: Added missing 2.0 attribute
6178
6179 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6180
6181         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
6182         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
6183
6184 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6185
6186         * MenuAPI.cs: Fix click when menuitem is not popup,
6187         this regression was caused by last commit (#80272).
6188
6189 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
6190
6191         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
6192         fire click event or close menu. Fixes #80272.
6193
6194 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6195
6196         * ListViewHitTestInfo.cs: add
6197
6198 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6199
6200         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
6201         * FlatButtonAppearance.cs: add
6202         * DockingAttribute.cs: add
6203
6204 2006-12-17  Chris Toshok  <toshok@ximian.com>
6205
6206         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
6207         and rebind our columns when it does - this way, if you make
6208         changes to the DataTable (or set the Table attribute on a DataView
6209         after setting it as the DataGrid's DataSource, the changes are
6210         made visible.)  Fixes bug #80107.
6211
6212 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6213
6214         * ListViewGroup.cs: add internal Location property for layouting.
6215         * Theme.cs: add abstract ListViewGroupHeight function.
6216         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
6217
6218 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6219
6220         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
6221         Added reset of selected index to 0 when adding first tab page.
6222         Fixes #80264
6223         
6224         * NumericUpDown.cs: Fix NET_2_0 check
6225
6226 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6227
6228         * ListViewGroup.cs: fixed DefaultValueAttribute value
6229
6230 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6231
6232         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
6233
6234 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6235
6236         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
6237         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
6238         ScrollableControl.cs: Add a handful of methods that are
6239         overwritten in 2.0 
6240
6241 2006-12-15  Chris Toshok  <toshok@ximian.com>
6242
6243         * XplatUIWin32.cs: initial implementation of the Reversible
6244         drawing functions.  there are some problems.  DrawReversibleFrame
6245         doesn't seem to work at all for Dashed FrameStyle, and in the
6246         Thick case there are drawing errors at the corners (we probably
6247         need to bind Rectangle instead of doing moveto/lineto's.)
6248
6249 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6250         
6251         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
6252         to send blocks of key messages. Send accumulates keys to send with Flush, 
6253         while SendWait sends all keys immediately.
6254                 
6255         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
6256         XplatUIX11.cs,  XplatUIX11-new.cs:
6257         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
6258         to Win32 SendInput.
6259         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
6260         
6261         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
6262         testing for ms.net on this class is very tricky, as the tests run too fast 
6263         to allow the hook to release, essentially freezing the keyboard and the 
6264         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
6265         category :p
6266
6267 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6268
6269         * Padding.cs: fixed serialization compability to MS ("_var" field names),
6270                         added missing attributes.
6271  
6272 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6273
6274         * ListViewGroup.cs: Added missing attributes.
6275         * ListViewGroupCollection.cs: Added missing attributes.
6276
6277 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6278
6279         * ListViewItem.cs: fixed ListViewSubItem text property.
6280
6281 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6282         
6283         * Control.cs: Added missing 2.0 attributes
6284         
6285 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6286         
6287         * MdiClient.cs: Added missing 2.0 attribute.
6288         * MonthCalendar.cs: Added some missing 2.0 attributes 
6289         and properties.
6290         
6291 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6292
6293         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
6294
6295 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
6296
6297         * MainMenu.cs: Add the new 2.0 constructor to help out people
6298         using the MainMenu in VS2005.
6299
6300 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6301         
6302         * MdiChildContext.cs: Removed it, no longer used.
6303         * MdiClient.cs: Added missing 2.0 attributes.
6304         
6305 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6306         
6307         * InternalWindowManager.cs: Fix a NullRef with previous 
6308         changes for toolwindows.
6309         
6310 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6311
6312         * Control.cs: 
6313         - Added AfterTopMostControl to allow for certain controls 
6314         to always stay on top when normal controls are brought to 
6315         front.
6316         
6317         * XplatUIWin32.cs: 
6318         - (DrawInversibleRectangle): Get window rectangle from Win32 
6319         in stead of from control, since Win32 doesn't calculate
6320         screen coords correctly from control's Location if it 
6321         have docked siblings.
6322         
6323         * MdiWindowManager.cs:
6324         - Correct the control menu popup location when clicked on
6325         the maximized form icon. (fixes #80223.1)
6326         - Don't show moving rectangle if mouse hasn't moved from
6327         the original clicked point.
6328         - Removed FormGotFocus handler (not used).
6329         - Calculate the control buttons location from the main
6330         window's size and not client size (fixes #79770).
6331         - Form is now closed when the form icon is double-clicked
6332         (fixes #79775). 
6333         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
6334         
6335         * InternalWindowManager.cs:
6336         - Moved some MDI-only methods to MdiWindowManager.
6337         - Removed unused properties and methods.
6338         - Unified method naming for methods handling wm messages.
6339         - Moved all message handling to seperate methods for
6340         each message.
6341         
6342         * ThemeWin32Classic.cs:
6343         - DrawManagedWindowDecorations now draws the title bar 
6344         with a gradient brush.
6345         - Add a CPDrawButtonInternal that allows us to specify
6346         light, normal and dark colors for the buttons (control 
6347         buttons for MDI children were drawn with the same light
6348         color as the background, therefore loosing the 3D effect).
6349         
6350         * SizeGrip.cs:
6351         - Add a CapturedControl property that is used to 
6352         determine the control to resize (defaults to parent). 
6353         Needed for MdiClient, since its SizeGrip's parent is
6354         MdiClient, but the control to resize is the main form.
6355         
6356         * MdiClient.cs:
6357         - Set SizeGrip's CapturedControl to the main form in order
6358         to resize the main form and not the MdiClient.
6359         - Override AfterTopMostControl to leave the scrollbars 
6360         always on top.
6361
6362 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6363
6364         * ListView.cs: fixed ListViewItemCollection AddRange and
6365                         implemented ListViewItemCollection AddRange 2.0 support.
6366
6367 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6368
6369         * ListViewGroup.cs: Add.
6370         * ListViewGroupCollection.cs: Add
6371         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
6372         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
6373                                 stub for ImageKey 2.0 support.
6374
6375 2006-12-14  Mike Kestner  <mkestner@novell.com>
6376
6377         * ListView.cs: add text padding to the autocalculation for columns
6378         of width -2.  Fixes #80207.
6379  
6380 2006-12-14  Mike Kestner  <mkestner@novell.com>
6381
6382         * ListView.cs: add some index guarding for partial row navigation 
6383         logic.  Fixes #80250.
6384
6385 2006-12-14  Mike Kestner  <mkestner@novell.com>
6386
6387         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
6388         are added or inserted to the collection.  Fixes #81099.
6389
6390 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
6391
6392         * MenuAPI.cs: Closes menu when right click out side of popup
6393         it fix problem in ContextMenu and MainMenu. Fixes #80252.
6394
6395 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6396
6397         * ListViewItem.cs: Fix dumb error.
6398
6399         * ListView.cs: Add Find and ContainsKey methods in 
6400         ListViewItemCollection, and also return true for IsReadOnly
6401         and IsFixedSize (changes for 2.0). 
6402
6403 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
6404
6405         * Control.cs: Allow Region to be set to null.
6406
6407 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6408
6409         * MdiWindowManager.cs: Remove unused (commented out) code.
6410         * Form.cs: When the MdiChild is maximized, the form needs 
6411         WM_NCMOUSELEAVE, so request it.
6412         * InternalWindowManager.cs: 
6413         - Added tooltips to control buttons.
6414         - Removed duplicated control button handling code.
6415         - Removed unused (commented out) code.
6416         
6417 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
6418
6419         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
6420         was used because we must set cursor without trigger ChangeCursor event
6421         and without change Cursor control property. Fixes #79963.
6422
6423 2006-12-12  Andreia Gaita  <avidigal@novell.com>
6424         
6425         * Control.cs: Check if Region setter value is null, and ignore
6426
6427 2006-12-12  Jackson Harper  <jackson@ximian.com>
6428
6429         * TextControl.cs: We were almost always drawing one more line then
6430         needed, since the GetLineByPixel will return the last line found
6431         at that pixel. In most cases though, we were invalidating up to
6432         the junction between two lines.
6433         - Improve debug code.
6434
6435 2006-12-12  Chris Toshok  <toshok@ximian.com>
6436
6437         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
6438         and FillReversibleRectangle.
6439
6440         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
6441         and FillReversibleRectangle.
6442
6443         * XplatUIWin32.cs: add stubs which do nothing for
6444         DrawReversibleFrame, DrawReversibleLine, and
6445         FillReversibleRectangle.
6446
6447         * XplatUIOSX.cs: add stubs which raise NIE for
6448         DrawReversibleFrame, DrawReversibleLine, and
6449         FillReversibleRectangle.
6450
6451         * XplatUIX11.cs: add working implementation for
6452         DrawReversibleFrame, DrawReversibleLine, and
6453         FillReversibleRectangle.
6454         
6455         * ControlPaint.cs: implement DrawReversibleFrame,
6456         DrawReversibleLine, and FillReversibleRectangle, by calling into
6457         the appropriate XplatUI method.
6458
6459 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6460
6461         * Form.cs: Make MdiClient have the focus even if it's
6462         not selectable, since it should receive WM_KEY* and WM_MOUSE 
6463         messages. Fixes #79907.
6464         
6465 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6466
6467         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
6468         queried after the window is created.
6469         
6470         * XplatUIX11.cs: Added SendParentNotify to implement 
6471         WM_PARENTNOTIFY logic. Fixes #79965.
6472         
6473         * Control.cs: Added MakeParam.
6474         
6475 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6476
6477         * MdiClient.cs: Resume Layout before setting window
6478         states (fixes #80201).
6479
6480 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6481
6482         * MenuAPI.cs: Deselect a menu item after performing
6483         the click (fixes #80197).
6484
6485 2006-12-11  Jackson Harper  <jackson@ximian.com>
6486
6487         * TextBoxBase.cs: We need to cap this value, since Maximum -
6488         ViewPortHeight can be less than zero.
6489         - Only do selection with the left mouse button.
6490         * TextBox.cs: Don't tell the world that we have a context menu.
6491         * Control.cs: New method so that we can control whether or not the
6492         context menu is visible outside MWF.
6493
6494 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6495
6496         * ToolBarButton.cs: Fix text positon. 
6497
6498 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6499
6500         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
6501
6502         * Control.cs (DoubleBuffered): Add implementation.
6503
6504         * Application.cs (OpenForms): Add.
6505
6506 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6507
6508         * Form.cs: Use opacity instead of Opactiy to determine if we need
6509         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
6510
6511 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6512
6513         * Control.cs: Fix NRE if Control.Site was set to null.
6514
6515 2006-12-11  Chris Toshok  <toshok@ximian.com>
6516
6517         * Control.cs: ControlCollection.Remove should return if the arg is
6518         null, and ControlCollection.SetChildIndex should raise a ANE.
6519
6520 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
6521
6522         * Control.cs: Verify value set for Dock property. Code formatting
6523         updates.
6524
6525 2006-12-11  Jackson Harper  <jackson@ximian.com>
6526
6527         * TextControl.cs: Draw the caret and the selection when a flag is
6528         set on the owner.
6529         * TextBoxBase.cs: We want to draw the caret and the selection for
6530         TextBox but not for TextBoxBase.
6531         - If the window is resized and scrolling is no longer needed (the
6532         whole doc is visible) set the scroll position to zero.
6533         - The default SelectWord (the one TextBox uses) should move the
6534         caret to the end of the word.
6535         - SelectAll moves the caret to the end of the selection.
6536         * TextBox.cs: We don't selectall on focus, we just do it when the
6537         control is created.
6538         
6539 2006-12-11  Mike Kestner  <mkestner@novell.com>
6540
6541         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
6542
6543 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6544
6545         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
6546         2.0 support.
6547         * ListViewItem.cs: Add Name 2.0 property.
6548
6549 2006-12-11  Andreia Gaita  <avidigal@novell.com>
6550
6551         * TabControl.cs: Set visibility on selected or default tab 
6552         when tabcontrol handle is created, so that it's contents
6553         actually show up (duh). Fixes #80193
6554         Don't redraw the control if there is no handle created, as
6555         the selected index might be completely invalid. Added some tests
6556         to check for this.
6557
6558 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6559
6560         * ToolBar.cs: Uses maximun width and height of all buttons as 
6561         button rectangle when ButtonSize specified, it looks strange but
6562         is what happens in Win32. Fixes #80189.
6563
6564 2006-12-11  Jackson Harper  <jackson@ximian.com>
6565
6566         * TextControl.cs: Need to track undo levels ourself, since
6567         compound actions will mess them up.
6568
6569 2006-12-10  Andreia Gaita  <avidigal@novell.com>
6570
6571         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
6572         SelectedIndex value is changed (even if it's not valid).
6573         Reset SelectedIndex to 0 when the handle is created and if
6574         the current index is invalid.
6575         Fixes SelectdeIndex unit tests and #80128
6576
6577 2006-12-08  Chris Toshok  <toshok@ximian.com>
6578
6579         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
6580         calls EndEdit, it needs to be called before we set current_cell to
6581         its new value.  Otherwise, we end up committing the value in the
6582         textbox to the new cell as well.  Fixes bug #80160.
6583
6584 2006-12-08  Chris Toshok  <toshok@ximian.com>
6585
6586         * Form.cs (set_CancelButton): if the button's DialogResult is
6587         None, set it to Cancel.  Fixes bug 80180.
6588
6589 2006-12-08  Jackson Harper  <jackson@ximian.com>
6590
6591         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
6592         to watch ourselves when setting the canvas size and setting the
6593         scrollbar values.
6594
6595 2006-12-08  Chris Toshok  <toshok@ximian.com>
6596
6597         * DataGrid.cs: comment out the two MakeTransparent calls for the
6598         time being so people using trunk (and not 1.2.2) on windows can
6599         actually use the datagrid.  This deals with bug #80151.
6600
6601 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6602
6603         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
6604         Graphics.DrawImage (image, int, int, int, int) overload instead
6605         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
6606         the dpi difference and was blurring images it drew.
6607         [Fixes bug #79960]
6608
6609 2006-12-08  Chris Toshok  <toshok@ximian.com>
6610
6611         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
6612         rowcnt is 0 (such as with an empty datasource), and make sure we
6613         initialize not_usedarea.Y to cells.Y, so we don't draw over the
6614         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
6615
6616 2006-12-08  Chris Toshok  <toshok@ximian.com>
6617
6618         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
6619         grid.
6620
6621 2006-12-08  Chris Toshok  <toshok@ximian.com>
6622
6623         [ Fixes bug #80167 ]
6624         
6625         * ThemeWin32Classic.cs: don't draw the image if the button's flat
6626         style is FlatStyle.System.
6627
6628         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
6629         ButtonBase.flat_style private, and switch uses of it to the public
6630         property.
6631         
6632 2006-12-08  Chris Toshok  <toshok@ximian.com>
6633
6634         [ Fixes bug #80121 ]
6635         
6636         * ThemeWin32Classic.cs: center the caption text in the datagrid
6637         when we draw it.
6638
6639         * DataGrid.cs: lessen the amount we add to the caption height from
6640         6 to 2.  6 was making it huge.
6641
6642 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6643
6644         * UpDownBase: Handle MouseWheel call directly instead of capturing
6645         the inner textbox's OnMouseWheel. Fixes #80166
6646
6647 2006-12-08  Jackson Harper  <jackson@ximian.com>
6648
6649         * TextControl.cs: We need to invalidate the textbox when we empty
6650         it (how had this not been discovered before?)
6651
6652 2006-12-08  Jackson Harper  <jackson@ximian.com>
6653
6654         * TextBoxBase.cs: Reworked the mouse down code so I could get it
6655         to behave like MS, we now ignore the eventargs.Click and just
6656         track state ourself, which we were already doing anyways.
6657         - Constrain the double click handler to the double click size.
6658         
6659 2006-12-08  Chris Toshok  <toshok@ximian.com>
6660
6661         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
6662         direction if that scrollbar isn't shown.  fixes bug #80158.
6663
6664 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6665
6666         * NumericUpDown.cs: Update value on getter. Fixes #79950
6667
6668 2006-12-08  Chris Toshok  <toshok@ximian.com>
6669
6670         * MenuItem.cs: add back in the event cloning code.  I didn't know
6671         how to do it in the face of the EventHandlerList work i'd done
6672         last week.  Fixes bug #80183.
6673
6674 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6675
6676         * Control.cs: Add an invalidate to the BackgroundImage setter.
6677         [Fixes 80184]
6678
6679 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6680
6681         * ToolStrip*: Add some small properties reported by MoMA, fix event
6682         firing and default properties based off of unit tests, and add some
6683         attributes based off of the class status page.
6684
6685 2006-12-07  Jackson Harper  <jackson@ximian.com>
6686
6687         * TextBoxBase.cs: Take HideSelection into account when determining
6688         whether or not to show the selection.
6689         * RichTextBox.cs: After inserting the RTF into the document move
6690         the cursor to the beginning of the document.
6691
6692 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6693
6694         * Control.cs: Remove static ArrayList "controls" which maintained
6695         a reference to every control created.
6696         * Application.cs: Create a static FormCollection to maintain a reference
6697         to every form created.  Use it in places that formerly enumerated through
6698         the controls one looking for forms.
6699         * Form.cs: Add and remove self from above FormCollection.
6700
6701 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
6702
6703         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
6704           not libgdk (though it makes me wonder why I didn't have any
6705           problems)
6706
6707 2006-12-07  Chris Toshok  <toshok@ximian.com>
6708
6709         [ you had to know this was coming after that last commit...]
6710         
6711         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
6712         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
6713         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
6714         XCopyArea).
6715
6716 2006-12-07  Chris Toshok  <toshok@ximian.com>
6717
6718         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
6719         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
6720         all the behavior we need for double buffering.
6721
6722         * XplatUIDriver.cs: implement the 3 double buffer methods using a
6723         client side Bitmap, just like the old Control-based double buffer
6724         code did.  The methods are virtual, so each XplatUI driver
6725         subclass can replace the implementation to use a faster, platform
6726         specific approach.
6727
6728         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
6729         double buffer code, and clean things up a bit in the process.
6730
6731 2006-12-06  Chris Toshok  <toshok@ximian.com>
6732
6733         * Control.cs: reindent WndProc.
6734
6735 2006-12-06  Chris Toshok  <toshok@ximian.com>
6736
6737         [ I wanna be like BenM when I grow up ]
6738         
6739         * Hwnd.cs: create a single static Graphics object on the static
6740         Bitmap we create.  use this for our text measurements.
6741
6742         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
6743         This was causing us to allocate a backbuffer for every control,
6744         even when it wasn't flagged as double buffered.  Instead use the
6745         single graphics instance.  This might have implications for
6746         multithreaded applications.  If we run into problems we can switch
6747         to creating 1 Graphics per control, on the static Hwnd bitmap.
6748
6749         this change nets us a 7M savings in private dirty mappings when
6750         running FormsTest.exe.
6751
6752 2006-12-06  Chris Toshok  <toshok@ximian.com>
6753
6754         * ListView.cs: the BackgroundImage override is just to set
6755         attributes.  chain up to base.BackgroundImage.
6756
6757         * RichTextBox.cs: same.
6758
6759         * ToolBar.cs: same, but we need to also redraw the toolbar when it
6760         changes, so instead a handler for BackgroundImageChanged.
6761         
6762         * Control.cs: make background_image private.
6763
6764 2006-12-06  Chris Toshok  <toshok@ximian.com>
6765
6766         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
6767         sure we even need this assignment, but roll with it for now.
6768
6769         * Control.cs: make the cursor field private.
6770
6771 2006-12-06  Chris Toshok  <toshok@ximian.com>
6772
6773         * Form.cs: we don't need to explicitly set ImeMode to
6774         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
6775         behavior in the face of ImeMode.Inherit.
6776
6777         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
6778         change the ctor's assignment to use ImeMode instead of ime_mode.
6779
6780         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
6781         ImeModeInherit.  Only check for the parent's imemode (and return
6782         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
6783         This fixes the button unit test, which sets both ImeMode and
6784         DefaultImeMode to ImeMode.Disable.
6785
6786         also make the ime_mode field private.
6787
6788 2006-12-06  Chris Toshok  <toshok@ximian.com>
6789
6790         * Control.cs: make control_style private.
6791
6792         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
6793         setting the styles to true, then setting them to false instead of
6794         reverting to their previous values.
6795
6796         also, call SetStyle on the scrollbars instead of using
6797         control_style directly.
6798
6799 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
6800
6801         * FormCollection.cs: Implement. [2.0]
6802
6803 2006-12-06  Chris Toshok  <toshok@ximian.com>
6804
6805         * Control.cs: make tab_stop private.
6806
6807         * Label.cs: set TabStop, not tab_stop.  reformat some event
6808         add/remove methods to make them more compact.
6809
6810 2006-12-06  Chris Toshok  <toshok@ximian.com>
6811
6812         * RadioButton.cs: fix TabStop handling.
6813
6814 2006-12-06  Chris Toshok  <toshok@ximian.com>
6815
6816         * TextBox.cs: remove the explicit assignments to has_focus.
6817         Control does that.
6818
6819         * ButtonBase.cs: remove the assignment to has_focus.  Control will
6820         manage that.
6821         
6822 2006-12-06  Chris Toshok  <toshok@ximian.com>
6823
6824         * ButtonBase.cs: remove all uses of is_enabled from this code.
6825         it's always true when any of the code containing the checks is
6826         executed.
6827
6828 2006-12-06  Chris Toshok  <toshok@ximian.com>
6829
6830         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
6831         with different semantics (some are present in both 1.1 and 2.0
6832         profiles) so that we match MS's behavior in our unit tests.
6833
6834 2006-12-06  Jackson Harper  <jackson@ximian.com>
6835
6836         * TextControl.cs: Make this operation undoable.
6837         * TextBoxBase.cs: Factor the border width into the preferred
6838         height.
6839         - implement Modified as per the spec.
6840
6841 2006-12-06  Chris Toshok  <toshok@ximian.com>
6842
6843         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
6844
6845 2006-12-06  Chris Toshok  <toshok@ximian.com>
6846
6847         * Control.cs: make right_to_left and context_menu fields private.
6848
6849 2006-12-06  Chris Toshok  <toshok@ximian.com>
6850
6851         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
6852         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
6853         Control.child_controls private.  switch all uses over to
6854         Control.Controls.
6855
6856 2006-12-06  Chris Toshok  <toshok@ximian.com>
6857
6858         * System.Windows.Forms/GroupBox.cs,
6859         System.Windows.Forms/AccessibleObject.cs,
6860         System.Windows.Forms/ErrorProvider.cs,
6861         System.Windows.Forms/Control.cs,
6862         System.Windows.Forms/UpDownBase.cs,
6863         System.Windows.Forms/ScrollBar.cs,
6864         System.Windows.Forms/DateTimePicker.cs,
6865         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
6866         System.Windows.Forms/ToolTip.cs,
6867         System.Windows.Forms/RadioButton.cs,
6868         System.Windows.Forms/LinkLabel.cs,
6869         System.Windows.Forms/Splitter.cs,
6870         System.Windows.Forms/TextBoxBase.cs,
6871         System.Windows.Forms/ToolStripTextBox.cs,
6872         System.Windows.Forms/ContainerControl.cs,
6873         System.Windows.Forms/ThemeWin32Classic.cs,
6874         System.Windows.Forms/SizeGrip.cs,
6875         System.Windows.Forms/ToolStripDropDown.cs,
6876         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
6877         private.  switch all uses over to Control.Parent.
6878
6879 2006-12-06  Chris Toshok  <toshok@ximian.com>
6880
6881         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
6882         Control does this before calling emitting these events.
6883
6884         * TabControl.cs: same.
6885
6886         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
6887         Control.client_rect.
6888
6889         * ButtonBase.cs: use the ClientSize property instead of the
6890         client_size field.
6891
6892         * ScrollableControl.cs: same.
6893
6894         * Control.cs: another pass at making properties private.  also,
6895         move the initialization of tab_stop to the ctor.
6896
6897 2006-12-05  Andreia Gaita <avidigal@novell.com>
6898
6899         * TabControl.cs: Let the selected index be set freely if the 
6900         control handle is not yet created.
6901
6902 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
6903
6904         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
6905         internal until I can rewrite DefaultLayout.
6906         * ToolStrip.cs: Fix build error and some general cleaning.
6907         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
6908         Fix build errors caused by making some of Control's fields private.
6909
6910 2006-12-05  Jackson Harper  <jackson@ximian.com>
6911
6912         * TextControl.cs: Redo Insert a little so that it use IndexOf
6913         instead of Split, this prevents it from messing up on things like
6914         \n\n\n. Also more effecient since the split array doesn't need to
6915         be created.
6916         * TextBoxBase.cs: AppendText doesnt handle multiline and non
6917         multiline text differently, this is the first of many fixes that
6918         will make multiline/non-multiline the same thing as far as the
6919         TextBoxBase is concerned.
6920         - Don't split the text and insert lines, this can lose some line
6921         endings (like is the last line a soft or hard break). Instead use
6922         the new Insert.
6923         - Fix an off by one when combining all the lines in the Text
6924         getter.
6925         - Remove separate multiline handling from the Text getter/setter.
6926
6927 2006-12-05  Chris Toshok  <toshok@ximian.com>
6928
6929         * ButtonBase.cs: a few changes:
6930
6931         - don't reinitialize internal Control fields in the ctor when they
6932         have the same values as Control sets them.
6933
6934         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
6935         this before calling those methods.
6936
6937         - we don't need to call Refresh for anything.  use Invalidate
6938         instead.
6939
6940         - OnEnabledChanged doesn't need to redraw at all - Control.cs
6941         calls Refresh in its OnEnabledChanged.
6942         
6943         - several of the events we were registered for in the ctor to
6944         redraw ourselves already include calls to Invalidate in the
6945         property setters that raise the events.  remove the extra
6946         invalidation.
6947
6948         - reformat a switch statement that was 83274658 columns wide.
6949         
6950 2006-12-05  Mike Kestner  <mkestner@novell.com>
6951
6952         * ComboBox.cs: fix a unit test regression from a TextBox
6953         SelectionLength return of -1 when there's no selection.  
6954
6955 2006-12-05  Chris Toshok  <toshok@ximian.com>
6956
6957         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
6958         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
6959         cleaning up some of the internal Control fields being used by
6960         subclasses.
6961
6962 2006-12-05  Mike Kestner  <mkestner@novell.com>
6963
6964         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
6965         listbox after AddImplicit calls since it defaults to hidden. Add a 
6966         hack to preserve requested heights across DropDownStyle changes.
6967
6968 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
6969
6970         * PropertyGrid.cs: Hide FindFirstItem method from public API.
6971
6972 2006-12-05  Chris Toshok  <toshok@ximian.com>
6973
6974         * DataGridView.cs: fix compiler warnings.
6975
6976         * PrintControllerWithStatusDialog.cs: same.
6977
6978         * ToolBar.cs: same.
6979
6980         * FolderBrowserDialog.cs: same.
6981
6982         * Splitter.cs: same.
6983
6984         * DataGridViewComboBoxCell.cs: same.
6985
6986         * XplatUIWin32.cs: same.
6987
6988         * PictureBox.cs: same.
6989
6990         * Win32DnD.cs: same.
6991
6992         * PageSetupDialog.cs: same.
6993
6994         * FileDialog.cs: same.
6995
6996         * PrintDialog.cs: same.
6997
6998         * DataGridTextBoxColumn.cs: same.
6999
7000         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
7001
7002 2006-12-05  Chris Toshok  <toshok@ximian.com>
7003
7004         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
7005         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
7006         System.ComponentModel.EventHandlerList work.
7007
7008 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
7009
7010         * DrawTreeNodeEventArgs.cs: Added.
7011
7012 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7013         
7014         * InternalWindowManager.cs: Remove an unused field.
7015         
7016 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7017
7018         * InternalWindowManager.cs:
7019         - Save the point where the title bar is clicked.
7020         
7021         * MdiWindowManager.cs:
7022         - Only allow moving of the window as long as the 
7023         clicked point on the title bar does not get out of
7024         MdiClient's rectangle. Fixes #79982.
7025         
7026         * MdiClient.cs:
7027         - Added Horizontal/VerticalScrollbarVisible.
7028         - Simplified the scrollbar sizing algorithm.
7029         - Cache the difference in scrolled value in
7030         H/VBarValueChanged and move the calculation out
7031         of the for loop.
7032
7033 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7034
7035         * Control.cs: Make the Console.WriteLine in WndProc 
7036         write more info.
7037
7038 2006-12-05  Chris Toshok  <toshok@ximian.com>
7039
7040         * ToolStripManager.cs, ToolStripButton.cs,
7041         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
7042         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
7043         ToolStripSplitButton.cs, ToolStripSeparator.cs,
7044         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
7045         ToolStripProgressBar.cs, ToolStripContainer.cs,
7046         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
7047         to using System.ComponentModel.EventHandlerList.
7048
7049 2006-12-04  Chris Toshok  <toshok@ximian.com>
7050
7051         * LinkLabel.cs: fix up compiler warnings.
7052
7053         * TableLayoutSettings.cs: same.
7054
7055         * TreeView.cs: same.
7056
7057         * ToolBar.cs: same.
7058
7059         * TabControl.cs: same.
7060
7061         * RichTextBox.cs: same.
7062
7063         * ListViewItem.cs: same.
7064
7065         * PropertyGrid.cs: same.
7066
7067         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
7068
7069         * ToolTip.cs same.
7070
7071         * TextRenderer.cs: fix up compiler warnings.
7072
7073         * Label.cs: same.
7074
7075         * Form.cs: corcompare fixes.
7076
7077         * PictureBox.cs: fix up compiler warnings.
7078
7079         * ImageListStreamer.cs: same.
7080
7081         * TrackBar.cs: corcompare fix.
7082
7083         * Control.cs: fix up compiler warnings.
7084
7085         * SplitterPanel.cs: same.
7086
7087         * NumericTextBox.cs: same.
7088
7089         * ImageList.cs: same.
7090
7091         * StatusStrip.cs: same.
7092
7093         * ProgressBar.cs: corcompare fix.
7094
7095         * ToolStripButton.cs: fix up compiler warnings.
7096
7097         * ToolStripStatusLabel.cs: same.
7098
7099         * ToolStripSplitButton.cs: same.
7100
7101         * ToolStripSeparator.cs: same.
7102
7103         * ToolStripProgressBar.cs: same.
7104
7105         * ToolStripDropDownMenu.cs: same
7106
7107         * ToolStripDropDown.cs: same.
7108
7109         * ToolStripDropDownButton.cs: same.
7110
7111         * ToolStrip.cs: same.
7112
7113         * ToolStripControlHost.cs: same.
7114
7115         * ToolStripContentPanel.cs: same.
7116
7117         * ToolStripDropDown.cs: same.
7118
7119         * ToolStripContainer.cs: same.
7120
7121         * ToolStripPanel.cs: same, and add "new" where we need it to work
7122         with the new ArrangedElementCollection.
7123
7124         * ToolStripItemCollection.cs: add "new" where we need it to work
7125         with the new ArrangedElementCollection.
7126
7127 2006-12-04  Andreia Gaita <avidigal@novell.com>
7128
7129         * TabControl.cs: Fix default tab selection to after TabControl
7130         gets focus and not before. Fixes #80128
7131
7132 2006-12-04  Chris Toshok  <toshok@ximian.com>
7133
7134         * DataGridTableStyle.cs: remove the gross calling of
7135         datagrid.Refresh from here.  It's a broken idea and it doesn't
7136         work anyway.
7137
7138         * DataGrid.cs: instead, just register/unregister from the
7139         DataGridTableStyle events in CurrentTableStyle.  we play it
7140         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
7141         even though some would most likely not require it.  Fixes bug
7142         #80115 (and one portion of #80117 as a side effect).
7143
7144 2006-12-04  Chris Toshok  <toshok@ximian.com>
7145
7146         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
7147         so the textbox (if any) goes away.  Fixes bug #80117.
7148
7149 2006-12-04  Chris Toshok  <toshok@ximian.com>
7150
7151         * DataGridColumnStyle.cs: set the column's readonly property
7152         initially based on the property descriptor's IsReadOnly.  Fixes
7153         bug #80044.
7154
7155 2006-12-04  Chris Toshok  <toshok@ximian.com>
7156
7157         * ComboBox.cs: wrap the dropdown style changing work in
7158         SuspendLayout/ResumeLayout.  Fixes bug #79968.
7159
7160 2006-12-04  Jackson Harper  <jackson@ximian.com>
7161
7162         * TextBoxBase.cs: Fix off by one, since these are one-based.
7163         * TextBox.cs: Select all the text when we get focus.  The TextBox
7164         does this but the RTB does not.
7165
7166 2006-12-04  Chris Toshok  <toshok@ximian.com>
7167
7168         * DataGridTextBoxColumn.cs: remove some spew.
7169
7170         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
7171         but some part of me is saying "it shouldn't be here.."  At any
7172         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
7173         setting the value.
7174
7175 2006-12-04  Chris Toshok  <toshok@ximian.com>
7176
7177         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
7178         to reassign the propertydescriptor.
7179
7180 2006-12-04  Jackson Harper  <jackson@ximian.com>
7181
7182         * TextBoxBase.cs:
7183         * TextControl.cs: Remove some unused variables.  Maybe this will
7184         patch things up between mike and I.
7185         - don't split lines less then one char wide, if the viewport is
7186         that small text won't be visible anyways.
7187         
7188 2006-12-04  Jackson Harper  <jackson@ximian.com>
7189
7190         * TextBoxBase.cs: Default selection length is -1, need to do some
7191         more testing on windows to see when this is used for the property.
7192         - Redid the Lines [] property to that we properly remove soft line
7193         breaks
7194         - added support for preserving carriage returns
7195         -  CanUndo is not a variable like 'is undo enabled' it just returns
7196         true if there is undo operations available.
7197         - AppendText doesn't need to grab the last tag itself anymore,
7198         this happens automatically when we move the cursor.
7199         * TextControl.cs: Add CompoundActions to the undo class. This
7200         allows combining the other operations into one big option.  ie a
7201         paste will combine { delete old, insert new, move cursor }
7202         - Add InsertString undo operation
7203         - New method for deleting multiline text
7204         - Add carriage returns to lines. So we can preserve carriage
7205         returns when text is 'roundtripped'
7206
7207 2006-12-04  Chris Toshok  <toshok@ximian.com>
7208
7209         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
7210         minimum 0.  Fixes the scrollbar exception in bug #80136.
7211
7212 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7213
7214         * MdiClient.cs: 
7215         * MdiWindowManager: Removed unused fields and methods.
7216         
7217 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7218         
7219         * StatusBar.cs: Update all panels when a AutoSize=Contents
7220         panel needs updating.
7221         
7222         * StatusBarPanel.cs: Remove twidth and only use initialize.
7223         Fixes #80031.
7224                 
7225 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7226
7227         * Form.cs: When a form's MdiParent is set add it directly
7228         on top of the z-order in stead of relying on MdiClient's
7229         ActivateChild to do it. Fixes #80135.
7230         
7231         * MdiClient.cs: 
7232         - Remove original_order, mdi_child_list is already doing
7233         the same thing.
7234         - Create mdi_child_list on construction in
7235         stead of first use (avoids a few null checks).
7236
7237         * MenuItem.cs: Use an already existing list of mdi children
7238         to get the correct order of children and remove the other
7239         redundant list.
7240
7241 2006-12-04  Chris Toshok  <toshok@ximian.com>
7242
7243         * PropertyGridView.cs: cached_splitter_location is only used in
7244         !DOUBLEBUFFER code.
7245
7246         * PropertyGrid.cs: implement the ComComponentNameChanged event
7247         using Events, hoping that would fix the warning.  Looks like a
7248         compiler bug instead (#80144).
7249
7250         * PropertyManager.cs: remove unused method.
7251
7252 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
7253
7254         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
7255         include parentesis to fix expression evaluation. Fixes #79634.
7256
7257 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
7258         
7259         * MenuAPI.cs:
7260         - Changes to fix behavior in Menu control, some reported in #80097
7261         and other detected during behavior refactory like a select event
7262         problems.
7263         - Remove unneded "if's" conditions.
7264         - Created an internal to flag when popup is active in control, we need 
7265         it because in .NET you can have menu active but without popup active
7266         when you active menu using popup without visible items.
7267         - Mimic win32 behavior for Select and Popup events.  
7268         - Dont open popup menu when you dont have visible subitems.
7269         - Do nothing when click on disabled menu item.
7270         - Some small changes to follow the coding style guidelines.
7271         - Unselect menu only when another control gives focus. Fixes #80097.
7272         - Remove unused code.
7273         
7274         * MenuItem.cs: internal VisibleItems method to check if menu
7275         theres visible subitems, it will be usefull to fix some 
7276         behavior in Menu control.
7277         
7278 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7279         
7280         * Timer.cs: Tag property for 2.0 profile.
7281         
7282 2006-12-01  Chris Toshok  <toshok@ximian.com>
7283
7284         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
7285         
7286         * Win32DnD.cs: comment out some unused fields.
7287
7288         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
7289         some unused properties/methods.
7290
7291         * XplatUIX11.cs: fix MousePosition so we override the base class's
7292         property instead of conflicting with it.
7293
7294         * PictureBox.cs: comment out some unused fields
7295
7296         * OSXStructs.cs: make some struct fields public.
7297
7298         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
7299         MousePosition so we override the base class's property instead of
7300         conflicting with it.
7301
7302         * X11Dnd.cs: comment out some unused fields
7303
7304         * X11DesktopColors.cs: fix some struct field visibility to quiet
7305         the compiler.
7306
7307         * X11Dnd.cs: remove some debug code.
7308
7309         * ThemeClearlooks.cs: comment out unused field.
7310
7311         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
7312
7313         * ThemeGtk.cs: comment out some unused pinvokes.
7314
7315         * Timer.cs: remove some unused fields.
7316
7317         * ThemeClearlooks.cs: comment out unused field.
7318
7319         * UpDownBase.cs: comment out unused field.
7320
7321         * DataObject.cs: comment out unused field.
7322
7323         * DataGridBoolColumn.cs: reomve unused field.
7324
7325         * DataGrid.cs: remove unused field.
7326
7327         * Cursor.cs: remove old ToBitmap code.
7328
7329         * ControlPaint.cs: remove unused method.
7330
7331         * ScrollBar.cs: remove unused fields.
7332
7333         * ComboBox.cs: remove unused field, and chain up to
7334         AccessibleObject ctor.
7335
7336         * ListBox.cs: remove unused field.
7337
7338         * ButtonBase.cs: wrap a couple fields in NET_2_0.
7339
7340         * GridEntry.cs: remove unused fields.
7341
7342         * Binding.cs: remove unused fields.
7343
7344         * AxHost.cs: remove unused method.
7345
7346         * ContainerControl.cs: remove unused field.
7347
7348         * ScrollableControl.cs: remove unused fields.
7349
7350 2006-12-01  Chris Toshok  <toshok@ximian.com>
7351
7352         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
7353         the Where/WhereString stuff.  it's easy enough to CWL
7354         Environment.StackTrace.
7355
7356         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
7357         unused private fields.
7358
7359 2006-12-01  Jackson Harper  <jackson@ximian.com>
7360
7361         * TextControl.cs: Do not update the view while inserting multiline
7362         text. If we update the view we might wrap lines, before entering
7363         the new lines, which causes the new line insertion calculations to
7364         be totally fubared.
7365         - Remove an old TODO
7366         - Make debug output a little nicer
7367         
7368 2006-12-01  Chris Toshok  <toshok@ximian.com>
7369
7370         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
7371
7372 2006-12-01  Chris Toshok  <toshok@ximian.com>
7373
7374         [ fix the majority of the CS0108 warnings we've been suppressing ]
7375         
7376         * TreeView.cs: mark BackgroundImageChanged as 'new'.
7377
7378         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
7379         to "LayoutToolBar" to quiet mcs.
7380         
7381         * TabControl.cs: mark our ControlCollection class as 'new'.
7382
7383         * TextBoxBase.cs: mark some events as 'new'.
7384
7385         * Splitter.cs: TabStop is 'new'.
7386
7387         * ControlBindingsCollection.cs: mark a few methods as new since
7388         they change the visibility from protected to public.
7389
7390         * RadioButton.cs: DoubleClick -> base class, and remove unused
7391         HaveDoubleClick.
7392
7393         * MonthCalendar.cs: ImeMode property -> base class, and mark many
7394         events as new.
7395
7396         * NumericUpDown.cs: TextChanged -> base class.
7397
7398         * CheckedListBox.cs: mark our ObjectCollection class as new to
7399         quiet mcs.
7400
7401         * FolderBrowserDialog.cs: make HelpRequest event new and have it
7402         muck with the base class.
7403
7404         * StatusBar.cs: fix some mcs warnings about Update being the same
7405         name as a base class method.
7406
7407         * RichTextBox.cs: mark some events as new, and make them do things
7408         to the base class impl.
7409
7410         * UserControl.cs: mark TextChanged as new, and have it manipulate
7411         base.TextChanged.
7412
7413         * UpDownBase.cs: mark some things new.
7414
7415         * CheckBox.cs: mark DoubleClick "new", and add some text about
7416         what we need to look at.
7417
7418         * Panel.cs: make the events "new", and manipulate the base
7419         version.  these are just here for attributes.
7420
7421         * AccessibleObject.cs: make owner private.
7422
7423         * Control.cs: deal with AccessibleObject.owner being private.
7424         cache our own copy if we need it.
7425
7426         * Button.cs: add "new" to the DoubleClickEvent.
7427
7428         * ListBox.cs: no need to track our own has_focus here.  let
7429         Control.has_focus do it for us.  Also some other work to clear up
7430         warnings about not overriding base class methods of the same name.
7431         
7432         * ComboBox.cs: clear up some warnings about not override base
7433         class methods of the same name.
7434
7435 2006-12-01  Chris Toshok  <toshok@ximian.com>
7436
7437         * Form.cs: flag a few things as "new" to quiet some of the mcs
7438         warnings.
7439
7440         * AxHost.cs: same.
7441
7442         * PrintPreviewDialog.cs: same.
7443
7444         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
7445         now DGV isn't so horrible on the class status page.  also, move
7446         all events to using System.ComponentModel.EventHandlerList.  my
7447         wrists hurt.
7448
7449 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7450
7451         * MdiWindowManager.cs:
7452         - Set form to active mdi child if shown,
7453         and update the active mdi child to the next 
7454         remaining child in the z-order if the form is hidden.
7455
7456         * Form.cs: 
7457         - Track if the form has been visible and if its 
7458         visibility is beeing changed, so that the MdiClient
7459         can properly decide the ActiveMdiChild. The MdiClient 
7460         cannot track this since the form can change visibility 
7461         before MdiClient is created.
7462
7463         * MdiClient.cs:
7464         - Don't activate anything of the parent form is changing
7465         its visibility.
7466         - Rework ActiveMdiChild to only return visible mdi 
7467         children and take into account several other corner 
7468         cases.
7469
7470 2006-12-01  Chris Toshok  <toshok@ximian.com>
7471
7472         * IBindableComponent.cs: new 2.0 interface.
7473
7474 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
7475
7476         * DataGrid.cs: Font for caption area is bold by default.
7477
7478 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
7479
7480         * Menu.cs: Tag property for 2.0.
7481         
7482 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7483
7484         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
7485         
7486 2006-12-01  Chris Toshok  <toshok@ximian.com>
7487
7488         * TreeView.cs: doh, the Begin* events should be
7489         TreeViewCancelEventHandler.
7490
7491 2006-12-01  Chris Toshok  <toshok@ximian.com>
7492
7493         * Form.cs: Form.ControlCollection already stores off the
7494         form_owner field.  don't access the base class's internal "owner"
7495         field.
7496
7497         * Control.cs: make all the fields in Control.ControlCollection
7498         private.  there's no need for any internal fields here.
7499
7500 2006-12-01  Chris Toshok  <toshok@ximian.com>
7501
7502         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
7503         OnHandleCreated.  Fixes bug #80109.
7504
7505 2006-12-01  Chris Toshok  <toshok@ximian.com>
7506
7507         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
7508         SplitContainer.cs, Control.cs, StatusStrip.cs,
7509         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
7510         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
7511         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
7512         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
7513         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
7514         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
7515         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
7516         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
7517         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
7518         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
7519
7520         do most of the work to convert our code over to use
7521         System.ComponentModel.Component.Events for
7522         adding/removing/dispatching events.
7523
7524
7525 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7526
7527         * DataGridView.cs: Fix an ArgumentNullException reported 
7528         twice today in IRC.
7529
7530 2006-11-30  Mike Kestner  <mkestner@novell.com>
7531
7532         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
7533         grabbed listbox.  Fixes #80036 and #80101.
7534
7535 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7536
7537         * Message.cs: Changed ToString() to match MS.
7538         
7539 2006-11-30  Jackson Harper  <jackson@ximian.com>
7540
7541         * TextBoxBase.cs: You can still change the selected text on a read
7542         only textbox.
7543         * TextControl.cs: Lower magic number for wrap calculations. This
7544         lets text get closer to the right (far) edge.
7545
7546 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7547
7548         * Control.cs: Tweak 2.0 layout properties.
7549         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
7550         * TextRenderer.cs: Add a new overload.
7551         * ToolStrip*: Huge amount of changes and new features.
7552
7553 2006-11-30  Mike Kestner  <mkestner@novell.com>
7554
7555         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
7556         scroll range correct.  Fixes #79994.
7557
7558 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7559
7560         * MdiWindowManager.cs: Update main form's text when
7561         a form is closed. (fixes #80038)
7562         
7563 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
7564
7565         * ToolBar.cs:
7566         - Fix an regression in ButtonSize.
7567         - Get ImeMode default value change to "Disable".
7568         - Get ShowTooltips default value change to true, default value is 
7569         "false" but after make a test in .NET we get "true" result as default.
7570         
7571 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
7572
7573         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
7574
7575 2006-11-29  Chris Toshok  <toshok@ximian.com>
7576
7577         * XplatUIWin32.cs (GetWindowTransparency): check return value of
7578         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
7579         SetWindowTransparency hasn't been called.
7580
7581 2006-11-29  Chris Toshok  <toshok@ximian.com>
7582
7583         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
7584         if it's supported.
7585         (set_AllowTransparency): reorder things a little so that the
7586         WS_EX_LAYERED style is removed properly.
7587
7588 2006-11-29  Chris Toshok  <toshok@ximian.com>
7589
7590         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
7591         
7592         * Form.cs: only call the XplatUI transparency method (get/set) if
7593         SupportsTransparency says it's supported. Otherwise fallback to
7594         doing nothing (in the set case) or returning the instance field we
7595         cache (in the get case).
7596
7597         * XplatUIStructs.cs: add TransparencySupport flag enum.
7598         
7599         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
7600         change to SupportsTransparency.
7601
7602         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
7603         TransparencySupport.None from SupportsTransparency.
7604
7605         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
7606         TransparencySupport.Set from SupportsTransparency.
7607
7608         * XplatUIWin32.cs: implement GetWindowTransparency calling
7609         GetLayeredWindowAttributes, and implement SupportsTransparency by
7610         checking whether or not both
7611         GetWindowTransparency/SetWindowTransparency are available
7612         entrypoints.  We need to do this since SetWindowTransparency is
7613         available as of win2k, but GetWindowTransparency requires winxp.
7614         yay win32 api.
7615
7616         * XplatUI.cs: Add GetWindowTransparency, and change
7617         SupportsTransparency to allow for either/both Get/Set.
7618
7619 2006-11-29  Chris Toshok  <toshok@ximian.com>
7620
7621         * DataGrid.cs: keep from going into an infinite loop redrawing a
7622         datagrid that has no datasource.  Fixes bug #80033.
7623
7624 2006-11-29  Chris Toshok  <toshok@ximian.com>
7625
7626         * MenuItem.cs: fix the NRE when we assign text (and therefore call
7627         Invalidate) before the mainmenu has been assigned to a control.
7628
7629 2006-11-29  Chris Toshok  <toshok@ximian.com>
7630
7631         * DataGrid.cs: detect when we should be double the double click
7632         row/column autosize stuff, although that codepath has yet to be
7633         written.  part of the work for bug #79891.
7634
7635 2006-11-29  Chris Toshok  <toshok@ximian.com>
7636
7637         * Binding.cs (SetControl): fix unit test.
7638
7639 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7640
7641         * PageSetupDialog.cs: Validate the margins and set them in
7642         PageSettings. 
7643         * NumericTextBox.cs: New class to mimic the behavior of the
7644         textboxes used in the printing dialogs.
7645
7646 2006-11-29  Andreia Gaita  <avidigal@novell.com>
7647         
7648         * Form.cs: Revert previous change (remove call UpdateBounds
7649         from form constructor), because it messes with the handle creation
7650         order, and that one needs lots and lots of love.
7651         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
7652         for valid printer and throw InvalidPrinterException if document
7653         is set but printer not valid), adding a MonoTODO. Once 
7654         handle creation is done properly, we can put this back in.
7655
7656 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7657
7658         * MenuItem.cs: Create a invalidate method for menu item, to be
7659         calling from set text, it make text changes to imadiate update
7660         on screen. Fixes #80013. 
7661         
7662 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7663
7664         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
7665         fixes bug #80070 and some other problem on toolbar buttons
7666         layout.
7667
7668 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7669
7670         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
7671         with dotted brush.      Fixes #79564
7672         
7673 2006-11-28  Andreia Gaita  <avidigal@novell.com>
7674
7675         * Form.cs: Removed call to UpdateBounds on Form
7676         constructor, it was causing a call to CreateHandle
7677         before it was supposed to.
7678         * PrintControllerWithStatusDialog: Applied patch
7679         by Chris Toshok to hide controller when there are
7680         no printers available.
7681         PrintDialog.cs: initialize printer settings to 
7682         null - correct DefaultValues test #5
7683         * PrintPreviewControl.cs: Move PrintController
7684         initialization to GeneratePreview
7685         * PrintPreviewDialog.cs: 
7686         - Remove Preview generation     from Document_set(). It is 
7687         called on OnPaint
7688         - Throw InvalidPrinterException on CreateHandle if
7689         a Document is set but there are no printers or 
7690         printer is not valid.
7691         * ThemeWin32Classic: don't paint PrintPreviewControl
7692         if there is nothing to paint    
7693
7694 2006-11-28  Miguel de Icaza  <miguel@novell.com>
7695
7696         * Form.cs: Add another popular method.
7697
7698         * TabPage.cs: ditto.
7699
7700 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7701
7702         * MenuItem.cs: Fixed a warning.
7703         * InternalWindowManager: Fixed a warning.
7704
7705 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7706
7707         * MenuItem.cs:
7708         - When cloning a menu also clone MdiList and clone the 
7709           window menu items properly (as the forms and menuitems
7710           are kept in an internal hashtable, these need updating 
7711           as well)
7712         - Rewrote the window menu code, menu items are added in the
7713           order the forms were added to their parent, and they are
7714           updated every time the window menu is shown (before the
7715           list was only generated once, in the current order of the
7716           forms, and would never be updated). A checkmark is shown
7717           next to the item corresponding to the active mdi child.
7718
7719 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7720
7721         * XplatUIStructs.cs: 
7722         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
7723         
7724         * XplatUIWin32.cs: 
7725         - Added TME_NONCLIENT to TMEFlags.
7726         - Handles WM_NCMOUSEMOVE in GetMessage to 
7727           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
7728
7729         * MdiWindowManager:
7730         - Now merges mdi child menu to parent menu when maximized.
7731         - Recalculate NC areas of both mdi child and mdi parent. 
7732           Fixes #79757 (4).
7733           on window state and size changes.Fixes #79844 (3).
7734         - Handle WM_NCCALCSIZE to properly calculate borders.
7735
7736         * Form.cs:
7737         - Add/remove to the mdi containers list of mdi children 
7738           in the order they are added.
7739         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
7740           to the maximized mdi child.
7741         
7742         * InternalWindowManager.cs:
7743         - Only execute a click on the control buttons on the mouse up,
7744           not on the mouse down. Show the state of the button 
7745           (was only showing Normal state, never Pressed state). The
7746           pressed button now follows the mouse (if you click the Close 
7747           button and move the mouse over the Maximize button, the 
7748           Maximize button will be shown as pressed). Since Win32 does
7749           not generate WM_NCLBUTTONUP if you release the button outside
7750           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
7751           it as a mouse up.
7752         
7753         * ThemeWin32Classic.cs:
7754         - Draw a missing border around mdi child forms. Fixes #79844 (2).
7755
7756         * MdiClient.cs:
7757         - Added a list of forms which contains the order the forms are
7758           added to the mdi parent.
7759         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
7760         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
7761         - If the active form changes set the scrollbars to the top
7762           of the Z order, otherwise the form could hide them.
7763         - Scrollbars are now sized according to ClientSize, not 
7764           to Size, and they take into account the other scrollbar
7765           to determine maximum.
7766         
7767 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
7768         
7769         * XplatUI.cs:
7770         * XplatUIDriver.cs:
7771         * XplatUIX11.cs:
7772         * XplatUIWin32.cs:
7773         * XplatUIOSX.cs:
7774         - Added RequestAdditionalWM_NCMessages for windows to 
7775           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
7776           Currently only implemented in XplatUIWin32.
7777
7778 2006-11-27  Chris Toshok  <toshok@ximian.com>
7779
7780         * Hwnd.cs: only add the hwnd to the windows hash in
7781         set_WholeWindow and set_ClientWindow if whole_window/client_window
7782         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
7783
7784 2006-11-27  Mike Kestner  <mkestner@novell.com>
7785
7786         * ComboBox.cs: remove redundant OnDropDown call.  It is called
7787         from the ComboListBox.ShowWindow code. Fixes #79969.
7788
7789 2006-11-27  Chris Toshok  <toshok@ximian.com>
7790
7791         * Hwnd.cs: remove the setters for ExposePending and
7792         NCExposePending - noone uses them.
7793
7794 2006-11-27  Jackson Harper  <jackson@ximian.com>
7795
7796         * TextControl.cs: new param for ReplaceSelection which determines
7797         whether we select the new selection, or set the cursor to the end
7798         of the new selection.
7799         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
7800         pasting, select the new text.
7801         * RichTextBox.cs: Use new param for ReplaceSelection.
7802
7803 2006-11-27  Jackson Harper  <jackson@ximian.com>
7804
7805         * TextBoxBase.cs: Set the selection to the caret after the caret
7806         is moved, otherwise they get out of sync.
7807
7808 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7809
7810         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
7811         it fixes #80015
7812
7813 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7814
7815         * ThemeWin32Classic.cs: 
7816         - Fix toolbar drop down arrow position.
7817         - Fix drop down appearance when ToolBar.Appearance is normal,
7818         it fixes #80018.
7819         
7820 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
7821
7822         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
7823         * Control.cs: Same.
7824         * UpDownBase.cs: Same.
7825         * ButtonBase.cs: Same.
7826         * ScrollBar.cs: Same.
7827         * TrackBar.cs: Same.
7828         * PictureBox.cs: Same.
7829         * UserControl.cs: Same.
7830         * Label.cs: Same.
7831         * ListControl.cs: Same.
7832         * TextBoxBase.cs: Same.
7833         * ListView.cs: Same.
7834         * RichTextBox.cs: Same.
7835         * TreeView.cs: Same.
7836
7837 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
7838
7839         * PrintDialog.cs:
7840         - Text label for where 
7841         - Text label comment was not shown
7842
7843 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
7844
7845         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
7846
7847 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7848
7849         * InternalWindowManager.cs: 
7850         - Handle WM_PARENTNOTIFY to activate the form
7851         if any child control is clicked.
7852         - The form is only sizable if not minimized.
7853
7854         * MdiWindowManager.cs:
7855         - Save the IconicBounds if the form is moved.
7856         - Rework SetWindowState, now the window bounds 
7857         are stored only if the old window state is Normal.
7858         
7859         * MdiClient.cs:
7860         - In SetWindowStates store the old window state if 
7861         the window is maximized and restore window state if
7862         the window looses focus.
7863         - Don't handle any scrollbar value changes if 
7864         initializing the scroll bars. Fixes #79771.
7865         - Reworked ArrangeIconicWindows. Current algorithm
7866         tests bounds agains all other minimized windows, if
7867         any intersections create new bounds (going left to 
7868         right, bottom to top) and then test again. When 
7869         successful the bounds are saved and never computed
7870         again. Fixes #79774.
7871
7872 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7873
7874         * InternalWindowManager.cs: Added HandleTitleBarUp.
7875
7876 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7877
7878         * NumericUpDown.cs: In .NET 1.1, user entered text is still
7879         hexadecimal in ParseUserEdit.
7880
7881         
7882 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7883
7884         * MdiWindowManager.cs: 
7885         - Handle a click on the form's icon to show the 
7886         system menu (when maximized). Fixes #79775.
7887         - Change the existing click handler for the form's
7888         icon when not maximized to show on MouseUp.
7889         Fixes #79776.
7890
7891         * Form.cs: In OnResize only layout the mdi child's
7892         parent if it actually has a parent. Might not if
7893         the window is closing.
7894
7895
7896 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7897
7898         * MdiClient.cs: Ignore active MDI client for text of parent, if
7899         child has no text set.
7900
7901 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7902
7903         * ToolBar.cs: Fixed ToString to match MS.
7904
7905 2006-11-22  Andreia Gaita  <avidigal@novell.com>
7906
7907         * NumericUpDown: 
7908         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
7909         update inner values on set. Fixes #79966.
7910         - Override OnLostFocus to update value on NET 2. Fixes #79950.
7911         - Fix hexadecimal parsing.
7912         
7913         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
7914         parent. Fixes #79957
7915
7916 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7917
7918         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
7919         the actual size has to be queried, since if height /
7920         width is negative Win32 changes it to 0. 
7921         Fixes #79999 on Windows.
7922         
7923         * XplatUIX11.cs: Set height / width to 0 if negative
7924         in SetWindowPos. Fixes #79999 on Linux.
7925         
7926 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
7927
7928         * ThemeWin32Classic.cs: Fix text redenring when button is
7929         pressed.
7930
7931 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
7932
7933         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
7934         and later navigate by mouse. Fixes #79528.
7935
7936 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
7937
7938         * ToolBar.cs: Set default value for TabStop to false in
7939         constructor, it fixes remaining behavior of bug #79863.
7940
7941 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7942
7943         * MdiWindowManager.cs:
7944         * InternalWindowManager.cs:
7945         - Moved a few methods specific to Mdi from 
7946         InternalWindowManager to MdiWindowManager.
7947         Fixes #79996.
7948         
7949 2006-11-21  Chris Toshok  <toshok@ximian.com>
7950
7951         * XplatUIOSX.cs: stub out InvalidateNC.
7952
7953         * XplatUIWin32.cs: implement InvalidateNC using the call I found
7954         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
7955
7956         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
7957
7958         * XplatUIDriver.cs: add InvalidateNC abstract method.
7959
7960         * XplatUI.cs: add InvalidateNC.
7961
7962 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
7963
7964         * ToolBar.cs: Invalidate complete button area when pressed status 
7965         was changed.
7966         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
7967         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
7968         by 1 when button is pressed.
7969
7970 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
7971
7972         * ToolButton.cs: Invalidate middle of DropDown button when
7973         ToolBar theres DropDownArrows.
7974         * ThemeWin32Classic.cs: Change position of DropDown arrow and
7975         fix DropDown drawing operations.
7976
7977 2006-11-20  Chris Toshok  <toshok@ximian.com>
7978
7979         * NativeWindow.cs: fix the formatting of functions ('{' on the
7980         following line), and enable the thread exception dialog.
7981
7982         * Application.cs: remove the duplicate exception catching from
7983         here.
7984
7985 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
7986
7987         * Toolbar.cs: Triggers button click event when click on icon
7988         of dropdown ToolBarButton. Fixes #79912.
7989         
7990 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7991
7992         * Theme.cs:
7993         * ThemeWin32Classic.cs:
7994         - Added a property WindowBorderFont to enable themeing
7995           of mdi child windows' Text.
7996           
7997 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7998
7999         * InternalWindowManager.cs:
8000         * Form.cs:
8001         * MdiClient.cs:
8002         * MdiWindowManager.cs: 
8003         - If mdi child is maximized, set mdi parent's
8004           text to "Parent - [Child]". Fixes #79770.
8005         - If there is any maximized mdi child windows, only the active 
8006           window (and any new windows) is maximized, the rest are normal.
8007         - On a WindowState change only save mdi child's window bounds 
8008           if the old window state was normal. Fixes #79774.
8009         - The scroll bars are now calculated on hopefully all
8010           necessary events. Fixed #79771 / #79844->6 / #79906.
8011         - MdiClient.SizeScrollBars() now takes into account docked 
8012           controls in the parent when calculating available space.
8013         - InternalWindowManager now always repaints the entire title
8014           area. Fixes #79844->1/4/5.
8015         - Added RequestNCRecalc on mdi child windowstate changes.
8016           Fixes #79772.
8017
8018 2006-11-20  Mike Kestner  <mkestner@novell.com>
8019
8020         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
8021         in the MouseUp handler of the listbox and move the return handling
8022         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
8023
8024 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8025
8026         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
8027
8028 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8029
8030         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
8031           working in 1.2.x anymore. So, updated.
8032
8033 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
8034
8035         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
8036         NumberGroupSeparator of current culture instead of assuming en-US.
8037         Fixed bug #79967.
8038
8039 2006-11-17  Mike Kestner  <mkestner@novell.com>
8040
8041         * Control.cs: Add the concept of implicit bounds setting so that
8042         dock/undock round trips preserve explicitly set size/locations.
8043         Fixes #79313.
8044
8045 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8046
8047         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
8048           can't handle those filters. (Fixes bug #79961)
8049
8050 2006-11-17  Chris Toshok  <toshok@ximian.com>
8051
8052         [ fixes the exit/crashes associated with #79835.  it's clearly
8053         suboptimal though, we need to figure out a better way to solve
8054         this. ]
8055         
8056         * PrintPreviewControl.cs: deal with the new invalid printer
8057         exceptions.
8058
8059         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
8060         and return false (so CommonDialog.ShowDialog doesn't actually show
8061         the form.)
8062
8063         * PrintDialog.cs: enable/disable the Ok button depending on
8064         whether or not the printer is valid.
8065
8066         * CommonDialog.cs (ShowDialog): only actually show the form if
8067         RunDialog returns true.
8068
8069 2006-11-17  Jackson Harper  <jackson@ximian.com>
8070
8071         * TextControl.cs: When soft splitting a line, mark it as a soft
8072         split line. Also carry over the current line break to the next
8073         line.
8074
8075 2006-11-17  Chris Toshok  <toshok@ximian.com>
8076
8077         * XplatUIX11.cs: when scrolling a window with an invalid area, we
8078         only want to shift the part of the invalid area that overlaps the
8079         area we're scrolling.  we also don't want to clear the invalid
8080         area unless the invalid area was entirely contained within the
8081         scrolling area.
8082
8083 2006-11-16  Chris Toshok  <toshok@ximian.com>
8084
8085         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
8086         also make sure to free the memory returned by XGetWindowProperty
8087         in GetText().
8088
8089         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
8090
8091 2006-11-16  Chris Toshok  <toshok@ximian.com>
8092
8093         * XplatUI.cs: add a new super secret way to get at the totally
8094         unsupported X11 backend.
8095
8096 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
8097
8098         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
8099
8100 2006-11-16  Jackson Harper  <jackson@ximian.com>
8101
8102         * TreeView.cs: Allow more explicit setting of top node position
8103         for scrollbars. Slower algo, but more accurate.
8104         - CollapseAll should maintain the current top node.
8105         * TextBoxBase.cs: When positioning the caret, use the line, pos
8106         method, since the x, y method does not grab the correct tag, and
8107         the caret height never gets set correctly. (Maybe I should just do
8108         away with the caret having its own height, and always use the
8109         carets current tag for height).
8110
8111 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
8112
8113         [Fixes 79778, 79923]
8114
8115         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
8116         Parent to the FosterParent instead.
8117
8118 2006-11-16  Jackson Harper  <jackson@ximian.com>
8119
8120         * TreeView.cs: Need to recalc the topnode when we expand or
8121         collapse. The scrolling methods can't handle this on their own,
8122         since they use differences between the last scroll position, and
8123         those difference get completely messed up since we are expanding
8124         nodes.  This problem should probably be fixed in the scrolling
8125         methods, so they can figure out exactly where they are, but this
8126         will slow things down a little.
8127         * ThemeWin32Classic.cs: Special case for groupboxes with empty
8128         strings, makes nunit-gui look a lot nicer.
8129
8130 2006-11-16  Chris Toshok  <toshok@ximian.com>
8131
8132         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
8133         the broken multithreaded event handling we have in here.  File
8134         this entry under "Why we should move to the new X11 backend".
8135
8136         Any thread can make it into UpdateMessageQueue, which gets events
8137         from the X socket - some of which could belong to hwnds being
8138         managed by a different thread.  We can also have multiple threads
8139         in UpdateMessageQueue at the same time, with each one reading from
8140         the X socket.  This leads to many problems, with the following
8141         solutions:
8142
8143         We can't use hwnd.Queue.Enqueue anywhere in here and must use
8144         EnqueueLocked.
8145
8146         The MotionNotify compression we do can't work across threads
8147         (without locking the entire queue, perhaps) since we call
8148         hwnd.Queue.Peek, so we just punt and don't compress motion events
8149         unless the owning thread is the one which got the X event.
8150
8151         ConfigureNotify is another fun one, since it modifies the hwnd's
8152         bounds and then enqueues the event.  We add a lock to Hwnd which
8153         is held when setting configure_pending to true (and enqueuing the
8154         event).
8155
8156         There is a race wrt the wake socket.  we need to make sure that
8157         only 1 thread is waiting on that socket, or else a thread could
8158         sleep waiting for data that never comes.  It's difficult (but not
8159         impossible) to make happen, because it seems to require something
8160         like the following:
8161
8162             1. Thread 1 polls on wake_receive
8163         
8164             2. poll returns saying there's data to be read on
8165                wake_receive.
8166         
8167             3. Thread 2 polls on wake_receive and immediately returns
8168                saying there's data to be read.
8169
8170             4. Thread 2 reads the wakeup byte from wake_receive
8171
8172             5. Thread 1 attempts to read the wakeup byte from
8173                wake_receive.
8174
8175             6. Thread 2 exits (due to a form closing, perhaps).
8176
8177             7. Thread 1 blocks forever.
8178         
8179         Fun, eh?
8180
8181         Fixing the Expose handling isn't done yet, and the races inherent
8182         in that piece of code are responsible for the drawing mistakes you
8183         see when generating expose events in a MT app (like NPlot).  This
8184         one is the likely to be the hardest to bandaid, and it doesn't
8185         appear to cause anything but drawing problems.  The other issues
8186         caused apps to exit or hang.
8187
8188         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
8189         called from a different thread than the one that should be calling
8190         these functions.
8191
8192         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
8193
8194 2006-11-15  Chris Toshok  <toshok@ximian.com>
8195
8196         * Application.cs: null out the context's MainForm when we exit
8197         RunLoop.  Fixes a newly checked in unit test as well as the last
8198         ODE from bug #79933.
8199
8200 2006-11-15  Chris Toshok  <toshok@ximian.com>
8201
8202         * Form.cs (set_Owner): allow a null value so we can clear the
8203         form's owner.
8204         (Dispose): set all our owned_form's Owner properties to null, and
8205         clear the owned_forms collection.
8206         (WM_CLOSE): clean up this a little bit.. still not right though.
8207
8208         * ApplicationContext.cs: OnMainFormClosed should only call
8209         ExitThreadCore if the main form isn't recreating.  Fixes unit
8210         test.
8211
8212 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8213
8214         [Fixes 78346]
8215
8216         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
8217
8218 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8219
8220         [Fixes 79433]
8221
8222         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
8223         keep popup window types from stealing focus from the main form
8224         on Windows.
8225
8226         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
8227
8228         * MenuAPI.cs: Set above flag to true.
8229
8230 2006-11-15  Chris Toshok  <toshok@ximian.com>
8231
8232         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
8233         the button being released is not in wParam.
8234
8235 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8236
8237         * Form.cs: Add the released button to MouseEventArgs.Button
8238         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
8239         on Win32.
8240
8241 2006-11-15  Chris Toshok  <toshok@ximian.com>
8242
8243         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
8244         GetText().  untested because it's unused in our implementation.
8245         Control.Text always caches the text, even if
8246         ControlStyles.CacheText is not set.
8247
8248         fixes bug #79939.
8249
8250 2006-11-15  Chris Toshok  <toshok@ximian.com>
8251
8252         [ fixes #79933 ]
8253         
8254         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
8255         message.  no hiding, no disposing.
8256
8257         in the WM_CLOSE handler, hide the form if it's modal.
8258
8259 2006-11-15  Chris Toshok  <toshok@ximian.com>
8260
8261         * XplatUIX11.cs: use AddExpose instead of sending a message.
8262         fixes textbox border drawing.
8263
8264 2006-11-15  Chris Toshok  <toshok@ximian.com>
8265
8266         * PropertyGridView.cs: keep from crashing on mouse move/down when
8267         the property grid is empty.
8268
8269 2006-11-14  Jackson Harper  <jackson@ximian.com>
8270
8271         * TextControl.cs: Make PageUp and PageDown more like the MS
8272         versions.
8273         * TextBoxBase.cs: When we set the text property position the
8274         cursor at the beginning of the document.
8275
8276 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8277
8278         * Form.cs: if a mdi child's WindowState has changed
8279         before it's creation, it would display wrong control
8280         buttons.
8281         
8282 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
8283
8284         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
8285           (Fixes bug #79927)
8286
8287 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8288
8289         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
8290         the window gets to paint its borders even if the window is
8291         getting smaller.
8292         
8293         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
8294         otherwise the old control buttons would still be painted 
8295         if the window gets bigger.
8296         
8297         * PaintEventArgs.cs: add an internal method so that the clip 
8298         rectangle can be changed.
8299         
8300 2006-11-13  Chris Toshok  <toshok@ximian.com>
8301
8302         [ fixes bug #79745 ]
8303         
8304         * NotifyIcon.cs: lots of cleanup.
8305
8306         * X11Structs.cs: add an enum for XEMBED messages.
8307
8308         * XplatUIX11.cs: reindent one of the giant switch statements, it
8309         was taking up an additional tab stop, and this file is already way
8310         too wide for my laptop's screen.
8311
8312         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
8313         we get it, resize the hwnd to the WMNormalHints max_width/height.
8314
8315 2006-11-13  Jackson Harper  <jackson@ximian.com>
8316
8317         * TextBoxBase.cs: Compute the value changes for the mouse wheel
8318         teh simple way.
8319
8320 2006-11-13  Chris Toshok  <toshok@ximian.com>
8321
8322         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
8323         #79898.  force a reference to the Region to stick around so the
8324         unmanaged object isn't collected (rendering our handle in the MSG
8325         stale).
8326
8327 2006-11-13  Chris Toshok  <toshok@ximian.com>
8328
8329         * XplatUIX11.cs: fix #79917 for window managers which support
8330
8331         using XStoreName on the raw utf8, and we need to convert to
8332         COMPOUND_TEXT if it's non-latin1.
8333
8334 2006-11-13  Chris Toshok  <toshok@ximian.com>
8335
8336         * Form.cs (set_DialogResult): we need to set closing to false if
8337         we're setting our result to None.  fixes bug #79908.
8338
8339 2006-11-13  Jackson Harper  <jackson@ximian.com>
8340
8341         * TextControl.cs: When formatting text, compute the adjusted tag
8342         lengths correctly, using FindTag for the end tag instead of trying
8343         to figure it out outselves.
8344         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
8345         the item, ItemHeight doesn't work, because trees with large
8346         imagelists use those for their height
8347         * TreeView.cs: ActualItemHeight factors in the image height
8348         - compute left edge of checkboxes correctly
8349         - when expanding/collapsing move the bottom down one pixel, so we
8350         aren't moving part of the node
8351
8352 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8353
8354         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
8355         stack in PaintEventStart so that it won't get disposed by the gc
8356         before reaching PaintEventEnd.
8357
8358 2006-11-13  Jackson Harper  <jackson@ximian.com>
8359
8360         * TextBoxBase.cs: Don't select the word if we are on a line with
8361         no text.
8362         - We don't need to position the caret on mouse up, since the mouse
8363         move handler should be doing this
8364         - When double clicking a blank line, the caret is advanced to the
8365         next line.
8366
8367 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
8368
8369         * TreeNodeCollection.cs: Avoid duplicating indexer code.
8370
8371 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
8372
8373         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
8374         Fixes part of bug #79910.
8375
8376 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
8377
8378         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
8379           (bug #79903). Some minor string updates to match ms.
8380
8381 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8382
8383         * FileDialog.cs: Don't add an extension if the filename
8384           already ends with that extension.
8385
8386 2006-11-10  Jackson Harper  <jackson@ximian.com>
8387
8388         * TreeView.cs: Use the currently highlighted node for the
8389         BeforeSelect event.
8390         * TextBoxBase.cs: There is no need to expand selection on
8391         MouseMove.
8392         - CanUndo means 'is there any undo operations', not 'is undo
8393         allowed on this textcontrol. Fixed ClearUndo unit test.
8394
8395 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
8396
8397         * Button.cs: only perform click when button is Selectable (so as 
8398         not to activate default buttons when they're disabled)
8399         
8400         * Control.cs: Rewrite of the SelectNextControl and related 
8401         methods. HandleClick now selects next control if the current one
8402         is being disabled.
8403         
8404         * Form.cs: OnActivated selects next active control only if Load 
8405         has already occurred. If Load hasn't run, there's no point in 
8406         selecting here, Load might change the state of controls.
8407         
8408         * FocusTest.cs: Tests marked as working again for these fixes
8409
8410 2006-11-10  Chris Toshok  <toshok@ximian.com>
8411
8412         * XplatUIX11.cs: a couple of fixes.
8413
8414         - use XInternAtoms with almost all the atoms we need to register,
8415         instead of many, many calls to XInternAtom.  should help a bit on
8416         startup time, at the expense of making the code look a little
8417         worse.
8418
8419         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
8420         isn't reparented (which seems to be a clue that we're running fon
8421         compiz) and they have an Owner form.  This fixes the tool windows
8422         in paint.net when running under compiz.
8423
8424         - when setting the opacity of a window, support both the case
8425         where the window has been reparented and also when it hasn't been.
8426         Since compiz/beryl doesn't seem to reparent windows, and these are
8427         the only window managers which support translucency, I'm not sure
8428         why we need the hwnd.reparented case at all.. but leave it in.
8429         now we get translucent windows in paint.net under compiz/beryl.
8430
8431 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8432
8433         * FileDialog.cs: Always return the value for FilterIndex that
8434           was set. Internally convert it to values that make sense.
8435
8436 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8437         
8438         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
8439
8440 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8441
8442         * Toolbar.cs: Change default value of DropDownArrows to true, the 
8443         signature still using false to make it compatible with MS but the 
8444         initial value is true. Fixes #79855.
8445
8446 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8447
8448         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
8449           only available on Linux.
8450
8451 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
8452
8453         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
8454         reduce number of calls to redraw method during toolbar creation.
8455
8456 2006-11-09  Mike Kestner  <mkestner@novell.com>
8457
8458         * ListView.cs : raise SelectedIndexChanged when an item is selected
8459         programmatically via the Item.Selected property.  Gert's nice 
8460         ListViewSelectedIndexChanged test fixture now runs clean.
8461
8462 2006-11-09  Mike Kestner  <mkestner@novell.com>
8463
8464         * ListView.cs : raise SelectedIndexChanged when a selected item is
8465         removed from the item collection using Remove or RemoveAt.
8466
8467 2006-11-09  Mike Kestner  <mkestner@novell.com>
8468
8469         * ListView.cs : raise SelectedIndexChanged once per selected item
8470         for compat with MS.  Fixes #79849+.
8471
8472 2006-11-09  Chris Toshok  <toshok@ximian.com>
8473
8474         * TabControl.cs: initialize row_count to 0, and set it to 1 when
8475         we need to (if we have any tab pages).  Fixes unit test.
8476
8477 2006-11-09  Chris Toshok  <toshok@ximian.com>
8478
8479         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
8480         width is 0, not 3.  Fixes a unit test.
8481
8482 2006-11-09  Mike Kestner  <mkestner@novell.com>
8483
8484         * ListView.cs : use Implicit scrollbars so that focus isn't 
8485         stolen from the listview when they are clicked. Fixes #79850.
8486
8487 2006-11-09  Chris Toshok  <toshok@ximian.com>
8488
8489         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
8490         have a root item.  Fixes #79879.
8491
8492 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
8493
8494         * FileDialog.cs:
8495           - Fix ToString ()
8496           - An ArgumentException is now thrown if a wrong filter
8497             is applied (matches ms). The previous filter doesn't change
8498             anymore if an exception is thrown.
8499           - Changing the FileName property also affects FileNames
8500         * ColorDialog.cs: The length of the CustomColors array is always
8501           16. It doesn't matter if we use a smaller array or null to update
8502           or change the custom colors property.
8503         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
8504           for RootFolder if we get a undefined value.
8505
8506 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8507
8508         * StatusBarPanel.cs: 
8509         - Width is set to MinWidth if Width is smaller than
8510         MinWidth. Fixes #79842.
8511         - MinWidth now always overrides Width (MSDN says MinWidth
8512         is set to Width when AutoSize = None, but they do not 
8513         behave like that).
8514         - Style has now the the correct default value.
8515         
8516 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8517  
8518         * TrackBar.cs: 
8519         - The control is completely invalidated on 
8520         Got/LostFocus to draw the focus rectangle correctly.
8521         - When AutoSize then height is always 45 (width for 
8522         vertical controls).
8523         
8524         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
8525         on the mouse when moved and it doesn't move when grabbed
8526         until the mouse moves as well. Also fixed some wrong 
8527         calculations when clicking on the thumb (control thought
8528         click was outside of thumb and didn't grab it).
8529         Fixes some of the issues in #79718.
8530
8531 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
8532
8533         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
8534
8535 2006-11-08  Chris Toshok  <toshok@ximian.com>
8536
8537         * PropertyGridView.cs: only call ToggleValue if the item is not
8538         readonly.
8539
8540 2006-11-08  Jackson Harper  <jackson@ximian.com>
8541
8542         * TextBoxBase.cs: The RichTextBox and textbox have very different
8543         word selection methods.  Implement the textbox's simple word
8544         selection here, and let the RichTextBox override and provide it's
8545         own.
8546         - Don't do extra selection on mouseup
8547         * RichTextBox.cs: Use the documents word selection algorithm, I
8548         think ideally, this function will be pulled into the
8549         RichTextBox.cs code someday.
8550
8551 2006-11-08  Chris Toshok  <toshok@ximian.com>
8552
8553         * RootGridEntry.cs: new class to represent GridItemType.Root.
8554
8555         * CategoryGridEntry.cs: reformat, and add boilerplate.
8556         
8557         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
8558         returns the UI parent anyway, and we need special handling to
8559         implement the GetTarget method in the face of it.  Also, implement
8560         Select().
8561
8562         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
8563         a root grid item, and use that instead of PropertyGrid.grid_items.
8564         Also, make use of TypeConverters (and add limitted support for
8565         ICustomTypeDescriptors) when initially populating the grid.
8566         Arrays now show up more or less properly.
8567
8568 2006-11-08  Chris Toshok  <toshok@ximian.com>
8569
8570         * Application.cs: set the modal dialog to non modal after we close
8571         it.  Fixes bug #79866.
8572
8573 2006-11-08  Jackson Harper  <jackson@ximian.com>
8574
8575         * TextControl.cs: When combining lines carry over the line end
8576         style from the end line.
8577         - Invalidate the selected area when setting it, if it is visible.
8578         * TextBoxBase.cs: Only rich text box can do full line selects.
8579         - Make sure to set the cursor position when there is a click,
8580         otherwise two clicks in separate areas could cause a large chunk
8581         to be selected.
8582
8583 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8584
8585         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
8586         Fixes #79863.
8587
8588 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8589
8590         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
8591         time. Remove tooltips when ToolButton click events.  Fixes #79856.
8592
8593 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8594
8595         * MenuAPI.cs: Ignore right click for menu actions and fixes
8596         menu border when clicked.  Fixes #79846.
8597
8598 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8599
8600         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
8601         MouseState after create wParam for message, this fixes mouse button 
8602         equal none in mouse up events.
8603         
8604 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
8605
8606         * Control.cs : Focus() now calls Select to set the Container's
8607         Active Control and to give it focus. To avoid infinite recursion
8608         (because ActiveControl also calls Focus at one point), a check 
8609         is made in Focus with the help of a new internal variable
8610         is_focusing.
8611
8612 2006-11-07  Mike Kestner  <mkestner@novell.com>
8613
8614         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
8615         if there's a selection.  Fixes #79849.
8616
8617 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
8618
8619         * PropertyGrid.cs: Avoid fixed height of help description label.
8620         Fixes part of bug #79829.
8621
8622 2006-11-07  Chris Toshok  <toshok@ximian.com>
8623
8624         * XplatUIX11.cs: fix #79790 again, by using the
8625         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
8626
8627 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8628
8629         * ToolBar.cs: Fix left click checking.
8630
8631 2006-11-07  Chris Toshok  <toshok@ximian.com>
8632
8633         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
8634
8635 2006-11-07  Chris Toshok  <toshok@ximian.com>
8636
8637         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
8638         PropertyManager unit tests.
8639
8640         * PropertyManager.cs: make property_name internal.
8641
8642 2006-11-07  Chris Toshok  <toshok@ximian.com>
8643
8644         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
8645         pass a unit test.  Also, don't set image_index to anything in
8646         response to setting the ImageList property.
8647
8648 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8649
8650         * ToolBar.cs: Ignore click events when mouse button is not a
8651         left button, only accepts other button for dropdown menus.  
8652         Fixes #79854.
8653
8654 2006-11-07  Chris Toshok  <toshok@ximian.com>
8655
8656         * DataGrid.cs: make the back and parent row buttons a little less
8657         ugly.
8658
8659 2006-11-07  Jackson Harper  <jackson@ximian.com>
8660
8661         * TextBoxBase.cs: When converting to Text don't put line breaks in
8662         for soft line breaks.
8663         * TextControl.cs: There is an initial "fake" line in the document,
8664         this is now a soft break line, so that an extra line feed doesn't
8665         get added to the end of documents.
8666
8667 2006-11-07  Chris Toshok  <toshok@ximian.com>
8668
8669         [ fix bug #79778 ]
8670         
8671         * CurrencyManager.cs: if the list is readonly, don't bother
8672         checking if IBindingList.AllowNew is true.
8673
8674         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
8675         for non-DataRowView datasources..  or rather, make it not crash.
8676         (DataGridPaintRelationRow): make sure we limit the row painting to
8677         the area not covered by the row header, and make our cell width at
8678         least large enough to cover the relation area.  This allows grids
8679         that have relations but no rows to render correctly.
8680         (DataGridPaintRowContents): same type of changes here.
8681         (SetDataSource): move back to always calling
8682         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
8683         navigating back through relations.
8684         (HitTest): handle the case where we have no cells but have
8685         relations.  Right now we generate a hit in cell 0 of whatever the
8686         row is, not sure if this is strictly correct, but it works for our
8687         purposes.
8688         
8689         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
8690         bother doing anything.
8691
8692 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
8693
8694         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
8695         early version of StatusStrip.  Not responsible for eaten
8696         application or firstborn children.
8697
8698 2006-11-06  Chris Toshok  <toshok@ximian.com>
8699
8700         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
8701         call GetTabRect with a -1 index.  Fixes #79847.
8702
8703 2006-11-06  Jackson Harper  <jackson@ximian.com>
8704
8705         * TreeNodeCollection.cs: Update scrollbars after clearing.
8706
8707 2006-11-06  Chris Toshok  <toshok@ximian.com>
8708
8709         * NumericUpDown.cs: fix the ToString method for some unit test
8710         love.
8711
8712 2006-11-06  Chris Toshok  <toshok@ximian.com>
8713
8714         * PropertyGrid.cs:
8715         - set the initial SelectedGridItem if we can.
8716
8717         - Exclude non-mergable properties only if we're merging > 1
8718         object.  Merging 1 object isn't really merging, obviously.
8719
8720         - Handle PropertySort.NoSort just like Alphabetical, which is
8721         wrong of course, but at least gets things on the screen.
8722         
8723         * PropertyGridView.cs:
8724         - Add method "FindFirstItem" which finds the first property grid
8725         item, so we can select it by default.
8726
8727         - make use of GridEntry.CanResetValue.
8728
8729         - Don't call RedrawBelowItemOnExpansion here anymore, the
8730         individual GridEntry's will do that.
8731
8732         - Remove the ITypeDescriptorContextImpl internal class.
8733         
8734         * GridEntry.cs:
8735         - this class needs to implement ITypeDescriptorContext, as it's
8736         what MS's PropertyDescriptorGridEntry does, which means we can
8737         remove the ITypeDescriptorContextImpl internal class from
8738         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
8739
8740         - keep a reference to our PropertyGridView, and move the call to
8741         RedrawBelowItemOnExpansion here from PGV.  This means
8742         programmaticly setting Expanded actually does something visible.
8743
8744         - add a CanResetValue() function which takes into account our
8745         possibly multiple "selected_objects" in the merged case.  Shifting
8746         PropertyGridView to use this method fixes another unreported
8747         crasher found running the test for #79829.
8748
8749         - when Top or Bounds is updated, make sure the PropertyGridTextBox
8750         is updated to reflect this.
8751
8752         * CategoryGridEntry.cs: the ctor takes the PGV now.
8753         
8754 2006-11-06  Jackson Harper  <jackson@ximian.com>
8755
8756         * TextControl.cs: These are 1 based.
8757         * TextBoxBase.cs: When setting the selected text, don't change the
8758         selected text tags, this is done by ReplaceText, just position the
8759         cursor at the end of the new text.
8760
8761 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8762
8763         * ListView.cs: Allow label edit only when, when LabelEdit is
8764           set to true.
8765
8766 2006-11-06  Jackson Harper  <jackson@ximian.com>
8767
8768         * TextControl.cs: If a suitable wrapping position isn't found,
8769         just wrap right in the middle of a word.
8770
8771 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8772
8773         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
8774           bug #79820.
8775
8776 2006-11-06  Jackson Harper  <jackson@ximian.com>
8777
8778         * TreeView.cs: Can't use the VisibleCount property when setting
8779         scrollbar heights, because this doesn't take into account whether
8780         or not the horz scrollbar just came visible.
8781
8782 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
8783
8784         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
8785         activated.  Fixes #79369, #79832.
8786
8787 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
8788
8789         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
8790           had to remove support for links that point to a directory. FileInfo
8791           returns no usefull information (means, the directory they point to)
8792           for such links. Replaced some empty string ("") with String.Empty.
8793
8794 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8795
8796         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
8797         NullReferenceException when attempting to remove node that is not in
8798         collection. Throw NullReferenceException when null is passed to 
8799         Remove. Allow first element of the collection to be removed. Fixes
8800         bug #79831.  In GetEnumerator ().Current return null if positioned 
8801         before the first element of the collection. In GetEnumerator ().Reset,
8802         position before first element of the collection.
8803
8804 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8805
8806         * PropertyGrid.cs: To match MS, remove default title and description
8807         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
8808         buttons.
8809
8810 2006-11-04  Chris Toshok  <toshok@ximian.com>
8811
8812         * Theme.cs: add a Clamp method, just for kicks.
8813
8814         * ThemeWin32Classic.cs: clamp all color components to [0..255].
8815
8816 2006-11-04  Chris Toshok  <toshok@ximian.com>
8817
8818         * Form.cs: if the form isn't visible, Close() does nothing.
8819
8820 2006-11-03  Chris Toshok  <toshok@ximian.com>
8821
8822         * Form.cs (Close): if the form is modal, don't Dispose of it, only
8823         Hide it.
8824         (WndProc): don't Dispose after handling the WM_CLOSE message.
8825
8826         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
8827         them as such, instead of using casts from Control to Form.  Also,
8828         don't Dispose of the modal dialog when we fall out of the loop -
8829         Close() it instead.
8830
8831         fixes bug #79813.
8832
8833 2006-11-03  Chris Toshok  <toshok@ximian.com>
8834
8835         * Control.cs (Dispose): only go through the dispose thing if we're
8836         @disposing, and we haven't already been disposed.  Fixes bug
8837         #79814.
8838
8839         * Form.cs: no reason to call "base.Dispose()" here instead of
8840         "Dispose()".
8841
8842 2006-11-03  Mike Kestner  <mkestner@novell.com>
8843
8844         * ComboBox.cs : use ToString instead of casts in AddItem for
8845         sorting functionality.  Fixes #79812.
8846
8847 2006-11-03  Chris Toshok  <toshok@ximian.com>
8848
8849         * Application.cs: pave the way for actually using the thread
8850         exception dialog.  it's ifdefed out at the moment.
8851
8852 2006-11-03  Chris Toshok  <toshok@ximian.com>
8853
8854         * ThreadExceptionDialog.cs: until we get a better layout, actually
8855         hide the details textbox and label when we shouldn't see them.
8856
8857 2006-11-03  Jackson Harper  <jackson@ximian.com>
8858
8859         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
8860         multiline textboxes anymore.  This method also determines the
8861         width/height of a textboxes canvas area.
8862         - Sorta a revert of the last patch.  For multiline just position
8863         the controls, then bail.  This way the scrollbar width won't be
8864         altered.
8865
8866 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
8867
8868         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
8869         it dont need.  Fixes #79537.
8870
8871 2006-11-02  Jackson Harper  <jackson@ximian.com>
8872
8873         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
8874         send the status after firing the DndOver event.
8875
8876 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8877
8878         * TrackBar.cs: Now orientation only switches height / width if
8879         the control's handle is created (Win32 does it like this). Also 
8880         fixed a typo in ToString() for a test to pass, changed the 
8881         exception thrown in set_LargeChange and set_SmallChange to 
8882         match Win32 behaviour, and added TrackBar tests to the unit 
8883         tests.
8884
8885 2006-11-02  Chris Toshok  <toshok@ximian.com>
8886
8887         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
8888         not _NET_WM_STATE_NO_TASKBAR.
8889
8890 2006-11-02  Jackson Harper  <jackson@ximian.com>
8891
8892         * TextControl.cs: Increment count by one, since in the update view
8893         count - 1 is used.
8894
8895 2006-11-02  Jackson Harper  <jackson@ximian.com>
8896
8897         * TextBoxBase.cs: Use client rectangle not bounds for checking if
8898         the mouse is in the client rectangle (duh).
8899
8900 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8901         
8902         * TrackBar.cs: Fixed trackbar jumping around when clicking
8903         on it - the trackbar was not detecting correctly at which
8904         side of the thumb the click was done. (fixes #79718)
8905
8906 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
8907
8908         * ListBox.cs: scroll visible area when change SelectedIndex to
8909         a non visible area.  Fixes #79481.
8910
8911 2006-11-01  Jackson Harper  <jackson@ximian.com>
8912
8913         * TextControl.cs: When replacing the selection move the selection
8914         start/end/anchor to the end of the new text.
8915
8916 2006-11-01  Jackson Harper  <jackson@ximian.com>
8917
8918         * XplatUIWin32.cs: When setting the parent change the controls
8919         visibility to it's visibility flag, not to it's old parents
8920         visibility (.Visible walks the parent chain).
8921
8922 2006-11-01  Chris Toshok  <toshok@ximian.com>
8923
8924         * XplatUIX11.cs: revert the #79790 fix, as the simple.
8925         XSetTransientForHint fix breaks paint .net's tool windows.  more
8926         work needed for that one.
8927
8928 2006-11-01  Chris Toshok  <toshok@ximian.com>
8929
8930         * ScrollBar.cs: throw ArgumentException instead of Exception in
8931         LargeChange/SmallChange setters.  fixes unit tests.
8932
8933 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
8934
8935         * ContainerControl.cs: reverted rev.67183 (which was itself
8936         a reversion of rev.66853... eh).
8937         
8938         * Control.cs: Fixes Reflector hang by changing Focus() call
8939         to what it was before rev.66643 (calling Select() here sets 
8940         ActiveControl, which in some situations calls back Focus and 
8941         eventually does a stack overflow). Temp fix.    
8942         Changes to GetNextControl() to not look for children to select when
8943         parent cannot be selectable (so it looks for siblings instead)  
8944         
8945 2006-10-31  Mike Kestner  <mkestner@novell.com>
8946
8947         * CheckedListBox.cs : off by one error in returned index from
8948         ObjectCollection.Add.  Fixes #79758.
8949
8950 2006-10-31  Chris Toshok  <toshok@ximian.com>
8951
8952         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
8953         calls for the textbox/spinner, to keep from recursing to the point
8954         where we crash.  Fixes #79760.
8955
8956 2006-10-31  Chris Toshok  <toshok@ximian.com>
8957
8958         * ListControl.cs (set_SelectedValue): don't throw exceptions on
8959         null/"" value, just return.  matches ms's behavior and fixes some
8960         failing tests.
8961
8962 2006-10-31  Chris Toshok  <toshok@ximian.com>
8963
8964         * Control.cs (set_Capture): make a logic a little easier to
8965         follow.
8966
8967         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
8968         if it's being destroyed.  A necessary fix surely, but a bandaid
8969         also, to fix the stuck capture problem in bug #78413.
8970
8971 2006-10-31  Chris Toshok  <toshok@ximian.com>
8972
8973         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
8974         convention of clearing hwnd.ClientRect when we set the
8975         width/height (so it'll be recalculated by Hwnd).
8976
8977 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
8978
8979         * ContainerControl.cs: reversed Contains check from
8980         ActiveControl due to hanging problems. This fix
8981         partly regresses #79667 (button does not have
8982         initial focus), so this might be a symptom for 
8983         a larger parenting problem (set_ActiveControl
8984         is being called but the child control does
8985         not have the parent set yet?)   
8986         
8987 2006-10-31  Mike Kestner  <mkestner@novell.com>
8988
8989         * MenuAPI.cs : fix keynav when menu is click activated.
8990
8991 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
8992
8993         * ToolStrip*: Version 0.2.
8994
8995         * MenuStrip.cs: Version 0.1.
8996
8997         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
8998
8999 2006-10-30  Chris Toshok  <toshok@ximian.com>
9000
9001         [ fixes the oversized notify icon issue in bug #79745 ]
9002         
9003         * NotifyIcon.cs: scale the icon down to the size we're given by
9004         the XplatUI layer (this would be faster if we did it once instead
9005         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
9006         since it's never invoked.
9007
9008         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
9009         pixels high by default, so let's hardcode our systray icon to that
9010         size.  The SYSTEM_TRAY protocol should really have a way for
9011         client apps to query for the correct icon size.. but oh well.  A
9012         couple of patches to deal with the screwy client_window ==
9013         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
9014         instance, and also make sure we don't XSelectInput twice).
9015
9016 2006-10-30  Chris Toshok  <toshok@ximian.com>
9017
9018         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
9019         recreating forms.  Control recreation is the bane of my existence.
9020         Fix it in a way that keeps everyone happy.
9021
9022 2006-10-30  Chris Toshok  <toshok@ximian.com>
9023
9024         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
9025         just non-CHILD ones.  otherwise sometimes scrollbars end up with
9026         client_windows not being resized to the proper size (ReportBuilder
9027         shows this extremely well).
9028
9029 2006-10-30  Chris Toshok  <toshok@ximian.com>
9030
9031         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
9032         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
9033         showing up in the gnome taskbar.  Fixes bug #79790.
9034
9035 2006-10-30  Chris Toshok  <toshok@ximian.com>
9036
9037         * ApplicationContext.cs: guard against a NRE.
9038
9039         * Application.cs: null out the old MainForm for the context, so we
9040         don't try to use it again once it's disposed.  Fixes bug #79783.
9041
9042 2006-10-30  Chris Toshok  <toshok@ximian.com>
9043
9044         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
9045         BindingContext, set the data source directly, otherwise do the
9046         lazy approach - the actual ListManager will be created when we get
9047         a BindingContext. Fixes bug #79700.
9048
9049 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9050
9051         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
9052           XplatUIX11.cs: Remove old 2 parameter SetVisible.
9053
9054         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
9055
9056 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9057
9058         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
9059         of SetVisible that allows a window to be shown, but not activated.
9060         This is needed on Windows for MenuStrip, and can probably be used
9061         with MainMenu and ComboBox to fix the focus stealing issues on
9062         Windows.
9063
9064         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
9065
9066 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
9067
9068         * PictureBox.cs: Fix the output of the ToString method.
9069
9070 2006-10-29  Chris Toshok  <toshok@ximian.com>
9071
9072         * Control.cs (get_TopLevelControl): fix bug #79781.
9073
9074 2006-10-29  Chris Toshok  <toshok@ximian.com>
9075
9076         * ListControl.cs (set_DataSource): throw Exception here, not
9077         ArgumentException, to match MS behavior.
9078
9079 2006-10-29  Chris Toshok  <toshok@ximian.com>
9080
9081         * Form.cs: remove the try-catch's around calls to GetWindowState.
9082         We can just check the return value.
9083
9084         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
9085         Instead return -1.
9086
9087         * XplatUI.cs: Add note about additional return value for
9088         GetWindowState.
9089
9090 2006-10-29  Chris Toshok  <toshok@ximian.com>
9091
9092         * Control.cs (CreateHandle): when we create our handle, we also
9093         create the handles of our child controls.  Fixes one of the
9094         Control unit tests (CH11).
9095
9096 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9097
9098         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
9099
9100 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9101
9102         * ThemeClearlooks.cs: A little speedup.
9103
9104 2006-10-27  Chris Toshok  <toshok@ximian.com>
9105
9106         * Control.cs: implement Control.FromChildHandle in a way that
9107         matches the docs (and fixes the failed test.)
9108
9109 2006-10-27  Chris Toshok  <toshok@ximian.com>
9110
9111         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
9112         comments).
9113
9114         * DataGrid.cs: implement ResetForeColor such that the tests
9115         succeed.
9116         
9117 2006-10-27  Chris Toshok  <toshok@ximian.com>
9118
9119         * ToolBarButton.cs: setting text/tooltiptext to null results in it
9120         being set to "".  Fixes bug #79759.
9121
9122 2006-10-27  Jackson Harper  <jackson@ximian.com>
9123
9124         * TextControl.cs: We need to clear the entire selection area when
9125         setting the start, otherwise multiline selections are still
9126         visible.
9127
9128 2006-10-26  Chris Toshok  <toshok@ximian.com>
9129
9130         * PropertyGridView.cs: 
9131
9132         - ifdef all the code specific to the double
9133         buffer case, and provide some alternatives in the non-doublebuffer
9134         code, which makes heavy use of XplatUI.ScrollWindow to move things
9135         around without having to invalidate (and cause flicker).  There
9136         are still some drawing problems in the non-doublebuffered case, so
9137         DOUBLEBUFFER is defined by default.
9138
9139         - Fix the way dropdowns are handled.  now we explicitly watch for
9140         the events which might cause the dropdown to close, and break out
9141         of the nested event loop there.  This gets rid of all Capture
9142         code, at the expense of the Msg special casing.  Seems to work,
9143         though, and fixes bug #79743.
9144
9145 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
9146         * Control.cs: SetIsRecreating now recreates implicitly added
9147         child controls as well. Finally fixes #79629. The flag passed to 
9148         SetIsRecreating has also been removed since it wasn't used.
9149         
9150 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9151
9152         * PageSetupDialog.cs: Clean some code, fix some bits, 
9153         add some checks, and add a printer sub-dialog.
9154
9155 2006-10-26  Chris Toshok  <toshok@ximian.com>
9156
9157         * PropertyGrid.cs: make set_SelectedObject call
9158         set_SelectedObjects, and move the duplicate logic to the
9159         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
9160
9161         * PropertyGridView.cs: hide the textbox when we get a
9162         SelectedObjectsChanged event.
9163
9164         Fixes bug #79748.
9165
9166 2006-10-26  Chris Toshok  <toshok@ximian.com>
9167
9168         * PropertyGridView.cs: deal with the type converter not supporting
9169         GetStandardValues() or GetStandardValues() returning null, which
9170         is does in the default case.  Fixes #79742.
9171
9172 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9173
9174         * CheckedListBox.cs: nunit no longer crashes when selecting 
9175         Project/Edit menu option
9176         
9177 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9178
9179         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
9180         is no menu selected. fixes #79739
9181
9182 2006-10-25  Chris Toshok  <toshok@ximian.com>
9183
9184         * PropertyGridView.cs: factor out the splitter invalidation code
9185         into the SplitterPercent setter, and for kicks implement the
9186         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
9187         amount in either direction.
9188
9189 2006-10-25  Chris Toshok  <toshok@ximian.com>
9190
9191         * PropertyGridView.cs: do some cleanup of the brush used to draw
9192         text - read only fields should be grayed out.  not sure how to do
9193         this with the textbox, though.  but the textbox's should also be
9194         readonly now at least.  Also, hide/show the textbox when resizing
9195         the control.
9196         
9197         * CursorConverter.cs: use System.Reflection when getting the
9198         properties of Cursors, as TypeDescriptor.GetProperties isn't
9199         returning static properties.
9200
9201 2006-10-25  Chris Toshok  <toshok@ximian.com>
9202
9203         * PropertyGridView.cs: factor out the up/down handling, and reuse
9204         it for page up/down.  also add End/Home support.
9205
9206 2006-10-25  Chris Toshok  <toshok@ximian.com>
9207
9208         * PropertyGridView.cs:
9209
9210         - ensure the selected grid item is visible in the scrolled area,
9211         fixes bug #79572.
9212
9213         - fix Keys.Down handling when you're on the last item in the
9214         propertygrid.
9215
9216 2006-10-25  Mike Kestner  <mkestner@novell.com>
9217
9218         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
9219         clicks too.  Fixes #79725.
9220
9221 2006-10-24  Chris Toshok  <toshok@ximian.com>
9222
9223         * PropertyGrid.cs: use property.Converter instead of
9224         TypeDescriptor.GetConverter(property.PropertyType), so we catch
9225         TypeConverters declared on the property as well as on the
9226         PropertyType.  Fixes bug #79678.
9227
9228 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
9229
9230         * MimeIcon.cs, Mime.cs:
9231           Fallback to the default platform handler if no shared mime info
9232           stuff exists (fixes #79693).
9233
9234 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9235         * ContainerControl.cs: Incorrect contains check in ActiveControl 
9236         from previous fix (duh).
9237
9238 2006-10-20  Chris Toshok  <toshok@ximian.com>
9239
9240         * PropertyGridView.cs: the dropdown should be MIN(number of items
9241         in list, 15).  Fixes #79551.
9242
9243 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9244         Fixes #79384, #79394, #79652, #79667
9245         * Application.cs: 
9246         
9247         - Modal windows are now destroyed in the proper order for windows
9248         
9249         * ContainerControl.cs:
9250         
9251         - ActiveControl setter has more conditions on when to return:
9252                 - if we're reselecting the active control, but it actually
9253                 didn't have focus (window hidden or some such), it runs
9254                 - if the active control being selected doesn't actually 
9255                 exist in the container, it returns
9256         
9257         * Form.cs
9258         
9259         - The ShowDialog now gets the current form as the owner when
9260         invoking without parameters, and correctly activates the owner 
9261         when returning
9262         
9263         * MessageBox.cs
9264         
9265         - MessageBox now catches the Escape key to exit
9266
9267 2006-10-20  Chris Toshok  <toshok@ximian.com>
9268
9269         * PropertyGridView.cs: fix a number of issues (bug #78565, and
9270         most of bug #79676):
9271
9272         - you can navigate around the property grid with the arrow keys.
9273
9274         - the dropdown is sized properly when the pg has a vertical
9275         scrollbar.
9276
9277         - fix the indentation for subentries, and properly select the
9278         entire label rect.
9279
9280         - fix the gray bar's drawing (only draw it to the last element,
9281         not for the height of the control.  Also make sure we draw that
9282         last horizontal grid line.
9283
9284         - use the same mechanism the datagrid uses wrt the editing textbox
9285         when scrolling/resizing/etc.  Namely, we hide it first, do the
9286         operation, then show it again (if it's still visible).
9287         
9288         - aggressively remove a lot of unnecessary refreshes (and also
9289         calls to Invalidate(). call more limited variants, and only redraw
9290         what we need.)
9291         
9292         * PropertyGrid.cs:
9293
9294         - when we're populating the merged collection, fill in the UI
9295         parent with either the passed in item, or the category item we
9296         create.
9297
9298         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
9299
9300         * GridItem.cs: drop some fully qualified names.
9301         
9302         * GridEntry.cs: add a "UIParent", which is basically the parent
9303         treenode.
9304
9305         * GridItemCollection.cs: add an IndexOf method.
9306
9307 2006-10-20  Mike Kestner  <mkestner@novell.com>
9308
9309         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
9310         a working win32 NC invalidation mechanism, we can't invalidate
9311         menus.  [Fixes #79705]
9312
9313 2006-10-20  Mike Kestner  <mkestner@novell.com>
9314
9315         * ListBox.cs : don't update the VScrollbar if the list is empty,
9316         just hide it.  [Fixes #79692]
9317
9318 2006-10-20  Jackson Harper  <jackson@ximian.com>
9319
9320         * RichTextBox.cs: Handle some special chars better, and don't skip
9321         the entire group when we encounter a special char that we don't
9322         handle correctly.
9323
9324 2006-10-18  Chris Toshok  <toshok@ximian.com>
9325
9326         * PropertyGridView.cs: address a number of issues from bug #79676,
9327         mostly of the cosmetic variety.
9328
9329         - The highlight rectangle for indented items not extends all the
9330         way to the left.
9331
9332         - Indented items aren't indented so much.
9333
9334         - the dropdown is properly sized width-wise if the pg has a
9335         vertical scrollbar.
9336
9337 2006-10-18  Chris Toshok  <toshok@ximian.com>
9338
9339         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
9340         systray stuff is rather convoluted to begin with.
9341
9342         systray icons are a single window for some reason (that I haven't
9343         figured out yet), and for them, client_window == whole_window.
9344         Given the way the tests are structured elsewhere to determine
9345         which paints are pending (client vs. nc), that situation will
9346         always yield PAINT, not NCPAINT.  So, if we have a pending
9347         nc_expose and no pending expose, remove the hwnd from the paint
9348         queue, and also set nc_expose_pending to false, to keep us from
9349         blocking further expose's adding the hwnd to the paint queue.
9350
9351         phew.  like i said, a rather convoluted change.  Fixes the
9352         notifyicon repaint issues in bug #79645.
9353
9354 2006-10-18  Chris Toshok  <toshok@ximian.com>
9355
9356         * Form.cs: when getting the backcolor of the form, don't get
9357         base.BackColor, as this allows parents to influence the background
9358         color.  This breaks mdi forms.  Instead, if the background_color
9359         is empty, return the default.
9360
9361 2006-10-18  Chris Toshok  <toshok@ximian.com>
9362
9363         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
9364         to being private instead of internal static.
9365
9366         * Control.cs: remove all the stupid ParentWaitingOnRecreation
9367         crap, it wasn't working for more deeply nested controls anyway,
9368         and we already have the is_recreating flag - use that instead.
9369         Before calling DestroyHandle in RecreateHandle, recurse through
9370         the control tree setting it to true.  this returns the recreate
9371         code to much of its original simplicity, while now guaranteeing we
9372         actually recreate everything we're supposed to.  This change gets
9373         fyireporting actually showing mdi children.
9374
9375 2006-10-17  Chris Toshok  <toshok@ximian.com>
9376
9377         * Form.cs: remove some debug spew, and collapse some duplicate
9378         code at the end of SetClientSizeCore.
9379
9380         * XplatUIX11.cs: 
9381         - add some more debug spew here too wrt Destroy handling.
9382         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
9383         in Control's handling of WM_DESTROY.
9384         - Remove the handling of zombie window DestroyNotifies from the
9385         event loop - we don't need it.  Now the only DestroyNotifies we
9386         actually handle are ones generated by X.
9387         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
9388         match gtk's (functioning) handling of this. This keep metacity
9389         from leaving droppings in the form of wm borders with no window
9390         contents all over the place.
9391
9392         * Control.cs:
9393         - add a bunch of debug spew wrt control recreation.
9394         - fix a bug where we weren't tracking Visible properly on
9395         recreated hwnds.
9396         - fixed the WM_PAINT double buffer handling to support re-entrant
9397         calls (yes, i know it's gross, but it's happening to us).
9398
9399 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9400         * ThemeWin32Classic.cs: changed drawing of selected days
9401         to make them look better.
9402
9403 2006-10-16  Chris Toshok  <toshok@ximian.com>
9404
9405         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
9406         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
9407
9408         * XplatUIX11.cs: move away from using hwnd.client_dc and
9409         hwnd.non_client_dc and on to a stack of dc's (and in window's
9410         case, PAINTSTRUCT's), so we can deal with nested Paint calls
9411         without puking or not disposing of Graphics objects.
9412
9413         * XplatUIOSX.cs: same.
9414
9415         * XplatUIWin32.cs: same.
9416
9417 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9418
9419         * FileDialog.cs: Don't call on_directory_changed inside
9420           OnSelectedIndexChanged (it changes the SelectedIndex too).
9421           Instead move it to OnSelectionChangeCommitted.
9422
9423 2006-10-13  Chris Toshok  <toshok@ximian.com>
9424
9425         * XplatUIX11.cs: more Destroy work.  the current code does the
9426         following things, in order:
9427
9428         1. Enumerates all handles of all controls at or below the one
9429         being destroyed, in pre-order.  As it is doing this, it marks the
9430         handles as zombie and clears all references to them.
9431         
9432         2. calls XDestroyWindow on the window passed in.
9433
9434         3. SendMessage's WM_DESTROY to all he handles in the accumulated
9435         list.
9436
9437 2006-10-13  Chris Toshok  <toshok@ximian.com>
9438
9439         * XplatUIX11.cs: set hwnd.zombie to true before calling
9440         SendMessage (WM_DESTROY).  this keeps us from marking the new
9441         window a zombie, and also keeps us from calling sendmessage at
9442         all.
9443
9444 2006-10-13  Jackson Harper  <jackson@ximian.com>
9445
9446         * TextControl.cs: Do not show the caret and selection at the same
9447         time.  Reduces ugliness by 35%.
9448
9449 2006-10-13  Chris Toshok  <toshok@ximian.com>
9450
9451         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
9452         zombie after we do the recursive call, so we actually do call
9453         SendMessage on the children controls.
9454         (GetMessage): if we find a pending paint event for a zombie hwnd,
9455         remove the hwnd from the paint queue, or else it will always be
9456         there (and we'll effectively loop infinitely)
9457
9458 2006-10-13  Mike Kestner  <mkestner@novell.com>
9459
9460         * MenuItem.cs : add Selected format under keynav too.
9461         Fixes #79528.
9462
9463 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
9464
9465         * PropertyGrid.cs: Fixed some NRE's and small difference between our
9466         implementation and that of MS.
9467
9468 2006-10-13  Chris Toshok  <toshok@ximian.com>
9469
9470         * Control.cs (OnInvalidated) only futz with the invalid_region if
9471         the control is double buffered.  this fixes the apparent hang in
9472         the ListView unit tests.  Someone needs to make the
9473         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
9474
9475 2006-10-13  Chris Toshok  <toshok@ximian.com>
9476
9477         * PropertyGridView.cs:
9478
9479         - do a little refactoring so that only one place calls
9480         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
9481         else call that.  Also make it Refresh, since there are redraw bugs
9482         otherwise (we should take a look at that...)
9483
9484         - do a little more refactoring work to share the body of code
9485         involved with the drop down.  it was duplicated in the code
9486         dealing with the listbox handling and in the code dealing with the
9487         UITypeEditors.
9488
9489         - add a Capture to the dropdown form's control once it's
9490         displayed, and add a MouseDown handler that checks to make sure
9491         the position is inside the control.  If it's not, close the
9492         dropdown.  This fixes #78190.
9493
9494         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
9495         if the value is different than the initial value.
9496         
9497 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
9498
9499         * Control.cs: see #78650
9500         - Fixed GetNextControl for several cases:
9501                 - Changed FindFlatForward to return 
9502                 correct sibling control when more than one
9503                 control has same TabIndex as the currently 
9504                 focused one.
9505                 - Changed FindFlatBackward to loop children
9506                 from last to first and apply same logic as in
9507                 FindFlatForward
9508                 - Changed FindControlForward to search for
9509                 children when control is not a container
9510                 but has children, or search for siblings if
9511                 control is a container...
9512                 - Changed FindControlBackward   to continue
9513                 searching for child controls when hitting 
9514                 Panel-like parents
9515                 
9516         - Fixed Focus method to update ActiveControl
9517         (FocusTest.FocusSetsActive failure)
9518         
9519         * TabControl.cs:
9520         - Focus rectangle now refreshes when gaining
9521         or losing focus
9522         - Removed grab for Tab key on IsInputKey that 
9523         was keeping tab navigation from working (#78650)
9524
9525 2006-10-13  Chris Toshok  <toshok@ximian.com>
9526
9527         * PropertyGridView.cs:
9528         - Rewrite SetPropertyValue to loop over SelectedGridItem's
9529         SelectedObjects.
9530
9531         - Deal with GridItem.Value == null a few places.
9532
9533         * PropertyGrid.cs: 
9534         - replace the PopulateGridItemCollection with a pair of methods
9535         which compute the intersection of all the properties in the
9536         SelectedObjects array.  Fixes #79615.
9537
9538         - Throw ArgumentException from set_SelectedObjects if there's a
9539         null in the array.
9540
9541         - Add GetTarget method which can be used to traverse up the
9542         GridItem.Parent chain.  It depends on the assumption that
9543         selected_objects for different GridEntries are always in the same
9544         order (a safe assumption).  Use this method and loop over all the
9545         selected objects in the entry when calling RemoveValueChanged and
9546         AddValueChanged.
9547         
9548         * GridEntry.cs: Make this handle multiple selected objects.
9549         .Value returns null if not all the selected objects share the same
9550         value.
9551
9552 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
9553         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
9554           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
9555           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
9556           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
9557           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
9558         add additional functionality.
9559
9560 2006-10-12  Mike Kestner  <mkestner@novell.com>
9561
9562         * ErrorProvider.cs : new ToolTipWindow ctor sig.
9563         * HelpProvider.cs : new ToolTipWindow ctor sig.
9564         * ToolTip.cs : remove ToolTip param from Window sig since it is
9565         not used.
9566         * ToolBar.cs : add tooltip support.  Fixes #79565.
9567
9568 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9569
9570         * ComboBox.cs: move the events in set_SelectedIndex to 
9571         after the call to HighlightIndex in order to avoid 
9572         possible recursion and subsequent problems with the call
9573         to HighlightIndex and include a range check in 
9574         set_HighlightIndex. Fixes #79588
9575         
9576 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9577
9578         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
9579         to ui thread's settings instead of sunday. 
9580         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
9581
9582 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9583
9584         * DateTimePicker.cs
9585         * MonthCalendar.cs
9586         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
9587         and implement missing functionality (selecting different parts 
9588         of the date and edit them individually with the keyboard).
9589         
9590 2006-10-11  Chris Toshok  <toshok@ximian.com>
9591
9592         * Control.cs (OnInvalidated): fix NRE relating to last change.
9593
9594 2006-10-11  Chris Toshok  <toshok@ximian.com>
9595
9596         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
9597         atoms in _NET_WM_STATE here if the window is maximized.  We need
9598         to do this because we're *replacing* the existing _NET_WM_STATE
9599         property, so those atoms will be lost otherwise, and any further
9600         call to GetWindowState will return Normal for a window which is
9601         actually maximized.  Fixes #79338.
9602
9603 2006-10-11  Jackson Harper  <jackson@ximian.com>
9604
9605         * TextControl.cs: Special case for setting selection end to
9606         selection start, we basically kill the anchor.
9607         - some todo comments.
9608
9609 2006-10-11  Chris Toshok  <toshok@ximian.com>
9610
9611         * Control.cs: switch to using an "invalid_region" to track which
9612         parts of the image buffer need updating.  This is more code than
9613         the simple fix from r66532.  That version just attempted to always
9614         fill the entire buffer on redraw, which turns out to be
9615         inefficient when invalidating small rectangles.  This version
9616         simply adds the invalid rectangle to the invalid region.  When we
9617         get any WM_PAINT message we see if it can be filled using the
9618         image buffer, and if it can't (if the paint event's clip rectangle
9619         is visible in the invalid region) we first fill the image buffer.
9620         So, the image buffer is still a cache, we just fill it lazily.
9621
9622         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
9623         need it any longer.
9624
9625 2006-10-11  Chris Toshok  <toshok@ximian.com>
9626
9627         * XplatUIX11.cs (SetWindowPos): we need to update both position as
9628         well as size after calling XMoveResizeWindow.  This keeps us from
9629         ignoring future SetWindowPos calls.  Fixes the disappearing
9630         DateTimePicker in the ToolBarDockExample from bug #72499.
9631
9632 2006-10-11  Chris Toshok  <toshok@ximian.com>
9633
9634         * TextBoxBase.cs: reorder things a bit when it comes to
9635         resizing-causing-recalculation.  we were recalculating the
9636         document when our position was changed, which shouldn't happen.
9637         We only care about size changes.  Clear up some more redundant
9638         recalculation calls while I'm at it.  This makes the toolbar dock
9639         example snappy when you're just dragging toolbars around (since it
9640         causes a relayout whenever you move one.)
9641
9642 2006-10-11  Chris Toshok  <toshok@ximian.com>
9643
9644         * ToolBarButton.cs (get_Rectangle): this only returns
9645         Rectangle.Empty if Visible == false, or Parent == null.
9646         Parent.Visible doesn't matter.
9647
9648 2006-10-10  Chris Toshok  <toshok@ximian.com>
9649
9650         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
9651         by .net 1.1, so switch to an internal method instead.
9652
9653 2006-10-10  Chris Toshok  <toshok@ximian.com>
9654
9655         * Control.cs (WM_PAINT): when a control is double buffered we draw
9656         initially to the ImageBuffer and then copy from there.  But when a
9657         parent control which has child controls is double buffered, the
9658         initial drawing doesn't encompass the entire ClientRectangle of
9659         the parent control, so we end up with uninitialized bits (this is
9660         easily seen by dragging the top toolbar in
9661         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
9662         manually set the ClipRectangle of the paint_event (only the one we
9663         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
9664         of the nastiness in bug #72499.
9665
9666         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
9667         which we use in Control.cs's WM_PAINT handling.
9668
9669 2006-10-10  Jackson Harper  <jackson@ximian.com>
9670
9671         * TextBoxBase.cs: Finish off the autoscrolling stuff.
9672
9673 2006-10-10  Chris Toshok  <toshok@ximian.com>
9674
9675         * Cursor.cs: Apply a slightly different patch to the one suggested
9676         in #79609.
9677
9678 2006-10-10  Jackson Harper  <jackson@ximian.com>
9679
9680         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
9681         not the parent form.
9682         * TextControl.cs: use difference in old line count vs new count to
9683         calculate how many lines were added, this takes into account soft
9684         line breaks properly.
9685
9686 2006-10-10  Chris Toshok  <toshok@ximian.com>
9687
9688         * LinkLabel.cs: don't call MeasureCharacterRanges against a
9689         rectangle located at 0,0 and the size of the text.  Use
9690         ClientRectangle instead.  This fixes rendering of non-left aligned
9691         link labels.
9692
9693 2006-10-10  Jackson Harper  <jackson@ximian.com>
9694
9695         * TextBoxBase.cs: When we set the selection start position the
9696         caret.
9697         * TextControl.cs: Need to update the caret when we decrement it to
9698         zero.
9699         - Make sure that the selection_visible flag gets reset to false if
9700         the selection isn't visible.  Before this you could get it set to
9701         visible by changing the selection start, then changing the end to
9702         equal the start.
9703
9704 2006-10-09  Jackson Harper  <jackson@ximian.com>
9705
9706         * TreeView.cs: Don't update scrollbars when we aren't visible.
9707         * TreeNodeCollection.cs: Only need to update scrollbars if being
9708         added to an expanded visible node or the root node.
9709
9710 2006-10-09  Chris Toshok  <toshok@ximian.com>
9711
9712         * XplatUIX11.cs (SendMessage): fix NRE.
9713
9714 2006-10-09  Jackson Harper  <jackson@ximian.com>
9715
9716         * TextBoxBase.cs: Implement horizontal autoscrolling.
9717         * TextControl.cs: Add a movement types that allows moving forward
9718         and backwards without wrapping.
9719
9720 2006-10-09  Mike Kestner  <mkestner@novell.com>
9721
9722         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
9723         with focus "expansion" of labels.  Fixes #79532 and then some.
9724         * ThemeWin32Classic.cs : add LineLimit to ListView label format
9725         when wrapping.
9726
9727 2006-10-09  Jackson Harper  <jackson@ximian.com>
9728
9729         * TextBoxBase.cs: Set the default max values to MaxValue since
9730         we use the scrollbar for autoscrolling and the default value is
9731         100.  If we don't do this the caret won't keep up with typing
9732         after about 18 characters.
9733         * TextControl.cs: Make sure the selection is offset by the
9734         viewport x.  This fixes selection when using auto scrolling.
9735
9736 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
9737         
9738         * Form.cs: The active control should be selected after the 
9739         OnLoad so that any child control initialization that affects
9740         the selection is done. Fixes #79406
9741
9742 2006-10-06  Chris Toshok  <toshok@ximian.com>
9743
9744         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
9745         to have no evil effects.
9746
9747         - Stop selecting StructureNotifyMask on non-toplevel windows.
9748
9749           The only way children should be resized is by using the SWF api,
9750           and we already send WM_WINDOWPOSCHANGED messages in those cases.
9751           Toplevel windows can be interacted with via the window manager,
9752           and so we keep the input mask there.
9753
9754           The other event StructureNotifyMask gives us (that we care
9755           about) is DestroyNotify.  The code is already structured such
9756           that it assumes we won't be getting a DestroyNotify event for
9757           the window we pass to XDestroyWindow (which is what
9758           StructureNotifyMask is supposed to guarantee.)  So, that code
9759           shouldn't be affected by this either.
9760
9761         - Stop selecting VisibilityChangeMask altogether.
9762
9763           We weren't doing anything with the resulting events anyway.
9764         
9765         This vastly reduces the number of X requests and events we see
9766         when resizing/laying out a large ui.
9767
9768 2006-10-06  Chris Toshok  <toshok@ximian.com>
9769
9770         * ScrollableControl.cs (DisplayRectangle): we need to take into
9771         account the DockPadding regardless of whether or not auto_scroll
9772         == true.  rework this slightly to this effect, and fix bug #79606,
9773         and part of #72499 (you can now see the drag handles and drag
9774         toolbars around).
9775
9776 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
9777
9778         * ListViewItem.cs: Collections of selected and checked items are now
9779         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
9780         we mark the collection "dirty".
9781         * ListView.cs: Marked collections readonly. Modified UpdateSelection
9782         to only clear SelectedItems when a new item is selected and MultiSelect
9783         is enabled. CheckedItems and SelectedItems now subscribe to Changed
9784         event of ListViewItemCollection, and mark its list dirty whenever
9785         that event is fire. This allows us to return selected/checked items 
9786         in the same order as they are in the Items collection. This matches
9787         the MS behavior.
9788
9789 2006-10-06  Chris Toshok  <toshok@ximian.com>
9790
9791         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
9792         right mouse clicks.  Fixes bug #79593.
9793
9794 2006-10-06  Chris Toshok  <toshok@ximian.com>
9795
9796         * Splitter.cs: doh, fix splitters that don't want to cancel the
9797         movement when you drag them.  Also, impose the limits on the
9798         values we send to the SplitterMovingEvent.  Fixes #79598.
9799
9800 2006-10-06  Jackson Harper  <jackson@ximian.com>
9801
9802         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
9803         since we use this for auto scrolling also.
9804
9805 2006-10-05  Chris Toshok  <toshok@ximian.com>
9806
9807         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
9808         beginning to think that most datagrid column types don't need this
9809         method.  Fixes bug #79392.
9810
9811 2006-10-05  Chris Toshok  <toshok@ximian.com>
9812
9813         * DataGrid.cs: move back to a more lazy scheme for creating the
9814         CurrencyManager, so we aren't updating it every time you set
9815         either DataSource or DataMember.  Also, don't call
9816         RecreateDataGridRows if the currency manager hasn't changed.
9817
9818 2006-10-05  Chris Toshok  <toshok@ximian.com>
9819
9820         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
9821         emitted, SelectedIndex should already be updated.  Fixes bug
9822         #78929.
9823
9824 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
9825
9826         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
9827           ToolStripTextBox.cs: Initial commit.
9828         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
9829
9830 2006-10-05  Jackson Harper  <jackson@ximian.com>
9831
9832         * TabControl.cs: We need to invalidate the tab control area when
9833         new ones are added (duh).
9834
9835 2006-10-03  Chris Toshok  <toshok@ximian.com>
9836
9837         * Form.cs (ProcessDialogKey): if the focused control is in this
9838         form and is a button, call its PerformClick method here.  Fixes
9839         #79534.
9840
9841 2006-10-04  Jackson Harper  <jackson@ximian.com>
9842
9843         * TabPage.cs: Ignore setting of Visible, and add an internal
9844         method for setting the controls visibility.  TabPage's Visible
9845         property is a little strange on MS, this seems to make us
9846         compatible, and fixes cases where people set all the tab pages to
9847         visible.
9848         * TabControl.cs: Use the new internal setting on tab pages
9849         visibility.
9850
9851 2006-10-03  Mike Kestner  <mkestner@novell.com>
9852
9853         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
9854
9855 2006-10-03  Mike Kestner  <mkestner@novell.com>
9856
9857         * ListView.cs : use is_visible instead of Visible to check if 
9858         scrollbars should be placed/sized.  Also some max_wrap_width
9859         love for LargeIcon view.  [Fixes #79533]
9860
9861 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
9862
9863         * TextControl.cs :
9864           Make set_TextAlign() do actually update the align. Fixed #78403.
9865
9866 2006-10-03  Chris Toshok  <toshok@ximian.com>
9867
9868         * DataGrid.cs: fix a crash when switching datasources if the
9869         vertical scrollbar is at someplace other than Value = 0.  Also,
9870         reduce the number of recalculation passes we do in SetDataSource
9871         from 2 to 1.
9872
9873 2006-10-03  Jackson Harper  <jackson@ximian.com>
9874
9875         * TextBoxBase.cs: Move the if value the same bail check up, we
9876         don't want to empty the document if it is already empty, this
9877         seems to severly mess up the caret.  TODO: I should probably fix
9878         the empty statement to update teh caret somehow.
9879
9880 2006-10-03  Chris Toshok  <toshok@ximian.com>
9881
9882         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
9883         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
9884         reflection, an internal row type, properties on said type, etc.)
9885         will work with our datagrid.  Fixes #79531.
9886
9887 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9888
9889         * FileDialog.cs: Don't crash if a path is not accessible
9890           (System.UnauthorizedAccessException). Fixes #79569.
9891         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
9892           a ':' too. Return unknown icon for those paths/files.
9893
9894 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
9895
9896         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
9897         GetContainerControl returns null.
9898
9899 2006-10-02  Chris Toshok  <toshok@ximian.com>
9900
9901         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
9902         call to XGetWindowAttributes instead of "handle".  fixes an X
9903         error using notifyicon after the NotifyIconWindow to Form base
9904         class switch.
9905
9906 2006-10-02  Chris Toshok  <toshok@ximian.com>
9907
9908         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
9909         server grab and looping we need to do to get down to the most
9910         deeply nested child window.
9911         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
9912         QueryPointer again after the WarpPointer so we can generate a
9913         proper (fake) MotionNotify event to be enqueued in the destination
9914         window's queue.
9915         (GetCursorPos): call QueryPointer.
9916
9917         Fixes #79556.
9918
9919 2006-10-02  Jackson Harper  <jackson@ximian.com>
9920
9921         * NotifyIcon.cs: Derive the notify icon from a form, so things
9922         like FindForm work on it.
9923         - Swallow the WM_CONTEXTMENU message, since that is generated on
9924         mouse down, and context menu is a mouse up kinda guy.  I believe
9925         the correct fix here is probably to make the notify icon entirely
9926         NC area, but this seems to work fine for anyone not manipulating
9927         WndProc.
9928
9929 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
9930
9931         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
9932           ToolStripItemCollection.cs, ToolStripLabel.cs,
9933           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
9934           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
9935           Initial implementation.
9936         * TextRenderer.cs: Provide padding to MeasureText.
9937
9938 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
9939
9940         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
9941         of ButtonBaseAccessibleObject. Fix bug #79552.
9942
9943 2006-10-02  Jackson Harper  <jackson@ximian.com>
9944
9945         * MdiWindowManager.cs: When maximizing use the containers client
9946         rect, not it's bounds, so nc area is accounted correctly.
9947         - Use the parent form's size for the menu position, since the
9948         client isn't always the full form size.
9949
9950 2006-10-01  Chris Toshok  <toshok@ximian.com>
9951
9952         * ScrollableControl.cs: make sure neither right_edge or
9953         bottom_edge are < 0, since they're used as LargeChange for the
9954         horiz/vert scrollbars respectively.  Fixes #79539.
9955
9956 2006-10-01  Chris Toshok  <toshok@ximian.com>
9957
9958         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
9959         the xplatuix11 code can cause us to destroy/recreate our handle.
9960
9961         * XplatUIX11.cs
9962         (SystrayAdd):
9963         - this code can be invoked many times for the same Hwnd.  Make
9964           sure we only destroy the client window once (the first time this
9965           method is called).  This fixes bug #79544.
9966         - Remove the call to the improperly bound XSync.  why we had two
9967           bindings to this, I will never know, but this call resulted in
9968           events being discarded from the queue(!).
9969         - correct a misunderstanding of _XEMBED_INFO - the second atom is
9970           not our current state but the state we wish to be in.  So, 0 if
9971           we don't want to be mapped.  Change it to 1.
9972         (SystrayRemove): The XEMBED spec makes mention of the fact that
9973         gtk doesn't support the reparent of client windows away from the
9974         embedder.  Looking at gtksocket-x11.c seems to agree with this.
9975         The only avenue we have for removing systray icons is to destroy
9976         them.  We don't want the handle to go away for good, though, so
9977         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
9978         #79545.
9979         
9980 2006-10-01  Chris Toshok  <toshok@ximian.com>
9981
9982         * Form.cs (WndProc): inline the native_enabled variable usage into
9983         the cases in which it's used.  Fixes #79536.
9984
9985 2006-09-29  Mike Kestner  <mkestner@novell.com>
9986
9987         * ListView.cs : toggle the selection state for ctrl clicks in 
9988         multiselect mode. [Fixes #79417]
9989
9990 2006-09-29  Mike Kestner  <mkestner@novell.com>
9991
9992         * ListView.cs : kill CanMultiSelect and refactor the selection
9993         code to support multiselection in the absence of mod keys. Steal
9994         arrow/home/end keys by overriding InternalPreProcessMessage to
9995         restore regressed keynav behavior.
9996         [Fixes #79416]
9997
9998 2006-09-29  Jackson Harper  <jackson@ximian.com>
9999
10000         * MdiClient.cs: Repaint the titlebars when the active window is
10001         changed.
10002
10003 2006-09-29  Chris Toshok  <toshok@ximian.com>
10004
10005         * Application.cs: when entering a runloop with a modal, make sure
10006         the hwnd is enabled.  Fixes #79480.
10007
10008 2006-09-29  Chris Toshok  <toshok@ximian.com>
10009
10010         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
10011         when ListManager.CanAddRows == false, bump us back one.
10012
10013         * DataGridColumnStyle.cs (ParentReadOnly): remove the
10014         listmanager.CanAddRows check.  This makes ArrayLists uneditable
10015         using a datagrid, which is not right.
10016         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
10017         is an IEditable, but call property_descriptor.SetValue regardless.
10018         fixes #79435.
10019
10020 2006-09-29  Chris Toshok  <toshok@ximian.com>
10021
10022         * DataGridBoolColumn.cs: we need to test equality in the face of
10023         possible null values (as is the case with the default NullValue).
10024         This patch keeps us from crashing in that case.
10025
10026 2006-09-29  Jackson Harper  <jackson@ximian.com>
10027
10028         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
10029         here, since it will get called for every node collection in the
10030         tree. This is now done in the treeview once the sorting is
10031         finished.
10032         * TreeView.cs: Recalculate the visible order, and update the
10033         scrollbars after sorting, set the top nope to the root so that the
10034         recalc actually works.
10035
10036 2006-09-29  Chris Toshok  <toshok@ximian.com>
10037
10038         * LinkLabel.cs: more handling of the default link collection in
10039         the face of LinkArea manipulation.  The default link collection
10040         contains 1 element (start=0,length=-1).  If the user sets LinkArea
10041         to anything and the links collection is the default, clear it.
10042         Then only add the link if its nonempty.  Fixes #79518.
10043
10044 2006-09-29  Chris Toshok  <toshok@ximian.com>
10045
10046         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
10047         piece correctly when we hit a '\n'.  Fixes #79517.
10048
10049 2006-09-29  Chris Toshok  <toshok@ximian.com>
10050
10051         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
10052         change the binding of gdk_init_check to take two IntPtr's, and
10053         pass IntPtr.Zero for both of them.  Fixes #79520.
10054
10055 2006-09-29  Mike Kestner  <mkestner@novell.com>
10056
10057         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
10058         [Fixes #78779]
10059
10060 2006-09-28  Jackson Harper  <jackson@ximian.com>
10061
10062         * XplatUIX11.cs: When translating NC messages make sure we go from
10063         whole window to screen, not client window to screen.
10064         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
10065         method doesn't exist
10066         - Skip over controls that aren't forms when arranging.
10067
10068 2006-09-28  Jackson Harper  <jackson@ximian.com>
10069
10070         * XplatUIWin32.cs: Clip the rect to the parent window.
10071         * XplatUIStructs.cs: Add clipping modes struct.
10072         * InternalWindowManager.cs: New private method that factors title
10073         bar heights in when calculating the pos of an NC mouse message.
10074         - Use SendMessage to force a paint when the form's size is changed
10075         instead of painting the decorations immediately.
10076         - Don't let the NC button click messages get to DefWndProc,
10077         because they will attempt to handle windowing themself, and this
10078         messes up z-order (it will put them in front of the scrollbars).
10079         * XplatUIX11.cs: Make sure that we don't reset window managers if
10080         we already have one (ie the window is an MDI window).
10081
10082 2006-09-28  Chris Toshok  <toshok@ximian.com>
10083
10084         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
10085         menu code really needs going over.
10086
10087 2006-09-27  Chris Toshok  <toshok@ximian.com>
10088
10089         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
10090         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
10091         window is maximizable.  So, we need to make sure that even if we
10092         clear the border/wm frame of those functions, they're still
10093         available (basically, we remove the decoration without removing
10094         the function).  Half the fix for #79338.
10095
10096 2006-09-27  Chris Toshok  <toshok@ximian.com>
10097
10098         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
10099         Fixes bug #79515.
10100
10101 2006-09-27  Chris Toshok  <toshok@ximian.com>
10102
10103         * Splitter.cs: reorder things a bit so that we don't actually
10104         draw/move the splitter until after calling OnSplitterMoving.  This
10105         lets users cancel/disallow the movement by explicitly setting
10106         event.SplitX/SplitY.  Fixes #79372.
10107
10108 2006-09-27  Jackson Harper  <jackson@ximian.com>
10109
10110         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
10111         because it is most likely on a window being destroyed, and that
10112         will give us an X11 error.
10113
10114 2006-09-27  Chris Toshok  <toshok@ximian.com>
10115
10116         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
10117         the dropdown button now toggles between showing and hiding the
10118         dropdown.  Also, get rid of dropdown_form_showing and just use
10119         dropdown_form.Visible.  We still don't do a grab, but I'll leave
10120         that part to someone who has handled Capture-fu before.
10121
10122 2006-09-27  Chris Toshok  <toshok@ximian.com>
10123
10124         * DataGrid.cs: return false if alt isn't pressed when '0' is
10125         pressed.  this keeps the '0' key from being swallowed, and fixes
10126         bug #79350.
10127
10128 2006-09-27  Chris Toshok  <toshok@ximian.com>
10129
10130         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
10131         Calling Refresh (in response to a scrollbar event) screws up the
10132         scrollbar painting.  Fixes bug #78923.
10133
10134 2006-09-27  Chris Toshok  <toshok@ximian.com>
10135
10136         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
10137         then insert into hashtable" blocks threadsafe.
10138
10139 2006-09-27  Chris Toshok  <toshok@ximian.com>
10140
10141         * MessageBox.cs (CreateParams): the styles should be |'ed with our
10142         baseclass's, since otherwise the
10143         ControlBox/MinimizeBox/MaximizeBox assignments above have no
10144         effect.  This gets the close button back in messageboxes.
10145
10146 2006-09-27  Chris Toshok  <toshok@ximian.com>
10147
10148         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
10149         flag, not just != 0.  this makes flags that are actually multiple
10150         bits (like WS_CAPTION) work.  fixes bug #79508.
10151
10152 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
10153
10154         * PageSetupDialog.cs: add support for getting and settings the 
10155         paper size, source and orientation.
10156
10157 2006-09-26  Chris Toshok  <toshok@ximian.com>
10158
10159         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
10160         and caption == "", we need to remove the resize handles as well as
10161         the title bar.
10162
10163         * Control.cs (set_Text): turns out that setting Text on a form
10164         should change the WM styles on the window, since if ControlBox ==
10165         false, the only way to get a window border is to have a non-""
10166         Text property.  check winforms/forms/text.cs for an example.  so,
10167         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
10168         update both window styles and title.  This fixes a lot of dialogs
10169         (including the preferences dialog in MonoCalendar.)
10170
10171 2006-09-26  Chris Toshok  <toshok@ximian.com>
10172
10173         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
10174         control isn't a Form), call Win32ShowWindow to hide the window,
10175         but don't update the control Visible property.  When we reparent
10176         back to a parent control, call SetVisible in order for the
10177         window's visibility to be reinstated.
10178
10179         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
10180         the FosterParent.
10181
10182         * Control.cs (ControlCollection.Remove): remove that value.Hide()
10183         call for good, since it breaks MonoCalendar (and other things I'm
10184         sure.) Also, set all_controls to null *after* the owner calls,
10185         which end up regenerating it.
10186         (ChangeParent): allow new_parent to be == null, passing
10187         IntPtr.Zero down to XplatUI.
10188
10189         this fixes #79294 the right way.
10190
10191 2006-09-26  Mike Kestner  <mkestner@novell.com>
10192
10193         * GridEntry.cs : internal SetParent method.
10194         * PropertyGrid.cs : attach to property changed on the proper
10195         target if we have a hierarchical grid with subobjects. Setup
10196         GridItem.Parent for hierarchical items.
10197         * PropertyGridView.cs : Set value on the correct target for
10198         hierarchical grids. [Fixes #78903]
10199
10200 2006-09-26  Chris Toshok  <toshok@ximian.com>
10201
10202         * Control.cs (ChildNeedsRecreating): this should return true if
10203         either we're being recreated and the child is in our list, or our
10204         parent is waiting for our recreation.
10205
10206 2006-09-26  Chris Toshok  <toshok@ximian.com>
10207
10208         * Control.cs (ControlCollection.Remove): reinstate the
10209         value.Hide() call as suggested in bug #79294.
10210
10211 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
10212
10213         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
10214         coordinates (versus a relative move).
10215
10216 2006-09-26  Chris Toshok  <toshok@ximian.com>
10217
10218         * Control.cs: rework child recreation a little bit.  It turns out
10219         that we race between the DestroyNotify the WM_DESTROY message.  If
10220         the parent gets its DestroyNotify before the child gets the
10221         WM_DESTROY message, the child ends up not recreating (since the
10222         parent finishes its recreation on DestroyNotify, and the child
10223         checks ParentIsRecreating.)
10224
10225         So, instead we store off a list of all the child controls which
10226         need to be recreated when the parent control starts to recreate
10227         itself.  Then, when child controls get their WM_DESTROY message we
10228         check to see if they're in the parent's pending recreation list,
10229         and if so, we recreate.  This removes all dependency on ordering
10230         from the code and fixes the initial MonoCalendar upgrade dialog.
10231         
10232 2006-09-26  Jackson Harper  <jackson@ximian.com>
10233
10234         * TextControl.cs: Use the Line to get the length of the line,
10235         since soft line breaks can change the end line.
10236
10237 2006-09-26  Chris Toshok  <toshok@ximian.com>
10238
10239         * Control.cs (ControlCollection.AddImplicit): don't add the
10240         control again if it's already in one of our lists.  This keeps us
10241         from adding controls over and over again for comboboxes when their
10242         handle gets recreated (as the combobox adds implicit controls in
10243         OnHandleCreated).  Fixes the X11 errors in bug #79480.
10244
10245 2006-09-26  Jackson Harper  <jackson@ximian.com>
10246
10247         * TextControl.cs: When deleting characters make sure that any
10248         orphaned zero lengthed tags get deleted.
10249         - Fix ToString for zero lengthed tags.
10250
10251 2006-09-25  Jackson Harper  <jackson@ximian.com>
10252
10253         * TextControl.cs: When getting a tag at the location there can be
10254         multiple tags at the same spot, these are 0-lengthed tags that
10255         appear when extra formatting has been stuck in a location.  We
10256         need to pull out the last of these 0 lengthed tags.
10257
10258 2006-09-25  Jackson Harper  <jackson@ximian.com>
10259
10260         * TextControl.cs: Fix print out in debug method.
10261         * TextBoxBase.cs: When text is set bail if we are setting to the
10262         previous value.
10263         
10264 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
10265
10266         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
10267           It is now possible to change the selected index in a FontXXXListBox
10268           with the up and down arrow keys from the FontXXXTextBoxes.
10269           Also, send the FontXXXTextBox mouse wheel event to the corresponding
10270           FontXXXListBoxes to match ms.
10271
10272 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
10273
10274         * SystemInformation.cs: Return a clone of the theme's MenuFont because
10275         anyone can dispose it, anytime. All other properties returns enums, 
10276         structs or basic types so they don't need such tricks.
10277
10278 2006-09-22  Jackson Harper  <jackson@ximian.com>
10279
10280         * XplatUI.cs:
10281         * XplatUIWin32.cs:
10282         * Clipboard.cs:
10283         * DataFormats.cs:
10284         * XplatUIOSX.cs:
10285         * XplatUIDriver.cs: Update interface to add a primary selection
10286         flag, so the driver can use the primary selection buffer if
10287         needed.
10288         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
10289
10290         * RichTextBox.cs: We need to supply the data object to paste now
10291         (so we can choose to supply CLIPBOARD or PRIMARY).
10292         * TextBoxBase.cs: Supply data object to paste (see above).
10293         - Middle click uses the primary selection data object.
10294         
10295 2006-09-21  Chris Toshok  <toshok@ximian.com>
10296
10297         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
10298         of SetWMStyles.  It's still a rat's nest and is largely
10299         order-dependent which I dislike immensely.  This also fixes the X
10300         button disappearing from toplevel forms.
10301
10302 2006-09-21  Mike Kestner <mkestner@novell.com>
10303
10304         * ListBox.cs: move Jordi's click/dblclick raising code to the
10305         mouse up handler.
10306
10307 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10308
10309         * ListBox.cs: Fixes 79450
10310
10311 2006-09-21  Mike Kestner <mkestner@novell.com>
10312
10313         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
10314         to deal with people updating the TreeNodeCollection after the tree
10315         is disposed.  "Fixes" 79330.
10316
10317 2006-09-20  Jackson Harper <jackson@ximian.com>
10318
10319         * TextControl.cs: Push the cursor record onto the undo stack
10320         before the delete action. This fixes 78651.
10321
10322 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
10323
10324         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
10325         CreateParams. Fixes 79329.
10326
10327 2006-09-19  Chris Toshok  <toshok@ximian.com>
10328
10329         * XplatUIX11.cs: a couple of blanket code massage passes to clean
10330         things up a bit.  First, get rid of the NetAtoms array (and the NA
10331         enum), and just embed the atoms as static fields.  Also, add a
10332         couple of functions (StyleSet and ExStyleSet) to clean up all the
10333         bitmask testing of styles.
10334
10335         * X11Structs.cs: remove the NA enum, not needed anymore.
10336         
10337 2006-09-19  Chris Toshok  <toshok@ximian.com>
10338
10339         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
10340         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
10341         added cleanup to get MessageBox titles appearing again, which were
10342         broken by my earlier fix for caption-less/ControlBox-less windows.
10343
10344 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
10345
10346         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
10347           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
10348           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
10349           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
10350           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
10351           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
10352           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
10353           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
10354           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
10355           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
10356           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
10357             Inital import.
10358         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
10359           ToolStripButton.cs: Stubs needed for above.
10360         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
10361
10362 2006-09-15  Chris Toshok  <toshok@ximian.com>
10363
10364         * XplatUIX11.cs:
10365         - make the MessageQueues hashtable Synchronized.
10366         
10367         - SendMessage: if the Hwnd is owned by a different thread, use the
10368         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
10369         thread.  Fixes bug #79201.
10370
10371 2006-09-15  Chris Toshok  <toshok@ximian.com>
10372
10373         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
10374         ControlBox == false, we disallow maximize/minimize/close.  If the
10375         form Caption is "" we also disallow move (and get rid of the Title
10376         decoration).  Unfortunately, regardless of how things are set,
10377         we're stuck with the Title and WM menu.
10378
10379 2006-09-15  Chris Toshok  <toshok@ximian.com>
10380
10381         * Application.cs: add locking around the static message_filters
10382         ArrayList, part of #79196.
10383
10384 2006-09-15  Chris Toshok  <toshok@ximian.com>
10385
10386         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
10387         Form.ControlBox == false, the window has no titlebar nor resize
10388         handles.  fixes bug #79368.
10389
10390 2006-09-15  Chris Toshok  <toshok@ximian.com>
10391
10392         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
10393         >= 0.  Fixes bug #79370.
10394
10395 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
10396         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
10397         * Control.cs:
10398             Add properties: LayoutEngine, Margin, DefaultMargin.
10399             Add method: GetPreferredSize.
10400             Move layout logic from PerformLayout to layout engines. 
10401
10402 2006-09-13  Chris Toshok  <toshok@ximian.com>
10403
10404         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
10405         fix for #79326 broke #78718, so this change addresses that.
10406
10407         - in SendWMDestroyMessages remove the call to
10408         CleanupCachedWindows, since we might be recreating the control and
10409         need to maintain the references to right Hwnd handles.  Also, set
10410         the zombie flag to true for each of the children in the hierarchy
10411         instead of calling hwnd.Dispose.  This will cause GetMessage to
10412         ignore all events for the window except for DestroyNotify.
10413
10414         - In GetMessage, ignore messages except for DestroyNotify for
10415         zombie hwnds.
10416         
10417         * Control.cs: revert the is_recreating fix from the last
10418         ChangeLog.  It's definitely "right", but it breaks switching from
10419         an MDI form to a non-MDI form.  Will need to revisit that.
10420
10421         * Hwnd.cs: add a zombie flag, which means "the
10422         client_window/whole_window handles are invalid, but we're waiting
10423         for the DestroyNotify event to come in for them".  Set the flag to
10424         false explicitly if setting WholeWindow/ClientWindow, and also
10425         when Disposing.
10426         
10427 2006-09-13  Chris Toshok  <toshok@ximian.com>
10428
10429         * XplatUIX11.cs: rework window destruction slightly.
10430
10431         - when destroying the windows associated with a control, we don't
10432         need 2 separate XDestroyWindow calls.  Just the one for the
10433         whole_window (or for client_window if whole_window is somehow
10434         IntPtr.Zero -- can this happen?) is enough.
10435
10436         - reworked SendWMDestroyMessages slightly, so we always dispose
10437         the child control hwnd's after sending the messages.
10438         
10439         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
10440         the two places it was used (one was even using hwnd.Handle and the
10441         other hwnd.client_window.  ugh), adding another call in
10442         SendWMDestroyMessages.  We need this new call because now the
10443         DestroyNotify events in the queue will be ignored for the child
10444         controls (as their hwnd's were disposed, and the window id's
10445         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
10446
10447         - this fixes bug #79326.
10448
10449 2006-09-13  Chris Toshok  <toshok@ximian.com>
10450
10451         * Control.cs: don't always set is_recreating to false at the end
10452         of RecreateHandle, since sometimes we're not done (and won't be
10453         until WndProc handles the WM_DESTROY message).  Also, set
10454         is_recreating to false in the WM_DESTROY handling code.  Part of
10455         the fix for bug #79326.
10456
10457 2006-09-13  Miguel de Icaza  <miguel@novell.com>
10458
10459         * X11DesktopColors.cs: Start the droppage of debugging messages.
10460
10461         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
10462
10463 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
10464
10465         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
10466
10467 2006-09-12  Chris Toshok  <toshok@ximian.com>
10468
10469         * DataGrid.cs (get_ListManager): if the list_manager is null, try
10470         to create it using SetDataSource.  Fixes bug #79151.
10471
10472 2006-09-11  Chris Toshok  <toshok@ximian.com>
10473
10474         * XEventQueue.cs: add a DispatchIdle property.
10475
10476         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
10477         either the queue is null, or the queue has DispatchIdle set to
10478         true.
10479         (DoEvents): set queue.DispatchIdle to false around the
10480         peek/translate/dispatch message loop in this method.  This keeps
10481         Application.Doevents from emitting idle events.  Part of the fix
10482         for #78823.
10483
10484 2006-09-11  Chris Toshok  <toshok@ximian.com>
10485
10486         * DataGrid.cs (set_DataSource): make this work for both the
10487         winforms/datagrid test and ReportBuilder.  It seems as though when
10488         we've created a ListManager (or maybe it's if we have a
10489         BindingContext?), when we set the DataSource it clears the
10490         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
10491         #79333.
10492
10493 2006-09-11  Chris Toshok  <toshok@ximian.com>
10494
10495         * XplatUIX11.cs: deal with queue being null, which happens in all
10496         the Clipboard functions.  Fixes one of the two problems mentioned
10497         in #78612.
10498
10499 2006-09-11  Chris Toshok  <toshok@ximian.com>
10500
10501         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
10502         button on various spots (including outside the menu) works closer
10503         to MS, and doesn't crash.  Fixes #79343.
10504
10505 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
10506
10507         * ListView.cs: Do not initialize item_sorter in init. To match MS,
10508         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
10509         and the internal comparer is set. When a new ListViewItemSorter is set,
10510         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
10511         was specified. No further processing is necessary if SortOrder is set
10512         to it's current value. If Sorting is modified to None, and View is
10513         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
10514         (either custom or our internal ItemComparer) to null, on 1.0 profile
10515         only set item_sorter to null if its our internal IComparer. If Sorting
10516         is modified to Ascending or Descending, then use our internal IComparer
10517         if none is set, and if the current IComparer is our internal one then:
10518         on 2.0 profile always replace it with one for new Sorting, and on 1.0
10519         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
10520         Enum.IsDefined to verify whether a valid View value is specified in
10521         its setter. Automatically sort listview items when listview is
10522         created. In Sort, do nothing if ListView is not yet created, or if
10523         no item_sorter is set (no Sorting was set, Sorting was explicitly set
10524         to None or ListViewItemSorter was set to null). Added Sort overload
10525         taking a bool to indicate whether the ListView should be redrawn when
10526         items are sorted (we use this in ListViewItemCollection to avoid double
10527         redraws). Modified our internal IComparer to take the sort order into
10528         account. In Add and AddRange methods of ListViewItemCollection, also
10529         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
10530         view), but use overload with noredraw option to avoid double redraw.
10531         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
10532         true when View is Tile, and do the same when attempting to set View to
10533         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
10534         for selected/checked indices, as it involves overhead when sorting is
10535         done while these collections are not used all that often. Instead
10536         we'll build the indices on demand. Modified IList implementation of
10537         CheckedIndexCollection to use public methods if object is int.
10538         Modified CheckedListViewItemCollection to hide checked items if
10539         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
10540         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
10541         IList implementation in SelectedIndexCollection to use public methods
10542         if object is int. Modified SelectedListViewItemCollection to hide
10543         selected items if listview is not yet created.
10544         * ListViewItem.cs: CheckedIndices list no longer needs to be
10545         maintained separately (see ListView changes). Also clone font, fixes
10546         test failure.
10547
10548 2006-09-11  Mike Kestner  <mkestner@novell.com>
10549
10550         * ComboBox.cs: if we are updating the contents of the currently
10551         selected index, refresh the control or the textbox selection.
10552         [Fixes #79066]
10553
10554 2006-09-11  Mike Kestner  <mkestner@novell.com>
10555
10556         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
10557         the 'specified' logic has been moved there.  This seems like a bug 
10558         in Control.cs, since our current SetBoundsCore completely ignores 
10559         the specified parameter.  Peter's commit seems to indicate that is 
10560         the way the MS control implementation works.  [Fixes #79325]
10561
10562 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
10563
10564         * XplatUI.cs: Set default_class_name to be composed
10565         of current domain id. This allows MWF to be loaded in multiple
10566         domains on Win32.
10567
10568 2006-09-09  Miguel de Icaza  <miguel@novell.com>
10569
10570         * X11Keyboard.cs: If we are unable to obtain the input method, do
10571         not call CreateXic to create the input context.   Should fix
10572         #78944/79276.
10573
10574 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
10575
10576         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
10577           Simplified gnome support by adding more pinvokes to get the
10578           icon for a file or mime type.
10579
10580 2006-09-08  Jackson Harper  <jackson@ximian.com>
10581
10582         * MenuAPI.cs: Deslect popup context menu items before closing the
10583         window, so that you don't see the previously selected item
10584         selected when you reopen the menu.
10585         * TextControl.cs: Update the cursor position even if we don't have
10586         focus.  This fixes typing in things like the ComboBox.  I'm not
10587         totally sure we should always set the visibility if we don't have
10588         focus, but couldn't find any corner cases where the cursor showed
10589         up when it shouldn't.
10590
10591 2006-09-08  Chris Toshok  <toshok@ximian.com>
10592
10593         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
10594         our arrays are length 256.  & 0xff before indexing.  Fixes the
10595         crash in bug #78077.
10596         
10597 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10598
10599         * ThemeWin32Classic.cs: 
10600         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
10601         is true. Handle that check box too.
10602
10603 2006-09-07  Chris Toshok  <toshok@ximian.com>
10604
10605         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
10606         79244.
10607
10608 2006-09-07  Chris Toshok  <toshok@ximian.com>
10609
10610         * Control.cs: in set_BackColor only do the work if
10611         background_color != value.
10612
10613         * XplatUIX11.cs: move the clearing of invalid areas (both client
10614         and nc) to the same block of code where we set (nc_)expose_pending
10615         to false.  That is, move it from PaintEventEnd to PaintEventStart,
10616         so things that cause invalidates from within OnPaint will trigger
10617         another call to OnPaint.  Fixes bug #79262.
10618
10619 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
10620
10621         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
10622         * FileDialog.cs: Fix typo
10623
10624 2006-09-07  Jackson Harper  <jackson@ximian.com>
10625
10626         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
10627         for tab pages if they have any.
10628
10629 2006-09-06  Mike Kestner  <mkestner@novell.com>
10630
10631         * Splitter.cs: use the "current" rect when finishing drag handle
10632         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
10633
10634 2006-09-06  Mike Kestner  <mkestner@novell.com>
10635
10636         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
10637         support offset splitters. [Fixes #79298]
10638
10639 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
10640
10641         * Mime.cs: Fixed a bug that could override the global mime type
10642           result.
10643
10644 2006-09-05  Jackson Harper  <jackson@ximian.com>
10645
10646         * TabControl.cs: Better calculation method for setting the slider
10647         pos. Prevents crashes on really wide tabs.
10648         - Draw Image on tab pages if an image list is used.
10649
10650 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10651
10652         * MonthCalendar.cs: When Font changes, the Size should be
10653         updated to fit the new font's space requirements.
10654
10655 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
10656
10657         * ListBox.cs: If the items are cleared with Items.Clear set
10658           top_index to 0.
10659
10660 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10661
10662         * MonthCalendar.cs: Handle arrow keys as input keys. Also
10663         fire DateChanged event instead of DateSelected event when
10664         the date was changed by keyboard interaction.
10665
10666 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10667
10668         * DateTimePicker.cs: Handle DateChanged for the associated
10669         month_calendar control, and set month_calendar.Font from 
10670         OnFontChanged method, as well as resize the height of the
10671         control when needed. Make PreferredHeight proportional.
10672
10673 2006-09-01  Chris Toshok  <toshok@ximian.com>
10674
10675         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
10676         properties.
10677
10678         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
10679
10680 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
10681
10682         * FileDialog.cs: Set ClientSize instead of window size, to allow space
10683           for decorations (Fixes #79219)
10684
10685 2006-09-01  Mike Kestner  <mkestner@novell.com>
10686
10687         * ComboBox.cs: first stab at sorting plus some selection handling
10688         fixes to bring us more in line with MS behavior.  Also switches back
10689         to index based selection.  Alternative patches for index-based 
10690         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
10691         and latency@gmx.de on bug 78848.  I assume they were similar to this
10692         code I've had simmering in my tree forever.
10693         [Fixes #78848]
10694
10695 2006-09-01  Chris Toshok  <toshok@ximian.com>
10696
10697         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
10698         when setting list position guard against ending up with a -1 index
10699         (the other part of the fix for #78812).  Should probably make sure
10700         we don't need the analogous fix in the ItemDeleted case.
10701
10702         * DataGrid.cs:
10703         - in SetDataSource, work around the fact that the way
10704         OnBindingContextChanged is invoked will cause us to re-enter this
10705         method.  I'll remove the hack once I investigate
10706         OnBindingContextChanged.
10707
10708         - fix the logic in set_DataSource and set_DataMember (basically
10709         what to do if the other of the two is null.)
10710         
10711         - in OnListManagerItemChanged, we need to take into account the
10712         edit row when deciding whether or not to call RecreateDataGridRows
10713         (part of the fix for #78812).
10714
10715 2006-09-01  Jackson Harper  <jackson@ximian.com>
10716
10717         * Splitter.cs: Don't do anything if there is no control to affect
10718         (prevents us from crashing in weird tet cases).
10719         * TreeView.cs: Bounding box for the mouse movement reverting
10720         focus/selection back to previously selected node.  This matches
10721         MS, and makes the tree a lot more useable.
10722         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
10723         use clipping so they are not drawn.  This fixes when the control
10724         is set to have a transparent background, or if it was over an
10725         image.
10726
10727 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
10728
10729         * MimeIcon.cs: Improved handling for reading default icons when
10730           using gnome (2.16 made it necessary). Check and read svg icons
10731           first, then 48x48 and then 32x32 icons.
10732
10733 2006-08-31  Chris Toshok  <toshok@ximian.com>
10734
10735         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
10736         visible.
10737
10738         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
10739         ProcessKeyPreview.  Fixes part of #77806.
10740
10741         * DataGrid.cs: big patch.
10742
10743         - revert the queueing up of DataSource/DataMember if inside
10744         BeginInit/EndInit calls.  That's not the way the datagrid achieves
10745         its delayed databinding.  Instead, call SetDataSource in
10746         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
10747         #78811.
10748
10749         - Also, it wasn't mentioned in #78811, but the test case exhibits
10750         behavior that was lacking in our datagrid implementation - Columns
10751         that have mapping names that don't exist in the datasource's
10752         properties aren't shown.  Yuck.  To fix this I added the bound
10753         field to the column style, and basically any calculation to figure
10754         out anything about columns uses a loop to find the bound columns.
10755         still need to investigate if I can cache an array of the bound
10756         columns or if the indices must be the same.
10757
10758         - When setting CurrentCell, we no longer abort if the cell being
10759         edited was in the add row.  This fixes the other part of #77806.
10760
10761         - The new code also fixes #78807.
10762         
10763         * ThemeWin32Classic.cs: perpetrate the same disgusting
10764         column.bound field hack, and only render bound fields.
10765
10766 2006-08-31  Chris Toshok  <toshok@ximian.com>
10767
10768         * DataGridColumnStyle.cs: add bound field.  this field is true if
10769         the datasource has a property corresponding to the mapping name.
10770
10771         * DataGridTableStyle.cs: set the bound field on the column styles
10772         depending on whether or not we have a column for that property.
10773
10774 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
10775
10776         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
10777           splitter control (fixes #79228)
10778
10779 2006-08-31  Chris Toshok  <toshok@ximian.com>
10780
10781         * DataGridColumnStyle.cs: we need to delay the assignment of
10782         property descriptor until the last possible moment due to the lazy
10783         databinding stuff in the datagrid.  Also, fix the exceptions
10784         thrown by CheckValidDataSource to match MS.
10785
10786 2006-08-31  Jackson Harper  <jackson@ximian.com>
10787
10788         * Form.cs: When activated select the active control, if there is
10789         no active control, we select the first control.
10790         * XplatUIX11.cs: If there is no focus control when we get a
10791         FocusIn event, find the toplevel form and activate it.  This
10792         occurs when you popup a window, it becomes the focus window, then
10793         you close that window, giving focus back to the main window.
10794
10795 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10796
10797         * MonthCalendar.cs: 
10798         * ThemeWin32Classic.cs: Cache Font in bold style, as well
10799         as StringFormat with Center alignments in MonthCalendar,
10800         instead of creating new ones when drawing the control. 
10801         Also, draw the month name in bold style.
10802
10803 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10804
10805         * Control.cs:
10806           - PerformLayout(): It would seem MS performs the fill even if the 
10807             control is not visible (part of #79218 fix)
10808           - ResetBackColor(): Use the setter to reset the color, to allow
10809             overriders to catch the change.
10810         * Form.cs:
10811           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
10812           - CreateHandle(): dito (part of $79218 fix)
10813           - Don't set an icon if we have a dialog
10814         * ScrollableControl.cs:
10815           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
10816           - ScrollIntoView(): No need to scroll if control is already visible
10817             (resolves fixme and fixes #79218)
10818
10819 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10820
10821         * MonthCalendar.cs: Change proportions in SingleMonthSize
10822         to match the aspect of the original control.
10823
10824 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
10825
10826         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
10827           get updated when they get maximized.
10828
10829 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10830
10831         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
10832
10833 2006-08-29  Chris Toshok  <toshok@ximian.com>
10834
10835         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
10836
10837 2006-08-29  Jackson Harper  <jackson@ximian.com>
10838
10839         * TreeView.cs: Need to track selected node and highlighted node,
10840         they aren't always the same thing, when the mouse is down on a
10841         node it is hilighted, but not selected yet.
10842         - Do the HideSelection stuff right
10843         - Need to focus on rbutton mouse down. And redraw selection when
10844         right click is mouse upped.
10845
10846 2006-08-29  Mike Kestner  <mkestner@novell.com>
10847
10848         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
10849         when SubItems.Count < Columns.Count.  [Fixes #79167]
10850
10851 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
10852
10853         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
10854
10855 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
10856
10857         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
10858           from X. Only send based on ConfigureNotify if we don't have the
10859           correct location in hwnd (if the window manager moved us)
10860
10861 2006-08-28  Mike Kestner  <mkestner@novell.com>
10862
10863         * ListView.cs: remove a TODO. 
10864         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
10865         [Fixes ListView part of #79166]
10866
10867 2006-08-28  Mike Kestner  <mkestner@novell.com>
10868
10869         * ListView.cs: move wheel handler to parent since it is focused
10870         instead of the item_control now.  [Fixes #79177]
10871
10872 2006-08-28  Mike Kestner  <mkestner@novell.com>
10873
10874         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
10875         when the control is focused. [Fixes #79171]
10876
10877 2006-08-28  Mike Kestner  <mkestner@novell.com>
10878
10879         * ListView.cs: size the item and header controls for empty and
10880         unscrollable views.
10881         * ThemeWin32Classic.cs: draw disabled backgrounds.
10882         [Fixes #79187]
10883
10884 2006-08-28  Chris Toshok  <toshok@ximian.com>
10885
10886         * Form.cs: remove unused "active_form" static field.
10887
10888         * Hwnd.cs: lock around accesses to static windows collection.
10889
10890         * Application.cs: lock threads in Exit ().
10891
10892 2006-08-28  Chris Toshok  <toshok@ximian.com>
10893
10894         * NativeWindow.cs: lock around accesses to window_collection.
10895         
10896 2006-08-28  Chris Toshok  <toshok@ximian.com>
10897
10898         * Control.cs: err, fix this the right way, by locking on controls
10899         when using it.  not by making it synchronized.
10900
10901 2006-08-28  Chris Toshok  <toshok@ximian.com>
10902
10903         * Control.cs: make the static "controls" field synchronized, as it
10904         gets updated from multiple threads.
10905
10906 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
10907
10908         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
10909           Prevent other threads from exiting when calling thread sets quit state.
10910         * XEventQueue.cs: Added PostQuitState property
10911
10912 2006-08-27  Chris Toshok  <toshok@ximian.com>
10913
10914         * AsyncMethodData.cs: add a slot for the window handle.
10915
10916         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
10917         window (the destination control's window, not the foster window).
10918
10919         * Control.cs (BeginInvokeInternal): store the window's handle in
10920         the AsyncMethodData.
10921         
10922
10923 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
10924
10925         * XplatUIX11.cs:
10926           - PostQuitMessage: Removed resetting S.D display handle, we might have
10927             another loop started after calling PostQuitMessage (Fixes #79119)
10928           - Created destructor to reset S.D handle
10929
10930 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
10931
10932         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
10933
10934 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10935
10936         * TextControl.cs (Insert): Update the caret position even if we don't
10937           have a handle yet, just don't call the driver in that case.
10938         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
10939           to the end of the new selection text (Fixes #79184)
10940
10941 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10942
10943         * Form.cs (Activate): Only activate if the handle is created)
10944         * Control.c:
10945           - Mark window as invisible when it's disposed
10946           - Check if window handle is created when setting window visible, 
10947             instead of relying just on the is_created variable
10948           - Check if object is disposed when creating the control (Fixes #79155)
10949
10950 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10951
10952         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
10953           when allowing layout again. Otherwise we re-generate the anchoring 
10954           distance to the border again and actually alter what the user wanted
10955           This is ugly, it'd be better if we used DisplayRectangle instead of
10956           ClientRectangle for Control.UpdateDistances, but that causes us to
10957           have other problems (initial anchoring positons would be wrong)
10958           (Fixes #78835)
10959
10960 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10961
10962         * Control.cs:
10963           - The size and location setters shouldn't go directly to 
10964             SetBoundsCore, but to SetBounds, which triggers layout on the
10965             parent, then calls SetBoundsCore. (Related to fix for #78835)
10966           - SetBounds: Moved actual location update code into this function
10967             from SetBoundsCore, to match MS. Added call to PerformLayout if
10968             we have a parent (to trigger resizing of anchored parents if the 
10969             child size has changed (see testcase for #78835) 
10970         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
10971           new control code
10972         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
10973
10974 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10975
10976         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
10977           System.Drawing when a toplevel window gets closed; there might
10978           be other toplevel windows belonging to the same app (Fixes #78052)
10979
10980 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
10981
10982         * FileDialog.cs: After reading FileDialog settings from mwf_config
10983           use Desktop prefix only if a real folder doesn't exist anymore.
10984         * FontDialog.cs: Added char sets.
10985           It is now possible to select the font, size or style with the
10986           textboxes.
10987
10988 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
10989
10990         * PrintPreviewDialog.cs: Use assembly name constants.
10991
10992 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10993
10994         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
10995           scrollbar from whacking it's buttons)
10996
10997 2006-08-24  Chris Toshok  <toshok@ximian.com>
10998
10999         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
11000         in this patch (aggregating setting Left/Top/Width/Height to
11001         setting Bounds on the scrollbars), but the crux of the fix is in
11002         Recalculate, where we scroll by the remaining scroll_position if
11003         we're hiding a scrollbar.  The 2*$5 reward in the comment is
11004         serious.
11005
11006 2006-08-24  Jackson Harper  <jackson@ximian.com>
11007
11008         * MdiClient.cs:
11009         * MdiWindowManager.cs: If the form is made a non-mdi window we
11010         need to remove the form closed event so that closing forms works
11011         correctly.
11012
11013 2006-08-24  Jackson Harper  <jackson@ximian.com>
11014
11015         * Control.cs: Make IsRecreating internal so that the driver can
11016         check it
11017         - Temporarily remove the Hide when controls are removed, its
11018         making a whole bunch of things not work because visibility isn't
11019         getting reset elsewhere correctly
11020         * Form.cs: Need to do a full handle recreation when the mdi parent
11021         is set.
11022         * XplatUIX11.cs: If we are recreating handles don't dispose the
11023         HWNDs.  What was happening is the handles were being recreated in
11024         SendWMDestroyMessages, but then flow continued on in that method
11025         and destroyed the new handles.
11026
11027 2006-08-23  Jackson Harper  <jackson@ximian.com>
11028
11029         * Form.cs: MdiClient is always at the back of the bus
11030         * Control.cs: When the order of items in the collection is changed
11031         we need to reset the all_controls array
11032         - do the same sorta setup thats done when adding a control when a
11033         control is set on the collection.
11034
11035 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11036
11037         * TextBoxBase.cs (get_Text): Return an empty array if our document
11038           is empty (fixes #79052)
11039
11040 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11041
11042         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
11043           on WM_SYSCHAR messages (fixes #79053)
11044
11045 2006-08-23  Chris Toshok  <toshok@ximian.com>
11046
11047         * DataGrid.cs: fix flickering when scrolling vertically.
11048
11049 2006-08-23  Chris Toshok  <toshok@ximian.com>
11050
11051         * DataGrid.cs (EndEdit): only invalidate the row header when we
11052         need to.
11053
11054 2006-08-23  Chris Toshok  <toshok@ximian.com>
11055
11056         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
11057         methods.  fixes the flicker when scrolling around.
11058
11059 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11060
11061         * FileDialog.cs: Making sure the control is created before we get a 
11062           chance to use it with BeginInvoke (Fixes #79096)
11063
11064 2006-08-23  Chris Toshok  <toshok@ximian.com>
11065
11066         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
11067         width to use when painting the rows.
11068
11069 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11070
11071         * TextBoxBase.cs:
11072           - Throw ArgumentException if a negative value is passed to SelectionLength
11073           - Update the selection end if start is moved. end needs to be always
11074             after start. (Fixes #79095)
11075           - Track selection length; MS keeps the selection length even if start
11076             is changed; reset on all other operations affection selection
11077
11078 2006-08-22  Jackson Harper  <jackson@ximian.com>
11079
11080         * TreeView.cs: Make sure both scrollbars get displayed and sized
11081         correctly when the other bar is visible.
11082         - Use the original clip rectangle for checking if the area between
11083         the two scrollbars is visible, not the viewport adjusted clipping
11084         rectangle.
11085
11086 2006-08-22  Jackson Harper  <jackson@ximian.com>
11087
11088         * Binding.cs: We don't use IsBinding because it requires the
11089         control to be created, which really shouldn't be necessary just to
11090         set a property on the control.
11091
11092 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11093
11094         * ComboBox.cs: Some CB.ObjectCollection methods must throw
11095         ArgumentNullReferenceException when the argument is null.
11096
11097 2006-08-21  Jackson Harper  <jackson@ximian.com>
11098
11099         * Timer.cs: Track the thread that the timer is started in (NOT
11100         CREATED), this way messages for it will only be triggered on its
11101         queue.
11102         * XEventQueue.cs: Track the timers here, this makes timers per
11103         thread, like MS.
11104         * XplatUIX11.cs: The timers are moved to the XEventQueue.
11105
11106 2006-08-19  Chris Toshok  <toshok@ximian.com>
11107
11108         * XplatUIX11.cs: after further communication with pdb, we get the
11109         best of both worlds.  SetZOrder working for un-Mapped windows, and
11110         no X errors for un-mapped windows.
11111
11112 2006-08-19  Chris Toshok  <toshok@ximian.com>
11113
11114         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
11115         as it was causing pdn toolbars to not have the correct stacking.
11116
11117 2006-08-18  Mike Kestner  <mkestner@novell.com> 
11118
11119         * ListView.cs : guard against negative ClientArea.Width in scrollbar
11120         calculation.  Not sure why control should ever be setting a negative
11121         width though.  Fixes #78931.
11122
11123 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11124
11125         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
11126         null items in ObjectCollection class.
11127         * ListBox.cs.: Likewise.
11128
11129 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
11130
11131         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
11132           as the base method in ThemeWin32Classic should work fine.
11133           Fixed bug #78607.
11134
11135 2006-08-18  Jackson Harper  <jackson@ximian.com>
11136
11137         * Binding.cs: When validating if the value entered doesn't convert
11138         properly reset to the old value.
11139         * RadioButton.cs: Don't fire click when we get focus.
11140
11141 2006-08-18  Jackson Harper  <jackson@ximian.com>
11142
11143         * FileDialog.cs: Paint the selection on the directory combobox the
11144         same way as on MS. 
11145
11146 2006-08-17  Jackson Harper  <jackson@ximian.com>
11147
11148         * ErrorProvider.cs: Don't allow the error control to be selected.
11149         * Control.cs: Don't send the SetFocus messages, the control
11150         activation will do this, and if we do it blindly here validation
11151         does not work.
11152
11153 2006-08-17  Jackson Harper  <jackson@ximian.com>
11154
11155         * Control.cs:
11156         * ContainerControl.cs: Make validation events fire in the correct
11157         order.  TODO: For some reason the first validation event is not
11158         getting fired.
11159
11160 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11161
11162         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
11163
11164 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11165
11166         * ComboBox.cs : implement scroll wheel support for popped-down
11167         state. Fixes #78945. 
11168
11169 2006-08-17  Jackson Harper  <jackson@ximian.com>
11170
11171         * TreeView.cs: Specify treeview actions (old patch that didn't get
11172         committed for some reason).
11173         - Don't let the mouse wheel scroll us too far.  Just want to make
11174         the bottom node visible, not scroll it all the ways to the top.
11175
11176 2006-08-17  Jackson Harper  <jackson@ximian.com>
11177
11178         * XplatUIX11.cs: Mouse wheel events go to the focused window.
11179
11180 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11181
11182         * ComboBox.cs : don't do mouseover selection in simple mode.
11183
11184 2006-08-16  Jackson Harper  <jackson@ximian.com>
11185
11186         * Form.cs: Fire the closing events for all the mdi child windows
11187         when a window is closed.  If the cancel args are set to true, the
11188         main window still gets the event fired, but it doesn't not close.
11189         * MdiWindowManager.cs: Do this closing cleanup in a Closed
11190         handler, instead of when the button is clicked, so cancelling the
11191         close works correctly.
11192         * ComboBox.cs: Send the mouse down to the scrollbar.
11193
11194 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11195
11196         * ListBox.cs: When passing 'null' to SelectedItem,
11197         set SelectedIndex to -1, to unselect items. This is the
11198         observed behaviour in .Net.
11199
11200 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
11201
11202         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
11203           MS flags saying there won't be any. (fixes #78800)
11204         * Control.cs (HandleClick): Made virtual
11205
11206 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
11207
11208         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
11209           cultures. Fixed bug #78399.
11210
11211 2006-08-16  Jackson Harper  <jackson@ximian.com>
11212
11213         * Form.cs: Use the MdiClients MdiChildren property to access
11214         MdiChildren instead of creating the array from the child controls.
11215         * MdiClient.cs: Maintain a separate array of the mdi children, so
11216         that insertion order is maintained when the Z-order is changed.
11217
11218 2006-08-16  Mike Kestner  <mkestner@novell.com> 
11219
11220         * ListView.cs : add an ItemComparer and default to it for sorting.
11221         Fixes #79076, but sorting needs a complete overhaul to be compat with
11222         MS.
11223
11224 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11225
11226         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
11227
11228 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11229
11230         * Hwnd.cs (Mapped): Properly traverse the tree
11231
11232 2006-08-15  Chris Toshok  <toshok@ximian.com>
11233
11234         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
11235         pass manager.Current.GetType() to ParseData.  It has to be the
11236         property type.  So, hold off doing the ParseData until we're in
11237         SetPropertyValue where we know the type.  This fixes the crash in
11238         #78821 but the textbox is still empty.
11239
11240 2006-08-15  Chris Toshok  <toshok@ximian.com>
11241
11242         * DataGrid.cs:
11243         - when we're scrolling, only call Edit() again if the
11244         current cell is still unobscured. Fixes bug #78927.
11245         - when handling mousedown on a cell, ensure the cell is visible
11246         before calling Edit.
11247         - remove the properties from DataGridRow, and remove the
11248         DataGridParentRow class altogether.
11249         
11250
11251 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11252
11253         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
11254           fire OnTextChanged by ourselves. There's no point calling base,
11255           we don't set the base value anywhere else. Fixes #78773.
11256
11257 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11258
11259         * ListBox.cs: Call CollectionChanged when modifying
11260         an item from Items indexer, to update the actual items
11261         in the list box.
11262
11263 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11264
11265         * PrintDialog.cs: Small fixes for focus and a pair of checks,
11266         to match .Net behaviour.
11267
11268 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11269
11270         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
11271
11272 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11273
11274         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
11275
11276 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11277
11278         * MessageBox.cs: Prevent potential NRE exception.
11279         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
11280
11281 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11282
11283         * MessageBox.cs: Calculate the owner of a messagebox, also make
11284           it topmost. Fixes #78753
11285
11286 2006-08-14  Chris Toshok  <toshok@ximian.com>
11287
11288         * XplatUIX11.cs: A couple of fixes so that metacity will let us
11289         programmatically move windows.  first, set the PPosition hint as
11290         well as the USPosition hint.  Second include some code from pdb
11291         that sets the window type to NORMAL when we set the transient for
11292         hint.  This is because, in the absence of a window type, metacity
11293         thinks any window with TransientFor set is a dialog, and refuses
11294         to let us move it programmatically.  fascists.
11295
11296 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11297
11298         * XplatUIX11.cs: When setting normal hints, take into consideration
11299           an different hints previously set so we don't delete them (fixes #78866)
11300
11301 2006-08-12  Chris Toshok  <toshok@ximian.com>
11302
11303         * ToolBarButton.cs: make Layout return a boolean, if something to
11304         do with the button's layout changed.
11305
11306         * ToolBar.cs:
11307         - add another parameter to Redraw, @force, which all existing
11308           calls set to true.
11309         - make the Layout function return a boolean which is true if the
11310           layout has actually changed.  Redraw now uses this (and @force)
11311           to determine when to invalidate.  At present the only place
11312           where @force can be false is the call from OnResize, when
11313           background_image == null.  So, resizing a toolbar when the
11314           layout doesn't change results in no drawing.
11315
11316 2006-08-12  Chris Toshok  <toshok@ximian.com>
11317
11318         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
11319         the VScrollBar and HScrollbar reversed.  oops.
11320
11321         * DataGrid.cs: fix the logic that assigns sizes to the implicit
11322         scrollbars.  we were assigning them twice (once in
11323         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
11324         therefore causing two scrollbar resizes (and redraws?) to happen
11325         per grid resize.
11326
11327 2006-08-12  Chris Toshok  <toshok@ximian.com>
11328
11329         * ToolBarButton.cs: redraw the entire button if the theme tells us
11330         to.
11331
11332         * Theme.cs: add ToolBarInvalidateEntireButton.
11333
11334         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
11335         buttons, just the border.
11336
11337         * ThemeNice.cs: redraw the entire toolbar button since we need to
11338         draw the highlight image.
11339
11340         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
11341         we need to redraw the entire button (not just the border).
11342
11343 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11344
11345         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
11346           for vertical bars. Fixes the mismatches shown by #78513
11347
11348 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
11349
11350         * FileDialog.cs: If a saved/remembered path doesn't exist
11351           anymore, fall back to "Desktop".
11352
11353 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11354
11355         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
11356           parent. It's apparently legal to not have one
11357         * XplatUIX11.cs:
11358           - SetZOrder: Don't try to set Z-Order on an unmapped window
11359           - CreateWindow: 0,0 are legal coordinates for a window. don't move
11360             it unless the coordinates are negative
11361
11362 2006-08-10  Mike Kestner  <mkestner@novell.com>
11363
11364         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
11365         when setting to null per msdn docs.  Fixes #78854.
11366
11367 2006-08-10  Chris Toshok  <toshok@ximian.com>
11368
11369         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
11370         flickering by setting a clip rectangle on the Graphics when we
11371         need to redraw just a particular menuitem.  Also, rename "OnClick"
11372         to "OnMouseDown" to reflect what it actually is.
11373         
11374         * Form.cs: track the OnMouseDown change.
11375
11376 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
11377
11378         * CommonDialog.cs: Properly inherit the CreateParams from the form
11379           and only change what we need. Fixes #78865
11380
11381 2006-08-10  Chris Toshok  <toshok@ximian.com>
11382
11383         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
11384         flickering in flat mode (and most of the flickering in general) by
11385         only invalidating the button border (and not the entire rectangle)
11386         when the state changes.  A couple of cases still flicker:
11387         ToggleButtons, and the dropdown arrow case when the user mouse
11388         ups.
11389
11390 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
11391
11392         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
11393           for german keyboards. Numlock state shouldn't affect the behaviour
11394           of the Del key. Fixes bug #78291.
11395
11396 2006-08-10  Chris Toshok  <toshok@ximian.com>
11397
11398         * ListControl.cs: remove the items.Clear line from BindDataItems,
11399         as this is the first thing done by both subclasses in their
11400         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
11401         passed -1, refresh the list.  This gets databinding working when
11402         the datasource is set on the list before the datasource is
11403         populated (as in wf-apps/ReportBuilder.)
11404
11405         * ComboBox.cs: remove the argument to BindDataItems.  This call
11406         should really go away, and be initiated by the ListControl code.
11407
11408         * ListBox.cs: same.
11409
11410 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11411
11412         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
11413           if no data is in the document when the control is displayed
11414
11415 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
11416
11417         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
11418           yes (fixes #78806)
11419         * TextControl.cs: 
11420           - PositionCaret: Allow positioning of caret but don't call methods 
11421             requiring a handle if the window isn't created yet
11422           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
11423           - owner_HandleCreated: Don't position the caret, just update it's 
11424             location. User might have already set a different position
11425
11426 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11427
11428         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
11429           windows. Screws up the returned coordinates for child windows. 
11430           Fixes #78825. I'm hoping this doesn't break something, since the
11431           code was explicitly put in 8 months ago, but no bug was attached.
11432           Menus still seem to work properly.
11433
11434 2006-08-08  Chris Toshok  <toshok@ximian.com>
11435
11436         * DataGrid.cs: make BeginInit/EndInit actually do what they're
11437         supposed to do - delay data binding until the EndInit call.  Also,
11438         make the table style collection's CollectionChangeAction.Refresh
11439         work properly.
11440
11441         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
11442         (with action = Refresh) when a consituent table's MappingName is
11443         changed.
11444
11445 2006-08-08  Chris Toshok  <toshok@ximian.com>
11446
11447         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
11448         Invalidate, since changing the text can change the size of the all
11449         toolbar buttons.
11450
11451 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11452
11453         * Form.cs (AddOwnedForm): Still need to add the form to our listif
11454           we don't have it yet
11455
11456 2006-08-08  Chris Toshok  <toshok@ximian.com>
11457
11458         * PrintControllerWithStatusDialog.cs: don't .Close() the status
11459         dialog, as this causes X errors later on, since we actually
11460         destroy the window.  Instead, .Hide() it.
11461
11462 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11463
11464         * ComboBox.cs: Added focus reflection for popup window
11465         * XplatUIX11.cs: 
11466           - Removed transient setting for non-app windows for now, not sure it
11467             was needed
11468           - Fixed logic checking if we have captions when deciding 
11469             override_redirect, WS_CAPTION is two bits and a 0 check was not
11470             sufficient
11471           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
11472             complicated
11473         * Form.cs: 
11474           - AddOwnedForm: Don't just add the form to the list, call the property
11475             to ensure the driver is informed about the ownership as well
11476           - CreateHandle: Set the TopMost status in the driver if we have an owner
11477         * XplatUI.cs: Fixed debug statement
11478
11479 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
11480         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11481           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
11482           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
11483           TrackBarRenderer.cs: Make constructor private.
11484         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
11485         * ProfessionalColorTable.cs: Make properties virtual.
11486
11487 2006-08-06  Duncan Mak  <duncan@novell.com>
11488
11489         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
11490         is not changing.
11491
11492 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11493         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11494           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
11495           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
11496           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
11497           Initial import of new 2.0 classes.
11498
11499 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11500         * Application.cs: Add 2.0 VisualStyles properties.
11501
11502 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11503         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11504           XplatUIX11.cs: Create property to allow access to existing private
11505           variable "themes_enabled"
11506
11507 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11508
11509         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
11510         file size, as otherwise our class libraries fail using windows. Fixes
11511         bug #78759.
11512
11513 2006-08-04  Jackson Harper  <jackson@ximian.com>
11514
11515         * Form.cs:
11516         * XplatUIX11.cs: Move the toolwindow window manager creation into
11517         the X11 driver, this way on win32 we can let windows create/handle
11518         the toolwindows.
11519
11520 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11521
11522         * PrintDialog.cs: Remove some redundant checks, add some others,
11523         clean some code, and move the focus to the text boxes when the
11524         values are incorrect.
11525
11526 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
11527
11528         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
11529
11530 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11531
11532         * NumericUpDown.cs: Setting the Minimum and Maximum is now
11533           handled correctly. Fixes bug #79001.
11534
11535 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11536
11537         * PrintDialog.cs: The "Copies" numeric up down must have
11538         set the Minimum property to 1; only if the value is bigger
11539         than 1, activate "Collate" check box. This is the behaviour of .Net.
11540         Also modify the Document elements only if it is not null.
11541
11542 2006-08-03  Jackson Harper  <jackson@ximian.com>
11543
11544         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
11545         length. (We have a larger array then actual node count).
11546                 
11547 2006-08-03  Jackson Harper  <jackson@ximian.com>
11548
11549         * ComboBox.cs: Don't show selection by default.
11550         - The SelectAll isn't needed here, since the focus code should do
11551         that
11552         - DDL style lists to manual selection drawing, so when they
11553         get/lose focus they have to invalidate.
11554
11555 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
11556
11557         * TextBoxBase.cs: Don't always show all selections by default.
11558
11559 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
11560         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
11561           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
11562           Fixed various typos.
11563
11564 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11565
11566         * Control.cs: Removing the controls in a ControlCollection with
11567           Clear now hides the controls as expected. Fixes bug #78804. 
11568
11569 2006-08-03  Jackson Harper  <jackson@ximian.com>
11570
11571         * Control.cs: Revert previous focus patch, it breaks reflector.
11572
11573 2006-08-03  Jackson Harper  <jackson@ximian.com>
11574
11575         * ComboBox.cs: Cleanup selection and focus with the combobox.
11576         This also eliminates some duplicated keyboard code, since now
11577         everything is handled by the main class.
11578         - Make list selection work on mouse up instead of down, to match
11579         MS.
11580
11581 2006-08-02  Jackson Harper  <jackson@ximian.com>
11582
11583         * Control.cs: Setting focus needs to go through the whole
11584         selection mechanism.
11585
11586 2006-08-02  Chris Toshok  <toshok@ximian.com>
11587
11588         * PrintPreviewDialog.cs: change MinimumSize to use
11589         base.MinimumSize so it works.
11590
11591 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
11592
11593         * TextControl.cs:
11594           - UpdateCaret: Added sanity check in case caret isn't defined yet
11595           - Line.Delete: Now updating selection and caret markers if we're
11596             transfering a node (Properly fixes #78323)
11597           - SetSelectionEnd: Added sanity check
11598         * TextBoxBase.cs: Removed broken attempt to fix #78323
11599
11600 2006-08-01  Chris Toshok  <toshok@ximian.com>
11601
11602         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
11603         Close() call is handled in Form, not here.
11604
11605 2006-08-01  Chris Toshok  <toshok@ximian.com>
11606
11607         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
11608         layout/rendering.
11609
11610         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
11611         for sizes < 100% zoom.  The code now aggressively attempts to keep
11612         from calling document.Print (), and tries not to use the scaling
11613         g.DrawImage whenever possible (it still does if you scale to >
11614         100%, since usually that involves huge images).
11615
11616         * PrintPreviewControl.cs: hook up the close button.
11617
11618 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
11619         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
11620           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
11621           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
11622           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
11623           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
11624           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
11625           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
11626           Removed [Serializable] for 2.0 Event Handlers.
11627
11628 2006-07-31  Jackson Harper  <jackson@ximian.com>
11629
11630         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
11631         * TextControl.cs: Uncomment out the body of this method.
11632
11633 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
11634
11635         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
11636           standard cursors.
11637
11638 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11639
11640         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
11641           that embed TextBox and need selections visible even if textbox is not
11642           focused to enforce that behaviour.
11643         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
11644           selection drawing
11645
11646 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11647
11648         * TextControl.cs:
11649           - Added new SetSelectionStart/SetSelectionEnd overloads
11650           - Fixed viewport width assignment to be accurate
11651           - Adjusted alignment line shift calculations to allow cursor on right
11652             aligned lines to be always visible at the right border (like MS)
11653         * TextBoxBase.cs:
11654           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
11655           - TextBoxBase_SizeChanged: recalculating canvas on size changes
11656           - CalculateScrollBars: Use ViewPort size instead of window size, to
11657             properly consider space occupied by the border and scrollbars 
11658             (Fixes #78661)
11659           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
11660             calculations; no longer leaves artifacts
11661           - CaretMoved: Adjusted window scrolling to match MS and fixed several
11662             calculation bugs (Still missing right/center align calculations)
11663
11664 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
11665
11666         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
11667           use of both scroll rect and clip rect, as they do the same.
11668
11669 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11670
11671         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
11672           in the event handler (fixes #78912)
11673
11674 2006-07-31  Chris Toshok  <toshok@ximian.com>
11675
11676         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
11677         grid.ListManager.Count, since grid.ListManager might be null.
11678         This of course begs the question "why are we drawing rows for a
11679         grid with no list manager (and therefor no rows)?"  Fixes the
11680         crash in bug #78929.
11681
11682 2006-07-31  Chris Toshok  <toshok@ximian.com>
11683
11684         * RelatedPropertyManager.cs: Don't always chain up to the parent
11685         ctor.  instead, call SetDataSource if the parent's position is !=
11686         -1.  Fixes the crash in #78822.
11687
11688 2006-07-31  Chris Toshok  <toshok@ximian.com>
11689
11690         * DataGrid.cs (get_ListManager): use field instead of property
11691         accessors for datasource and datamember.
11692         (RowsCount): make internal again.
11693         (OnMouseDown): end edits before resizing columns/rows.
11694         (OnMouseUp): restart edits after resizing columns/rows.
11695
11696 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
11697
11698         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
11699           This fixes the situation where the last set cursor is displayed
11700           whenever the mouse is over scrollbars.
11701
11702 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11703
11704         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
11705         Document properties, as well as initial values.
11706
11707 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
11708
11709         * XplatUIWin32.cs (SetBorderStyle): Setting both border
11710           and ClientEdge results in a 3-pixel border, which is
11711           wrong.
11712
11713 2006-07-28  Jackson Harper  <jackson@ximian.com>
11714
11715         * TreeNodeCollection.cs: Fix the clear method.
11716         - Fix the Shrink also
11717
11718 2006-07-27  Jackson Harper  <jackson@ximian.com>
11719
11720         * TreeView.cs: Make sure the visible order is computed when we
11721         attempt to size the scrollbars (for trees that mess with the
11722         scrolling when they shouldn't.
11723         - Make sure to give the scrollbars valid values.
11724
11725 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11726
11727         * XplatUIX11.cs: Move motion compression code to where it
11728           has less performance impact
11729
11730 2006-07-26  Jackson Harper  <jackson@ximian.com>
11731
11732         * UpDownBase.cs: When the control is selected make the child
11733         controls non selectable, so that a click on them won't do a
11734         focus/unfocus cycle.
11735         - Don't give focus to the text box when the spinner is selected.
11736         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
11737
11738 2006-07-26  Chris Toshok  <toshok@ximian.com>
11739
11740         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
11741         satisfied with this solution.  If the bitmaps are small, we should
11742         just cache them in the PrintPreviewDialog and draw them here.
11743         Also, the layout is broken for the 2-up and 3-up cases.
11744
11745         * Theme.cs: add PrintPReviewControlPaint.
11746
11747         * PrintPreviewDialog.cs: first pass implementation.
11748
11749         * PrintPreviewControl.cs: first pass implementation.  No
11750         scrollbars yet.
11751
11752         * PrintDialog.cs: only validate fields if that particular portion
11753         of the UI is enabled.  Also, set the document's controller to a
11754         PrintControllerWithStatusDialog wrapping the document's print
11755         controller.
11756
11757         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
11758         bring up a SaveFileDialog (i hope we don't want to match the
11759         behavior of the crappy windows file entry) and set the
11760         PrinterSettings.PrintFileName accordingly.
11761
11762 2006-07-26  Jackson Harper  <jackson@ximian.com>
11763
11764         * ContainerControl.cs: Add a field that disables auto selecting
11765         the next control in a container when the container is activated.
11766         * UpDownBase.cs: Don't select the text box when the up down is
11767         selected.
11768
11769 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11770
11771         * XEventQueue.cs: Added methods for peeking (used for compression
11772           of successive events)
11773         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
11774           mouse move events (fixes #78732)
11775
11776 2006-07-25  Jackson Harper  <jackson@ximian.com>
11777
11778         * UpDownBase.cs: Use an internal class for the textbox so that we
11779         can control focus.  the updown control should always have focus,
11780         if either the text area or the buttons are clicked.
11781         - Send the key messages to the textbox, since it never actually
11782         has focus
11783         - Activate and decativate the textbox caret.
11784
11785 2006-07-24  Jackson Harper  <jackson@ximian.com>
11786
11787         * Control.cs: Use the directed select when selecting a control,
11788         this way the container controls override will get called and the
11789         whole ActiveControl chain will get triggered.  TODO: probably need
11790         to make sure this gets done everywhere instead of the old
11791         Select(Control).
11792         * ContainerControl.cs: Implement the directed Select method to
11793         find and activate the correct child control.    
11794         
11795 2006-07-22  Mike Kestner  <mkestner@novell.com>
11796
11797         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
11798         menu handling code so that clicks without a grab work too.
11799         [Fixes #78914]
11800
11801 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
11802
11803         * FileDialog.cs: Enable the BackButton when dirstack has one element.
11804           Added some small optimizations.
11805
11806 2006-07-21  Matt Hargett  <matt@use.net>
11807
11808         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
11809
11810 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
11811
11812         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
11813           tests pass and match MS in some strange border cases.
11814
11815 2006-07-21  Chris Toshok  <toshok@ximian.com>
11816
11817         * ThemeWin32Classic.cs: handle drawing of the relation links and
11818         parent row buttons.
11819
11820         * Theme.cs: change args to DataGridPaintParentRow.
11821
11822         * DataGrid.cs: Don't use controls for the relation links and
11823         parent buttons, so we have to handle all their interactions in
11824         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
11825         when we're navigating through child tables, so we can reinstate
11826         selection, expanded state, current cell, etc.
11827
11828 2006-07-20  Chris Toshok  <toshok@ximian.com>
11829
11830         * ToolBar.cs: When we redraw a button, for whatever reason,
11831         there's no reason to redraw the entire toolbar.  Also, don't call
11832         Control.Refresh from within Redraw, as it's much heavier than
11833         Invalidate (which is really what we want).
11834
11835 2006-07-20  Chris Toshok  <toshok@ximian.com>
11836
11837         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
11838         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
11839         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
11840         traces from within a debug IBindingList datasource
11841         (in mono/winforms/datagrid) for *days*, I've finally gotten things
11842         to work in a similar fashion.
11843
11844 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11845
11846         * ListBox.cs: Don't call Sort () when setting 
11847         the Sorted property to false (avoid an unnecessary sort).
11848
11849 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11850
11851         * ListControl.cs: DataSource should throw an ArgumentException
11852         instead of a normal exception when the argument is not of the 
11853         correct type.
11854
11855 2006-07-20  Mike Kestner  <mkestner@novell.com>
11856
11857         * Control.cs: add InternalPreProcessMessage to allow us to steal
11858         key events before MWF gets its paws on them.  Adapted from a
11859         suggestion by eno.
11860         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
11861         up/down/left/right navigation. Override the new internal control
11862         method to steal the events since they never make it to WndProc.
11863         * ToolBarButton.cs: don't worry about pushed when setting hilight
11864         since the drawing code prefers pushed to hilight. Invalidate on 
11865         Hilight changes. Fixes #78547 and #78525.
11866
11867 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11868
11869         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
11870           the canvas size. Fixes #78868
11871
11872 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
11873
11874         * Splitter.cs: Track requested split position until first layout
11875           is performed. Fixes #78871
11876
11877 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11878
11879         * Application.cs: Removed code that forces 1.x for the version
11880           number if the version started with 0. Not sure why that code was
11881           there and I couldn't find any bugs that indicated we needed it.
11882           Fixes #78869
11883
11884 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
11885
11886         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
11887           ResetDefaults(), just write some output to the console until it's
11888           implemented. Fixes bug #78907 for now. Eliminated two warnings.
11889
11890 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
11891
11892         * PropertyGridView.cs: set StartPosition of drop down forms
11893         so they appear in correct initial spot.  Fixes #78190.
11894
11895 2006-07-19  Mike Kestner  <mkestner@novell.com>
11896
11897         * ThemeWin32Classic.cs: use parent background color when drawing
11898         flat toolbars.  Restructure the conditionals to make sure non-flat
11899         non-Divider toolbars are filled too.  Fixes #78837.
11900
11901 2006-07-19  Mike Kestner  <mkestner@novell.com>
11902
11903         * ListBox.cs: Sort on collection changes even if the handle
11904         isn't created yet.  Fixes #78813.
11905
11906 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11907
11908         * ListControl.cs: DisplayMember should never be null,
11909         and now we assign String.Empty when null is passed to it (this
11910         is the .Net way).
11911
11912 2006-07-17  Mike Kestner  <mkestner@novell.com>
11913
11914         * ListViewItem.cs: restructure Font and subitem Font handling 
11915         to hold a specific font and refer back to owner on null.
11916         Fixes #78761.
11917
11918 2006-07-17  Mike Kestner  <mkestner@novell.com>
11919
11920         * ToolBar.cs: bandaid for side-effect of previous patch which was
11921         discarding explicit heights for non-AutoSize toolbars.  Need to
11922         extend my format tester to deal with AutoSize=false. Fixes #78864.
11923
11924 2006-07-15  Jackson Harper  <jackson@ximian.com>
11925
11926         * LabelEditTextBox.cs:
11927         * TreeView.cs: Use a new LabelEdit class for node editing, this
11928         class automatically 'closes' itself when it gets the enter key or
11929         loses focus.
11930         - Use the client rectangle when setting the trees scrollbars, so
11931         border style is taken into account.
11932         
11933 2006-07-14  Jackson Harper  <jackson@ximian.com>
11934
11935         * TreeNode.cs:
11936         * TreeView.cs: Make the editing work similar to MSs, firing the
11937         events correctly and ending edits correctly.
11938
11939 2006-07-14  Mike Kestner  <mkestner@novell.com>
11940
11941         * ToolBarButton.cs:
11942         * ToolBar.cs: layout restructuring and redraw enhancements to support
11943         formatting changes gracefully, like setting TextAlign, ImageList, 
11944         ButtonSize, and Appearance.  Handles explicit button sizing quirks
11945         of the MS controls.  Things like flat toolbars ignoring button size
11946         but becoming constant sized at the largest button's size.  Normal
11947         toolbars with an image set cannot be shrunk smaller than the image,
11948         but text can be clipped/ignored.
11949         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
11950         is zero.  Seems like DrawString should be smart enough to not put
11951         anything on screen though. Also trim labels and ellipsize at the char
11952         boundary, not word.
11953         Fixes #78711 and #78483.
11954
11955 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
11956
11957         * FolderBrowserDialog.cs: Disable "New Folder" button and
11958           "New Folder" contextmenu menuitem if a folder like "My Computer"
11959           is selected.
11960
11961 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
11962
11963         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
11964         * FolderBrowserDialog.cs:
11965           - Use MWFConfig to store and read size and position settings
11966           - Added code to create a new folder (button or context menu).
11967             Use TreeView labeledit to change the name of the new folder.
11968
11969 2006-07-14  Jackson Harper  <jackson@ximian.com>
11970
11971         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
11972         when the tree is scrolled we end editing.
11973
11974 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
11975
11976         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
11977           Down arrows
11978
11979 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
11980
11981         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
11982         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
11983         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
11984         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
11985         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
11986         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
11987         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
11988         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
11989         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
11990         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
11991         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
11992         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
11993         ListViewItemSelectionChangedEventHandler.cs,
11994         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
11995         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
11996         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
11997         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
11998         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
11999         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
12000         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
12001         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
12002         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
12003         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
12004         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
12005         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
12006         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
12007         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
12008         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
12009         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
12010         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
12011         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
12012         WebBrowserNavigatingEventHandler.cs, 
12013         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
12014
12015 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
12016
12017         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
12018         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
12019         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
12020         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
12021         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
12022         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
12023         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
12024         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
12025         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
12026         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
12027         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
12028         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
12029         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
12030         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
12031         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
12032         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
12033         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
12034         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
12035         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
12036         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
12037         ListViewItemStates.cs, MaskFormat.cs: Added
12038
12039 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
12040
12041         * PropertyGridView.cs: Fix keyboard navigation of drop down.
12042         Patch from eno for bug 78558.
12043         
12044 2006-07-13  Jackson Harper  <jackson@ximian.com>
12045
12046         * TreeView.cs: When an edit is finished make sure that the
12047         selected node is visible.
12048         - When setting the top/bottom use the scrollbars is_visible, so
12049         everything will be set correctly even if the tree isn't visible
12050         yet.
12051
12052 2006-07-13  Jackson Harper  <jackson@ximian.com>
12053
12054         * ComboBox.cs: Revert the item->index part of my previous patch.
12055         * TreeView.cs: Use LostFocus instead of Leave for detecting when
12056         the edit box has lost focus (duh).
12057         - Just make the edit box not visible when we get return, that will
12058         take the focus, which will call EndEdit
12059         * TreeNode.cs When we start editing, notify the treeview.
12060
12061 2006-07-12  Jackson Harper  <jackson@ximian.com>
12062
12063         * ComboBox.cs: Clear out old items before setting the item list.
12064         This prevents databound controls from having their items added
12065         twice.
12066         - Switch the combobox to use indices whereever possible instead of
12067         using Item's.  This allows usto navigate through lists that have
12068         more then one item with the same string value (ie a, b, b, a).
12069         - Scroll the listboxes scrollbar when a non visible item is
12070         highlighted
12071         - Allow keypress to cycle through all the possible values. For
12072         example if you have b1, b2, b3 and hold down the B key all the
12073         values will be cycled through.
12074         
12075 2006-07-12  Jackson Harper  <jackson@ximian.com>
12076
12077         * TextBoxBase.cs:
12078         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
12079         this using the internal methods.
12080         * Control.cs: Add OnGotFocusInternal.  A new method that allows
12081         controls to "override" OnGotFocus and change focus behavior if
12082         needed.
12083         - Same thing for LostFocus
12084         * ComboBox.cs: Pass off focus to the text control properly.
12085
12086 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
12087
12088         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
12089         * FolderBrowserDialog.cs: Almost a complete rewrite.
12090           - Better support for Environment.Specialfolders
12091           - Added support for MWFVFS
12092           - Made setting SelectedPath work
12093
12094 2006-07-12  Jackson Harper  <jackson@ximian.com>
12095
12096         * Control.cs: Optimze getting all the controls.
12097
12098 2006-07-11  Jackson Harper  <jackson@ximian.com>
12099
12100         * ContainerControl.cs: Override SETFOCUS in the container control,
12101         so that it is not selected on mouse click.
12102
12103 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
12104
12105         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
12106           Hopefully we will have a better way once all of focus is complete.
12107
12108 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
12109
12110         * ThemeWin32Classic.cs: Commented out some debug code and fixed
12111           a compile error with csc.
12112
12113 2006-07-11  Jackson Harper  <jackson@ximian.com>
12114
12115         * Control.cs: When hiding a control only select the next control
12116         if the current control was focused.
12117         - Don't handle enter/leave when setting/killing focus, this is
12118         done by the container control.
12119         - Remove is_selected, it's not needed anymore.
12120         - Add utility methods for selecting a child control, and for
12121         firing the Enter/Leave events.
12122         * ContainerControl.cs: When a control is activated fire the
12123         enter/leave events.
12124         - Don't wrap when processing the tab key, so that focus can be
12125         moved outside of the container.
12126         - Use the correct active control
12127
12128 2006-07-11  Jackson Harper  <jackson@ximian.com>
12129
12130         * ComboBox.cs: Remove some debug code that was blinding me.
12131         * UpDownBase.cs: These controls actually aren't implicit, they are
12132         visible to the user.
12133
12134 2006-07-10  Chris Toshok  <toshok@ximian.com>
12135
12136         * DataGrid.cs: move back to the is_adding boolean field.  god i
12137         hate this is_editing/is_adding/is_changing stuff.
12138
12139 2006-07-10  Chris Toshok  <toshok@ximian.com>
12140
12141         * DataGridTableStyle.cs: just check if the property type is bool.
12142         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
12143         Don't use CanRenderType.
12144
12145         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
12146         if our text == NullText.  Remove CanRenderType.
12147
12148         * DataGridBoolColumn.cs: nuke CanRenderType.
12149
12150         * DataGrid.cs: reenable some code to end the current edit inside
12151         of set_CurrentCell.  This fixes the other 1.1.16 regression.
12152         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
12153         Also, remove the visible_row_count arg from CalcRowHeaders, since
12154         we don't need to worry about the actual height of the area.
12155
12156 2006-07-10  Chris Toshok  <toshok@ximian.com>
12157
12158         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
12159         mode, just return.
12160
12161         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
12162         the real sense of the IsInEditOrNavigateMode property (true =
12163         navigate, false = edit).  Also, update OnKeyPress to reflect this.
12164
12165         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
12166         column style exists, we still need to set its property descriptor
12167         to match up with our list manager.
12168
12169 2006-07-10  Chris Toshok  <toshok@ximian.com>
12170
12171         * ThemeWin32Classic.cs: implement the new row/header painting
12172         approach.  The parent row painting will likely go away and
12173         replaced with label controls, but the rest seems to work ok (and
12174         efficiently).
12175
12176         * Theme.cs: change the way we draw datagrid rows.  we don't draw
12177         the row headers as a block now.  Instead we draw them in the
12178         normal draw-row loop.  Add some calls for drawing parent rows and
12179         relation rows.
12180
12181         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
12182         a default table style.  Set the defaults from ThemeEngine.Current,
12183         not SystemColors.  Fix lots of misc issues with property setters.
12184
12185         * DataGrid.cs: move loads of style information out of this class
12186         as it's being duplicated with DataGridTableStyle.  keep track of a
12187         special DataGridTableStyle for the properties we used to mirror
12188         here.  Switch all the style properties to access this table style
12189         instead of instance fields of this class.  Also add a internal
12190         class to represent parent rows (more needs to be stored here, like
12191         the selection state from the parent table, as well as the
12192         expansion state.)  Also, for datasources with relations, do the
12193         right thing for collapse/expand, and add support for the
12194         navigation/parent row buttons.
12195
12196         Lastly, fix the crash in the 1.1.16 build.
12197
12198         * GridTableStylesCollection.cs: make the explicit interface
12199         implementations call the class's methods as opposed to duplicating
12200         them.
12201
12202         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
12203         0 so the text doesn't jump around when we move the cursor.
12204
12205 2006-07-10  Jackson Harper  <jackson@ximian.com>
12206
12207         * TextBoxBase.cs:
12208         * ListBox.cs: Match MS's ToString (this makes debugging focus
12209         stuff infinitely easier).
12210
12211 2006-07-10  Jackson Harper  <jackson@ximian.com>
12212
12213         * Control.cs (SelectNextControl): When checking the control's
12214         parent use this instead of ctrl.parent so that null can be passed
12215         to SelectNextControl. (I have unit tests for this).
12216         - Remove unused var.
12217
12218 2006-07-10  Chris Toshok  <toshok@ximian.com>
12219
12220         * CurrencyManager.cs: correct one regression, the removal of the
12221         finalType field.  Also, add a MonoTODO on CanAddRows, implement
12222         Refresh() correctly, and fix some event emission in
12223         ListChangedHandler.
12224
12225 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12226
12227         * FileDialog.cs: Don't use brackets for new folders if they exist
12228           under *nix. Instead use -(number of existing folders +1).
12229
12230 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12231
12232         * FileDialog.cs:
12233           - Fixed really nasty bug #78771
12234           - Don't block the whole GUI when reading directories with a lot of
12235             entries. Use an other thread instead and call BeginInvoke to
12236             update the ListView in MWFFileView
12237
12238 2006-07-07  Chris Toshok  <toshok@ximian.com>
12239
12240         * Control.cs (Dispose): release any Capture when disposing.
12241
12242 2006-07-07  Chris Toshok  <toshok@ximian.com>
12243
12244         * LinkLabel.cs (Select): if we chain up to the parent, set
12245         focused_index to -1 so we'll search for the first available link
12246         the next time the user tabs into us.  Also, if the direction is
12247         backward and focused_index == -1, start the search from the last
12248         element.
12249
12250 2006-07-07  Chris Toshok  <toshok@ximian.com>
12251
12252         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
12253         is beyond the end of the text, don't do anything.
12254         (CreateLinkPieces): set our ControlStyles.Selectable based on
12255         whether or not we have any links.
12256         (Link.Invalidate): use a loop instead of foreach.
12257         (Link.set_Start): null out owner.sorted_links so it'll be
12258         recreated by CreateLinkPieces.
12259
12260 2006-07-06  Chris Toshok  <toshok@ximian.com>
12261
12262         * LinkLabel.cs: revert the SetStyle change.
12263
12264 2006-07-06  Chris Toshok  <toshok@ximian.com>
12265
12266         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
12267         (OnEnableChanged): s/Refresh/Invalidate
12268         (OnGotFocus): if we have a focused index already, refocus it (so
12269         if we mouse out/in to the window it'll focus the right link).
12270         (OnKeyDown): move the tab handling out of here.
12271         (OnLostFocus): don't set focused_index to -1, so we can refocus it
12272         when we lose focus.
12273         (OnMouseDown): don't Capture here - Control handles it.  Also,
12274         focus the active link.
12275         (OnMouseUp): don't deal with Capture.
12276         (OnPaintBackgroundInternal): remove.
12277         (OnTextAlignChanged): CreateLinkPieces before calling the
12278         superclass's method.
12279         (OnTextChanged): call CreateLinkPieces before calling superclass's
12280         method.
12281         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
12282         move around.
12283         (Select): implement this, moving the selection between different
12284         links, and call parent.SelectNextControl if we don't have another
12285         link to focus in the given direction.
12286         (CreateLinkPieces): call Invalidate instead of Refresh.
12287         
12288 2006-07-06  Chris Toshok  <toshok@ximian.com>
12289
12290         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
12291         new LinkLabel internals.
12292
12293         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
12294         over pieces looking for active/focused/etc links.  also, deal with
12295         runs of text (and links) with embedded \n's in them, and use
12296         MeasureCharacterRanges instead of MeasureString to figure out the
12297         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
12298         two-step.
12299
12300 2006-07-04  Jackson Harper  <jackson@ximian.com>
12301
12302         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
12303         XKB or key auto repeat, do it manually.  Without key auto repeat,
12304         when a key is held down we get key press, key release, key press,
12305         key release, ... with auto repeat we get key press, key press, key
12306         press ..., and then a release when the key is actually released.
12307
12308 2006-07-03  Jackson Harper  <jackson@ximian.com>
12309
12310         * TabControl.cs:
12311         * ThemeWin32Classic.cs: Tabs do not obey normal background color
12312         rules, they are always control color regardless of the background
12313         color.
12314
12315 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
12316
12317         * FileDialog.cs: Added internal class MWFConfig.
12318           Removed Registry support and replaced it with support for the new
12319           MWFConfig class. See MWFConfig comments for more information.
12320
12321 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
12322
12323         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
12324           rectangle. Added some patches from eno from bug #78490 and fixed
12325           the arrow position for small up and down CPDrawScrollButtons.
12326
12327 2006-06-30  Jackson Harper  <jackson@ximian.com>
12328
12329         * InternalWindowManager.cs: Remove some debug code.
12330         * Form.cs: When an MdiParent is set to null, the window is
12331         "detatched" and becomes a normal window.
12332         * MdiClient.cs: Don't bring the new child form to the front until
12333         it is activated (setting it as active does this), this makes the
12334         previously active forms titlebar get redrawn as inactive.
12335
12336 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
12337
12338         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
12339           with later controls
12340
12341 2006-06-29  Mike Kestner  <mkestner@novell.com>
12342
12343         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
12344         arrow in keynav state.  Fixes #78682.
12345
12346 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12347
12348         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
12349           order (fixes #78393)
12350
12351 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
12352
12353         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
12354           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
12355           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
12356           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
12357           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
12358           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
12359           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
12360           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
12361           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
12362           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
12363           enumerations (FlagsAttribute, SerializableAttribute, added/removed
12364           values)
12365
12366 2006-06-28  Mike Kestner  <mkestner@novell.com>
12367
12368         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
12369
12370 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12371
12372         * PropertyGrid.cs,
12373           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
12374           item lines from other area (It also makes BackColor consistent and
12375           compatible with .NET). Fixed bug #78564.
12376
12377 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
12378
12379         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
12380         Patch from Eno for #78555.
12381
12382 2006-06-27  Chris Toshok  <toshok@ximian.com>
12383
12384         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
12385
12386         * DataGridColumnStyle.cs: same.
12387
12388         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
12389         
12390         * DataGridDrawingLogic.cs: nuke.
12391
12392 2006-06-27  Chris Toshok  <toshok@ximian.com>
12393
12394         * DataGridTableStyle.cs: clean up the constructors, and build the
12395         list of child relations for this table.  I have no idea if this is
12396         where we should be doing it (it probably isn't), but since we're
12397         already iterating over the properties..
12398
12399         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
12400         struct and array for keeping track of row information, similar to
12401         what's shown in a hack on
12402         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
12403
12404         * Theme.cs: be consistent about the naming of DataGrid methods,
12405         prefering ColumnWidths and RowHeights over columnsWidths and
12406         RowsHeights.
12407
12408         * ThemeWin32Classic.cs: same, and also add support for variable
12409         sized rows (and the +/- expansion icons for related rows).
12410
12411 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12412
12413         * TextBoxBase.cs: Applied Eno's patch from #78660
12414
12415 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12416
12417         * Form.cs (ScaleCore): We don't want to scale our form if it's
12418           state is minimized or maximized, but we still need to scale our
12419           child windows. Also, added try/finally block to ensure layout
12420           gets reset (Fixes #78697)
12421
12422 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12423
12424         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
12425
12426 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12427
12428         * Form.cs: Fixed c+p error and added check to resize form if minimum
12429           size is bigger than current size (Fixes #78709)
12430
12431 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
12432
12433         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
12434
12435 2006-06-26  Mike Kestner  <mkestner@novell.com>
12436
12437         * ComboBox.cs: only do Keypress handling in the combo when there  
12438         are items in the collection. Fixes #78710.
12439
12440 2006-06-26  Chris Toshok  <toshok@ximian.com>
12441
12442         * Binding.cs: make this work bi-directionally.  also, clear up
12443         other mixups between Push/Pull Data (e.g. we're supposed to pull
12444         data when validating).
12445
12446         * BindingManagerBase.cs: trim some fully qualified collection
12447         types.
12448
12449         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
12450
12451 2006-06-23  Chris Toshok  <toshok@ximian.com>
12452
12453         * PropertyManager.cs: It appears (according to the unit tests)
12454         that PropertyManager doesn't use
12455         PropertyDescriptor.AddValueChanged to track propery value changes
12456         in its datasource, but uses the same scheme as Binding, where it
12457         looks for a <Property>Changed event and binds to it.
12458
12459         Also, according to the docs, IsSuspended always returns false for
12460         a property manager with a non-null datasource.
12461
12462 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
12463
12464         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
12465           need to update the actual DialogResult. (Fixes #78613)
12466
12467 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
12468
12469         * Form.cs (ShowDialog): Release any captures before running the
12470           new message pump (fixes #78680)
12471
12472 2006-06-22  Mike Kestner  <mkestner@novell.com>
12473
12474         * ListView.cs: Layout column widths properly in details mode even 
12475         if HeaderStyle.None is set.  Fixes #78691.
12476
12477 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
12478
12479         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
12480
12481 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
12482
12483         * Control.cs (ContainsFocus): Using new driver method to get focused
12484           window, instead of trying to use internal tracking var, which can
12485           recursion issues (Fixes #78685)
12486         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12487           XplatUIWin32.cs: Added GetFocus method to return focused window
12488
12489 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12490
12491         * ColorDialog.cs: when the mouse button is pressed inside the color
12492         matrix, don't let the cursor move out of it until the button is
12493         released, which is the behavior on windows. Changed 'colours' by
12494         'colors' to use the same word consistently.
12495
12496 2006-06-21  Chris Toshok  <toshok@ximian.com>
12497
12498         * DataGrid.cs: add in some basic navigation stuff (navigating to a
12499         child relation and back, using a stack).  Also, remove
12500         GetDataSource and the code that calls it - it's not needed.  Also,
12501         track CurrencyManager.ListName's removal.
12502
12503 2006-06-21  Chris Toshok  <toshok@ximian.com>
12504
12505         * CurrencyManager.cs: push some of the original type checking from
12506         BindingContext.CreateBindingManager to here, and remove some of
12507         the finalType stuff.  Need more tests to make sure I've got the
12508         ListName part right, and we might need more in SetDataSource.
12509
12510         * PropertyManager.cs: add a ctor that takes just the datasource,
12511         and no property name.  Make SetDataSource work with a null
12512         property_name, and make Current return the data_source if the
12513         property descriptor is null.  this makes 'string foo = "hi";
12514         BindingContext[foo].Current' return "hi" as it should.
12515
12516         * RelatedCurrencyManager.cs: make this code more generic - there's
12517         no reason the parent manager has to be CurrencyManager, and
12518         there's no reason to pass the DataRelation.  It suffices to use a
12519         BindingManagerBase and PropetyDescriptor.
12520
12521         * RelatedPropertyManager.cs: make a similar change here.
12522         
12523         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
12524         flower I knew it could be.
12525
12526 2006-06-20  Chris Toshok  <toshok@ximian.com>
12527
12528         * PropertyManager.cs: the PropertyChangedHandler is invoked when
12529         data in the source has changed and we need to update the control,
12530         so s/PullData/PushData.
12531
12532         * CurrencyManager.cs: Refresh is meant to update the control from
12533         data in the datasource.  So, s/PullData/PushData.
12534
12535         * BindingContext.cs: add more ugliness (we weren't handling the
12536         case where data_source = DataTable and data_member = column_name).
12537
12538         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
12539         from the perspective of the datasource.  PullData pulls from the
12540         control, PushData pushes to the control.
12541
12542 2006-06-20  Chris Toshok  <toshok@ximian.com>
12543
12544         * BindingContext.cs: rewrite the CreateBindingManager code to
12545         handle navigation paths more or less properly.  This could
12546         definitely stand some more work, in particular to push the
12547         recursion up to the toplevel.  But that relies on fixes in other
12548         places (System.Data comes to mind).
12549
12550         Also, move to a flat hashtable (and encode the twolevel nature of
12551         the dictionary into the hash key).  This lets us implement the
12552         IEnumerable.GetEnumerator method.
12553
12554         * RelatedCurrencyManager.cs: new class.  Update our view based on
12555         our relation and our parent CurrencyManager's position.
12556
12557         * CurrencyManager.cs: split out some logic from the ctor into
12558         SetView, so it can be called from the new RelatedCurrencyManager
12559         subclass.
12560
12561         * RelatedPropertyManager.cs: new class.  Update our datasource
12562         based on the position of our parent CurrencyManager.
12563
12564         * PropertyManager.cs: split out some logic from the ctor into
12565         SetDataSource, so it can be called from the new RelatedDataSource
12566         subclass.  Also, make the Current getter return the value
12567         of the PropertyDescriptor, not the data_source.
12568
12569         * Binding.cs: no need to duplicate the string splitting code here.
12570
12571 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12572
12573         * Control.cs:
12574           - set_Enabled: OnEnabledChanged is not called if the inherited state 
12575             of the control is not altered, even though  we might be changing the
12576             internal state of the control (#78458)
12577           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
12578             OnEnabledChanged, to allow easy altering of any child window state
12579           - OnEnabledChanged: Added code to enable/disable driver window state
12580           - OnParentEnabledChanged: Instead of firing the event, call 
12581             OnEnabledChanged, which will fire the event and also a) set driver
12582             window state and pass the enabled state to any grandchildren (#78458)
12583
12584 2006-06-19  Jackson Harper  <jackson@ximian.com>
12585
12586         * InternalWindowManager.cs: We don't set the cursor explicitly
12587         thats done via the response to NCHITTESTs.
12588         - Don't need to adjust for titlebar heights anymore, the
12589         coordinates are coming in the correct coordinates now (see peters
12590         last patch).
12591
12592
12593 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12594
12595         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
12596           being translated relative to whole window, instead of client window.
12597           That caused broken offsets on mouseclick (and caused gas for our
12598           InternalWindowManager)
12599
12600 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12601
12602         * TextControl.cs:
12603           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
12604           - Undo(): Added replay of cursor move on DeleteChars action; added
12605             calling Undo() again if a recorded cursor move is invalid (to
12606             ensure that some action is performed on Undo)
12607         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
12608
12609 2006-06-16  Jackson Harper  <jackson@ximian.com>
12610
12611         * MdiClient.cs: Instead of just sizing maximized windows when
12612         there is a resize we also have to adjust the Y of minimized
12613         windows, so they stay pinned to the bottom of the mdi container.
12614         - Eliminate separate tracking of the active control, we can just
12615         get this from the controls collection.
12616         - Paint the decorations for the newly activated titlebar so we get
12617         a pretty blue bar.
12618         * InternalWindowManager.cs:
12619         * ThemeWin32Classic.cs: Minimized windows get all three buttons
12620         even if they are a tool window.
12621         
12622 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12623
12624         * TextControl.cs (Undo): Handle non-existent cursor locations in the
12625           undo buffer, these can happen when text was deleted and the cursor
12626           was recorded first. Since we will also have a recorded cursor
12627           after the delete this is not an issue. (Fixes #78651)
12628
12629 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
12630
12631         * AccessibleObject.cs: Remove dependence on Control.is_selected;
12632           instead properly track control states internally (allows us to
12633           remove is_selected from Control)
12634
12635 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12636
12637         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
12638         whose width is not a multiple of 8.
12639
12640 2006-06-13  Jackson Harper  <jackson@ximian.com>
12641
12642         * MdiClient.cs:  Only maximize the next child if the current one
12643         is maximized.
12644
12645 2006-06-13  Chris Toshok  <toshok@ximian.com>
12646
12647         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
12648         modified.  Also, guard against grid or grid_drawing being null in
12649         Invalidate.
12650
12651         * DataGrid.cs: Reformat tons of getters/setters.  In the
12652         DataMember setter, just call SetNewDataSource instead of
12653         duplicating some of its functionality.  In SetNewDataSource, don't
12654         check ListManager for null, since the property getter creates the
12655         object if needed.
12656
12657         * DataGridTableStyle.cs: don't set TableStyle or call
12658         SetDataGridInternal on the column here, it's done in
12659         GridColumnStylesCollection.Add.
12660
12661         * GridColumnStylesCollection.cs: fix all the explicit interface
12662         implementations to just call our methods.  Nuke AddInternal() and
12663         move the body of it to Add().  Also, add a call to
12664         column.SetDataGridInternal to Add().
12665
12666         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
12667         base()+duplicate code.  Also, use the Format property instead of
12668         format to generate an Invalidate ala MS.  Lastly, create the
12669         textbox here, unconditionally.
12670         (set_Format): call Invalidate.
12671         (get_TextBox): no need to call EnsureTextBox.
12672         (Commit): remove the message box.
12673         (Edit) remove the call to EnsureTextBox.
12674         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
12675         (EnterNullValue): no need to check textbox for null.
12676         (HideEditBox): no need to check textbox for null.
12677         (SetDataGridInColumn): add the textbox to the grid's controls.
12678         (EnsureTextBox): nuke.
12679         
12680 2006-06-13  Jackson Harper  <jackson@ximian.com>
12681
12682         * MdiWindowManager.cs: Hook up to the maximized menus paint event
12683         and redraw the buttons when needed. Unhook when the window is
12684         unmaximized.
12685         * MainMenu.cs: Add an internal Paint event, the mdi window manager
12686         needs this so that it can redraw its buttons when the menu is
12687         repainted.
12688         * InternalWindowManager.cs:
12689         * Form.cs: The method order has changed for DrawMaximizedButtons,
12690         so that it can be a PaintEventHandler.
12691         
12692 2006-06-13  Jackson Harper  <jackson@ximian.com>
12693
12694         * MdiClient.cs: When we close a maximized mdi window, the next mdi
12695         window is activated and maximized, even if it wasn't before.
12696         - When  a new window is activated repaint the decorations of the
12697         old one, so that it no longer has the Active "look" (the blue
12698         titlebar).
12699         * InternalWindowManager.cs: Open up CreateButtons to base classes
12700         so they can recreate the buttons on state changes.
12701         - If a window is maximized give it all three buttons
12702         * MdiWindowManager.cs: Create the titlebar buttons when the state
12703         is changed, this is needed because a toolwindow will not have all
12704         three buttons until it is maximized.
12705
12706 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
12707
12708         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
12709           Fixed bug #78609.
12710
12711 2006-06-12  Jackson Harper  <jackson@ximian.com>
12712
12713         * KeysConverter.cs: Make sure we handle the Ctrl special case
12714         if its the only key.
12715         
12716 2006-06-12  Jackson Harper  <jackson@ximian.com>
12717
12718         * Theme.cs: Add a method to get the size of a managed window
12719         toolbar button.
12720         * InternalWindowManager.cs: Remove the ButtonSize property, this
12721         should be retrieved from the theme.
12722         * MdiWindowManager.cs: Get the button size from the theme
12723         * ThemeWin32Classic.cs: Make the method to get the managed window
12724         titlebar button size public.
12725         - Handle the different button sizes of maximized toolwindows
12726         (should match any maximized window).
12727         - Get the titlebar height from the theme, not the WM (which gets
12728         it from the theme).
12729
12730 2006-06-12  Jackson Harper  <jackson@ximian.com>
12731
12732         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
12733         event down to the mdi window manager.
12734         - Expose some extra stuff to base classes
12735         - Make sure to end the Capture on an NC Mouse up, so that we can
12736         get double clicks properly, and the sizing doens't stick.
12737         - When doing PointToClient contain it in the workable desktop
12738         area, this prevents windows from changing size when the cursor is
12739         pulled outside of the working area while sizing.
12740         * MdiWindowManager.cs: When we get a double click maximize the
12741         window.
12742         - Reset the cursor after handling mode changes.
12743
12744 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
12745
12746         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
12747           current desktop, instead of just assuming a 0, 0 origin. This
12748           is needed for our internal window manager, to know the top
12749           margin of the desktop
12750
12751 2006-06-12  Chris Toshok  <toshok@ximian.com>
12752
12753         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
12754         we need this to get rid of the selected background in the bool
12755         column.
12756         (CancelEditing): move the ConcedeFocus call to above the Abort
12757         call.  Also, set is_changing to false and invalidate the row
12758         header if we were changing before.
12759         (ProcessKeyPreviewInternal): remove, since noone outside this
12760         class calls it anymore.  Roll the code into ProcessKeyPreview.
12761         (EndEdit): remove the internal version.
12762         (InvalidateCurrentRowHeader): make private.
12763
12764         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
12765         Keys.Escape handling (and with it the last call to
12766         DataGrid.EndEdit from outside the class.)
12767
12768
12769 2006-06-12  Chris Toshok  <toshok@ximian.com>
12770
12771         * DataGridTextBox.cs (.ctor): isedit defaults to false.
12772         (OnKeyPress): set isedit to true.
12773         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
12774         already handled by the grid.
12775
12776         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
12777         right.  ugh.
12778         (set_DataSource): SetDataSource always returns true, so stop
12779         putting it in an if statement.
12780         (EndEdit): get rid of some {}'s
12781         (ProcessGridKey): return true in case Keys.Escape.
12782         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
12783         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
12784         PositionChanged, stopped connecting to CurrentChanged.
12785         (GetDataSource): simplify this a bunch.
12786         (SetDataSource): change return type from bool to void.
12787         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
12788         to this, and make sure we don't set ListManager.Position inside
12789         set_CurrentCell.
12790         (OnListManagerItemChanged): if we're passed an actual index,
12791         redraw that row.
12792
12793         * CurrencyManager.cs (set_Position): don't call PullData here.
12794
12795 2006-06-09  Jackson Harper  <jackson@ximian.com>
12796
12797         * TreeNode.cs:  Recalculate the visible order before doing the
12798         Expand/Collapse Below calls, because those calls generate an
12799         expose.
12800         - Reduce calls to the TreeView property, which is mildly expensive
12801         by using a local var.
12802         * Form.cs: Layout the MDI child windows when creating the parent
12803         form.
12804         - Don't use the internal constructor anymore
12805         * MdiClient.cs: use the parent form width/height (if available)
12806         when laying out the child windows, we do this because the
12807         mdiclient isn't docked yet when the initial layout is done.
12808         - Don't need an internal constructor anymore.
12809
12810 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12811
12812         * FileDialog.cs: handle access errors when trying to create a folder
12813         or changing to a directory. No need to initialize out parameters.
12814
12815 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12816
12817         * FileDialog.cs: Append a number when creating a new folder if the
12818           folder already exists (use parenthesis instead of square brackets)
12819
12820 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12821
12822         * FileDialog.cs:
12823           - Disabled registry support for windows and added better registry
12824             error checking for other systems (need to investigate why it
12825             works perfectly on my system)
12826           - If a folder already exist show an error MessageBox instead of
12827             trying to create an indexed name.
12828           - Fixed a non intentional typo.
12829
12830 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12831
12832         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
12833
12834 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12835
12836         * FileDialog.cs: When creating a new folder don't crash if the
12837           folder already exists.
12838
12839 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12840
12841         * FileDialog.cs: Allmost a complete rewrite.
12842           - added a "virtual" file system that handles the differences
12843             between unix and windows file systems (especially the directory
12844             structure). Moved most of the directory and file handling code
12845             into the vfs.
12846             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
12847             UnixFileSystem and FSEntry.
12848           - Recently used folder/directory, size, location and used file names
12849             (file name ComboBox) are now stored in the registry and get read
12850             before the dialog shows up (fixes part 6 of bug #78446).
12851           - Creation of new folders/directories is now possible (context menu
12852             or ToolBar). Added TextEntryDialog for this that fills in the gap
12853             until ListView.LabelEdit works.
12854           - Fixed cursor handling (bug #78527) and focus handling for
12855             PopupButtonPanel
12856           - Various "Search in" ComboBox enhancements. The content of the
12857             dropdown listbox now almost matches ms.
12858           - Changed the behaviour when the user switches to SpecialFolder
12859             Recent to show the ListView in View.Details.
12860           - Beside using the ToolBar to change the View property of the
12861             file ListView it is now possible to use the context menu too.
12862
12863 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12864
12865         * ComboBox.cs: Don't create a new ObjectCollection when an item
12866           gets inserted. Just insert the item in the existing object_items
12867           ArrayList.
12868
12869 2006-06-08  Jackson Harper  <jackson@ximian.com>
12870
12871         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
12872         that the treeview and root node checks are done also, this fixes a
12873         regression i caused in the unit tests.
12874
12875 2006-06-07  Wade Berrier <wberrier@novell.com> 
12876
12877         * RichTextBox.cs: More ISO8859-1 -> unicode
12878
12879 2006-06-07  Mike Kestner  <mkestner@novell.com>
12880
12881         * ComboBox.cs : use items to hold highlight/selection so that
12882         collection insertions don't require synchronization.
12883
12884 2006-06-07  Jackson Harper  <jackson@ximian.com>
12885
12886         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
12887         routine.  We now always keep the sized edge at the cursor instead
12888         of computing movement and adjusting rects.  There is one buglet
12889         with this method though when the cursor is moved over area that
12890         the window can not expand too (such as the toolbars on the desktop).
12891
12892 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12893
12894         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
12895         here. Fixes crash on startup in AlbumSurfer.
12896
12897 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
12898
12899         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
12900           values
12901
12902 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12903
12904         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
12905         statement to avoid calling XNextEvent which will block if another thread
12906         took the event that we were expecting. Fixes bug #78605.
12907
12908 2006-06-07  Mike Kestner  <mkestner@novell.com>
12909
12910         * ListView.cs : isolated checkbox clicking from the selection logic.
12911         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
12912
12913 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12914
12915         * Form.cs: Check that the value passed to Form.DialogResult
12916         is a valid enum value.
12917
12918 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12919
12920         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
12921         Computer'. Clicking it in the network view goes to 'My Computer'.
12922         Added CIFS filesystem type. Display the mount point of filesystems.
12923         Avoid duplicate mount points (happens for me with CIFS);
12924
12925 2006-06-06  Jackson Harper  <jackson@ximian.com>
12926
12927         * InternalWindowManager.cs: Draw the maximized windows buttons
12928         when resizing.
12929
12930 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12931
12932         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
12933         all other dialogs. Fixes bug #78585.
12934
12935 2006-06-06  Mike Kestner  <mkestner@novell.com>
12936
12937         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
12938         Only invalidate checkbox on checkstate changes to avoid flicker.
12939         * ListBox.cs : avoid unselect/select when clicking selected item.
12940         avoid reselection flicker for already multiselected items.
12941         Fixes #78382.
12942
12943 2006-06-06  Jackson Harper  <jackson@ximian.com>
12944
12945         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
12946         the parent form so that the menu is removed if needed.
12947
12948 2006-06-06  Mike Kestner  <mkestner@novell.com>
12949
12950         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
12951         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
12952
12953 2006-06-06  Mike Kestner  <mkestner@novell.com>
12954
12955         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
12956
12957
12958 2006-06-06  Jackson Harper  <jackson@ximian.com>
12959
12960         * Control.cs: Use the property (instead of the field) to get the
12961         default cursor so it is instantiated correctly.
12962         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
12963         resizes so we need to manually repaint the window decorations here.
12964         - Set the titlebar button locations as soon as they are created,
12965         otherwise they are not set correctly on win32.
12966         
12967 2006-06-06  Chris Toshok  <toshok@ximian.com>
12968
12969         * CurrencyManager.cs (set_Position): call PullData before
12970         OnCurrentChanged.
12971         (AddNew): after calling IBindingList.AddNew, update our
12972         listposition, and call OnCurrentChanged/OnPositionChanged (without
12973         calling PullData).
12974         (OnCurrentChanged): remove the call to PullData from here.
12975         (OnItemChanged): remove the call to PushData from here.
12976         (OnPositionChanged): change the test from == null to != null to
12977         match the other methods.
12978         (ListChangedHandler): the grossest part of the patch.  Implement
12979         this such that it passes the unit tests in CurrencyManagerTest and
12980         the output more or less matches that of MS's implementation.
12981  
12982 2006-06-06  Mike Kestner  <mkestner@novell.com>
12983
12984         * ListView.cs : only update check state on single click.
12985         * ThemeWin32Classic.cs : fix focus drawing for details view without
12986         fullrowselect.  Fixes #78454.
12987         * XplatUIX11.cs : fix for double click emission.
12988
12989 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
12990
12991         * PropertyGridView.cs : Applied Atsushi's patch to fix
12992         font dialog bug  (#78197).
12993
12994 2006-06-05  Jackson Harper  <jackson@ximian.com>
12995
12996         * TreeNode.cs: Compute the next node for expanding/collapsing
12997         correctly. We now factor in nodes without a NextNode
12998         correctly. (Fixes somes cases in nunit-gui).
12999         * InternalWindowManager.cs: Set the bounds when updating the
13000         virtual position of a tool window.
13001         
13002 2006-06-05  Chris Toshok  <toshok@ximian.com>
13003
13004         * DataGrid.cs: rename cached_currencymgr to list_manager.
13005         (set_CurrentCell): move SetCurrentCell code here, and clean it up
13006         some.
13007         (CurrentRow, CurrentColumn): single accessors so we can make the
13008         cursor movement code a lot easier to understand.
13009         (CurrentRowIndex): implement this in terms of CurrentRow.
13010         (BeginEdit): clean this up a bit.
13011         (CancelEditing): sort out the is_editing/is_changing/is_adding
13012         stuff a little.
13013         (EndEdit): minor changes.
13014         (OnKeyDown): add a comment about a (most likely) unnecessary
13015         check.
13016         (OnMouseDown): cancel editing when we click on a row header.  And
13017         use the CurrentRow setter, not CurrentCell.
13018         (ProcessDialogKey): directly call ProcessGridKey.
13019         (UpdateSelectionAfterCursorMove): factor out this common block of
13020         code (it's used everywhere that we move the cursor by updating row
13021         or column).
13022         (ProcessGridKey): pretty substantial overhaul.  Use the
13023         CurrentRow/CurrentColumn properties to make the code a lot more
13024         readable.  Only use the CurrentCell property when we have to
13025         modify both row and column at once.  Tab behavior is still broken,
13026         and Delete is untested.
13027         (Select): if we have no selected rows, set selection_start to
13028         @row.
13029         (EditCurrentCell): rename EditCell this.  It was only ever invoked
13030         with CurrentCell as the arg, so drop the arg and rename it.
13031
13032         * DataGridColumnStyle.cs: clean up the constructors a little, and
13033         drop CommonConstructor().
13034
13035         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
13036         actually get notified when the user hits it.
13037         (ProcessKeyMessage): *substantially* simplify this method.
13038         There's no reason (that I can see) for the textbox to be making
13039         calls into the datagrid at all.  Remove all of them but the ones
13040         for Enter handling.  those will take some more work.
13041
13042         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
13043         calling HideEditBox.
13044         (HideEditBox): if we have an active textbox, render it invisible
13045         without causing a re-layout of the datagrid.
13046
13047 2006-06-05  Mike Kestner  <mkestner@novell.com>
13048
13049         * ListView.cs : fix NRE crasher when focuseditem is cleared by
13050         collection changes by resetting it to Items[0].  Fixes #78587.
13051
13052 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13053
13054         * MessageBox.cs: if the height of the text is larger than the icon_size,
13055         use that. Fixes bug #78575.
13056
13057 2006-06-05  Jackson Harper  <jackson@ximian.com>
13058
13059         * TreeView.cs: Fix line drawing when scrolling.  To do this each
13060         node is basically responsible for drawing its entire horizontal
13061         area.  When drawing a node it draws its parent node lines if
13062         needed.
13063         - Adjust the clip area to the viewport rectangle
13064         - Fix Left/Right key handling to match MS. (It expand/collapses
13065         and moves to parents/first child but does not move selection to
13066         sibling nodes).
13067         - Fix SetTop to work with new bound calculation code
13068         - When scrollbars are no longer needed we need to reset scrolling
13069         vars and recalculate the visible order so the redraw is correct
13070         * TreeNode.cs: We can't expand/collapse nodes with no children.
13071
13072 2006-06-03  John Luke  <john.luke@gmail.com> 
13073
13074         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
13075         so the colors work without dev packages
13076         
13077 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
13078
13079         * Control.cs 
13080           - Select: Implemented to just use activate. Seems to match MS 
13081             behaviour closest. Documented to only do actual control walking 
13082             based on it's parameters if in a container control so I moved 
13083             the code there.
13084           - Removed selection check logic from our internal Select() method
13085         * ContainerControl.cs:
13086           - Select: Moved selection logic from Control here, since MS documents
13087             that containers obey the bool arguments. No longer calling base
13088
13089 2006-06-02  Jackson Harper  <jackson@ximian.com>
13090
13091         * TreeView.cs: If the selected node isn't changed when we get
13092         focus update the previously selected node so that we see the
13093         selection box.
13094
13095 2006-06-02  Mike Kestner  <mkestner@novell.com>
13096
13097         * ComboBox.cs: restructure grab and general mouse event handling.
13098         Make the composite control raise mouse events like it was a single
13099         control for leaves/enters/motion/up/down events.  fix dropdown list
13100         coordinate mangling and refactor it into the scrollbar subclass to
13101         reduce code duplication.  Fixes #78282 #78361 and #78457.
13102
13103 2006-06-02  Mike Kestner  <mkestner@novell.com>
13104
13105         * ScrollBar.cs: remove Capture setting/clearing, as it happens
13106         automatically in the Control.WndProc.
13107
13108 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13109
13110         * FileDialog.cs: fix crash when running SharpChess, which sets the
13111         FilterIndex to 2 with only one Filter.
13112
13113 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13114
13115         * ToolBar.cs: add SizeSpecified property.
13116         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
13117         try to figure out our real size, otherwise fallback to what the
13118         container says.
13119
13120 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13121
13122         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
13123         * Control.cs (WndProc): MS always calls the DefWndProc to pass
13124           up the event
13125
13126 2006-06-01  Mike Kestner  <mkestner@novell.com>
13127
13128         * ListView.cs: revamp the focus management in ListView.  It still
13129         causes churn of LostFocus/GotFocus emissions on clicks, but it's
13130         better than not handling focus at all.  Will revisit when pdb feels
13131         the general focus handling is solid.  Fixes #78526.
13132
13133 2006-06-01  Jackson Harper  <jackson@ximian.com>
13134
13135         * TreeView.cs: Set the default border style in the constructor.
13136         - Move painting to use OnPaintInternal instead of capturing
13137         WM_PAINT, this is the correct way of doing things
13138         - UpdateBelow shouldn't invalidate the scrollbar area
13139         - Cap the top on update below in case the node was above the top
13140         of the viewport rectangle.
13141         - ExpandBelow and Collapse below need to obey Begin/End Update.
13142         * TreeNode.cs: Make is_expanded internal so the treenode
13143         collection can change it without firing the whole event chain.
13144         * TreeNodeCollection.cs: When clearing all the child nodes make
13145         sure to recalc the visible order.
13146         - Improve algo for remove the top node
13147
13148 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13149
13150         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
13151           SendMessage directly calling window procedures, which in turn might
13152           call SetFocus()
13153
13154 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
13155
13156         * Control.cs: Don't handle WM_SETFOCUS if the same window already
13157           has focus (works around X11 sending a FocusIn after our SetFocus)
13158         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
13159
13160 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
13161
13162         * Mime.cs: Fix for the NET_2_0 build.
13163           NameValueCollection needs StringComparer now.
13164
13165 2006-05-31  Chris Toshok  <toshok@ximian.com>
13166
13167         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
13168         return (via an out parameter) the starting X of the column.
13169         (UpdateVisibleColumn): track change to FromPixelToColumn.
13170         (HitTest): add a ColumnResize case here.
13171         (DrawResizeLine): new function, probably poorly named.
13172
13173         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
13174         only need to keep one reference.
13175         (set_ListManager): same.
13176         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
13177         Also, add support for HitTestType.ColumnResize.
13178         (OnMouseMove): add column resize behavior here, and change the
13179         cursor to the correct one as we move around the datagrid.
13180         (OnMouseUp): terminate the column resize if we're resizing.
13181         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
13182         for the current cell.
13183         (ConnectListManagerEvents): use cached_currencymgr.
13184         (DisconnectListManagerEvents): fill this in, using
13185         cached_currencymgr.
13186         (SetCurrentCell): remove cached_currencymgr_events handling.
13187         (SetDataMember): only call DisconnectListManagerEvents if
13188         cached_currencymgr is != null.
13189         (SetDataSource): same.
13190         (OnListManagerCurrentChanged): cached_currencymgr_events ->
13191         cached_currencymgr.
13192
13193 2006-05-31  Jackson Harper  <jackson@ximian.com>
13194
13195         * BindingManagerBase.cs: Remove somedebug code that creeped into
13196         SVN.
13197         * TreeNode.cs: We get the indent level dynamically right now, so
13198         don't track it as a member.
13199         * TreeNodeCollection.cs: Make sure all nodes added to the list
13200         have parents, treeviews/topnodes setup properly.
13201         - Don't attempt to track indent level.
13202
13203 2006-05-30  Jackson Harper  <jackson@ximian.com>
13204
13205         * BindingContext.cs: Create the currency manager tables here.
13206         This allows us to more easily create null tables (when bad data
13207         members are used), and more easily create related currency
13208         managers.
13209         * CurrencyManager.cs: All the table creation stuff is done by the
13210         binding context now.
13211         - Current should throw an exception if listposition is -1.
13212         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
13213         been bound yet.
13214
13215 2006-05-30  Mike Kestner  <mkestner@novell.com>
13216
13217         * ListView.cs: allow reexpansion of zero-width column headers.
13218         Fixes #78528.
13219
13220 2006-05-28  Chris Toshok  <toshok@ximian.com>
13221
13222         * CurrencyManager.cs (get_Current): after the late binding
13223         listposition = -1 fix, we need to guard against it here and return
13224         null, otherwise we raise an exception (which is swallowed
13225         elsewhere, and breaks datagrid databinding.)
13226
13227 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13228
13229         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
13230           than WM_SYSKEY, don't throw if get something unexpected (#78507)
13231
13232 2006-05-26  Jackson Harper  <jackson@ximian.com>
13233
13234         * ControlPaint.cs:
13235         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
13236         values, it's faster and it's all we care about (we don't care if
13237         the names aren't equal).
13238         * KeyboardLayouts.cs: Eliminate some dead code.
13239         - Lazy init things
13240         * X11Keyboard.cs: Lazy init keyboard detection.
13241         - Cleanup access modifiers a little.
13242
13243 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13244
13245         * XplatUIX11.cs: Once again, attempting to get layout just right.
13246
13247 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
13248
13249         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
13250           the sizes of each link section, that will result in sizes that
13251           match DrawString's layout (Fixes #78391)
13252
13253 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
13254
13255         * FileDialog.cs: If AddExtension property is true autocomplete the
13256           extensions in SaveFileDialog correctly. Fixes bug #78453.
13257           Set MyNetwork and MyComputer to "C:\" for windows. This should
13258           fix part 8 of bug #78446 for now.
13259
13260 2006-05-26  Chris Toshok  <toshok@ximian.com>
13261
13262         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
13263         invalidate the current row header if we need to, but presumably
13264         we'll invalidate the row corrsponding to the bounds or
13265         editingControl.
13266         (GridHScrolled): switch back to this method, as it's part of the
13267         public api.  *sigh*.
13268         (GridVScrolled): same.
13269         (OnMouseWheel): hack up something that more or less works.  Call
13270         GridHScrolled/GridVScrolled directly, instead of duplicating much
13271         of their code here.
13272         (EnsureCellVisibility): reinstate a bunch of this code, since we
13273         can't just set the scrollbar Value and expect to do all the work
13274         in the ValueChanged handler.  Also, Call Update() after scrolling
13275         in one direction so the other XplatX11.ScrollWindow call has the
13276         proper stuff in the proper places.
13277         (EditCell): set is_editing to true before calling .Edit.
13278
13279         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
13280         don't bother comparing first.
13281         (OnKeyPress): call grid.ColumnStartedEditing before calling
13282         base.OnKeyPress.  this will set is_changing and invalidate the row
13283         header if necessary.
13284         (ProcessKeyMessage): for WM_CHAR messages, call
13285         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
13286         and WM_KEYDOWN.
13287         
13288         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
13289         it's done in the DataGrid.
13290         (NextState): call grid.ColumnStartedEditing, which takes care of
13291         invalidating the row header (and setting is_changing).
13292
13293         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
13294         here.  it's done in the DataGrid.
13295
13296 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13297
13298         * Control.cs: allow changing the cursor when the mouse position is
13299         out of bounds but Capture is set.
13300         * LinkLabel.cs: handle the case when the mouse button is pressed on the
13301         linklabel but released somewhere else.
13302
13303 2006-05-25  Jackson Harper  <jackson@ximian.com>
13304
13305         * TreeView.cs: When we get focus if there is no selected node make
13306         it the top node
13307         - Remove some uneeded setup code from Draw.
13308         * TreeNodeCollection.cs: If the tree doesn't have a top node when
13309         a new node is inserted make the new node the top.
13310         * XplatUIX11.cs:
13311         * Timer.cs: Use Utc time so that no local time zone stuff needs to
13312         be used (should be faster).
13313         
13314 2006-05-25  Chris Toshok  <toshok@ximian.com>
13315
13316         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
13317         problem with the last commit.
13318
13319 2006-05-25  Chris Toshok  <toshok@ximian.com>
13320
13321         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
13322         need the invalidate call here, while scrolling right-to-left via
13323         the left arrow key (i.e. moving the editing cell while scrolling).
13324
13325         * DataGrid.cs (.ctor): remove the initialization of
13326         ctrl_pressed/shift_pressed.  We no longer track them using key
13327         up/down handlers, but by using Control.ModifierKeys.  Also, switch
13328         to using ValueChanged handlers on the scrollbars instead of
13329         Scrolled event handlers.  This simplifies a bunch of the scrolling
13330         code.
13331         (GridHValueChanged): rename from GridHScrolled, and change it to
13332         work with the new event args.
13333         (GridVValueChanged): same.
13334         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
13335         (OnMouseWheel): actually scroll the datagrid.  Don't change the
13336         selected cell.
13337         (ProcessGridKey): correct all the keyboard navigation stuff I
13338         could find.  Ctrl up/down/left/right/home/end work now.
13339         (EnsureCellVisibility): correct method name spelling.  Also,
13340         simplify this a touch by not explicitly calling the
13341         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
13342         scrollbar value.
13343         (OnKeyUpDG): no need for this method now.
13344         
13345 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13346
13347         * LinkLabel.cs: display the OverrideCursor when hovering the label.
13348         Fixes bug #78392.
13349
13350 2006-05-25  Chris Toshok  <toshok@ximian.com>
13351
13352         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
13353         r61019.
13354
13355 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13356
13357         * Application.cs: Moved setting of is_modal and closing to before
13358           we create the control, to allow the event handlers called as a
13359           result of creation affect closing. Also removed Gonzalo's previous
13360           change to setting DialogResult, the behaviour has been moved to 
13361           Form.ShowDialog()
13362         * Form.cs: 
13363           - ShowDialog(): Removed explicit creation of the form, let RunLoop
13364             handle it instead
13365           - ShowDialog(): If no dialog result is set, we need to return Cancel
13366           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
13367             the close is cancelled
13368
13369 2006-05-25  Jackson Harper  <jackson@ximian.com>
13370
13371         * StatusBar.cs: We only need to update the sizes of the other
13372         panels when we have auto size contents.  Also we are only updating
13373         the contents of the panel, not the borders, so compensate for the
13374         border width (TODO: get this width from the theme somehow).
13375         * TreeView.cs: Scrollable is true by default
13376         - Use invalidate instead of refresh where needed
13377         - Factor the scrollable value into scrollbar updating
13378         - Update the scrollbars if the Scrollable property is altered
13379         - Update the selected node if its ImageIndex is changed
13380         - Handle null nodes in UpdateNode (mainly so we don't have to
13381         check if selected is null when updating it
13382         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
13383         are factored into the visible count
13384         - Use VisibleCount for clarity in the code
13385         - When the font is changed we need to recurse through all the
13386         nodes and invalidate their sizes
13387         
13388 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13389
13390         * Application.cs: set the DialogResult to fixed when the main form is
13391         hidden or destroyed while being modal.
13392
13393 2006-05-25  Miguel de Icaza  <miguel@novell.com>
13394
13395         * Theme.cs: Use Tangoified messagebox icons. 
13396
13397         (GetSizedResourceImage): Also cope with width = 0 and do not
13398         trigger a warning in that case (0 means "give me your icon from
13399         the resouce, no special size needed).
13400
13401 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13402
13403         * Application.cs: Leave runloop if the the main modal form is 
13404           hidden (fixes #78484)
13405
13406 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13407
13408         * BindingContext.cs : reject null datasource in Contains() and
13409           Item[].
13410         * CurrencyManager.cs : check data_member validity when data_source
13411           is dataset. When it is late binding, the initial position is -1.
13412
13413 2006-05-24  Jackson Harper  <jackson@ximian.com>
13414
13415         * TreeNodeCollection.cs: Dont't recalculate the visible order on
13416         inserted nodes that aren't visible.  This changes the
13417         max_visible_order which confuses scrollbar settings.
13418         - Use the enumerator to get the prev node instead of duplicating
13419         code.
13420         * TreeView.cs: Use new method for setting scrollbar values
13421         - Don't set the bounds every time the scrollbar is updated
13422         - When updating below the root node use an invalidate instead of a
13423         refresh to prevent the child controls (scrollbars) from being
13424         refreshed. (UpdateBelow still needs to be reworked anyways).
13425         - Reenable SetBottom now that visible orders are set correctly,
13426         added some debug code incase we ever get bad values there again.
13427         - Set the scrollbar max to 2 less then the max value, this
13428         compensates for the max value being one above the node count, and
13429         for scrollbars adding one extra "notch".
13430         - When drawing image nodes if there is an imagelist we draw the
13431         first image in the list if the supplied image index is out of the
13432         image list's bounds.
13433         
13434 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13435
13436         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
13437           we receive a size change from the WM (Fixes #78503)
13438
13439 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
13440
13441         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
13442           rectangle (Fixes #78501)
13443
13444 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13445
13446         * ButtonBase.cs: 
13447           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
13448             as a bitfield.
13449           - Fixed MouseMove to no longer switch pressed state unless the left
13450             mouse button is pressed. Atsushi provided the original patch (#78485)
13451           
13452 2006-05-24  Jackson Harper  <jackson@ximian.com>
13453
13454         * ScrollBar.cs: New internal methods that allow us to change a
13455         couple values on the scrollbar (the most common case is maximum
13456         and large change) without getting multiple invalidates.
13457
13458 2006-05-24  Chris Toshok  <toshok@ximian.com>
13459
13460         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
13461         (Edit): save off the original state in oldState, and set
13462         grid.is_editing to true.
13463         (OnKeyDown): abort editing if escape is pressed.  also, call
13464         NextState if space is pressed.
13465         (OnMouseDown): call NextState.
13466         (NextState): factor out shared code from OnKeyDown and OnMouseDown
13467         here.  Also, only invalidate the row header once (on the initial
13468         is_changing switch) to save on redraws.
13469
13470 2006-05-24  Chris Toshok  <toshok@ximian.com>
13471
13472         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
13473         if the value in the cell is different than it was before.  This
13474         keeps us from triggering a layout when we move around a datarid
13475         with a highlighted cell.
13476         (Edit): suspend layout when creating/positining the text box, and
13477         resume passing false so we don't ever actually re-layout.
13478         (ReleaseHostedControl): same.
13479         (EnsureTextBox): reformat slightly, and set WordWrap to false.
13480
13481         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
13482         control-key sequences should go to the datagrid - remove that
13483         lock.  Also, modify the conditions under which we move between
13484         cells when moving the cursor within a cell, and remove the "this"
13485         and "base" from field accesses.  We weren't even consistent, given
13486         they all were in the base class.
13487
13488 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
13489
13490         * Binding.cs : (.ctor)
13491           An obvious NRE fix for BindingTest.CtorNullTest().
13492
13493 2006-05-23  Chris Toshok  <toshok@ximian.com>
13494
13495         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
13496         them between lines.  This fixes some quirks editing cells in the
13497         datagrid.
13498
13499 2006-05-23  Jackson Harper  <jackson@ximian.com>
13500
13501         * TreeView.cs: Use begin/end update when doing expand/collapse all
13502         so that we don't get flicker on the scrollbar.
13503
13504 2006-05-23  Jackson Harper  <jackson@ximian.com>
13505
13506         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
13507         treenode calculations to be independant of the painting code. To
13508         do this nodes track a visible order which is calculated by the
13509         treeview.
13510         - Call new methods for expanding/collapsing nodes.  These methods
13511         use scrollwindow so we don't have to update everything below the
13512         node.
13513         * TreeView.cs: Refactored drawing and scrolling code.  We don't
13514         need to update nodes when drawing anymore or calculate scrollbar
13515         stuff.
13516         - Added new methods for expanding/collapsing nodes. These methods
13517         use ScrollWindow so as to not have to redraw all the nodes below.
13518         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
13519         we add/remove nodes or sort.
13520         - Handle removing the selected and the top node properly.
13521
13522 2006-05-23  Chris Toshok  <toshok@ximian.com>
13523
13524         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
13525         maybe this should actually happen in the datagrid code?
13526         (EndEdit): no need to invalidate anything, given that
13527         ReleaseHostedControl causes the datagrid to relayout, which
13528         invalidates everything anyway.
13529
13530         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
13531         in SetCurrentCell).
13532         (set_SelectionBackColor): call InvalidateSelection instead of
13533         Refresh.
13534         (set_SelectionForeColor): same.
13535         (BeginEdit): Flesh this out a bit.
13536         (CancelEditing): only do any of this if we're editing/adding.
13537         (EndEdit): same.
13538         (OnMouseDown): there's no need to cancel editing here, it's done
13539         in SetCurrentCell.
13540         (SetCurrentCell): only invalidate the current row header if it's a
13541         different row than the new one.
13542         (ShiftSelection): fix this to work like MS does.
13543         (ResetSelection): factor out the invalidation of selected_rows to
13544         InvalidateSelection.
13545         (SetDataSource): cancel any editing that's going on.
13546
13547         * DataGridColumnStyle.cs
13548         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
13549         call the non-interface version.
13550
13551         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
13552         header rectangle with the clip rectangle so we don't redraw the
13553         entire header for just a small area.  Gets rid of the last flicker
13554         when horizontally scrolling.
13555         (DataGridPaintRow): same.
13556
13557 2006-05-23  Mike Kestner  <mkestner@novell.com>
13558
13559         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
13560         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
13561         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
13562         Critical bug report.
13563
13564 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13565
13566         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
13567           and this fixes #78493
13568
13569 2006-05-23  Miguel de Icaza  <miguel@novell.com>
13570
13571         * Theme.cs (GetSizedResourceImage): Scale images if the proper
13572         size is not found.  
13573         
13574         * FileDialog.cs: Do not change the background for the side bar as
13575         it wont work nicely with the theme, and also reduces the artifacts
13576         in rendering the icons (which I want to fix too).
13577
13578         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
13579         resources, not resgen resources. 
13580
13581         (PlatformDefaultHandler): Pull images using the new API.
13582
13583 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13584
13585         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
13586           a reference to the hwnd and will not remove it unless there are
13587           no pending exposures (fixes #78341)
13588         * XplatUI.cs: Improved debug
13589
13590 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
13591
13592         * MenuAPI.cs : don't handle OnClick event when it was not the left
13593           button. Fixed bug #78487.
13594
13595 2006-05-23  Mike Kestner  <mkestner@novell.com>
13596
13597         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
13598         prefer submenus to the top menu for item lookup, to avoid popping down
13599         top-row items.
13600
13601 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
13602
13603         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
13604           Graphics.FillRectangle as the visual results are really bad (even
13605           on win). We now draw perfect arrows (and perfect shadows when the
13606           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
13607           Pen.DashPattern to draw the dots of each line.
13608
13609 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
13610
13611         * FileDialog.cs: Update the filename combobox when navigating through
13612           the ListView with the cursor keys. Fixes part 7 of bug #78446.
13613
13614 2006-05-22  Mike Kestner  <mkestner@novell.com>
13615
13616         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
13617         Fixes #78463.
13618
13619 2006-05-22  Mike Kestner  <mkestner@novell.com>
13620
13621         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
13622         requests. Fix a misspelled parameter and a copy paste exception error
13623         in Select.
13624
13625 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
13626
13627         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
13628           to get the same width/height (5/13) on X11 as the default font has on
13629           win32. This means that our DefaultFont emSize is smaller than the 
13630           the MS SWF equivalent (even thought the width/height stays the same)
13631
13632 2006-05-20  Jackson Harper  <jackson@ximian.com>
13633
13634         * MdiClient.cs:
13635         * MdiWindowManager.cs:
13636         * InternalWindowManager.cs: Make sure to use the border width from
13637         the theme.
13638
13639 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
13640
13641         * PrintDialog.cs: Implements printer details
13642
13643 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
13644
13645         * FileDialog.cs: Added focus handling for PopupButtonPanel.
13646           Fixes part 1 and 2 of bug #78446
13647
13648 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
13649
13650         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
13651           instead of sticking to the first ever calculated value
13652
13653 2006-05-19  Mike Kestner  <mkestner@novell.com>
13654
13655         * ComboBox.cs: fix mouse motion selection to use MousePosition and
13656         PointToClient, since Capture is set. Fixes #78344.
13657
13658 2006-05-19  Mike Kestner  <mkestner@novell.com>
13659
13660         * ListView.cs: match MS behavior in Details view where items are not
13661         drawn if Columns.Count == 0. 
13662         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
13663         Use a separate pen to draw the check, since changing the width affects
13664         the box as well.  Fixes #78454.
13665
13666 2006-05-18  Miguel de Icaza  <miguel@novell.com>
13667
13668         * ListView.cs: ArgumentOutOfRangeException, single versions of the
13669         exception should throw the name of the invalid argument.
13670
13671         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
13672         there are no files listed. 
13673
13674 2006-05-18  Jackson Harper  <jackson@ximian.com>
13675
13676         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
13677         up.
13678
13679 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13680
13681         * Control.cs: Brought back our old UpdateZOrder method as a private
13682           function and switched our calls from UpdateZOrder to the new one.
13683           This fixes the Paint.Net canvas disappearing bug.
13684
13685 2006-05-18  Jackson Harper  <jackson@ximian.com>
13686
13687         * Theme.cs:
13688         * ThemeWin32Classic.cs:
13689         * InternalWindowManager.cs: Move the drawing into the theme,
13690         expose everything the theme should need from the window manager.
13691
13692 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13693
13694         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
13695           from the call to NativeWindow to avoid walking up the parent chain
13696           further than needed (speeds up setting cursors and avoids setting
13697           the wrong cursor if a parent has another cursor defined)
13698         * Cursor.cs: When loading an icon as cursor, MS uses the center of
13699           the icon as hotspot, not what's contained as hotspot in the icon
13700           file. This fixes the perceived drawing offset seen with Paint.Net
13701         
13702 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13703
13704         * XplatUIX11.cs: 
13705           - Store the calculated rectangle in Hwnd object and use it when 
13706             setting the client size
13707           - Force Toolwindows to always be type Dock, to ensure they're on top
13708
13709 2006-05-18  Mike Kestner  <mkestner@novell.com>
13710
13711         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
13712         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
13713         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
13714         Substantial refactoring to remove confusing nested classes. Coding
13715         standard and Get+Set->property refactorings.  Shift to index based
13716         highlighting in ComboListBox instead of constantly using IndexOf and
13717         Items[]. Add invalidations on resize for DropDownList to fix ugliness
13718         in FileDialog growth.  Draw borders manually since Simple mode needs
13719         to look like two independent controls.  Make listbox border
13720         conditional to DropDownStyle.  Improved OwnerDraw support.
13721
13722 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
13723
13724         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
13725         Don't set the disposed graphics to null, so we can throw the "right"
13726         exception if the graphics is reused later (added a flag to avoid 
13727         double disposing). Some behaviours are different under 2.0 and are
13728         filled under bug #78448.
13729
13730 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13731
13732         * Control.cs: When double-buffering is enabled, we need to reset
13733           our graphics context between paint calls. Otherwise, any 
13734           transformations and other alterations on the context will 
13735           become cumulative (#77734)
13736
13737 2006-05-18  Mike Kestner  <mkestner@novell.com>
13738
13739         * ListView.cs: do focused item selection like MS on clicks. 
13740         Rework focus handling for ItemControl so LostFocus invalidates as
13741         well.
13742         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
13743         the ListView ItemControl has focus.
13744
13745 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
13746
13747         * XplatUIX11.cs: If client_window ends up being width or height zero
13748           due to border settings, move it off window inside whole_window (#78433)
13749
13750 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13751
13752         * Mime.cs: Shrink the mime file cache correctly.
13753
13754 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13755
13756         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
13757
13758 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13759
13760         * XplatUIX11.cs (AddExpose): More sanity checks
13761
13762 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13763
13764         * XplatUIX11.cs:
13765           - AddExpose: Don't add expose ranges outside the size of our
13766             window
13767           - Cast opacity values to Int32 to avoid crashes with certain
13768             values
13769           - Added disabled code paths that protect against illegal cross-
13770             thread painting (Developers.exe)
13771
13772 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13773
13774         * ProgressBar.cs: Invalidate the control when it's resized
13775           since block size is based on control size. (#78388)
13776
13777 2006-05-16  Miguel de Icaza  <miguel@novell.com>
13778
13779         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
13780         of setting the incoming argument to the "reset" value, we set the
13781         this.datamember to string.empty (before we were invalidating the
13782         incoming data).   
13783
13784         Fixes 78420
13785
13786 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13787
13788         * Form.cs: Only apply transparency settings after the form
13789           is created. (Fixes #77800)
13790
13791 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13792
13793         * ApplicationContext.cs: Grab the HandleDestroyed event so
13794           we know when to fire OnMainFormClosed 
13795
13796 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13797
13798         * Application.cs: Introduced sub-class to allow tracking of
13799           threads and centralized triggering of the event mess for
13800           ThreadExit, AppExit, etc..  (#76156)
13801
13802 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
13803
13804         * MimeIcon.cs:
13805           - Do not return a null icon index value for a mime subclass.
13806             Instead try the main mime type class too.
13807           - Seems that some newer distributions don't have a link to some
13808             gnome default icons anymore. So check the default gnome dir too.
13809           
13810
13811 2006-05-16  Jackson Harper  <jackson@ximian.com>
13812
13813         * MdiClient.cs: Don't paint the parent background image if we have
13814         our own background image.
13815
13816 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13817
13818         * Control.cs:
13819           - PerformLayout: Do not shrink space filled by DockStyle.Fill
13820             controls, all filled controls are supposed to overlap (#78080)
13821           - UpdateZOrder is supposed to update the control's z-order in the
13822             parent's z-order chain. Fixed to behave like that
13823           - BringToFront: Removed obsolete code
13824           - SendToBack: Simplyfied
13825           - SetChildIndex: Trigger layout calculations when Z-order changes
13826             since layout is done by z-order
13827
13828 2006-05-16  Chris Toshok  <toshok@ximian.com>
13829
13830         [ fixes bug #78410 ]
13831         * DataGrid.cs (set_AlternatingBackColor): use
13832         grid_drawing.InvalidateCells instead of Refresh().
13833         (set_BackColor): call grid_drawing.InvalidateCells.
13834         (set_BackgroundColor): use Invalidate instead of Refresh.
13835
13836         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
13837         invalidate the cell area.
13838
13839 2006-05-15  Chris Toshok  <toshok@ximian.com>
13840
13841         [ fixes bug #78011 ]
13842         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
13843         on to DataGridPaintRow.
13844         (DataGridPaintRow): take a clip argument, and only draw the cells
13845         which intersect it.  same with the not_usedarea.
13846
13847         * Theme.cs (DataGridPaintRow) add @clip parameter.
13848
13849         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
13850         XplatUI.ScrollWindow.
13851         (ScrollToRow): same.
13852
13853         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
13854         with last column which was causing a gray swath to appear with the
13855         XplatUI.ScrollWindow code.
13856
13857 2006-05-15  Chris Toshok  <toshok@ximian.com>
13858
13859         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
13860         use XplatUI.ScrollWindow.
13861         (VerticalScrollEvent): use XplatUI.ScrollWindow.
13862
13863 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
13864
13865         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
13866
13867 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13868
13869         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
13870           file since there are no equivalent X11 cursors
13871
13872 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13873
13874         * MonthCalendar.cs : DateTimePicker should reflect selected date
13875           on mouse*up*, not mouse*down*. Fixed originally reported part of
13876           bug #76474.
13877
13878 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13879
13880         * TabControl.cs : When argument index is equal or more than tab
13881           count, just ignore. Fixed bug #78395.
13882
13883 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13884
13885         * Control.cs: Dispose all child controls when control is diposed (#78394)
13886
13887 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13888
13889         * ColorDialog.cs: Finally it is possible to select the color with
13890           the text boxes
13891
13892 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13893
13894         * PrintDialog.cs: Fix typo
13895
13896 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13897
13898         * PrintDialog.cs: PrintDialog is not resizable
13899         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
13900           color. Made some ToolBar drawing methods protected virtual.
13901
13902 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
13903
13904         * PrintDialog.cs: Implementation of the PrintDialog
13905
13906 2006-05-12  Chris Toshok  <toshok@ximian.com>
13907
13908         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
13909         thumb, instead use MoveThumb.  This has the side effect of making
13910         most of the other thumb moving machinery use MoveThumb as well.
13911         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
13912         need to actually invalidate the rectangle where the new thumb will
13913         go.
13914         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
13915         We force an Update() after, so it's not as fast as it could be,
13916         but at least there's zero flicker and no droppings.
13917         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
13918         (UpdateThumbPos): add another argument (dirty), which says whether
13919         or not to calculate/add dirty regions which we later invalidate.
13920         For cases where we know we're going to use MoveThumb, we pass
13921         false for this.  Otherwise, pass true.
13922
13923 2006-05-12  Jackson Harper  <jackson@ximian.com>
13924
13925         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
13926         the status bar.
13927         
13928 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
13929
13930         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
13931           and GetClipRegion methods and UserClipWontExposeParent property.
13932         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
13933           overriding UserClipWontExposeParent property, setting to false, since
13934           Win32 handles the required expose messages to draw our clipped parent
13935           areas internally
13936         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
13937           PaintEventStart to set the user clip region if set.
13938         * Control.cs: 
13939           - Now internally tracking the Region for the control since we need to
13940             store it if the handle is not yet created and only set it when it
13941             becomes created. Before setting the region forced handle creation
13942           - Added code to draw the parents underneath a user-clipped region
13943         * Hwnd.cs: Added UserClip property
13944
13945 2006-05-12  Chris Toshok  <toshok@ximian.com>
13946
13947         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
13948         (set_Maximum): same.
13949         (set_Minimum): same.
13950         (set_SmallChange): same.
13951         (OnMouseUpSB): remove the call to refresh when releasing the
13952         thumb.  We shouldn't need it.
13953         
13954 2006-05-12  Miguel de Icaza  <miguel@novell.com>
13955
13956         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
13957         AutoSize set to None, we do not need to relayout everything, we
13958         just need to invalidate the current region.
13959
13960         (Draw): Do not draw the entire ClientArea, just redraw the
13961         clip area being passed.
13962
13963         * MdiClient.cs: Make MdiClient constructor with the Form argument
13964         internal. 
13965
13966 2006-05-12  Jackson Harper  <jackson@ximian.com>
13967
13968         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
13969         parents background image,  but strangely not their own.
13970         - (DrawStatusBarPanel): Take into account horizontal alignment
13971         when drawing the strings and icons.
13972
13973 2006-05-12  Mike Kestner  <mkestner@novell.com>
13974
13975         * ListBox.cs: avoid invalidations for focus when the collection is
13976         empty. 
13977
13978 2006-05-12  Chris Toshok  <toshok@ximian.com>
13979
13980         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
13981         invalidate the entire thumb area.  Call InvalidateDirty which
13982         limits the redraw to the thumb itself and surrounding pixels.
13983
13984         * XplatUIX11.cs (ScrollWindow): optimize copying.
13985         
13986 2006-05-12  Chris Toshok  <toshok@ximian.com>
13987
13988         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
13989         Figure out the positioning/layout in a single pass instead of
13990         multiple recursive invocations.  Speeds up the initial display of
13991         the data grid.  Also, make many things private that were
13992         originally public but unused outside this class.
13993
13994 2006-05-11  Jackson Harper  <jackson@ximian.com>
13995
13996         * MdiClient.cs: Improved layout code.
13997
13998 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
13999
14000         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
14001           not SelectedObject.
14002
14003 2006-05-11  Chris Toshok  <toshok@ximian.com>
14004
14005         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
14006         union of that will always be {0,0,width,height}.
14007
14008 2006-05-11  Jackson Harper  <jackson@ximian.com>
14009
14010         * Form.cs: Match MS's DefaultSize for forms (they must have
14011         changed the size in sp2).
14012
14013 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14014
14015         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
14016
14017 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14018
14019         * TextControl.cs : Fixed bug #78109. This incorrect position
14020           comparison caused crash on automatic line split.
14021         * TextBoxBase.cs : reduce duplicate code.
14022
14023 2006-05-10  Jackson Harper  <jackson@ximian.com>
14024
14025         * MdiClient.cs: Active form is only sent to the back when using
14026         the Next form functionality, when a form is clicked the current
14027         active shouldn't be sent to the back.
14028         - Layout the mdi windows when the container is first made visible.
14029         * Form.cs: Give the MdiClient a ref to the containing form when we
14030         create it.
14031         
14032 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14033
14034         * LinkLabel.cs : link_font could be uninitialized, so populate one
14035           before actual use. Fixed bug #78340.
14036
14037 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14038
14039         * XplatUIX11.cs : clipboard format native value is IntPtr.
14040           Fixed bug #78283.
14041
14042 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14043
14044         * Control.cs: 
14045           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
14046             which is passed up the parent chain by DefWndProc
14047           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
14048             to DefWndProc (#77956)
14049         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
14050
14051 2006-05-10  Jackson Harper  <jackson@ximian.com>
14052
14053         * MdiClient.cs: We need to remove the controls from the mdi
14054         collection, when we close the window.
14055         * MdiWindowManager.cs: Special handling of closing mdi windows.
14056         * InternalWindowManager.cs: Make the close method virtual so the
14057         mdi window manager can handle it specially.
14058
14059 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
14060
14061         * DataGrid.cs:
14062           - Recalculate grid when the data source has changed
14063           - Matches styles provided by user from all data sources types
14064         * DataGridTableStyle.cs: For columns that provided by the user set the
14065         with the preferred value is there was unassigned.
14066         * CurrencyManager.cs: throw OnItemChanged event
14067
14068 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
14069
14070         * PictureBox.cs: Don't animate until handle is created. Start animation
14071           when handle is created.
14072
14073 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14074
14075         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
14076           current codebase.
14077         * XEventQueue.cs: We don't need to provide the extra info
14078
14079 2006-05-10  Jackson Harper  <jackson@ximian.com>
14080
14081         * MdiClient.cs: If the mdi clients parent form has a background
14082         image set, we draw that background image for the mdi area's
14083         background.
14084
14085 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14086
14087         * TextBoxBase.cs: Set IBeam cursor (#78347)
14088
14089 2006-05-10  Mike Kestner  <mkestner@novell.com>
14090
14091         * ToolBar.cs: fix some text padding issues with ButtonSize
14092         calculation. Update the default size to match MS documentation.
14093         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
14094         button size. Fixes #78296.
14095
14096 2006-05-10  Mike Kestner  <mkestner@novell.com>
14097
14098         * ListBox.cs: use is_visible for scrollbar positioning in case the
14099         control isn't on screen yet.  Fix off by one with Right vs Width
14100         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
14101         
14102 2006-05-10  Jackson Harper  <jackson@ximian.com>
14103
14104         * X11Dnd.cs: Drop to a control with another control on top of it.
14105         * ToolBar.cs: Work on a copy of the buttons list, so that it can
14106         be modified in click handlers. TODO: Look for similar problems in
14107         other controls.
14108
14109 2006-05-09  Jackson Harper  <jackson@ximian.com>
14110
14111         * Form.cs: Window managers need the old window state when setting
14112         window state now.
14113         * InternalWindowManager.cs: Allow the base mdi window manager to
14114         handle more of the MDI only stuff (like maximize buttons).
14115         * MdiWindowManager.cs: Fix some snafus in changing the window
14116         state.  Add all the menu functionality, for both popup and
14117         maximized menus.
14118         * MdiClient.cs: When a new form is selected the currently
14119         activated form is sent to the back, this matches MS.
14120         - Implement a new method to activate the next mdi child window.
14121
14122 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
14123
14124         * Control.cs: 
14125           - Added new InternalCapture method to allow controls to prevent
14126             the capture behaviour on the click handlers
14127           - Switched to use InternalCapture
14128         * ComboBox.cs:
14129           - Using InternalCapture to prevent mouse captures from being released
14130             on mouse button release (Fixes #78100)
14131         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
14132           returns Form borders if a caption is present. (Fixes #78310)
14133
14134 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
14135
14136         * TreeNode.cs: Changed serialization .ctor to not require every field
14137           to be present. (#78265)
14138         * OwnerDrawPropertyBag.cs: Added serialization .ctor
14139
14140 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
14141
14142         * MimeIcon.cs: for is faster than foreach for strings.
14143
14144 2006-05-05  Mike Kestner  <mkestner@novell.com>
14145
14146         * CheckedListBox.cs: update check handling code to not use selected.
14147         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
14148         behavior for visual feedback, motion response, shift/ctrl handling,
14149         and properly deal with all 4 selection modes. Updates to bounds
14150         handling logic.  Add scroll wheel support. [Fixes #77842]
14151
14152 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14153
14154         * ListView.cs:
14155           - Moved adding of Implicit controls into .ctor. That way, subsequent
14156             creation of the controls will not cause them to think they are 
14157             toplevel windows (fixes #78200 header problem)
14158           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
14159           - Switched visibility setting of header control to use internal field
14160             to avoid triggering handle creation
14161           - Now checking if handle is created before causing a refresh when items
14162             are added (This makes us now match handle creation time with MS)
14163         * Splitter.cs: Removed loading of private splitter cursor, switched to
14164           Cursors version now that that is loading the right ones
14165         * Cursors.cs: Load proper splitter cursors from resources
14166         * Cursor.cs: Added second method of loading resource cursors for the 
14167           VS.Net users amongst us
14168
14169 2006-05-05  Mike Kestner  <mkestner@novell.com>
14170
14171         * ListView.cs: give header_control a minimum size based on the
14172         ListView size.
14173
14174 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14175
14176         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
14177           window seems to do that with metacity, so set that type. (#78120)
14178
14179 2006-05-05  Mike Kestner  <mkestner@novell.com>
14180
14181         * ListViewItem.cs: fix Details mode checkbox layout bug.
14182         * ThemeWin32Classic.cs: draw a ListView column header for unused space
14183         at the end of the header, if it exists. [Fixes for #78200]
14184
14185 2006-05-04  Jackson Harper  <jackson@ximian.com>
14186
14187         * MdiClient.cs: Add a helper property to get the container form.
14188         * MdiWindowManager.cs: We have to make sure to use the menu origin
14189         when drawing the icons and buttons, this fixes maximized window
14190         icons/buttons on win32.
14191         * InternalWindowManager.cs: Reset the restore captions when a
14192         window goes from Maximized to Minimized and vice versa. Move the
14193         DrawMaximizedButtons into the MdiWindowManager source, tool
14194         windows can't be maximized. NOTE: This could use a little
14195         refactoring if time ever permits.
14196         
14197 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14198
14199         * TextBox.cs: Add MWFCategoryAttributes
14200         * TextBoxBase.cs: Add MWFCategoryAttributes
14201         * Form.cs: Add MWFCategoryAttributes
14202
14203 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14204
14205         * Control.cs: Add MWFCategoryAttributes
14206         * ScrollableControl.cs: Add MWFCategoryAttributes
14207
14208 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
14209
14210         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
14211           Divider is true. Fix a little glitch in PropertyToolBar
14212           drawing code
14213
14214 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
14215
14216         * Control.cs:
14217           - Dispose: Call base.Dispose, this causes the disposed event
14218             to be fired (and probably other, more important stuff)
14219           - SetVisibleCore: Set is_visible to true after creating the
14220             window so that the window still gets created invisible (if
14221             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
14222             to generate a WM_ACTIVE message
14223         * Form.cs: Call Dispose when we want to destroy the window, instead of
14224           just destroying the handle (Dispose will do that for us)
14225         * XplatUIX11.cs:
14226           - RootWindow also needs a queue, so we can properly process the
14227             property change events from RootWindow (like Activate)
14228           - Generatic synthetic WM_ACTIVE message when the active window is
14229             being destroyed
14230
14231 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14232
14233         * LinkLabel.cs: Trigger a recalc of our label dimensions when
14234           bounds are changed
14235
14236 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
14237
14238         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
14239           for determining width and height (image might not be assigned if
14240           we're drawing an imagelist)
14241
14242 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14243
14244         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
14245         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
14246           height from system
14247         * Theme.cs: No longer returns hardcoded menu height, instead calls
14248           new driver method
14249         * Form.cs (OnLoad): Scaling happens before triggering Load events 
14250           on MS (# 78257)
14251
14252 2006-05-01  Mike Kestner  <mkestner@novell.com>
14253
14254         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
14255
14256 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
14257
14258         * TextBoxBase.cs: Removed Fixme
14259         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
14260
14261 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
14262
14263         * XplatUIX11.cs:
14264           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
14265             the rectangle relative to the parent, considering borders. We
14266             don't really want that.
14267           - ScrollWindow: Fixed warning to be more understandable
14268         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
14269           scrollbars and scroll only the visible area
14270         * RichTextBox.cs: Removed debug output
14271
14272 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14273
14274         * NumericUpDown.cs (Text): Just use base
14275         * UpDownBase.cs: Ensure txtView is created before using it
14276
14277 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14278
14279         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
14280           casting to IntPtr to avoid 64bit overflow errors
14281
14282 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14283
14284         * Control.cs:
14285           - AllowDrop: Don't force handle creation.
14286           - CreateHandle: Added call to tell driver if we're allowed to drop
14287
14288 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14289
14290         * FileDialog.cs: Remember the last directory not only for the
14291           current instance but also for new FileDialog instances.
14292
14293 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14294         
14295         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
14296           broke sending async messages
14297
14298 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14299
14300         * XplatUIX11.cs:
14301           - ScrollWindow: Fixed method. We finally generate expose events again
14302             for scrolled areas. This was causing 'garbage' when scrolling
14303             textbox and other controls that used ScrollWindow
14304           - Switched from using the regular queue for paint events to the MS 
14305             model of 'generating' paint events when the queue is empty.
14306             We use the new XQueueEvent.Paint subclass to store which windows
14307             need painting.
14308           - AddExpose now takes the x/y/width/height of the exposed area
14309             and inserts the window into the paint queue if not already there
14310           - InvalidateWholeWindow: Switched to use new AddExpose method
14311           - UpdateMessageQueue: Added which queue to monitor for paint events
14312           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
14313             the unlikely case nothing above handles it. We reset the expose
14314             pending states to get them off the queue.
14315           - GetMessage: Now pulls a paint event if no other events are in the
14316             queue
14317           - Invalidate: Switched to new AddExpose method
14318           - PeekMessage: Updated to understand pending paint events
14319           - UpdateWindow: Fixed logic bug. We were only updating if the window
14320             didn't need updating. Also switched to sending WM_PAINT directly,
14321             like MS does.
14322         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
14323           and random access Remove(). The random access is needed to handle
14324           UpdateWindow() where a WM_PAINT is sent directly without accessing
14325           the queue.
14326         * ScrollBar.cs: Added Update() calls to cause immediate updates to
14327           allow for better feedback when scrolling. Scrollbars are small and
14328           the immediate update should make it 'feel' more responsive without
14329           slowing things down. ScrollBar still needs it's invaliate logic
14330           updated to not always invalidate the whole bar on certain changes.
14331
14332 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14333
14334         * Control.cs:
14335         (BackColor): if the control does not support a transparent background,
14336         return the default backcolor when the parent backcolor is transparent.
14337
14338 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
14339
14340         * Application.cs: Updated to new StartLoop/GetMessage API
14341         * RichTextBox.cs: Provide some output on RTF parsing errors
14342         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
14343           new queue_id argument to GetMessage and PeekMessage to allow faster
14344           handling of per-thread queues in drivers.
14345         * Hwnd.cs: Added Queue tracking and property
14346         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
14347         * XEventQueue.cs: Added thread trackingA
14348         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
14349         * XplatUIX11.cs:
14350           - Implemented new per-thread queue
14351           - GetMessage: Fixed return/break behaviour on several cases. We were
14352             returning stale messages in some cases, instead of just processing
14353             the next message
14354
14355 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14356
14357         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
14358
14359 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
14360
14361         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
14362           fixed off-by-one comparisons between Width/Height and Right/Bottom.
14363
14364 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14365
14366         * PropertyGridView.cs: Fix drop down width.
14367
14368 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14369
14370         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
14371           a mess in DrawToolBar, so I removed one of them.
14372
14373 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14374
14375         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
14376           needed (clip). Otherwise we get artifacts.
14377
14378 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14379
14380         * FixedSizeTextBox.cs: Added constructor to allow specifying which
14381           dimension is fixed
14382         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
14383           and switched FixedSizeTextBox to only be fixed vertical (#78116)
14384         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
14385           if it matches the scale base font (avoids unneeded scaling)
14386
14387 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14388
14389         * X11DesktopColors.cs: One gtk_init_check should be enough
14390
14391 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
14392
14393         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
14394           match MS behaviour
14395
14396 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14397
14398         * TextBoxBase.cs: 
14399           - Generate OnTextChanged for Backspace even if we're only deleting
14400             the current selection
14401           - When setting the Text property, only select all text if the
14402             control does not have focus when it is being set. Otherwise
14403             just place the cursor at the beginning of the control
14404
14405 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14406
14407         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
14408           Added a little helper to draw PropertyGrid ToolBar with a different
14409           border and a different BackColor.
14410         * PropertyGrid.cs: Some background parts didn't get painted with the
14411           correct background color. Added a class that helps us to draw the
14412           correct border for PropertyGridView and a class that helps us to
14413           draw ToolBars with a different backcolor
14414         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
14415
14416 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
14417
14418         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
14419         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
14420
14421 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14422
14423         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
14424           into the palette entries. Also, since we're working on a copy
14425           we needed to copy the palette back onto the bitmap.
14426         * Cursor.cs: Same fix as XplatUIWin32.cs.
14427
14428 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
14429
14430         * ImageListStreamer.cs: Need to read the var (or we're off)
14431
14432 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14433
14434         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
14435           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
14436           TextBoxBase.cs: Unused var fixes
14437         * AxHost.cs: Small 2.0 fix
14438         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
14439           as it seems that is what at least Metacity expects. This will make
14440           icons show up on 64bit platforms. We still have some 64bit size
14441           issues, though, since the startup app window size still won't match.
14442
14443 2006-04-25  Mike Kestner  <mkestner@novell.com>
14444
14445         * *.cs: cleanup newly reported exception var unused warnings.
14446
14447 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14448
14449         * ThemeWin32Classic.cs: Button image alignment now matches exactly
14450           ms
14451
14452 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14453
14454         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
14455           image. The image position is always the same, no matter if the
14456           button is pressed or not.
14457
14458 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14459
14460         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
14461           selection and set the correct filename for SaveFileDialog.
14462           Patch by Emery Conrad.
14463
14464 2006-04-24  Mike Kestner  <mkestner@novell.com>
14465
14466         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
14467         check for item.X outside the ClientRect instead of item.Y. Fixes
14468         #78151.
14469
14470 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14471
14472         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
14473         trust that value blindly and do some sanity check. Fixes bug #77814.
14474
14475 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14476
14477         * ImageListStreamer.cs: save the mask as a 1bpp image.
14478
14479 2006-04-21  Mike Kestner  <mkestner@novell.com>
14480
14481         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
14482         pass Checked and Indeterminate to the Theme Engine. Improve
14483         encapsulation with ListBox.
14484         * ListBox.cs: Keep a StringFormat instead of calculating it every item
14485         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
14486         nested types.  Move all CheckState functionality to CheckedListBox.
14487         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
14488         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
14489         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
14490         single base list. Fix scrollbar sizing and placement to mirror MS.
14491         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
14492         used.
14493         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
14494         for CheckedListBox by using new DrawItemState info.  Center the
14495         checkboxes on the items. Use new StringFormat property.
14496
14497 2006-04-18  Jackson Harper  <jackson@ximian.com>
14498
14499         * Form.cs: MdiChildren don't do default locations the same way as
14500         regular forms.  This prevents a crash when trying to position the
14501         mdi windows.
14502
14503 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
14504
14505         * PropertyGridTextBox.cs: Formatting, copyright
14506         * PropertiesTab.cs: Formatting
14507         * PropertyGrid.cs: Formatting
14508         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
14509           click toggling of values
14510           
14511 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
14512
14513         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
14514         * Control.cs (.ctor): verify_thread_handle is static, don't reset
14515           every time a control is created
14516         * Application.cs: Removed obsolete EnableRTLMirroring method
14517
14518 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
14519
14520         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
14521         SelectedIndex to -1. Fixes bug #78121.
14522
14523 2006-04-17  Jackson Harper  <jackson@ximian.com>
14524
14525         * Binding.cs: Handle null values for Current and BindingContext.
14526         This occurs when binding is a little delayed.
14527         * CurrencyManager.cs: return null for Current when there are no
14528         items in the list.
14529         - Hookup to the listchanged event on the DataView and update
14530         bindings when the list is changed.  This fixes late binding of
14531         controls.
14532
14533 2006-04-17  Jackson Harper  <jackson@ximian.com>
14534
14535         * X11Dnd.cs:
14536         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
14537         Ringenbach.
14538
14539 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
14540
14541         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
14542           place
14543         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
14544           with the correct ButtonState
14545
14546 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
14547
14548         * XplatUIX11.cs: Improved distinguishing between window types to
14549           tell the WM a type closer to what the app wants (Fixes #78107)
14550
14551 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14552
14553         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
14554           GrabHandle
14555
14556 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14557
14558         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
14559           drawing code to reflect the size grip changes
14560
14561 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14562
14563         * ImageListStreamer.cs: fix handling of the mask that follows the main
14564         bitmap when deserializing and serialize it properly. The generated mask
14565         should better be a 1bpp image, but I'll do that later.
14566
14567 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14568
14569         * FileDialog.cs: Show something in the DirComboBox on *nix if the
14570           path doesn't fit into some of our Current.Places
14571
14572 2006-04-13  Jackson Harper  <jackson@ximian.com>
14573
14574         * ComboBox.cs: Use borders instead of drawing our own decorations,
14575         try to obey correct rules for heights.
14576         * Theme.cs:
14577         * ThemeNice.cs:
14578         * ThemeClearLooks.cs:
14579         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
14580         this is now handled by borders.
14581         - Remove unused DrawListBoxDecorationSize method.
14582         
14583 2006-04-13  Mike Kestner  <mkestner@novell.com>
14584
14585         * MenuAPI.cs: null guarding for the disbled click check fixes crash
14586         reported by Alex.
14587
14588 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14589
14590         * ThemeWin32Classic.cs: 
14591           - Fixed CPDrawStringDisabled
14592           - Corrected drawing of disabled menu items
14593           - Fixed drawing of disabled radio buttons (bug #78095)
14594           - Draw check in a disabled CheckBox with color ControlDark 
14595
14596 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14597
14598         * Form.cs: Use the provided width when calculating the menu size;
14599           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
14600           and ClientSize.Width won't be updated yet
14601         * Application.cs: Use Visible instead of Show() to make form visible,
14602           this way we create the handle later and menusize is considered
14603
14604 2006-04-12  Mike Kestner  <mkestner@novell.com>
14605
14606         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
14607         reporting.
14608
14609 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14610
14611         * TextBox.cs: Implemented context menu
14612
14613 2006-04-12  Mike Kestner  <mkestner@novell.com>
14614
14615         * ListView.cs: implement box selection. fixes #77838.
14616         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
14617
14618 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14619
14620         * XplatUIX11.cs: Added setting of window type when transient window
14621           is created (metacity would move it otherwise)
14622         * X11Structs.cs: Added WINDOW_TYPE atoms
14623         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
14624           background (the control is Opaque but still wants transparent
14625           backgrounds)
14626
14627 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14628
14629         * Control.cs: Added OnPaintBackgroundInternal to allow controls
14630           that set Opaque but don't mean it (like all ButtonBase-derived
14631           controls) to still draw their background
14632         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
14633           the background
14634
14635 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14636
14637         * Control.cs (PaintControlBackground): Set the graphics object
14638           on our PaintEvent to null to prevent it from being disposed
14639           when the PaintEvent gets disposed
14640
14641 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
14642
14643         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
14644         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
14645
14646 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14647
14648         * Control.cs: 
14649           - Added transparency check to BackColor property. Transparent
14650             backgrounds are only allowed if the control styles permit it
14651           - Added recursive painting of parent control background and
14652             foreground if a control with a transparent backcolor is drawn
14653             (Thanks to Tim Ringenback for providing his 'hack' as a base
14654              for this patch) Fixes #77985 and #78026.
14655           - Added Opaque style check before calling OnPaintBackground, no
14656             need to draw the background if the control is opaque
14657           - Removed ControlAccessibleObject owner variable (inherited from
14658             base, no need to define again)
14659           - Added some documentation links explaining the drawing events
14660             and styles
14661
14662 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14663
14664         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
14665           that the affected control is the located at the left border of our
14666           parent (Fixes #77936)
14667
14668 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14669
14670         * TextBoxBase.cs: When rendering disabled or readonly controls,
14671           draw the background with 'Control' instead of 'Window' color as
14672           long as the user hasn't specifically set a color
14673
14674 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14675
14676         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
14677           since that won't be updated if the user types text (only if it's
14678           programatically set)
14679
14680 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14681
14682         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
14683           layout changes do to app-triggered resizes will have the proper
14684           display rectangle for layout
14685
14686 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
14687
14688         * ThemeWin32Classic.cs:
14689           - Make use of the SystemBrushes and SystemPens wherever possible
14690           - Corrected some highlight colors
14691           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
14692             drawing
14693         * Theme.cs: Added Empty field to CPColor struct
14694
14695 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14696
14697         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
14698           is displayed when calculating the display rectangle. Thanks to Mike
14699           for teaching me the err of my ways.
14700
14701 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
14702
14703         * ScrollableControl.cs:
14704           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
14705             (instead of 0,0) and we now return the real width/height instead of
14706             just the clientrectangle, adjusted for padding. The rectangle is
14707             now cached and created by the new CalculateDisplayRectangle method.
14708           - Created new CalculateDisplayRectange method, which basically does
14709             what get_DisplayRectangle() did originally, but now using the 
14710             right edge instead of DisplayRectangle to determine the size of
14711             our scrollbars
14712           - get_Canvas(): Fixed it to properly calculate canvas for 
14713             right/bottom controls which seem to be placed to the right/bottom
14714             of any controls that have a fixed location
14715           - Removed TODO that's taken care of
14716           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
14717             and SetDisplayRectLocation according to new MSDN2 docs
14718           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
14719             event when that is called, this is added for compatibility
14720           - ScrollControlIntoView(): Implemented.
14721           - Switched scrollbars to be implicit, they shouldn't be selectable
14722         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
14723           call it when the active control is set/changed
14724         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
14725         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
14726           implicit_control variable (used for native Win32 message generation)
14727         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
14728           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
14729         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
14730         * XplatUIStructs.cs: Added ScrollBarCommands enum
14731
14732 2006-04-10  Jackson Harper  <jackson@ximian.com>
14733
14734         * ButtonBase.cs:
14735         * CheckedListBox.cs:
14736         * ComboBox.cs:
14737         * DataGrid.cs:
14738         * DataGridView.cs:
14739         * Form.cs:
14740         * GroupBox.cs:
14741         * ListBox.cs:
14742         * PrintPreviewControl.cs:
14743         * ProgressBar.cs:
14744         * PropertyGrid.cs:
14745         * Splitter.cs:
14746         * StatusBar.cs:
14747         * TrackBar.cs:
14748         * UpDownBase.cs: Fixup base event overrides.
14749         
14750 2006-04-06  Mike Kestner  <mkestner@novell.com>
14751
14752         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
14753         all user-initiated value changes to min <= value <= max-thumbsz+1.
14754         (set_Value): check for vert/horiz when calculating new thumb position.
14755         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
14756         like MS does.
14757         (OnMouseMoveSB): refactor the thumb dragging code and refine
14758         invalidation logic to reduce flicker.
14759         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
14760         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
14761         (UpdateThumbPosition): small code readability cleanup
14762
14763 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
14764
14765         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
14766           different
14767
14768 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14769
14770         * ThemeNice.cs: Use a better graphics effect when a button is pressed
14771
14772 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14773
14774         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
14775         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
14776           This dramatically reduces the number of Pen.Dispose calls. 
14777           Where possible call ResPool methods only once instead of calling it
14778           over and over again (for example for the same color).
14779
14780 2006-04-06  Mike Kestner  <mkestner@novell.com>
14781
14782         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
14783         Also remove an unused private field on the collection. Fixes #77972.
14784
14785 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14786
14787         * ThemeNice.cs: Added ToolBar drawing code
14788
14789 2006-04-06  Mike Kestner  <mkestner@novell.com>
14790
14791         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
14792         I'm assuming that means we need to look up the toplevel for the
14793         provided control. Fixes the crash trace in #77911 but exposes another
14794         crash in some strange reflection usage in NDocGui.
14795
14796 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14797
14798         * ThemeNice.cs: Gave it a little silver touch and added Images
14799           method
14800         * FontDialog.cs: FontDialog is not resizable
14801         * FileDialg.cs: Added SizeGripStyle.Show
14802
14803 2006-04-05  Jackson Harper  <jackson@ximian.com>
14804
14805         * KeyboardLayouts.cs: Remove warning.
14806
14807 2006-04-05  Jackson Harper  <jackson@ximian.com>
14808
14809         * Control.cs: Enable OnPaintInternal so we can use it for drawing
14810         all of our controls instead of Paint +=.
14811         * ListBox.cs:
14812         * ListView.cs:
14813         * MenuAPI.cs:
14814         * MessageBox.cs:
14815         * NotifyIcon.cs:
14816         * ProgressBar.cs:
14817         * ScrollBar.cs:
14818         * Splitter.cs:
14819         * StatusBar.cs:
14820         * TabControl.cs:
14821         * TextBoxBase.cs:
14822         * ToolBar.cs:
14823         * TrackBar.cs:
14824         * UpDownBase.cs:
14825         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
14826         use OnPaintInternal. Remove Width/Height and Visible checks in
14827         paint handler, this is done at a higher level now.
14828         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
14829         * PaintEventArgs.cs: Add a handled flag so controls that don't
14830         want anymore painting after OnPaintInternal can make sure OnPaint
14831         isn't called.
14832
14833 2006-04-05  Mike Kestner  <mkestner@novell.com>
14834
14835         * Form.cs: fix the menu WndProc hacks to respect the native enabled
14836         state of the form, so that we don't process events when Modal dialogs
14837         are up. Fixes #77922.
14838
14839 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
14840
14841         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
14842           checking is done.
14843
14844 2006-04-05  Mike Kestner  <mkestner@novell.com>
14845
14846         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
14847
14848 2006-04-05  Mike Kestner  <mkestner@novell.com>
14849
14850         * ListView.cs (HeaderMouseMove): null guarding for the over column
14851         when setting up the drag_to_index.  Fixes #78015.
14852
14853 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
14854
14855         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
14856           in the taskbar. Transient windows seem to accomplish that.
14857
14858 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
14859
14860         * Form.cs:
14861           - Re-enabled CreateParams.X/Y code for FormStartPosition
14862           - Added code for manual placement when creating the Control
14863           - Incomplete patch to treat MDI forms differently when
14864             setting the ClientSizeCore. (Still need to figure out handling
14865             x/y coords there)
14866         * XplatUIX11.cs:
14867           - When we're explicitly setting the X/Y position of a non-Child
14868             window, let the WM know. Metacity really wants this.
14869
14870 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14871
14872         * ThemeNice.cs: Added CPDrawButton
14873
14874 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14875
14876         * ThemeNice.cs: Changed the color for focused buttons and activated
14877           the arrows for small scroll buttons.
14878
14879 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14880
14881         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
14882           anymore. Changed some method modifiers to protected (virtual)
14883         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
14884           changes
14885         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
14886           Updated drawing of menus, buttons and progressbars; added
14887           CPDrawBorder3D 
14888
14889 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14890
14891         * ImageListStreamer.cs: implemented serialization/deserialization
14892         of the images.
14893
14894 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
14895
14896         * ThemeWin32Classic.cs:
14897           - Removed all the DrawFrameControl stuff; CPDrawButton,
14898             CPDrawCheckBox and CPDrawRadioButton are now handled directly
14899             inside the methods
14900           - Updated and corrected the drawing code of CPDrawButton,
14901             CPDrawCheckBox and CPDrawRadioButton to better match ms
14902           - Updated theme checkbox and radiobutton code to use the CP*
14903             methods
14904
14905 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14906
14907         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
14908           bug is fixed
14909
14910 2006-03-31  Jackson Harper  <jackson@ximian.com>
14911
14912         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
14913         sometimes.
14914         * UpDownBase.cs: Don't CreateGraphics manually, use a
14915         Refresh. Ideally we would invalidate the correct areas here.
14916
14917 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14918
14919         * XplatUIX11.cs: 
14920           - We now track the mapping state of windows. If a window (or 
14921             one of it's parents) is not mapped we no longer permit
14922             WM_PAINT messages to be generated since we'd otherwise get 
14923             lots of BadMatch X errors. Jackson did all the work figuring
14924             out the problem.
14925           - Destroying the caret if the window it's contained in is 
14926             destroyed. Can't use regular DestroyCaret method since it
14927             might fall into a drawing function (trying to remove the
14928             caret) and with that generate new BadMatch errors. Again,
14929             Jackson tracked this down.
14930           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
14931             make sure we send the messages to all windows. (The old code
14932             would send the WM_DESTROY to the window, and then all child
14933             windows would be 'gone' because the WM_DESTROY handle lookup
14934             would no longer find the destroyed window)
14935         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
14936         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
14937
14938 2006-03-31  Jackson Harper  <jackson@ximian.com>
14939
14940         * ScrollableControl.cs: Dont recalc if we are not visible.
14941
14942 2006-03-31  Mike Kestner  <mkestner@novell.com>
14943
14944         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
14945         the visibility branch.
14946
14947 2006-03-31  Jackson Harper  <jackson@ximian.com>
14948
14949         * ScrollBar.cs: Cap values when incrementing/decrementing.
14950
14951 2006-03-31  Mike Kestner  <mkestner@novell.com>
14952
14953         * MenuAPI.cs: setup menu.tracker for popup/context menus.
14954         * ToolTip.cs: guard against timer expirations with no active control.
14955         Not sure why it happened.
14956
14957 2006-03-31  Mike Kestner  <mkestner@novell.com>
14958
14959         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
14960         text.
14961         * ToolTip.cs: Position the tooltip based on where the cursor is at
14962         popup time, not at MouseEnter time.  Add a Down state so that we don't
14963         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
14964         positioning offset. Lookup DisplaySize at positioning time, since it
14965         can theoretically change during invocation.
14966         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
14967         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
14968
14969 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
14970
14971         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
14972           Fixes behaviour when the Text property of the box is String.Empty
14973
14974 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
14975
14976         * XplatUIX11.cs: Only send mouseleave for our client windows, not
14977           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
14978           a window)
14979
14980 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
14981
14982         * FileDialog.cs: Visual enhancement for the popup buttons in 
14983           PopupButtonPanel
14984
14985 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
14986
14987         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
14988           code
14989
14990 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
14991
14992         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
14993           highlighted menu items to match ms
14994
14995 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
14996
14997         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
14998
14999 2006-03-30  Mike Kestner  <mkestner@novell.com>
15000
15001         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
15002         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
15003         go active to account for HotLight to Selected transition.
15004         * MenuItem.cs: add internal Selected prop. Fill out the Status
15005         property by calculating it from item info. Add HotLight,
15006         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
15007
15008 2006-03-30  Mike Kestner  <mkestner@novell.com>
15009
15010         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
15011
15012 2006-03-29  Jackson Harper  <jackson@ximian.com>
15013
15014         * Form.cs: Implement TODO.
15015
15016 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
15017
15018         * PrintPreviewDialog.cs: Implemented missing methods and events; still
15019           missing proper dialog setup in the constructor
15020
15021 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
15022
15023         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
15024         * Control.cs:
15025           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
15026           - Fixed ResetBindings and removed TODO
15027           - Added check for cross-thread calls to get_Handle()
15028           - Added Marshaller attribute for set_Font to satisfy class status
15029         * FontDialog.cs: Removed TODOs that seemed implemented
15030         * UpDownBase.cs: Removed unneeded TODO and Fixme
15031         * MessageBox.cs: Implemented support for Default button and removed TODO
15032         * FileDialog.cs: Removed obsolete TODO
15033         * DomainUpDown.cs: Removed obsolete TODO
15034         * ButtonBase.cs: Removed obsolete TODO
15035         * XplatUIWin32.cs: Removed obsolete TODO
15036         * Form.cs:
15037           - Removed obsolete TODO
15038           - Calling CheckAcceptButton when the acceptbutton is changed to allow
15039             internal status updates
15040           - Making sure the active control is selected when the control is created
15041         * CurrencyManager.cs: Removed obsolete TODO
15042
15043 2006-03-29  Mike Kestner  <mkestner@novell.com>
15044
15045         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
15046         of PrintPreviewDialog and RichTextBox.
15047
15048 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15049
15050         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
15051           DarkDark, Light and LightLight colors for a specific color
15052         * ThemeWin32Classic.cs:
15053           - Use Button drawing code to draw RadioButtons and CheckBoxes with
15054             Appearance = Button 
15055           - Make use of the new ResPool helper CPColor
15056           - Draw ProgressBar and StatusBar with correct 3D borders
15057
15058 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15059
15060         * ColorDialog.cs: Return selected color. Fixes bug #77940.
15061
15062 2006-03-28  Mike Kestner  <mkestner@novell.com>
15063
15064         * ListView.cs: fix Icon layout to plan for scrollbar widths when
15065         calculating col/row counts.
15066
15067 2006-03-28  Mike Kestner  <mkestner@novell.com>
15068
15069         * ColumnHeader.cs:
15070         * ListView.cs:
15071         * ListViewItem.cs:
15072         * Menu.cs: 
15073         switch to explicit interface method implementation for some methods
15074         corcompare identifies as inconsistent with MS.
15075
15076 2006-03-28  Mike Kestner  <mkestner@novell.com>
15077
15078         * MainMenu.cs: 
15079         * Menu.cs:
15080         add a few missing methods from the class status output.
15081
15082 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
15083
15084         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
15085           correct.
15086
15087 2006-03-28  Mike Kestner  <mkestner@novell.com>
15088
15089         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
15090
15091 2006-03-27  Mike Kestner  <mkestner@novell.com>
15092
15093         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
15094         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
15095
15096 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
15097
15098         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
15099
15100 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15101
15102         * ThemeWin32Classic.cs:
15103           - GroupBox: Inserted a little gap between the text and the lines
15104             on the right side
15105           - Made the code in CPDrawBorder3D more readable
15106           - Corrected the drawing location of the up and down arrows in 
15107             CPDrawScrollButton
15108
15109 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15110
15111         * ControlPaint.cs: Corrected line widths in DrawBorder for
15112           ButtonBorderStyle Inset and Outset
15113
15114 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15115
15116         * ThemeWin32Classic.cs:
15117           - Rewrote the totally broken CPDrawBorder3D method. That was
15118             one of the main problems for the terrific ThemeWin32Classic
15119             look
15120           - Updated and corrected Button drawing
15121           - Correct the dimensions of the SizeGrip to match ms ones
15122           - Removed a small drawing glitch in DrawComboBoxEditDecorations
15123         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
15124           Border3DStyle.Sunken to match ms.
15125
15126 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15127
15128         * ThemeWin32Classic.cs: First small part of the "de-uglify
15129           ThemeWin32Classic" effort, SizeGrip
15130
15131 2006-03-24  Jackson Harper  <jackson@ximian.com>
15132
15133         * XplatUIX11.cs: Give a max idle time of one second, this matches
15134         MS and forces an Idle event every second when there are no other
15135         events in the queue.
15136
15137 2006-03-24  Mike Kestner  <mkestner@novell.com>
15138
15139         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
15140         * ListView.Item.cs: fix layout issues with null image lists and images
15141         smaller than checkbox size.
15142         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
15143         mode like MS does.  It's weird, but consistent.  ;-)
15144         Fixes #77890.
15145
15146 2006-03-24  Mike Kestner  <mkestner@novell.com>
15147
15148         * ListView.cs: Scroll wheel support for the item control.  Fixes
15149         #77839.
15150
15151 2006-03-23  Jackson Harper  <jackson@ximian.com>
15152
15153         * ScrollableControl.cs: Special case negative sized areas, not
15154         zero.
15155         * MonthCalendar.cs: Save the rect of the clicked date so we can
15156         use it for invalidation.
15157         - Try to cut down on the number of invalidates
15158         - Invalidate the rect the mouse is over and was over when moving
15159         the mouse, so we get the focus box following the cursor.
15160
15161 2006-03-23  Mike Kestner  <mkestner@novell.com>
15162
15163         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
15164         focus rectangle drawing. Fixes #77835.
15165
15166 2006-03-23  Mike Kestner  <mkestner@novell.com>
15167
15168         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
15169         the if and else if and reverting back to the original == check on the
15170         None conditional.
15171
15172 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15173
15174         * FontDialog.cs: Update the example panel if the selected index of
15175           the fontListBox changes.
15176
15177 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15178
15179         * FileDialog.cs: Make FileDialog remember which directory it was in
15180           last in the same execution.
15181
15182 2006-03-22  Mike Kestner  <mkestner@novell.com>
15183
15184         * FileDialog.cs: make the DropDownMenu on the toolbar display
15185         RadioChecks since they are mutually exclusive and that's what MS does.
15186
15187 2006-03-22  Mike Kestner  <mkestner@novell.com>
15188
15189         * Theme.cs: add Color param to CPDrawMenuGlyph.
15190         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
15191         checks and radio marks and arrows are visible on highlighted items.
15192         * ControlPaint.cs: update to use new Theme signature.
15193
15194 2006-03-22  Mike Kestner  <mkestner@novell.com>
15195
15196         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
15197         is active. Fixes #77870.
15198
15199 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15200
15201         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
15202           to be focused/selected after startup
15203
15204 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15205
15206         * ColorDialog.cs: 
15207           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
15208             CustomColors and ShowHelp properties
15209           - Some internal rewrites to get better results when using the
15210             ColorMatrix
15211
15212 2006-03-22  Mike Kestner  <mkestner@novell.com>
15213
15214         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
15215         HoverSelection.  Fixes #77836.
15216
15217 2006-03-22  Mike Kestner  <mkestner@novell.com>
15218
15219         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
15220         ToggleButtons.  (De)Sensitize the Back button around a stack count of
15221         1, not 0.  Update ButtonSize based on a pixel count of the win32
15222         control.  Adjust the toolbar size/location for new button size.
15223
15224 2006-03-22  Jackson Harper  <jackson@ximian.com>
15225
15226         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
15227         true.
15228         * ScrollBar.cs: When doing increments and decrements we need to
15229         set the Value property so that ValueChanged gets raised. A
15230         possible optimization here would be to make an internal SetValue
15231         that doesn't invalidate immediately.
15232         * ToolTip.cs: Tooltips get added to their container (when
15233         supplied) so they get disposed when the container is disposed.
15234         - Don't create tooltips for String.Empty. This prevents all these
15235         little 2-3 pixel windows from showing up when running nunit-gui
15236         and driving me mad.
15237         * Form.cs: Don't set topmost when setting the owner if the handles
15238         haven't been created yet.  The topmost set will happen when the
15239         handles are created.
15240
15241 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
15242
15243         * XplatUIX11.cs:
15244           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
15245           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
15246             visible (to allow them to recalculate their sizes)
15247
15248 2006-03-21  Mike Kestner  <mkestner@novell.com>
15249
15250         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
15251         methods. Removed a ton of redundant code.  Still not really happy with
15252         the border rendering, but I think that's mainly because of the
15253         ControlDarkDark being black instead of a dark grey. Depending on how 
15254         close we want to be, we might want to revisit those color choices.
15255         Among the new features added during the refactor were DropDownArrow
15256         pressed rendering, Disabled image rendering.  Proper flat appearance
15257         boundary rendering.  Removed the Divider and Wrapping dividers since I
15258         can't figure out any combination of themes and conditions to make the
15259         MS control draw a horizontal line on a toolbar despite what the
15260         Divider property docs indicate.
15261         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
15262         conditions and incorrect layout.  Updated to coding standard.
15263         * ToolBarButton.cs: refactored layout and positioning code from
15264         ToolBar to here.  Invalidate wherever possible instead of forcing
15265         redraws of the whole toolbar. 
15266         (Known remaining issues: explicit ButtonSize smaller than provided
15267         images.)
15268
15269 2006-03-21  Mike Kestner  <mkestner@novell.com>
15270
15271         * ContextMenu.cs (Show): use the position parameter instead of just
15272         showing at the MousePosition.
15273
15274 2006-03-21  Jackson Harper  <jackson@ximian.com>
15275
15276         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
15277         control handle this.
15278         * TreeNodeCollection.cs: If we are clearing the root node we need
15279         to reset top_node so calcs can still happen.
15280         * ThemeWin32Classic.cs: This is a Flags so we need to check
15281         properly.
15282         
15283 2006-03-21  Jackson Harper  <jackson@ximian.com>
15284
15285         * DataGrid.cs: Create columns when the binding context has been
15286         changed.
15287         * X11Structs.cs: Keysyms are uints.
15288         - Add size to fix build.
15289
15290 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
15291
15292         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15293           XplatUIOSX.cs: 
15294           - Added ResetMouseHover method to allow controls to retrigger
15295             hovering if they need it more than once
15296           - Implemented MouseHoverTime and MouseHoverSize properties
15297         * Timer.cs: Start() must reset the interval
15298         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
15299           properties
15300
15301 2006-03-21  Jackson Harper  <jackson@ximian.com>
15302
15303         * X11Keyboard.cs: improved layout detection. Move the nonchar
15304         tables into this file.
15305         * KeyboardLayouts.cs: Move the tables into resource files.
15306
15307 2006-03-21  Mike Kestner  <mkestner@novell.com>
15308
15309         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
15310
15311 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
15312
15313         * Mime.cs: Various speed optimizations. Looking up mime types
15314           is now 2 times faster than before
15315
15316 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
15317
15318         * CreateParams.cs: Added internal menu field
15319         * Control.cs: 
15320           - Switched call order for UpdateBounds; now we always call
15321             the one that also takes ClientSize, and we're calculating the 
15322             client size via driver method in the others. The previous
15323             method of tracking client size by difference wasn't working
15324             for forms where even the starting client size wouldn't match
15325             the overall form size (due to borders) (Part of fix for #77729)
15326           - CreateParams(): Do not use parent.Handle unless the handle is
15327             already created. Causes havoc with Nexxia and throws off our
15328             creation of controls
15329         * XplatUIX11.cs:
15330           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
15331           - Switched handling of ConfigureNotify over to new PerformNCCalc 
15332             method (consolidates code)
15333           - Changed RequestNCRecalc to use new PerformNCCalc method
15334           - Added calls to RequestNCRecalc when menus and borders are changed
15335             to allow app to set NC size. (Part of fix for #77729) This matches
15336             when MS send a WM_NCRECALC on Win32 windows.
15337           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
15338             (Part of fix for #77729). This matches what MS does, they also
15339             send that message when the form is made visible.
15340           - XException.GetMessage: Improved usability of X errors by including
15341             a translation of the window into Hwnd and Control class
15342           - Improved debug info for window creation, reparenting and destruction
15343           - Created helper method WindowIsMapped() [Currently not used]
15344         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
15345         * Form.cs:
15346           - CreateParams: Now setting our menu on the new internal menu field
15347           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
15348             avoid calculating the same property twice
15349         * Hwnd.cs:
15350           - Improved usability of ToString() for debugging purposes
15351           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
15352             determine the height of the menu, instead of just the font. This
15353             required to also create a graphics context and to keep a bmp 
15354             around (for performance reasons)
15355
15356 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
15357
15358         * MenuAPI.cs: Added OnMouseUp method
15359         * Form.cs:
15360           - Now remembering the requested client size, avoids size errors
15361           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
15362             instead of base if the menu is active. This is required due to
15363             control now capturing and releasing on down/up and it would
15364             prematurely release our menu capture
15365
15366 2006-03-17  Jackson Harper  <jackson@ximian.com>
15367
15368         * KeyboardLayouts.cs: Add the czech layouts.
15369
15370 2006-03-16  Jackson Harper  <jackson@ximian.com>
15371
15372         * Control.cs: Use the viewport space when sizing not the controls
15373         client size, so things like ScrollableControl that effect the
15374         viewport size (when scrollbars are added) are computed correctly.
15375         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
15376         of ManagerEntrys.
15377         - Handle creating BindingManagers for null data sources.
15378         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
15379         source, otherwise when rows are added they are added to the 'fake'
15380         datasource and we will crash when trying to set the position in
15381         those rows.
15382         - Use Implicit scrollbars on the datagrid so they arent
15383         selectable.
15384         
15385 2006-03-16  Jackson Harper  <jackson@ximian.com>
15386
15387         * Binding.cs:
15388         * InternalWindowManager.cs:
15389         * MdiWindowManager.cs:
15390         * X11Keyboard.cs: I really want Mike to love me again (fix
15391         compiler warnings).
15392
15393 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
15394
15395         * DataGrid.cs:
15396           - OnMouseDown: Switch to editing mode when clicking on the cell
15397                          even if we're clicking on the cell that's currently 
15398                          selected
15399           - ProcessGridKey: Left/Right now wrap like MS.Net does
15400           - ProcessGridKey: Tab now knows to add a new row when tab is
15401                             pressed in the cell of the last column of the 
15402                             last row
15403           - ProcessGridKey: Enter now adds another row  if pressed in the last
15404                             row and selectes the new row, same column cell
15405           - ProcessGridKey: Home/End navigate columns, not rows, like 
15406                             originally implemented
15407           - Broke ProcessKeyPreview code out into an extra Internal method
15408             so it can be called from the edit code
15409         * DataGridTextBox.cs (ProcessKeyMessage):
15410           - Switched to accept Tab keypresses
15411           - Added F2 handling to allow jumping to the end of the edited cell
15412           - Added logic to allow moving caret left/right inside edited cell
15413             and making the edited cell jump when the caret hits cell borders
15414           - Tab and Enter are now passed to the datagrid after being handled
15415         * TextBoxBase.cs:
15416           - Removed capture code now that Control handles it
15417           - set_SelectionStart now ensures caret is visible
15418
15419 2006-03-16  Jackson Harper  <jackson@ximian.com>
15420
15421         * TrackBar.cs: Debackwards the increment/decrement for handling
15422         mouse clicks on the bar with vertical trackbars.
15423         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
15424         bottom to match MS.
15425
15426 2006-03-16  Mike Kestner  <mkestner@novell.com>
15427
15428         * ListView.cs: make shift/ctrl keyboard and mouse selection 
15429         consistent with the MS control. Fix a bug in
15430         SelectedListViewItemCollection.Clear that was pissing me off for the
15431         better part of a day because the collection was being altered
15432         underneath us as we walked the list.
15433
15434 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
15435
15436         * Control.cs: Not sure how we could miss this so long, but it seems
15437           that MS.Net has Capture set all the way from before calling 
15438           OnMouseDown through sending the mouse events until after
15439           OnMouseUp. This will fix DataGrid's selection being set to end
15440           at the location of the MouseUp.
15441
15442 2006-03-15  Jackson Harper  <jackson@ximian.com>
15443
15444         * BindingContext.cs: Check the binding after its added so that it
15445           can initialize the binding managers and hookup to events.
15446         * Binding.cs: Data members seem to sometimes include rows/cols in
15447           the format Row.Column we now take this into account.
15448           - Hookup to the position changed event so we can update the
15449           control when the position has changed in the data set.
15450         * CurrencyManager.cs: Take into account the row/col naming
15451           convention when creating dataset tables.
15452         * BindingContext.cs: Using a newer better way of storing
15453           datasource/datamember pairs.  Hopefully this better matches MS for
15454           looking up binding managers.
15455
15456
15457 2006-03-15  Jackson Harper  <jackson@ximian.com>
15458
15459         * BindingContext.cs: The currency manager needs the data member
15460         name, if the member is a data set we use the name to find the
15461         correct table.
15462         * CurrencyManager.cs: When creating the list prefer an IList over
15463         an IListSource.
15464         - Attempt to create a DataTable from a DataSet (TODO: might need
15465         some better error checking here, although MS doesn't seem to have much)
15466         - If we have a DataTable create a view and use it as our list.
15467
15468 2006-03-15  Mike Kestner  <mkestner@novell.com>
15469
15470         * ListView.cs: keep a matrix of the icon mode layout to facilitate
15471         keyboard navigation. Support Up/Down/Left/Right selection correctly
15472         for all 4 View modes.
15473         * ListViewItem.cs: add internal row/col fields for icon layouts.
15474
15475 2006-03-15  Jackson Harper  <jackson@ximian.com>
15476
15477         * TabControl.cs: Redraw the tabs when we resize so their newly
15478         calculated sizes are drawn on screen.
15479         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
15480         composite characters.
15481         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
15482         - filter events so that composite characters can be created
15483         patches by peter
15484         * X11Structs.cs: Add XIMProperties enum.
15485
15486 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15487
15488         * Control.cs (BringToFront, SendToBack): Don't use window or handle
15489           unless it's created
15490
15491 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15492
15493         * Control.cs (PerformLayout): We don't need to consider visiblity
15494           for anchoring, only for docking. This fixes 'whacky' alignment
15495           in listbox and other controls that use implicit scrollbars after
15496           the previous PerformLayout patch
15497         * ListBox.cs: Switched to use implicit scrollbars
15498           
15499 2006-03-14  Mike Kestner  <mkestner@novell.com>
15500
15501         * ToolBar.cs: 
15502         * VScrollBar.cs:
15503         - chain up the "new event" overrides to base and use
15504         OnEvent to raise them.  Part of fix for bug #76509.
15505
15506 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
15507
15508         * FileDialog.cs: Do not select an item in the parent directory
15509           on backspace
15510
15511 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15512
15513         * Control.cs (PerformLayout): It would seem that we considered
15514           invisible windows for our layout. Not quite the right thing
15515           to do. Now we don't any longer, thereby fixing bug #76889.
15516
15517 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15518
15519         * Control.cs (CanFocus): I goofed. A control can have focus 
15520           even though it's not selectable. Made it match MS docs.
15521
15522 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15523
15524         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
15525           center by default (fixes #76895)
15526         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
15527           all uses of Border3DSides.All with the explicit ORd together
15528           Left|Right|Top|Bottom because I assume that nobody was aware 
15529           that All also implies a center fill. Most places I checked had
15530           a fill right above.
15531         * ProgressBarStyle.cs: Added
15532
15533 2006-03-13  Mike Kestner  <mkestner@novell.com>
15534
15535         * ListView.cs: fix breakage in drag shadow header positioning 
15536         from Peter's csc compilation fix.
15537
15538 2006-03-13  Mike Kestner  <mkestner@novell.com>
15539
15540         * ListView.cs: fix NRE produced by backspacing twice in a focused
15541         FileDialog.
15542
15543 2006-03-13  Mike Kestner  <mkestner@novell.com>
15544
15545         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
15546
15547 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15548
15549         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
15550           be changed
15551         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
15552           the allowed size before making programmatic size changes
15553
15554 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
15555
15556         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
15557           set, metacity is broken and will still use the emty sizes in 
15558           the struct. (Fix for #77089)
15559
15560 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15561
15562         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
15563           WindowExStyles and marked both enums as Flags
15564         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
15565           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
15566           to match WindowStyles split
15567         * XplatUIX11.cs:
15568           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
15569           - Updated to match WindowStyles split
15570         * XplatUIWin32.cs:
15571           - Fixed FosterParent creation, was using ExStyle on the Style field
15572             (This should help with Popup focus issues)
15573           - Updated to match WindowStyles split
15574
15575 2006-03-13  Jackson Harper  <jackson@ximian.com>
15576
15577         * MdiWindowManager.cs: Use the system menu height. Fixes some
15578         strange sizing issues.
15579
15580 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15581
15582         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
15583         * TextBoxBase.cs:
15584           - Scroll to caret after inserting text (#77672)
15585           - Make scroll range one pixel higher, fixes off-by-one error (and
15586             makes underlines visible on the last line)
15587
15588 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
15589
15590         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
15591           the keyboard state from being stuck with keys in 'pressed' state when
15592           focus is switched away via keyboard
15593         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
15594           reset the keyboard if no X11 KeyUp events are expected to come
15595         * X11Structs.cs: Switched type of Visible to bool to match driver
15596
15597 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15598
15599         * TextControl.cs:
15600           - Switched caret to be just 1 pixel wide, matches MS and looks less
15601             clunky
15602           - Moved caret display 1 pixel down from the top of the control
15603             to improve view
15604           - InsertCharAtCharet: Update the selection start if moving the caret
15605             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
15606           - No longer always creating the caret when the caret methods are
15607             called. Only the actual ShowCaret/HideCaret will do that now
15608           - Only setting caret visible if the owner control has focus
15609           - UpdateView: Added invalidation-shortcut logic for center and right 
15610             aligned text. Previously we'd update all according to the left
15611             logic which caused drawing errors. Also fixed height of invalidated
15612             areas, now properly invalidating the whole area (was off-by-one)
15613           - owner_HandleCreated: Always generate the document when the
15614             handle is created; this ensures that 
15615         * TextBoxBase.cs:
15616           - Fixed situation where caret would disappear under the right
15617             window border, also improved scrolling behaviour on left-
15618             aligned textboxes
15619           - Fixed right-aligned textboxes to have a border to the
15620             right instead of the caret being under the right border
15621         * XplatUIX11.cs:
15622           - Switched from 'nested' to simple visible/not visible tracking 
15623             for caret (part of fix for #77671)
15624           - No longer passing through translated FocusIn/FocusOut messages
15625             since we were notifying too often and the wrong windows. Instead
15626             we just notify our focussed window of receiving or loosing focus
15627         * XplatUIWin32.cs: Switched from 'nested' show/hide 
15628           counting for caret to simple visible yes/no behaviour (part of 
15629           fix for #77671)
15630
15631 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15632
15633         * Mime.cs: Remove debug code...
15634
15635 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15636
15637         * MimeGenerated.cs: Removed
15638         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
15639           and subclasses) from /usr/(local/)share/mime and
15640           $HOME/.local/share/mime.
15641
15642 2006-03-10  Jackson Harper  <jackson@ximian.com>
15643
15644         * MdiWindowManager.cs: Recalc the NC area when a window is
15645         maximized/restored so that the menu area is drawn on forms that
15646         don't have a menu.
15647
15648 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15649
15650         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
15651           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
15652           us to force a WM_NCCALCRESIZE message being sent. This is needed
15653           for MDI maximizing.
15654
15655 2006-03-10  Jackson Harper  <jackson@ximian.com>
15656
15657         * Form.cs: We need to use the ActiveMenu when calculating menu
15658         height.
15659         - Fix nullref when the window manager hasn't been created yet.
15660         * Control.cs: Fix nullref when we try to bring a control to the
15661         front that has no parent.
15662         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
15663         height.
15664         - Add a dummy item to the maximized menu so it always has the
15665         correct height. Otherwise when there are no menus we don't get our
15666         icon and buttons.
15667         
15668
15669 2006-03-10  Jackson Harper  <jackson@ximian.com>
15670
15671         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
15672         stuff.
15673         * Form.cs: Make the window_state internal so the window managers
15674         can track it.
15675         - When an MDI child is maximized let its window manager create the
15676         main menu (so it can add its icon).
15677         - Notify the window managers of state changes
15678         - Let the window manager paint its buttons and handle button
15679         clicks on the menu when it is maximized.
15680         * InternalWindowManager.cs: Move the prev_bounds into the mdi
15681         window manager, since tool windows don't use it, only mdi windows.
15682         - Tell the main form that we don't want it to handle NCPAINT
15683         itself to avoid extra painting.
15684         - Handle clicks on a maximized windows menu.
15685         - Handle window state changes
15686         - Handle minimize/maximize clicks correctly by setting the window state.
15687         * MdiWindowManager.cs: Add an icon menu that (the menu you get
15688         when clicking on the forms icon).
15689         - New method to create a forms maximized menu. This is its normal
15690         menu + an icon.
15691         - Handle window state changes.
15692         - Handle sizing of maximized windows.  Maximized windows are just
15693         drawn bigger then the parent visible area. All controls are still
15694         there, they are just outside the visible area (this matches windows).
15695         * MdiClient.cs: No scrollbars when a child window is maximized.
15696         - Let the children windows figure out how big they should be when
15697         sizing maximized windows.
15698         - Implement a version of ArrangeIconicWindows somewhat similar to
15699         Windows version.  There are some little differences, but I don't
15700         think any app will rely on the layout of minimized mdi windows.
15701
15702 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15703
15704         * Padding.cs: Several fixes to allow compiling with csc 2.0
15705
15706 2006-03-09  Jackson Harper  <jackson@ximian.com>
15707
15708         * Menu.cs:
15709         * MenuItem.cs: Cheap hack so we can add items to the list without
15710         the events being raised.  This allows adding mdi items during
15711         drawing. TODO: Should probably find a better time to add the items.
15712
15713 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15714
15715         * ThemeWin32Classic.cs:
15716           - CheckBox_DrawText: Added logic to not wrap if not enough space
15717             is available (Fix for bug #77727)
15718           - RadioButton_DrawText: Added logic not to wrap if not enough
15719             space is available (Fix for bug #77727). Also removed some
15720             duplicate code, DrawString always drawing the regular text
15721             before hitting the if statement.
15722
15723 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
15724
15725         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
15726
15727 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15728
15729         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
15730         * ContainerControl.cs: Partial implementation of some 2.0 scaling
15731           methods. Moved the new 2.0 properties into alphabetical order with
15732           other properties and added MonoTODO tags
15733
15734 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15735
15736         * AutoScaleMode.cs: Added. Fix build.
15737
15738 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15739
15740         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15741           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
15742           and was requiring premature handle creation for calls from above
15743         * Form.cs, Control.cs: Removed handle arguments from calls to
15744           CalculateClientRect()
15745
15746 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15747
15748         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
15749           drag_column.column_rect is MarshalByRef and can't be used that way
15750
15751 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15752
15753         * AxHost.cs: Added deserialization constructor for 
15754           AxHost+State (fixes 77743)
15755
15756 2006-03-09  Mike Kestner  <mkestner@novell.com>
15757
15758         * ListView.cs: 
15759         - Added column drag reordering for details view.
15760         - fixed behavior when mouse is dragged off column and
15761         AllowColumnReorder is false.
15762         * ColumnHeader.cs: clone the format too in Clone.
15763         * Theme.cs: add DrawListViewHeaderDragDetails method.
15764         * ThemeWin32Classic.cs:
15765         - impl new method for drawing drag column shadows and targets.
15766         - support column offset for details mode in DrawListViewItem.
15767
15768 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15769
15770         * TextControl.cs: Reset the char_count when the document is cleared
15771           (Fixes bug reported on mono-winforms mailing list)
15772
15773 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15774
15775         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
15776           of calling base we simply process the key ourselves, since both
15777           DefWindowProc and the handled method would set m.Result. 
15778           (Fixes #77732)
15779
15780 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15781
15782         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
15783           method also moves the window; instead implemented a copy of
15784           Control.ScaleCore (Part of fix for #77456)
15785         * TextBoxBase.cs: 
15786           - Created new CreateGraphicsInternal method to allow providing
15787             a graphics context when no handle is created without triggering
15788             handle creation. (Part of fix for #77456)
15789           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15790         * TextControl.cs: 
15791           - Switched Constructor to require TextBoxBase instead of Control (to
15792             allow uncast access to CreateGraphicsInternal)
15793           - Safeguarded use of owner.Handle property. No longer accessing it
15794             unless the handle is already created.
15795           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15796           - Now triggering a recalc when owning control becomes visible
15797         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
15798           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
15799           premature handle creation (Part of fix for #77456)
15800         * Control.cs:
15801           - We now only destroy our double-buffering buffers when the
15802             control is resized or disposed, but not when visibility
15803             changes. (The code even re-created them twice every time)
15804           - Now requiring a redraw of the buffer on visibility changes
15805             (fixes bug 77654 part 2)
15806           - Not passing OnParentVisibleChanged up unless the control
15807             is visible
15808           - CanFocus: Fixed to match MS documentation
15809           - Focus: Fixed to return actual focus state and to check if
15810             setting focus is legal before setting it
15811
15812 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
15813
15814         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
15815           when to draw focus rectangle by looking at parent focus and
15816           selected state instead. This fixes TabPages on Linux sometimes
15817           having none or multiple focus rectangles.
15818         * XplatUIX11.cs (SetFocus): 
15819           - Don't set the focus if the same window already has focus
15820           - Use SendMessage instead of PostMessage (like it's Win32
15821             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
15822             to match MS behaviour
15823         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
15824           are not selectable.
15825
15826 2006-03-07  Jackson Harper  <jackson@ximian.com>
15827
15828         * PictureBox.cs: Revert line I accidently committed last week.
15829
15830 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
15831
15832         * Control.cs: 
15833           - Added new IsRecreating and ParentIsRecreating properties to
15834             allow testing if RecreateHandle has been called on ourselves
15835             or one of our parents
15836           - WndProc(WM_DESTROY): If our control handle is being recreated
15837             we immediately need to create the handle when receiving the
15838             destroy, that way our child windows find a valid parent handle
15839             when they themselves are being recreated upon WM_DESTROY receipt
15840             (fix for bug #77654 part 1)
15841         * XplatUIX11.cs:
15842           - DestroyWindow: WM_DESTROY must be sent to our own window before
15843             notifying any child windows. MS documents that child windows
15844             are still valid when WM_DESTROY is received. (Control now relies on
15845             this behaviour)
15846           - Added some fine-grain debug options
15847
15848 2006-03-06  Jackson Harper  <jackson@ximian.com>
15849
15850         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
15851         box and base calculations off this.
15852         * MdiChildContext.cs:
15853         * MdiWindowManager.cs: Don't need to ensure scrollbars here
15854         anymore.
15855         
15856 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
15857
15858         * Splitter.cs: In situations where the affected control is added
15859           to the parent's control list after the splitter, we would not
15860           populate affected. Now we try populating it on mousedown, if
15861           it's not already set, and force it to be re-set whenever our
15862           parent changes.
15863
15864 2006-03-03  Matt Hargett  <matt@use.net>
15865
15866         * Control.cs: implement Control.Padding
15867         * Padding.cs: -Padding.All returns -1 when constructing with the
15868         implicit default ctor
15869         -Padding.ToString() matches MS.NET
15870         * ContainerControl.cs: implement
15871         ContainerControl.AutoScaleDimensions
15872         * ListControl.cs: implement ListControl.FormattingEnabled
15873         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
15874         * ButtonBase.cs:
15875         * TabPage.cs: Implement UseVisualStyleBackColor.
15876         * PictureBox.cs: Implement PictureBox.InitialImage.
15877
15878 2006-03-03  Mike Kestner  <mkestner@novell.com>
15879
15880         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
15881         event declarations to proxy to base event.
15882         * ListViewItem.cs: update to use ItemControl.
15883         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
15884         * ThemeWin32Classic.cs: update to new ListView theme API and fix
15885         column header label rendering for 0 width columns.
15886
15887 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
15888
15889         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
15890           that causes the control to be created. Fixes #77476.
15891
15892 2006-03-02  Jackson Harper  <jackson@ximian.com>
15893
15894         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
15895         expose_pending.
15896
15897 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
15898
15899         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
15900           passed in for the EventArgs (fixes #77690)
15901
15902 2006-03-01  Jackson Harper  <jackson@ximian.com>
15903
15904         * ScrollBar.cs: Refresh afterbeing resized.
15905
15906 2006-02-28  Mike Kestner  <mkestner@novell.com>
15907
15908         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
15909         Clean up a tracker compile warning.
15910         * MenuItem.cs: add internal PerformPopup method.
15911         [Fixes #77457]
15912
15913 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
15914
15915         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
15916           implicit expose) when the text is set to null
15917
15918 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
15919
15920         * RichTextBox.cs (FlushText): When newline is true, we always
15921           need to split the line, even if no text is on it and we may
15922           never eat newlines. (Fixes #77669)
15923
15924 2006-02-28  Mike Kestner  <mkestner@novell.com>
15925
15926         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
15927         and set Selected instead.
15928         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
15929         collections.
15930
15931 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
15932
15933         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
15934
15935 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
15936
15937         * FontDialog.cs:
15938           - Got rid of the panel. All controls are now directly added to
15939             the dialog form
15940           - It is now possible to set a font with the Font property
15941           - MinSize and MaxSize property do now what they should
15942           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
15943           - Searching and selecting a font with the font textbox works now,
15944             the same applies to the style and size textbox
15945           - Draw the correct 3D border in the example panel
15946           - Fixed a little mem leak (unused fonts didn't get disposed)
15947           - Many other internal updates/rewrites...
15948           - Fix typo
15949
15950 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
15951
15952         * TextControl.cs: 
15953           - InsertRTFFromStream: Added 'number of characters inserted' argument
15954           - set_SelectedRTF: Now using the number of characters to calculate
15955             the new location for the selection and cursor (x/y cannot be used
15956             due to potentially already wrapped text)
15957
15958 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
15959
15960         * TextControl.cs: Added property and implemented means to allow 
15961           disabling recalculation of a document (can be used to speed up
15962           multiple inserts and is needed to make RTF inserts predictable, see
15963           bug #77659)
15964         * RichTextBox.cs: Using the new NoRecalc property of Document to
15965           keep x/y insert locations predictable. Also makes it faster inserting
15966           large chunks of RTF
15967
15968 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
15969
15970         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
15971           it's easier for a child control to handle the other messages without
15972           having to duplicate the special functionality
15973         * TextBoxBase.cs
15974           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
15975             code to handle processing the key ourselves, in order to get 
15976             access to the result of KeyEventArgs.Handled. We now only call 
15977             ProcessKey if they key hasn't been handled already. Fixes #77526.
15978           - set_Text: If null or empty string is given, just clear the 
15979             document. Fixes part of #77526
15980
15981 2006-02-27  Jackson Harper  <jackson@ximian.com>
15982
15983         * SizeGrip.cs: Paint the background color before painting the grip
15984         so things look right.
15985         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
15986
15987 2006-02-27  Mike Kestner  <mkestner@novell.com>
15988
15989         * ListView.cs:
15990           - Restructure layout and invalidation model to remove a ton of
15991           flicker from the control and speed up performance in general.
15992           - Add manual column resize, flickers like crazy, but I already have
15993           some ideas on how I'll fix that. (#76822)
15994           - Merge the three Icon-based views into a single layout method.
15995           - Move item selection interaction logic from the item since 
15996           interaction with the collections is more appropriate to the view.
15997           - Deselection on non-item clicks.
15998         * ListViewItem.cs:
15999           - Encapsulate most of the layout. Add some internal props to trigger
16000           layout.  Move to a model where Items invalidate themselves instead
16001           of just invalidating the whole control every time something changes.
16002           - Invalidate on Text/Caption changes.
16003           - switch to an offset based layout model to avoid having to absolute
16004           position every element on item moves.
16005           - correct checkbox layout to conform to MS layout.
16006         * ThemeWin32Classic.cs:
16007           - refactor some column header drawing code.
16008           - fix string justification for column headers (#76821)
16009           - make SmallIcon labels top justified for compat with MS impl.
16010         * ThemeClearlooks.cs:
16011           - adjust to new ListViewItem internal checkbox bounds api.
16012
16013 2006-02-27  Jackson Harper  <jackson@ximian.com>
16014
16015         * Control.cs:  Change where implicit controls fall in the zorder.
16016         They are now on top of all children.
16017         - Synced AddImplicit code with Add
16018         - Removed unused enumerator.
16019         * SizeGrip.cs: Remove the TODO as its been TODONE.
16020
16021 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
16022
16023         * TextControl.cs(Insert): Combine the last lines unless the insertion
16024           string ends with \n\n, otherwise we leave one line too many (Fixes
16025           something I noticed with the testapp for #77526; the bug itself was
16026           already fixed in the previous checkin)
16027
16028 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
16029
16030         * RichTextBox.cs:
16031           - SelectionColor and SelectionFont methods no longer set absolute
16032             styles. Instead, the keep font or color respectively (This 
16033             resolves a long-standing FIXME in the code)
16034           - When flushing RTF text, the insert code now considers text trailing
16035             behind the insertion point (Fixes the bug where when replacing
16036             the selected text via SelectedRTF the remainder of the line behind 
16037             the selection would stay on the first insertion line)
16038         * TextBoxBase.cs:
16039           - AppendText now updates the selection points after inserting text
16040           - AppendText now ensures that the last tag (sometimes 0-length) of
16041             the document is used for the style information (Fixes part of 
16042             bug #77220)
16043         * TextControl.cs:
16044           - Created new FontDefiniton class to allow describing partial style
16045             changes
16046           - StreamLine() now takes a lines argument, to allow it to decide
16047             whether an encountered zero-length tag is the last in the document
16048             (which must be kept to not loose the font/color contained in it,
16049             for later appends)
16050           - Created Combine() and Split() methods for Marker structs, to 
16051             support marker updates due to reformatted documents (soft line
16052             wraps)
16053           - Implemented Document.CaretTag setter
16054           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
16055             of the last line (Not the cause, but also exposed by bug #77220)
16056           - Added LineTag argument to InsertString method, to allow callers
16057             to force a certain tag to be used (required to force use of the
16058             trailing zero-length tag of a document)
16059           - Now updating markers in Combine(), to avoid stale tag markers
16060           - Added some method descriptions to aid maintenance
16061           - Implemented new FormatText concept, allowing additive/subtractive
16062             formatting by only specifying the components that are to be 
16063             changed. This was needed for resolving the RTB.SelectedColor/
16064             RTB.SelectedFont fixmes
16065           - Added Break() support method to allow breaking up linetags (used
16066             for partial formatting)
16067           - Added GenerateTextFormat() method. It is used for partial 
16068             formatting and allows to generate a full font/color from given
16069             attributes and an existing tag.
16070
16071 2006-02-26  Jackson Harper  <jackson@ximian.com>
16072
16073         * XplatUIX11.cs:  Use the correct caption height.
16074         - Translate hittest coordinates to screen coords to match MS.
16075         * XplatUIWin32.cs: When we create MDI windows we need to reset
16076         some of the style flags, so we get a nice blank window, and can
16077         draw all the decorations ourselves.
16078         - Set a clipping rectangle on the non client paint event, the
16079         window manager drawing code needs one.
16080         * Form.cs: The window manager needs to know when the window state
16081         has been updated.
16082         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
16083         don't need to factor in border and title sizes in these
16084         methods. TODO: Remove the args and fix the call points.
16085         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
16086         properly.
16087         - Let the driver set the cursors.
16088         - Improve active window handling
16089         - Correct sizes for title bars and buttons.
16090         - Match MS drawing better
16091         * MdiWindowManager.cs: We don't need to handle border style
16092         updates specially anymore.
16093         - Check for scrollbars when windows are done moving
16094         - Handle Active properly.
16095         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
16096         correctly. I am spewing the exception though, so we don't hide the
16097         bugs.
16098         
16099 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
16100
16101         * DataGridViewRowPostPaintEventArgs.cs,
16102           DataGridViewCellPaintingEventArgs.cs,
16103           DataGridViewRowCollection.cs,
16104           DataGridViewRowPrePaintEventArgs.cs,
16105           DataGridViewCell.cs: Clear a few warnings and implement a few
16106           exceptions that should be thrown.
16107
16108 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16109
16110         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
16111           'inheriting' our parent's (non-default) cursor. (Part of
16112            the fix for #77479)
16113
16114 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
16115
16116         * XplatUIX11.cs: Fixed cast to make csc happy
16117
16118 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16119
16120         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
16121           it's for the client area (part of fix for #77479 and needed
16122           for MDI window cursor handling)
16123         * XplatUIX11.cs
16124           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
16125             the appropriate default cursors and also passing the message
16126             up the parent chain 
16127           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
16128             for non-client areas
16129
16130 2006-02-15  Jackson Harper  <jackson@ximian.com>
16131
16132         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
16133         is a real MDI window
16134
16135 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
16136
16137         * X11DesktopColors.cs: Instead of checking the desktop session
16138           string for "KDE" check if it starts with "KDE"
16139
16140 2006-02-10  Jackson Harper  <jackson@ximian.com>
16141
16142         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
16143         systems).
16144
16145 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16146
16147         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
16148           errors
16149         * ColorDialog.cs:
16150           - Got rid of the panel. All controls are now directly added to
16151             the dialog form
16152           - Changed to mono coding style
16153
16154 2006-02-10  Jackson Harper  <jackson@ximian.com>
16155
16156         * InternalWindowManager.cs: We don't need the set visibility to
16157         false hack anymore now that peter has written beautiful shutdown
16158         code.
16159
16160 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
16161
16162         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
16163           where already explicitly destroyed
16164
16165 2006-02-10  Jackson Harper  <jackson@ximian.com>
16166
16167         * MdiClient.cs: Handle the case where windows are too high or to
16168         the left and we need scrollbars.
16169
16170 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16171
16172         * MimeIcon.cs: Added some icons
16173         * FileDialog.cs:
16174           - Fixed bug #77477
16175           - Got rid of the panel. All controls are now directly added to
16176             the dialog form
16177           - Changed to mono coding style
16178           - On Linux "My Computer" and "My Network" will now show some
16179             more usefull information. A new class, MasterMount, gathers
16180             this information from /proc/mount. Updated MWFFileView to make
16181             use of this information
16182           - Fixed a bug that caused FileDialog to crash when
16183             ".recently_used" file had a zero size
16184           - FilterIndex does now what it should
16185           - Some Refactoring
16186         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
16187             FileDialog changes
16188
16189 2006-02-09  Jackson Harper  <jackson@ximian.com>
16190
16191         * ComboBox.cs: Don't touch if null.
16192
16193 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
16194
16195         * Cursor.cs: 64bit safeness fix
16196         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
16197
16198 2006-02-09  Jackson Harper  <jackson@ximian.com>
16199
16200         * Form.cs: If a form is made into an MDI form update the styles so
16201         all the props can get set correctly.
16202         - Kill the mdi_container when we dont need it anymore.
16203         * InternalWindowManager.cs: Add missing NOT
16204
16205 2006-02-08  Jackson Harper  <jackson@ximian.com>
16206
16207         * InternalWindowManager.cs: Respek clipping when drawing MDi
16208         decorations.
16209
16210 2006-02-08  Jackson Harper  <jackson@ximian.com>
16211
16212         * Hwnd.cs: Add bits to track non client expose events.
16213         * XplatUIX11.cs: Track non client expose events on the hwnd. This
16214         gives us a proper invalid rect and will allow for some nice
16215         optimizations with NC client drawing
16216         - MDI windows are children windows, so move their style handling
16217         into the child window block.
16218         * InternalWindowManager.cs: Remove a state reset that was
16219         getting invoked at the wrong time. Fixes managed windows getting
16220         into a 'stuck' captured state.
16221
16222 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16223
16224         * TextControl.cs (Document.ctor): Now initializing 
16225           selection_anchor. Fixes #77493
16226
16227 2006-02-07  Jackson Harper  <jackson@ximian.com>
16228
16229         * TrackBar.cs: The increment/decrements were backwards.
16230
16231 2006-02-07  Mike Kestner  <mkestner@novell.com>
16232
16233         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
16234         to the instance itself.
16235
16236 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16237
16238         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
16239           on ulongs and pointers, the size differs between 32bit and 64bit
16240           systems. 
16241
16242 2006-02-07  Mike Kestner  <mkestner@novell.com>
16243
16244         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
16245         for 64 bit platforms to work around a metacity bug. 
16246
16247 2006-02-07  Jackson Harper  <jackson@ximian.com>
16248
16249         * TrackBar.cs: Process the input keys we need, and hookup to
16250         KeyDown instead of using WndProc, so we get key messages.
16251
16252 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
16253
16254         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
16255           machine we're on. 
16256         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
16257           we need to translate the XdndVersion atoms array before sending it
16258
16259 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
16260
16261         * XplatUIX11.cs: 
16262           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
16263             number of bits for the property, not the number of bytes. The
16264             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
16265             but would not crash since it specified 8 bits instead of 4 bits)
16266           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
16267             defined as XID -> long in the C headers)
16268           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
16269             references since those are now IntPtr to begin with
16270           - Switched all Atom.XXX 'int' casts to IntPtr casts
16271           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
16272           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
16273           - Added XChangeActivePointerGrab DllImport (for X11DnD)
16274         * X11Structs.cs:
16275           - Changed 'int' type for Atoms in XEvent structures to IntPtr
16276           - Changed atom in HoverStruct to be IntPtr
16277         * X11DnD.cs:
16278           - Removed local DllImports, switched code to use those from XplatUIX11
16279           - Removed/fixed casts related to the switch of Atom to be a IntPtr
16280
16281 2006-02-06  Mike Kestner  <mkestner@novell.com>
16282
16283         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
16284         method signatures in the import region.  There may still be some
16285         lingering struct marshaling issues, as I didn't drill down into those.
16286         Yet.
16287
16288 2006-02-06  Jackson Harper  <jackson@ximian.com>
16289
16290         * ComboBox.cs: Dont manually set the top_item, this is computed
16291         when the scrollbar position is set.
16292
16293 2006-02-06  Mike Kestner  <mkestner@novell.com>
16294
16295         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
16296         startup crashes on amd64.  There's other fixes needed.  All pinvoke
16297         usage of Atom needs to be mapped to IntPtr for example.  And there are
16298         likely other int/long issues to be addressed.
16299
16300 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
16301
16302         * FileDialog.cs: One more...
16303
16304 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16305
16306         * FileDialog.cs: Next try
16307
16308 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16309
16310         * FileDialog.cs: First part of fix for #77464
16311
16312 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16313
16314         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
16315           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
16316           AcceptButton border drawing.
16317
16318 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
16319
16320         * Form.cs: Moved positioning of form after auto scaling is applied,
16321           otherwise it would possibly use wrong form size.
16322
16323 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
16324
16325         * Control.cs (RecreateHandle): No need to re-create any child
16326           controls, the child windows will get destroyed automatically by
16327           the windowing system or driver, and re-created when the handle
16328           is being accessed the first time. Fixes #77456
16329         * Form.cs: No longer setting the form to closing if the handle is 
16330           being recreated. This seems like the right thing to do, don't
16331           have a bug or testcase for this, though.
16332
16333 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16334
16335         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
16336           controls to avoid unwanted side effects
16337
16338 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
16339
16340         * Control.cs: 
16341           - ScaleCore needs to scale the bounds, not the ClientSize of the 
16342             control. Fixes #77416.
16343           - DefaultSize is 0,0 for control
16344         * TextBoxBase.cs: 
16345           - DefaultSize is 100, 20
16346           - SetBoundsCore: Now enforcing the height, no matter if the provided
16347             height is more or less than the preferred one, as long as AutoSize
16348             is on
16349         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
16350
16351 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16352
16353         * Control.cs:
16354           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
16355             call unless both performLayout is true *and* we have a pending
16356             layout change
16357           - ResumeLayout: MS does not completely nest Suspend and Resume,
16358             they bottom out at 0, fixed our code to match that.
16359           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
16360             SetBoundsCore, we were updating even when we shouldn't. This fixes
16361             swf-anchors mis-anchoring when resizing the app fast and lots.
16362           - UpdateDistances: Now only setting the left and top distance if 
16363             we have a parent and are not suspended, this is based on
16364             a suggestion by Don Edvaldson in bug #77355.
16365           - OnVisibleChanged: Fixed logic when to create the control. We may
16366             not create the control if we have no parent or if it's not visible;
16367             switched to using Visible property instead of is_visible field 
16368             since the property also considers parent states. This fixes a bug
16369             when starting Paint.Net
16370
16371 2006-02-02  Jackson Harper  <jackson@ximian.com>
16372
16373         * Form.cs: If the forms handle hasn't been created yet don't call
16374         into xplatui to make it top most, just set the topmost flag on the
16375         form in CreateParams
16376         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
16377
16378 2006-02-01  Jackson Harper  <jackson@ximian.com>
16379
16380         * ScrollableControl.cs: Refactored the Recalculate method a
16381         little, this wasn't handling all the variants of bottom and right
16382         bars needed to be added and added/removed based on their
16383         counterparts being added/removed (which changes the drawable
16384         size). Also we special case client widths and heights of 0 and
16385         don't add the scrollbar for those.
16386
16387 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
16388
16389         * XplatUIX11.cs: 
16390           - Added method to get AbsoluteGeometry(); currently unused, but might
16391             be used in the future, if we try again to figure out toplevel
16392             coordinates with some more crappy window managers
16393           - Added FrameExtents() method to retrieve the WM set decoration size
16394           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
16395             to deal with at least KDE, FVWM and metacity (Fixes #77092)
16396         * Hwnd.cs: 
16397           - Added whacky_wm tracking var for metacity
16398           - Added logic to have default menu height if the actual menu height
16399             has not yet been calculated (part of fix for #77426)
16400         * Form.cs: Keep track whether client size has been set and re-set 
16401           it if a menu is added/removed afterwards (Fixes #77426)
16402
16403 2006-01-31  Jackson Harper  <jackson@ximian.com>
16404
16405         * Control.cs: When a new Site is set on the component attempt to
16406         pull the AmbientProperties from it.
16407
16408 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
16409
16410         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
16411           in the background of the owning form. Fixes #77332
16412
16413 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16414
16415         * MimeIcon.cs: Fix for #77409
16416
16417 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16418
16419         * XplatUIX11GTK.cs: Initial import
16420
16421 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
16422
16423         * FixedSizeTextBox: fixes class signature
16424
16425 2006-01-30  Jackson Harper  <jackson@ximian.com>
16426
16427         * FixedSizeTextBox.cs: New internal class that represents a
16428         textBox that will not be scaled.
16429         * TreeView.cs:
16430         * ComboBox.cs:
16431         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
16432         standard TextBox.
16433                 
16434 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
16435
16436         * XplatUIX11.cs: Retrieve default screen number instead of
16437           assuming 0. Attempted fix for #77318
16438
16439 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
16440
16441         * XplatUIWin32.cs: 
16442           - GetWindowPos: When a window is parented by FosterParent, use 
16443             the desktop instead of FosterParent as the base to get coordinates
16444           - CreateWindow: Don't make FosterParent the parent window for Popups
16445             if we don't want a taskbar entry, Popups automatically don't get one
16446         * Hwnd.cs: Need to call remove to actually remove the key from the
16447           hash table
16448
16449 2006-01-30  Mike Kestner  <mkestner@novell.com>
16450
16451         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
16452
16453 2006-01-30  Jackson Harper  <jackson@ximian.com>
16454
16455         * TreeView.cs:
16456         * TreeNode.cs: Raise events no matter how the treenode is
16457         checked. Patch by Don Edvalson.
16458
16459 2006-01-30  Jackson Harper  <jackson@ximian.com>
16460
16461         * TreeNode.cs: Signature fix.
16462
16463 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
16464
16465         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
16466
16467 2006-01-20  Mike Kestner  <mkestner@novell.com>
16468
16469         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
16470         event forwarding when menus are active.
16471         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
16472         Most of the patch is pdb's with a little rework.
16473
16474 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16475
16476         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
16477           Removed GetMenuDC and ReleaseMenuDC methods; replaced
16478           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
16479         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
16480         * InternalWindowManager.cs: Added use of PaintEventStart/End to
16481           handling of WM_NCPAINT message, now passing the PaintEventArgs to
16482           the PaintWindowDecorations method
16483         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
16484         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
16485         * MenuAPI.cs: Made tracker window invisible
16486         * XplatUIWin32.cs:
16487           - Removed GetMenuDC and ReleaseMenuDC methods
16488           - Implemented the client=false path for PaintEventStart and
16489             PaintEventEnd
16490
16491 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16492
16493         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
16494         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
16495           styles
16496         * Form.cs: 
16497           - MaximizeBox, MinimizeBox: Recreate the handle when setting
16498             the style
16499           - CreateParams: Reworked the styles to match MS look'n'feel,
16500             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
16501             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
16502
16503 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16504
16505         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
16506           window is not mapped, since otherwise every form that's being 
16507           created is considered minimized, which is wrong.
16508         * Form.cs: Catching the exception and returning our internal value
16509           instead
16510
16511 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16512
16513         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
16514           SetWindowMinMax() to have means to tell the driver about the minimum,
16515           maximum and maximized state window sizes. (Part of the fix for #76485)
16516         * Form.cs:
16517           - Implemented tracking of minimum and maximum window size, now calling
16518             new SetWindowMinMax() driver method to tell the driver (Part of the
16519             fix for #76485)
16520           - Finished handling of WM_GETMINMAXINFO method, now setting all values
16521             (Completes fix for #76485)
16522           - Calling new SetWindowMinMax driver method when the handle for a 
16523             form is created, to make sure the driver knows about it even if
16524             the values have been set before the window was created
16525           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
16526             to avoid messing up our anchoring calculations (partial fix
16527             for #77355)
16528         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
16529         * XplatUIX11.cs:
16530           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
16531           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
16532             (and presumably other freedesktop.org compliant WMs). Left the
16533             assumption unmapped=minimized, needed for SetVisible to work.
16534           - Now setting the window state when creating windows
16535           - Fixed SetVisible to consider/set the window state when mapping
16536             a Form. We cannot set the state before it's mapped, and we cannot
16537             use Form.WindowState once it's mapped (since it would ask the
16538             driver and get 'normal'. Therefore, we grab the state before
16539             mapping, map, and then set state.
16540           - Implmemented SetWindowMinMax method; Metacity does not seem to
16541             honor the ZoomHints, though.
16542         * XplatUIWin32.cs:
16543           - Removed MINMAXINFO (moved to XplatUIStructs)
16544           - Added SetWindowMinMax stub (on Win32 the only way to set that
16545             information is in response to the WM_GETMINMAXINFO message, which
16546             is handled in Form.cs)
16547           - Added logic to SetVisible to set the proper window state when a 
16548             form is made visible (fixes #75720)
16549
16550 2006-01-26  Jackson Harper  <jackson@ximian.com>
16551
16552         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
16553         same way we handle them with Invoke.
16554
16555 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
16556
16557         * Form.cs:
16558           - Added tracking of window state so CreateParams can return
16559             the appropriate style
16560           - Moved setting of WS_CAPTION style in CreateParams to allow
16561             styles without caption
16562         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
16563           control if the TextBox property is accessed. Fixes #77345
16564         * Control.cs:
16565           - get_Created: now uses is_disposed and is_created to determine
16566             return value (suggested by Jackson)
16567           - CreateHandle: No longer exits if the handle is being recreated
16568           - RecreateHandle: If the handle is not yet created call the 
16569             appropriate method to create either control or handle. If the
16570             control is already created CreateHandle will simply exit instead
16571             of just creating the handle
16572         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
16573           now SendMessage WM_DESTROY directly to the control when DestroyWindow
16574           is called.
16575         * XplatUIX11.cs: 
16576           - When DestroyWindow is called, instead of waiting for the 
16577             DestroyNotification from X11, we directly post it to the WndProc
16578             and immediately dispose the hwnd object.
16579             Same applies to DestroyChildWindows, and this obsoletes the
16580             expose_pending tracking. Contrary to Win32 behaviour we destroy our
16581             child windows before our own, to avoid X11 errors.
16582           - Removed the direct sending of WM_PAINT on UpdateWindow
16583         * XplatUIWin32.cs:
16584           - Reworked DoEvents and GetMessage to allow access to internal queue
16585             even when trying non-blocking access to the queue.  Fixes #77335. 
16586             Based on a patch suggestion by Don Edvalson. The new private
16587             GetMessage can now also be used as a backend for a PeekMessage
16588             frontend version.
16589         * XplatUI.cs: Improved debug output for CreateWindow
16590
16591 2006-01-25  Jackson Harper  <jackson@ximian.com>
16592
16593         * Help.cs: Allow param to be null. Patch by Don Edvalson.
16594
16595 2006-01-24  Jackson Harper  <jackson@ximian.com>
16596
16597         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
16598         when we have a MaxDropItems lower then the selected index.
16599
16600 2006-01-24  Jackson Harper  <jackson@ximian.com>
16601
16602         * Control.cs: Don't allow selection of non visible controls, allow
16603         selection of controls without parents.
16604
16605 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16606
16607         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
16608         * DataGridDrawingLogic.cs: Add editing row only when is necessary
16609
16610 2006-01-23  Jackson Harper  <jackson@ximian.com>
16611
16612         * UpDownBase.cs: Make the textbox handle all the selection and
16613         tabbing. This fixes tabing to updown controls.
16614
16615 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16616
16617         * TextBoxBase.cs: fixes exception thown the object was null
16618
16619 2006-01-23  Jackson Harper  <jackson@ximian.com>
16620
16621         * ButtonBase.cs: Just use the base CreateParams. They set
16622         visibility and enabled correctly.
16623         * ComboBox.cs:
16624         * TrackBar.cs:
16625         * MonthCalendar.cs: Lets let the base set as much of the
16626         createparams as possible so we don't have duplicate code all over
16627         the place.
16628
16629 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
16630
16631         * ThemeGtk.cs: Added TrackBar and some experimental code to
16632           get double buffering back
16633
16634 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
16635
16636         * DataGrid.cs: Allows row number set internally higher than the last
16637         when creating a new row. Restores the editing functionality.
16638
16639 2006-01-20  Mike Kestner  <mkestner@novell.com>
16640
16641         * MimeIcon.cs: delay Image creation until the icons are accessed
16642         instead of creating 190 scaled images on GnomeHandler startup.
16643
16644 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
16645
16646         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
16647           first call base before processing the event. Fixes #77279
16648
16649 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
16650
16651         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
16652           that the stride for the GDI bitmap would match the stride of
16653           a DIB or a Cursor.
16654
16655 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
16656
16657         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
16658
16659 2006-01-19  Jackson Harper  <jackson@ximian.com>
16660
16661         * ComboBox.cs: Hookup the text controls keydown event so we get
16662         those when the text control has the focus.
16663
16664 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16665
16666         * Label.cs: Now using the base events instead of defining new ones;
16667           this allows us to just call the base properties without having to
16668           duplicate all base property logic 
16669
16670 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16671
16672         * Label.cs: A label by default is not a tabstop (Fixes one of our
16673           failing nunit tests)
16674
16675 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16676
16677         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
16678         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
16679
16680 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16681
16682         * Cursor.cs: Reimplemented creating cursor bitmaps without using
16683           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
16684           This fixes #77218
16685         * XplatUIWin32.cs: 
16686           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
16687             constructor creates images that can't be saved. Part of the fix
16688             for #76103
16689           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
16690           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
16691             bug fix for handling window state in forms properly)
16692
16693 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16694
16695         * ThemeGtk.cs: Simplify ScrollBar drawing
16696
16697 2006-01-18  Jackson Harper  <jackson@ximian.com>
16698
16699         * Splitter.cs: Set the default dock style for the splitter control
16700         in the constructor.
16701
16702 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16703
16704         * ThemeGtk.cs: Corrected StateType and ShadowType for
16705           gtk_paint_box
16706
16707 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16708
16709         * Control.cs: Make use of Theme.DoubleBufferingSupported
16710         * ThemeGtk.cs:
16711           - Added drawing for flat style buttons
16712           - Added ScrollBar drawing
16713
16714 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16715
16716         * ThemeClearlooks.cs: Removed some unneeded code.
16717         * ThemeGtk.cs: First part of ThemeGtk enhancements.
16718
16719 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16720
16721         * LinkLabel.cs: We need to update the hover drawing when
16722           leaving the control as well.
16723
16724 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
16725
16726         * DataGrid.cs: Clicking on non empty areas in the columns
16727            area was giving an exception
16728
16729 2006-01-17  Jackson Harper  <jackson@ximian.com>
16730
16731         * ThemeWin32Classic.cs:
16732         * ListView.cs: Do not draw/clip the headers when the header style
16733         is None.
16734
16735 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16736
16737         * DataGrid.cs: Fixes 77260
16738         
16739 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16740
16741         * DataGrid.cs: Clicking on a column on a empty grid was giving
16742           an exception
16743
16744 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16745
16746         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
16747           or any keypress will crash the grid.
16748
16749 2006-01-17  Mike Kestner  <mkestner@novell.com>
16750
16751         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
16752         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
16753         invisible/previously-visible items.
16754         [Fixes #76909]
16755
16756 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
16757
16758         * ThemeClearlooks.cs:
16759         - Added CL_Draw_Button method; now other theme controls that are 
16760           not derived from button or do not have a button can draw buttons
16761           too
16762         - Updated ComboBox drawing
16763         - Beautified RadioButton drawing
16764         - Corrected drawing of bottom and left tabs
16765         - Beautified DateTimePicker and MonthCalendar
16766         - Added CPDrawButton and CPDrawRadioButton
16767
16768 2006-01-16  Jackson Harper  <jackson@ximian.com>
16769
16770         * ComboBox.cs: Set the initial value of the scrollbar to the
16771         current index. Reduce the numbers of refreshs and IndexOfs called.
16772
16773 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
16774
16775         * FileDialog.cs: When the file listview is focused hitting the
16776           backspace key moves the fileview to the parent directory
16777
16778 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16779
16780         * Form.cs: 
16781           - Added RecreateHandle call when changing taskbar visibility to 
16782             trigger reparenting in Win32 driver (Fixes #75719)
16783           - If a window has minimize or maximize buttons, it cannot have
16784             a help button
16785         * XplatUIWin32.cs:
16786           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
16787             the toplevel form with FosterParent (A toolwindow not on the
16788             taskbar) (Fixes #75719)
16789           - Made FosterParent a toolwindow
16790
16791 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16792
16793         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
16794
16795 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16796
16797         * ToolTip.cs: If SetToolTip is called from a control and the mouse
16798           is currently over that control, make sure that tooltip_window.Text
16799           gets updated
16800
16801 2006-01-13  Mike Kestner  <mkestner@novell.com>
16802
16803         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
16804
16805 2006-01-13  Jackson Harper  <jackson@ximian.com>
16806
16807         * TreeView.cs: On MS GetNodeAt never actually factors in the X
16808         value passed.  Also redraw the selected node when we recieve
16809         focus, so tabbing between trees works correctly.
16810
16811 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16812
16813         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
16814           ~/.gconf/%gconf-tree.xml, so use
16815           .gconf/desktop/gnome/interface/%gconf.xml
16816
16817 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16818
16819         * TextControl.cs: Draw text in gray if control is disabled
16820
16821 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16822
16823         * TreeView.cs: Draw the focus rectangle outside the highlight, to
16824           make sure it's always visible. Fixes #76680.
16825
16826 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16827
16828         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
16829
16830 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
16831
16832         * PageSetupDialog.cs: Added.
16833         * PrintDialog.cs: Attributes.
16834         * PrintPreviewControl.cs: Updates.
16835         * PrintPreviewDialog.cs: Updates.
16836         
16837 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16838
16839         * Control.cs: Undid my selection check fix, since it's not needed
16840         * TextBoxBase.cs:
16841           - Now considering the presence of hscroll/vscroll when sizing
16842             vscroll/hscroll respectively. Fixed bug #77077
16843           - Added Left/Up/Down/Right to IsInputKey list to prevent
16844             ContainerControl from stealing them. This fixes what I broke
16845             with my last checkin.
16846
16847 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
16848
16849         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
16850           I finally understand how the property can be set without a setter :-)
16851
16852 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16853
16854         * Application.cs:
16855           - Switched RunLoop to use static Message.Create to create a 
16856             Message object
16857           - Added PreProcessMessage call in runloop for keyboard events; this
16858             is part of the fix for #77219, I overlooked this originally in the
16859             MSDN doc for PreProcessMessage
16860         * Control.cs:
16861           - Removed call to PreProcessMessage from handling of keyboard 
16862             messages; it's supposed to be done in the message pump
16863           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
16864             per MSDN documentation.
16865           - IsInputChar: All chars are input chars by default; removed the 
16866             parent calling chain, MS does not document that
16867           - PreProcessMessage: If IsInputChar is true, we want to return false
16868             to allow dispatching of the message
16869           - When selecting the next control, now also check that we're not
16870             selecting ourselves again and therefore return a false positive.
16871         * TextBoxBase.cs:
16872           - Tried to match return values for IsInputKey and ProcessDialogKey
16873             to what MS returns; moved processing of our special keys outside
16874             ProcessDialogKey since MS does not seem to return true on those.
16875           - Moved code that previously was in ProcessDialogKey into new private
16876             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
16877           - Reworked handling of WM_CHAR to not have to duplicate code from
16878             Control.cs anymore, instead we simply call down to base.
16879            
16880 2006-01-12  Jackson Harper  <jackson@ximian.com>
16881
16882         * ComboBox.cs: We always need to refresh the text area when
16883         EndUpdate is called. Fixes the combobox in the file dialog.
16884         * Control.cs: Don't create the creator_thread until the controls
16885         handle is created.  Also in InvokeRequired we check if the
16886         creator_thread is null. This gives the effect of InvokeRequired
16887         returning true if the controls handle is not created yet, and
16888         matches MS.
16889
16890 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16891
16892         * XplatUI.cs:
16893           - Added StartLoop() driver method. This is used to allow drivers to
16894             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
16895             loop for a particular thread
16896           - Added EndLoop() driver method. This is called once the message
16897             pump for the thread is shut down
16898           - Added SupportsTransparency method to allow the driver to indicate
16899             opacity support for windows
16900         * Form.cs:
16901           - Removed TODO attribute, completed AllowTransparency property
16902           - Added documented logic to Opacity
16903         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
16904           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
16905           versions of CompatibleTextRendering
16906         * X11Structs.cs: Added opacity atom to our atom enumeration
16907         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
16908           of a form might be set before it's reparented by the WM, and we need
16909           the opacity value without calling up to Form)
16910         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
16911           SupportsTransparency() driver methods
16912         * Application.cs: Now calling StartLoop and EndLoop driver methods
16913         * XplatUIX11.cs:
16914           - Added opacity atom registration
16915           - Added StartLoop()/EndLoop() methods. They're empty right now but
16916             will need to get implemented when we switch to a per-thread queue
16917           - Implemented SupportsTransparency() method
16918           - Implemented SetWindowTransparency() method
16919           - Added support for setting the opacity value when a window is
16920             reparented (since the opacity needs to be set on the WM frame)
16921         * XplatUIOSX.cs, XplatUIWin32.cs:
16922           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
16923
16924 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
16925
16926         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
16927
16928 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
16929
16930         * FileDialog.cs: Added ToolTip for MWFFileView
16931         * MimeIcon.cs: Rewrote GnomeHandler.
16932           - Get currently used gnome icon theme from
16933             ($HOME)/.gconf/%gconf-tree.xml
16934           - Make use of inherited icon themes
16935           - Support SVG icon themes like Tango via librsvg
16936
16937 2006-01-12  Miguel de Icaza  <miguel@novell.com>
16938
16939         Revert's Jackson's revert which broke 2.0 builds.   Fix both
16940         builds. 
16941         
16942         * Application.cs: Move the use_compatible_text_rendering outside
16943         the NET_2_0 define.  If we ever need to use the
16944         use_compatible_text_rendering on the individual controls they will
16945         access the variable from the common shared code paths.
16946
16947 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16948
16949         * XplatUI.cs:
16950           - Added more granular debug options
16951           - Added method to print both window text and id
16952           - Switched debug output to use new Window() debug method
16953           - Added IsEnabled() driver method
16954           - Added EnableWindow() driver method
16955         * Form.cs:
16956           - Removed end_modal; no longer needed, new loop handles termination
16957             via 'closing' variable
16958           - If form is modal, setting DialogResult will now initiate loop
16959             termination via 'closing' variable
16960           - Added support for is_enabled/WS_DISABLED to CreateParams
16961           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
16962             does all the work
16963           - Removed code that's now in RunLoop from ShowDialog()
16964           - Added various documented sanity checks to ShowDialog()
16965           - Added handling of WM_DESTROY message; we set 'closing' on getting
16966             the message to indicate the message pump to terminate
16967           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
16968             send by the Application.ExitThread method. (We send the message
16969             to destroy the window after all other events have been
16970             processed through the queue, instead of destroying the handle 
16971             directly)
16972           - Moved code from Close() method to WM_CLOSE handler; added logic
16973             to only send close-related events if the form is not displayed
16974             modal
16975         * Splitter.cs (..ctor): Fixed typo in resource name
16976         * Control.cs:
16977           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
16978             brush now
16979           - set_Cursor: Now only setting calling into XplatUI if the handle for
16980             the control is already created; this avoids implict handle creation
16981             or crashes if it's not created
16982           - set_Enabled: Now setting the enabled state via the new driver method
16983             instead of just tracking it
16984           - CreateParams: Added logic to set WS_DISABLED based on enabled state
16985           - CreateControl: Reordered event firing and method calls to more
16986             closely fire events in the order MS does. Now setting the
16987             enabled state in the driver when creating the control.
16988           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
16989             match MS order
16990         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
16991           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
16992         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
16993         * Hwnd.cs:
16994           - Added tracking of window enabled state (get_Enabled/set_Enabled)
16995           - Added EnabledHwnd property to easily allow a driver to find the
16996             handle of the first enabled window in the parent chain (this is
16997             used by drivers to pass up input events of disabled windows)
16998         * XplatUIDriver.cs: Added IsEnabled() method
16999         * Application.cs:
17000           - Removed crude and obsolete exiting tracking variable
17001           - Removed internal ModalRun(); replaced by RunLoop()
17002           - Implemented private CloseForms() method to allow closing all 
17003             windows owned by a particular (or all) threads
17004           - Exit() now properly closes all windows without forcing the message
17005             pump to quit
17006           - Removed obsolete InternalExit() method
17007           - Changed Run() methods to use new RunLoop() message pump
17008           - Implemented new RunLoop() method for both modal and non-modal forms
17009         * CommonDialog.cs:
17010           - get_CreateParams: Added setting of WS_DISABLED
17011           - Simplified ShowDialog(); now all the work is done in RunLoop(),
17012             invoked via Form.ShowDialog()
17013         * NativeWindow.cs: We don't remove the window from the collection when
17014           the handle is destroyed; there might still be messages for it in the
17015           queue (mainly the resulting WM_DESTROY); instead it will be removed
17016           when Control calls InvalidateHandle in the WM_DESTROY handler
17017         * XplatUIX11.cs:
17018           - CreateWindow: Added logic to handle the WS_DISABLED window style
17019           - EnableWindow: Implemented based on Hwnd.Enabled
17020           - GetMessage: Reset PostQuitState so the method can be called again
17021           - Implemented support for disabled windows (passing messages to the
17022             first enabled parent) in handling all input messages
17023           - Added optimizations for handling Expose events
17024           - Implemeted new driver method IsEnabled()
17025           - Now always resetting paint pending tracking vars when we start paint
17026           - Re-implemented UpdateWindow via just sending a WM_PAINT message
17027         * XplatUIOSX.cs: Added IsEnabled method stub
17028         * XplatUIWin32.cs: Implemented new IsEnabled() method
17029
17030 2006-01-11  Jackson Harper  <jackson@ximian.com>
17031
17032         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17033         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
17034         variables a little.
17035         * ColorDialog.cs: Clear out the old form before adding the new
17036         panel.  
17037
17038 2006-01-11  Jackson Harper  <jackson@ximian.com>
17039
17040         * X11Dnd.cs: Make sure to add all the text formats when adding
17041         strings to the data object.
17042         * TreeNodeCollection.cs: When adding to a sorted tree we need to
17043         do some redrawing too.  Also change the UpdateNode to an
17044         UpdateBelow so the newly added node gets painted.
17045         
17046 2006-01-11  Miguel de Icaza  <miguel@novell.com>
17047
17048         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17049         LinkLabel.cs, PropertyGrid.cs: Implement the
17050         UseCompatibleTextRendering property for 2.x
17051
17052         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
17053
17054 2006-01-11  Jackson Harper  <jackson@ximian.com>
17055
17056         * TreeView.cs: Use the property for setting the selected node so
17057         the correct events get raised.
17058         * TreeNode.cs: Update the tree when the fore/back colours of a
17059         node are set.
17060
17061 2006-01-10  Jackson Harper  <jackson@ximian.com>
17062
17063         * TreeView.cs: Allow setting SelectedNode to null.
17064
17065 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17066
17067         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
17068
17069 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17070
17071         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
17072
17073 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17074
17075         * PrintDialog.cs: Added attributes and set default property values.
17076
17077 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17078
17079         * PrintControllerWithStatusDialog.cs: 
17080         Added PrintControllerWithStatusDialog.
17081
17082 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17083
17084         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
17085         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
17086
17087 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17088
17089         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
17090
17091 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
17092
17093         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
17094         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
17095
17096 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17097
17098         * MimeIcon.cs: Added internal class SVGUtil.
17099
17100 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17101
17102         * FileDialog.cs: Don't crash if there are two files with the
17103           same name but different locations.
17104
17105 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
17106
17107         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
17108         dates across multiple month grids. Used to not highlight entire 
17109         month, but does now.
17110         
17111 2006-01-06  Jackson Harper  <jackson@ximian.com>
17112
17113         * MonthCalendar.cs: Removed DoEvents call to prevent a running
17114         message loop. Change timer intervals to numbers that seem more
17115         natural.
17116
17117 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
17118
17119         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
17120           object for location info since screen object is now implemented.
17121
17122 2006-01-05  Jackson Harper  <jackson@ximian.com>
17123
17124         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
17125         * AsyncMethodResult.cs: We no longer use a WeakReference for the
17126         AsyncMethodResult, this is because we ALWAYS want the
17127         ManualResetEvent to get set.
17128         * Control.cs: When disposing use an async invoke to call shutdown
17129         code, so that thigns don't block on the finalizer thread.  Also
17130         check if we even have a message loop before trying to send
17131         messages, if we don't then don't bother sending messages.
17132         - No more weak references for async methods
17133         * XplatUIDriver.cs: No more weak references for async methods.
17134
17135 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17136
17137         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
17138           returns two FontFamily with the same name
17139
17140 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17141
17142         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
17143           drawing disabled text. Instead using the ColorGrayText color
17144
17145 2006-01-04  Jackson Harper  <jackson@ximian.com>
17146
17147         * TreeNode.cs: redraw the node when its image index is changed.
17148
17149 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17150
17151         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
17152           time I checked there are no others like it.
17153
17154 2006-01-04  Jackson Harper  <jackson@ximian.com>
17155
17156         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
17157         this gives the behavoir I was looking for.
17158         * Control.cs: Special case Invoking EventHandlers, this matches MS
17159         and fixes part of bug #76326.
17160
17161 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17162
17163         * ThemeClearlooks.cs, FileDialog.cs:
17164           - Reflect the latest Theme class changes
17165           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
17166             with DateTime
17167             
17168 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17169
17170         * Theme.cs: Cache UI resource images and resize them if needed
17171
17172 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17173
17174         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
17175           is called. This fixes the crash in Nexxia when setting the font
17176           attributes in the chat. [However, RTF needs a look-over to make sure
17177           that all SelectionXXX methods handle the special case that selection
17178           is empty and therefore the change must be applied to all text starting
17179           at the cursor/selection start]
17180
17181 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
17182
17183         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17184           XplatUIOSX.cs: Added SendMessage and PostMessage methods
17185         * X11Keyboard.cs: Switched to new way of calling PostMessage
17186
17187 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17188
17189         * Theme.cs: Added theme interface for images to allow the theme to
17190           control what images are used for things like FileDialog, MessageBox
17191           icons, etc.
17192         * MessageBox.cs: Now uses the new Theme icon/image interfaces
17193
17194 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
17195
17196         * FileDialog.cs:
17197           - Removed some dead code
17198           - Opening a recently used file does work now
17199           - Small UI enhancements
17200           - Refactoring
17201
17202 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17203
17204         * FileDialog.cs: Forgot too add __MonoCS__
17205
17206 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17207
17208         * FileDialog.cs: We are able to read recently used files now let's
17209           go on and write them.
17210
17211 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
17212
17213         * FileDialog.cs: Breathe some life into "last open"/"recently used"
17214           button
17215         * MimeIcon.cs: Do a check for the top level media type also
17216
17217 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17218
17219         * ThemeClearlooks.cs:
17220           - Added CPDrawStringDisabled
17221           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
17222             some chars if the text doesn't fit into text_rect
17223           - DrawListViewItem: If View = View.LargeIcon center the image;
17224             rewrote the drawing of ListViewItem.Text if View = 
17225             View.LargeIcon
17226
17227 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17228
17229         * MimeIcon.cs: Use default KDE icon theme if there is no
17230           "48x48" directory for the current icon theme, fixes #77114
17231         * Mime.cs: Disable not working and actually not used code. 
17232         * ThemeWin32Classic.cs:
17233           - Replace "new SolidBrush" in GetControlBackBrush and
17234             GetControlForeBrush with ResPool.GetSolidBrush
17235           - Changed DrawListViewItem from private to protected virtual
17236         * FileDialog.cs:
17237           - Added form.MaximizeBox = true
17238           - Don't throw an exception if there is a broken symbolic link
17239
17240 2005-12-23  Jackson Harper  <jackson@ximian.com>
17241
17242         * TabControl.cs: Give the panels focus, keyboard navigation is
17243         fixed so this works correctly now.
17244         - We need these key events also.
17245         * ToolBar.cs: Remove some of the poor mans double buffering.
17246         
17247 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
17248
17249         * ComboBox.cs: The internal TextBox now returns the focus.
17250
17251 2005-12-23  Jackson Harper  <jackson@ximian.com>
17252
17253         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
17254
17255 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17256
17257         * Control.cs: Removed debug code
17258         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
17259           implicit children
17260
17261 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
17262
17263         * Control.cs: When creating the control, update the Z-order after
17264           all it's children are created, too. (Fixes nexxia not showing
17265           picturebox bug)
17266
17267 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17268
17269         * Control.cs: Do not update the anchoring distances if layout is
17270           suspended, instead do it once layout is resumed
17271
17272 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
17273
17274         * Control.cs: 
17275           - After many hours of debugging, for both Jackson and
17276             myself, it turns out that it helps to set the parent of a control
17277             if you want to actually see it onscreen. In the spirit of that
17278             discovery, we're now setting the parent of the control and
17279             it's children when the control's handle is created. This fix
17280             will make Lutz Roeder's Reflector run happily. 
17281           - now just creating the handle instead of the whole control when
17282             getting a graphics context for the control.
17283
17284 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17285
17286         * ScrollableControl.cs: When calculating the canvas, don't consider
17287           the scrollbar widths. Instead, predict if horizontal scrollbar
17288           will affect canvas when deciding on vertical display and vice versa.
17289
17290 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17291
17292         * RichTextBox.cs: Set default RTF font for documents that don't
17293           have a font table (Fixes #77076)
17294
17295 2005-12-22  Jackson Harper  <jackson@ximian.com>
17296
17297         * TextBoxBase.cs: It's difficult to do, but you can have an empty
17298         clipboard. This prevents a NullRef in that case.
17299         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
17300         clipboard. PRIMARY is for the currently selected text only. (We
17301         should implement PRIMARY at some point.
17302
17303 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17304
17305         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
17306           a Unicode function with a structure that was defined in Ansi way.
17307           This fixes #76942.
17308
17309 2005-12-21  Jackson Harper  <jackson@ximian.com>
17310
17311         * StatusBar.cs: Statusbar handles its fore/back colours on it's
17312         on. Because thats how it rolls. (and this avoids it using ambient
17313         colours).
17314         * ThemeWin32Classic.cs: Use the proper back color for filling.
17315         * Menu.cs: Use the system menu bar color for drawing menu
17316         bars. Using the window back color will bring ambient colours into
17317         the picture.
17318
17319 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
17320
17321         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
17322           Bitmaps were created and not disposed.
17323
17324 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17325
17326         * Control.cs (CreateControl): Don't do anything if the control is
17327           already created, otherwise we'd fire the OnCreated event more than
17328           once
17329
17330 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17331
17332         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
17333           will always match. Instead return -1. Fixes #76464.
17334
17335 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17336
17337         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
17338           neither the beginning nor the end of the line (Fixes bug #76479)
17339
17340 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17341
17342         * Control.cs:
17343           - ControlNativeWindow.ControlFromHandle(): Now handling situation
17344             where handle is invalid
17345           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
17346             instead of slower linear search
17347         * NativeWindow.cs: Don't remove the window from the hashtable until
17348           after the driver has destroyed it (since the driver might use
17349           Control.FromHandle to lookup the control object
17350         * Hwnd.cs: Added DestroyPending property to track if a window is 
17351           already destroyed as far as the driver is concerned and only hasn't
17352           yet notified the control
17353         * XplatUIX11.cs:
17354           - Activate(): Check if the window is still valid before using the 
17355             handle
17356           - Implemented DestroyChildWindow() method to mark child windows as
17357             destroyed when a window is destroyed. This prevents situations 
17358             where we might call an X method based on queued events for a
17359             window that already has been destroyed but we haven't yet pulled
17360             the destroy method from the queue.
17361           - Added a call to the new DestroyChildWindow() method to the drivers
17362             DestroyWindow code. Also now marking the destroyed window itself
17363             as pending
17364
17365 2005-12-20  Jackson Harper  <jackson@ximian.com>
17366
17367         * StatusBar.cs:
17368         * StatusBarPanel.cs: Don't calculate panel sizes on draw
17369         anymore. Just do them when needed, also track the rects of panels
17370         so that we can optimize refreshing more in the future.
17371
17372 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
17373
17374         * ColorDialog.cs: Fixed focus drawing in small color controls
17375
17376 2005-12-19  Jackson Harper  <jackson@ximian.com>
17377
17378         * InternalWindowManager.cs:
17379         * MdiWindowManager.cs: Cleanup some coordinate system changes so
17380         moving windows works properly.
17381
17382 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
17383
17384         * Control.cs: 
17385           - Removed call to InitLayout() from SetBoundsCore(); doc says
17386             it's only called when a control is added to a container
17387           - Split InitLayout logic, moved to separate UpdateDistances() method
17388             since we need to perform those calculations more often than just
17389             when adding the control to a container. (Needed to fix #77022)
17390           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
17391           - Reduced the OnBindingContextChanged events count, don't send them
17392             unless the control is created, we still aren't totally matching
17393             MS, but I can't quite figure out some of their rules
17394
17395 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17396
17397         * ThemeClearlooks.cs: Corrected distance between ProgressBar
17398           stripes
17399
17400 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17401
17402         * ThemeClearlooks.cs:
17403           - Updated ProgressBar drawing
17404           - Corrected drawing of ScrollBars and scroll buttons
17405           - Some temporary fixes for minor pixel artefacts
17406
17407 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
17408
17409         * Control.cs:
17410           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
17411             cause events to be sent in the same order as MS does.
17412           - Added ChangeParent() method to trigger various OnXXXChanged events
17413             that need to be fired when a parent changes (This is a reworking
17414             of the patch from r54254, with the X11 errors fixed)
17415           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
17416             since on MS we get OnLayoutChanged events when calling Clear()
17417           - Changed Enabled property to consider parent state as well, if a
17418             parent is not enabled, the control will not be either
17419           - Changed Parent property to simply call Controls.Add() since that
17420             now does all the work required, this way we avoid code duplication
17421           - Threw in a few OnBindingsContextChanged calls to try and match
17422             when MS sends them. We seem to send a few too many, though.
17423           - Added call to CreateControl when adding the control to a parent.
17424             We were never calling CreateControl. Still needs some work, in
17425             some places we treat HandleCreated and ControlCreated as equal, 
17426             which is wrong
17427           - Removed obsolete commented out code from UpdateZOrder()
17428
17429 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17430
17431         * ThemeClearlooks.cs: Updated TrackBar drawing.
17432
17433 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17434
17435         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
17436
17437 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17438
17439         * FileDialog.cs: Add the Help button and the open readonly
17440           checkbox only if needed
17441
17442 2005-12-16  Jackson Harper  <jackson@ximian.com>
17443
17444         * Control.cs: Make sure we have an active menu before trying to
17445         process commands on it. Prevents menu-less forms from crashing
17446         when Alt is pressed.
17447         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
17448         Dieter Bremes.
17449         * RichTextBox.cs: Expand statement to help out gmcs and fix the
17450         2.0 build.
17451
17452 2005-12-16  Jackson Harper  <jackson@ximian.com>
17453
17454         * InternalWindowManager.cs: Don't translate tool windows screen
17455         coordinates. This fixes windows 'bouncing' around when being moved.
17456
17457 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17458
17459         * TextBoxBase.cs:
17460           - MaxLength now treats 2^31-1 equal to unlimited length (this is
17461             not quite MS compatible, MS uses that number only for single line
17462             and 2^32-1 for multi-line, but I figure it won't hurt keeping
17463             the limit at 2GB)
17464           - Now enforcing the MaxLength limit when entering characters
17465           - Added argument to internal Paste() method to track if it's called
17466             from programatically or via keyboard, since keyboard driven pastes
17467             need to enforce max-length
17468           - Added logic to Paste to only paste as many chars as MaxLength 
17469             allows
17470         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
17471         * TextControl.cs:
17472           - Added Length property to return number of characters in document
17473           - Added private CharCount property which only tracks actual chars
17474             in the document (no linefeeds) and fires event when CharCount
17475             changes
17476           - Added tracking of character count to all methods that alter it
17477           - Added LengthChanged event to allow applications to subscribe
17478             to any changes to the document
17479
17480 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17481
17482         * TextBox.cs: 
17483           - Removed local password_char field (moved to TextBoxBase)
17484           - Now setting the document's password var when password is
17485             set
17486         * TextBoxBase.cs:
17487           - Added password_char field (needed here so MultiLine can
17488             access it)
17489           - Added logic to MultiLine property setter to set the document's
17490             variable when password display is allowed
17491           - Removed debug code and made some debug code conditional
17492         * TextControl.cs:
17493           - Added RecalculatePasswordLine() method to handle special password
17494             char only lines
17495           - Added PasswordChar property, also added related tracking vars
17496           - Draw() method now uses local text var for grabbing text to draw,
17497             this var is set to line.text unless we're doing password display,
17498             then it is set to the pre-generated all-password-chars line
17499           - Added calling RecalculatePasswordLine() method for password lines
17500
17501 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17502
17503         * Hwnd.cs: 
17504           - Added Reparented property to allow tracking of Window Manager
17505             reparenting actions (which affect X/Y calculations of toplevel 
17506             windows)
17507           - Made ToString() print window handles in hex
17508         * XplatUIX11.cs:
17509           - AddConfigureNotify(): Now uses reparented state off Hwnd to
17510             determine if X/Y needs offsetting
17511           - AddConfigureNotify(): Fixed offset calculations
17512           - Now adds ReparentNotify messages into the queue
17513           - Now processes ReparentNotify messages and causes a 
17514             WM_WINDOWPOSCHANGED message to be sent upstream if a window
17515             is reparented (as most likely it's X/Y coordinates are changed
17516             due to that)
17517
17518 2005-12-14  Jackson Harper  <jackson@ximian.com>
17519
17520         * XplatUIX11.cs: Tool windows still need to respek focus.
17521
17522 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17523
17524         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
17525           have a working release
17526
17527 2005-12-13  Jackson Harper  <jackson@ximian.com>
17528
17529         * Form.cs: Update styles after setting the border style regardless
17530         of whether or not the window is using a window manager.
17531
17532 2005-12-13  Jackson Harper  <jackson@ximian.com>
17533
17534         * Form.cs: We now hook into an internal window manager instead of just an
17535         MDI subsystem, this is so we can have properly behaving tool windows.
17536         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
17537         * InternalWindowManager.cs: New internal class that acts as a
17538         window manager for tool windows and as a base for mdi windows.
17539         * MdiWindowManager.cs: New class that acts as a window manager for
17540         mdi windows.
17541
17542 2005-12-12  Jackson Harper  <jackson@ximian.com>
17543
17544         * Control.cs: Updates so we match behavoir for for implicit
17545         controls. Fixes explosions in MDI.
17546
17547 2005-12-12  Jackson Harper  <jackson@ximian.com>
17548
17549         * Control.cs: Implement Invalidate (Region).
17550
17551 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
17552
17553         * Control.cs: 
17554           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
17555             the same events as MS does. MS fires events for each property 
17556             except, for unknown reasons, Cursor, when the control is reparented. 
17557             I can't seem to totally match add/remove since MS also fires some 
17558             VisibleChanged events, which makes no sense. Consolidated the
17559             parenting code into a separate method so it can be called from
17560             both Add and Remove. set_Parent no longer needs any special logic
17561             as it calls the parent's add method which implicitly fires
17562             all events
17563           - Removed some obsolete code and debug output
17564           - Enabled state is inherited from parents, if this is enabled
17565
17566 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
17567
17568         * Form.cs: Removed commented out code
17569
17570 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
17571
17572         * Control.cs:
17573           - Added internal version of Invoke, with additional argument 
17574             indicating if we're calling it from a Dispose() handler. That
17575             way we can avoid BeginInvoke throwing an exception if we're
17576             calling for an already destroyed window.
17577           - Added a dispose argument to BeginInvokeInternal, and made the
17578             check if a valid window handle chain exists conditional on
17579             it not being a dispose call
17580           - Removed code in DestroyHandle to destroy our children. Since we
17581             now handle the WM_DESTROY message we will catch all our children
17582             being destroyed.
17583           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
17584         * Form.cs:
17585           - Added a field to track the application context of the form.
17586           - No need to set closing variable as response to WM_CLOSE, instead
17587             we destroy the window. We also call PostQuitMessage if the form
17588             has an application context (which makes it the main app form,
17589             which, when closed terminates the app)
17590         * XplatUI.cs:
17591           - Dropped Exit() method, it's naming was confusing
17592           - Added PostQuitMessage() which causes GetMessage to return false
17593             once the message queue is empty
17594         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
17595           PostQuitMessage()
17596         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
17597           no longer a valid XplatUI method, but left it in since it's used
17598           internally. Added empty PostQuitMessage() method.
17599         * MenuAPI.cs: Replaced call to Exit() with call to
17600           PostQuitMessage, even though this is probably no longer needed.
17601         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
17602         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
17603         * Application.cs:
17604           - Replaced call to XplatUI.Exit() with PostQuitMessage()
17605           - Removed old debug code that would call XplatUI for exception
17606             display, enabled standard exception handling (Still not enabled
17607             though, until NativeWindow's ExternalExceptionHandler define
17608             is removed
17609         * NativeWindow.cs:
17610           - Added internal method to allow control to update NativeWindow
17611             after a window has been destroyed
17612           - Added handling of already destroyed windows when calling i
17613             DestroyWindow
17614           - Added removal of handle from list on ReleaseHandle
17615         * XplatUIX11.cs:
17616           - Dropped GetMessageResult var and related code
17617           - Added PostQuitState to field to track if PostQuitMessage has been
17618             called
17619           - Dropped Exit() method
17620           - Added PostQuitMessage() method
17621           - GetMessage now will return false if PostQuitState is set and no
17622             more messages are in the queue.
17623           - Expose handler will no longer generate WM_PAINT messages if we are
17624             in PostQuitState since it's very likely any windows have already
17625             been destroyed, and since Hwnd won't get updated until we have
17626             processed the DestroyNotify we'd be causing X errors.
17627         
17628 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17629
17630         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
17631           Thanks to Mike for pointing out the err of my ways.
17632
17633 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17634
17635         * Control.cs(PreProcessMessage): Moved menu handling back, but
17636           after all other key handling, to match MS (who handles Menu in
17637           DefWndProc)
17638         * Menu.cs (WndProc): Removed my brainfart
17639
17640 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17641
17642         * Control.cs(PreProcessMessage): Removed special menu handling 
17643         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
17644
17645 2005-12-07  Mike Kestner  <mkestner@novell.com>
17646
17647         * Control.cs : special case SYSKEYUP so that we can adjust keynav
17648         state according in tracker.
17649         * Menu.cs : promote tracker field to base class and provide a tracker
17650         lookup capability.  Add/Remove shortcuts dynamically if the top menu
17651         has a tracker. Unparent items that are removed from the collection.
17652         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
17653         * Theme*.cs: add always_show_hotkeys field to support configurability
17654         of mnemonic display.  win32 doesn't show mnemonics until Alt is
17655         pressed.
17656
17657 2005-12-07  Jackson Harper  <jackson@ximian.com>
17658
17659         * MdiChildContext.cs: Use Control.ResetCursor.
17660         * Control.cs: ResetCursor needs to set the property so that the
17661         correct XplatUI call gets made.
17662
17663 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17664
17665         * Control.cs: More fixes to make our key events match MS. We
17666           were not setting the modifier state on KeyData, and we were
17667           not generating any events when Alt was pressed with a key
17668           since handling of WM_SYSxxx was missing for the OnKey methods.
17669
17670 2005-12-07  Jackson Harper  <jackson@ximian.com>
17671
17672         * MdiChildContext.cs: reenable the sizing code.
17673         - When the mouse leaves a window reset its cursor.
17674
17675 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17676
17677         * ThemeClearlooks.cs: Reflect latest Hwnd changes
17678
17679 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17680
17681         * Hwnd.cs: Now using the theme 3d bordersize to calculate
17682           widths of Fixed3D borders
17683
17684 2005-12-07  Jackson Harper  <jackson@ximian.com>
17685
17686         * MdiClient.cs: Fix warnings. Earn Mike's love.
17687
17688 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17689
17690         * ThemeClearlooks.cs:
17691           - Adjusted mouse over button color
17692           - Added first parts of CheckBox drawing
17693           - Added correct color for selected text background
17694           - Fixed ComboBox drawing
17695           - Added CPDrawBorder3D and CPDrawBorder
17696
17697 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17698
17699         * XplatUIX11.cs: Added call to XBell for AudibleAlert
17700
17701 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
17702
17703         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17704           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
17705           alert users via sound. We could add an enum arg with different
17706           types of alerts in the future
17707
17708 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17709
17710         * Control.cs: Fix behaviour problems pointed out by Mike
17711
17712 2005-12-05  Mike Kestner  <mkestner@novell.com>
17713
17714         * StatusBarPanel.cs: add Invalidate method and hook it into all the
17715         prop setters.  Calls parent.Refresh for now, but could be maybe be
17716         optimized with an internal method on StatusBar at some point.
17717         [Fixes #76513]
17718
17719 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
17720
17721         * RichTextBox.cs: Implemented get_SelectionColor
17722
17723 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
17724
17725         * ThemeClearlooks.cs:
17726           - Removed dead code
17727           - Draw black button border only if button is Form.AcceptButton
17728           - Draw correct button color for pressed RadioButton if the mouse 
17729             has entered the button
17730           - Updated ProgressBar drawing!
17731           - Updated CPDrawSizeGrip drawing
17732           - Updated StatusBarPanel drawing
17733
17734 2005-12-05  Mike Kestner  <mkestner@novell.com>
17735
17736         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
17737         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
17738
17739 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
17740
17741         * ThemeClearlooks.cs: Initial check-in, activate with
17742           export MONO_THEME=clearlooks
17743         * ThemeEngine.cs: Added ThemeClearlooks
17744
17745 2005-12-03  Mike Kestner  <mkestner@novell.com>
17746
17747         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
17748         [Fixes #76897]
17749
17750 2005-12-02  Jackson Harper  <jackson@ximian.com>
17751
17752         * Form.cs: If the child form has no menu the default main menu is
17753         used as the active menu.
17754
17755 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
17756
17757         * ListBox.cs: Check if any items exist before trying to resolve 
17758           coordinates into items
17759
17760 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17761
17762         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
17763           as the second color for the background hatch
17764
17765 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17766
17767         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
17768         * RichTextBox.cs: FormatText position arguments are 1-based, now making
17769           sure that what we pass to FormatText is always 1-based. Fixes #76885
17770
17771 2005-11-29  Miguel de Icaza  <miguel@novell.com>
17772
17773         * NumericUpDown.cs (EndInit): When we are done initializing,
17774         reflect any updates on the UI.
17775
17776 2005-12-02  Jackson Harper  <jackson@ximian.com>
17777
17778         * ImplicitHScrollBar.cs:
17779         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
17780         their container controls.
17781         * TreeView.cs: Use the new implicit scrollbars.
17782
17783 2005-12-02  Jackson Harper  <jackson@ximian.com>
17784
17785         * TreeView.cs: Make top_node internal so the TreeNodeCollections
17786         can play with it.
17787         * TreeNodeCollection.cs: If we remove the topnode we need to
17788         update topnode to the next node in line.
17789         - When clearing nodes go through the same process as removing
17790         them, so they get depareneted and checked if they are top node.
17791
17792 2005-12-01  Jackson Harper  <jackson@ximian.com>
17793
17794         * TreeView.cs: When imagelists are used the image area is
17795         selectable as well as the text.
17796         - If there are no selected nodes select the first one.
17797         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
17798         so don't do it more then we need to.
17799
17800 2005-12-01  Jackson Harper  <jackson@ximian.com>
17801
17802         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
17803         that arrows can be scaled.
17804
17805 2005-12-01  Jackson Harper  <jackson@ximian.com>
17806
17807         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
17808         fail. Patch by Dieter Bremes
17809
17810 2005-11-30  Jackson Harper  <jackson@ximian.com>
17811
17812         * Form.cs: Property is 2.0 only
17813         * PrintDialog.cs: Signature fix.
17814
17815 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17816
17817         * TextControl.cs: 
17818           - No longer artificially moves text 2 pixels down (now that we have
17819             borders this is no longer needed)
17820           - Added calcs for left, hanging and right indent
17821
17822 2005-11-23  Mike Kestner  <mkestner@novell.com>
17823
17824         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
17825
17826 2005-11-30  Jackson Harper  <jackson@ximian.com>
17827
17828         * MdiChildContext.cs: Set the cloned menus forms, as these don't
17829         get cloned as part of CloneMenu ().
17830         * Menu.cs: Make sure the parent of the items get set correctly
17831         when they are added.  And the owners are notified of the changes.
17832         * Form.cs: Create an ActiveMenu property, so that when MDI is used
17833         we can change the menu being displayed/handled by the form without
17834         changing the menu assosciated with the form.
17835         - Don't let Mdi children draw/handle menus.
17836         
17837 2005-11-30  Jackson Harper  <jackson@ximian.com>
17838
17839         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
17840         a MenuChanged event. Just to make the API a little more
17841         consistent.
17842         * MainMenu.cs:
17843         * MenuItem.cs: Use the new OnMenuChanged
17844         * MdiChildContext.cs: Handle menu merging.
17845         * Form.cs: Implement MergedMenu.
17846         
17847 2005-11-30  Jackson Harper  <jackson@ximian.com>
17848
17849         * Menu.cs: We were misusing Add. Add goes behind the specified
17850         index according to the docs, and does not replace the specified
17851         index. So I added an Insert method.
17852
17853 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17854
17855         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
17856           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
17857           is for Jackson
17858         * RichTextBox.cs: Added calls to base for DnD events
17859
17860 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
17861
17862         * TextControl.cs:
17863           - Fixed drag-selection related crash; style fixes
17864           - Implemented undo class
17865             o Implemented method to capture document state for specified
17866               range in document tree
17867             o Implemented method to restore captured document state
17868             o Implemented cursor tracking
17869             o Implemented basic undo stack
17870           - Added undo cursor tracking to methods altering cursor location
17871           - Added undo tracking to selection deletion (still missing
17872             other text-altering hookups)
17873         * RichTextBox.cs:
17874           - Added SelectionLength property
17875           - Implemented CanPaste()
17876           - Implemented Paste()
17877           - Added missing protected methods
17878           - Fixed RTF->Document conversion; now uses font index 0 and color 
17879             index 0 as the default font for the parsed text
17880           - Fixed RTF<->Document font size translation
17881           - Fixed RTF generation, now properly handles cross-tag boundaries
17882             for single line selection
17883           - No longer always appends blank line to generated RTF
17884           - Removed TODOs
17885           - Added missing attributes
17886           - Hooked up undo-related methods
17887         * TextBoxBase.cs:
17888           - Implemented Copy()
17889           - Implemented Paste()
17890           - Implemented Cut()
17891           - Fixed caret mis-behaviour on backspace across line-boundaries
17892
17893 2005-11-29  Jackson Harper  <jackson@ximian.com>
17894
17895         * MdiClient.cs: Add a method for activating mdi children. Very
17896         basic right now. I imagine someday it might need more girth.
17897         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
17898         children windows names are added to the menu item.
17899         * ThemeWin32Classic.cs: Draw the arrow if the item is an
17900         mdilist. This happens regardless of whether or not there are any
17901         mdi windows to see in the list, and according to my tests happens
17902         before the items are even added. Also happens if there isn't even
17903         an mdi client to get windows from.
17904
17905 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
17906
17907         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
17908         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
17909
17910 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
17911
17912         * DataGridTableStyle.cs:
17913           - Create always the styles for the missing columns even if they are
17914             provided by the user (not default table style)
17915         * DataGrid.cs:
17916           - Fixes bug 76770
17917           - Fixes SetDataBinding (always re-attach source)
17918           - Fixes SetNewDataSource (only clear styles if they are not for 
17919             this source)
17920          -  Expands OnTableStylesCollectionChanged to handle style refresh 
17921             and remove properly
17922
17923 2005-11-29  Jackson Harper  <jackson@ximian.com>
17924
17925         * FileDialog.cs: Implement missing bits, remove some dead
17926         code.
17927         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
17928         creation of the panel so that the options set on the dialog are
17929         seen when the panel is created.
17930         * TreeView.cs: raise a click when items are clicked.
17931         
17932 2005-11-29  Jackson Harper  <jackson@ximian.com>
17933
17934         * MdiClient.cs: Pass some signature methods through to base.
17935
17936 2005-11-28  Jackson Harper  <jackson@ximian.com>
17937
17938         * ListView.cs: Raise the click event when items are clicked.
17939
17940 2005-11-28  Jackson Harper  <jackson@ximian.com>
17941
17942         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
17943         a nullref.
17944
17945 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
17946
17947         * ThemeNice.cs: - Removed 1 pixel bitmaps
17948           - Use SmoothingMode.AntiAlias where it makes sense
17949             (ScrollButton arrow for example)
17950           - Enhanced Button focus drawing
17951           - Fixed ComboBox drawing (no artefacts anymore, focus
17952             rectangle is back again, reduced size of ComboButton, etc.)
17953           - Fixed RadioButton focus drawing for Appearence.Button
17954           - Slight ScrollButton redesign
17955           - Some LinearGradientBrush size fixes
17956           - GroupBoxes have now rounded edges
17957           - Fixed StatusBar drawing
17958
17959 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
17960
17961         * ThemeNice.cs: - Remove dead code
17962           - use correct background colors for menus, etc.
17963           - Fake pixel drawing with 1 pixel bitmaps
17964
17965 2005-11-24  Jackson Harper  <jackson@ximian.com>
17966
17967         * MdiClient.cs: Size the scrollbars when resizing the window.
17968         - Resize the maximized windows when the client is resized
17969         * Form.cs: Make the child context available
17970         
17971 2005-11-23  Jackson Harper  <jackson@ximian.com>
17972
17973         * MdiChildContext.cs: Don't size windows if they are maximized.
17974
17975 2005-11-23  Mike Kestner  <mkestner@novell.com>
17976
17977         * ContextMenu.cs: use MenuTracker.
17978         * Control.cs: remove menu handle usage.
17979         * Form.cs: remove menu handle usage.
17980         * Hwnd.cs: remove menu handle usage.
17981         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
17982         motion and clicks to the new Tracker handlers.
17983         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
17984         and handle usage.
17985         * MenuAPI.cs: refactored to combine popup and menubar event handling.
17986         Killed the MENU and MENUITEM data types and associated collections
17987         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
17988         MenuTracker class that exposes the leftovers from the old MenuAPI
17989         static methods. Restructured Capture handling so that only one grab is
17990         done for the entire menu hierarchy instead of handing off grabs to
17991         submenus. Tracker now has an invisible control to Capture when active.
17992         * MenuItem.cs: add sizing accessors, kill Create
17993         and handle usage.
17994         * Theme.cs: remove menu handle and MENU(ITEM) usage.
17995         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
17996         MENU(ITEM). remove menu handle usage, use Menu directly.
17997         * XplatUIDriver.cs: remove menu handle usage.
17998         * XplatUIOSX.cs: remove menu handle usage.
17999         * XplatUIWin32.cs: remove menu handle usage.
18000         * XplatUIX11.cs: remove menu handle usage.
18001
18002 2005-11-22  Jackson Harper  <jackson@ximian.com>
18003
18004         * Hwnd.cs: Don't compute the menu size for
18005         DefaultClientRectangle.
18006         - Reenable menu sizes being computed for GetClienRectangle.
18007         * Form.cs: Remove comment of trechery
18008         
18009 2005-11-22  Jackson Harper  <jackson@ximian.com>
18010
18011         * Hwnd.cs: The adjustments for the menu bar are made when it is
18012         attached to the form.
18013
18014 2005-11-19  Jackson Harper  <jackson@ximian.com>
18015
18016         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
18017         (just like on windows).
18018
18019 2005-11-19  Jackson Harper  <jackson@ximian.com>
18020
18021         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
18022         use real buttons anymore because they are in non client area. The
18023         one TODO here is that I need to somehow invalidate a section of
18024         the non client area.
18025
18026 2005-11-18  Jackson Harper  <jackson@ximian.com>
18027
18028         * Control.cs: Put the enum check back in now that MDI doesnt have
18029         to use this to set border styles.
18030         * Form.cs: Only set mdi child windows borders if the handle has
18031         been created.
18032         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
18033         this directly on to the driver.
18034         - Get the move start position before adjusting for the titlebar
18035         height, this fixes the windows "skipping" when they are first
18036         moved.
18037
18038 2005-11-18  Jackson Harper  <jackson@ximian.com>
18039
18040         * XplatUIX11.cs: Just compute the mdi borders separately as they
18041         don't totally match up with normal form borders.
18042
18043 2005-11-18  Jackson Harper  <jackson@ximian.com>
18044
18045         * Control.cs: Set WS_ styles for borders, so that the driver does
18046         not have to retrieve the control instance to figure out what kind
18047         of borders it should have.
18048         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
18049         driver can know its an mdi child easily.
18050         * XplatUIX11.cs: Get the border styles and whether the window is
18051         MDI from the Styles and ExStyles params instead of having to get a
18052         control. This prevents a chicken and egg problem.       
18053
18054 2005-11-18  Jackson Harper  <jackson@ximian.com>
18055
18056         * MdiClient.cs: Fix typo so scrollbars show up correctly.
18057
18058 2005-11-18  Jackson Harper  <jackson@ximian.com>
18059
18060         * MdiClient.cs: Calculate when to add and remove scrollbars
18061         correctly.
18062         * MdiChildContext.cs: Adjust the y position to take the titlebar
18063         into account.
18064         - No height for FormBorderStyle.None
18065
18066 2005-11-18  Jackson Harper  <jackson@ximian.com>
18067
18068         * Control.cs: Allow non enum values to be used for
18069         InternalBorderStyle.  MDI does this to set a special border style.
18070         - New utility methods for converting points to/from client coords
18071         - Add the newly created control to the Controls collection before
18072         updating its style. This way UpdateStyle can walk the control
18073         heirarchy to find the control if needed.
18074         so I don't need to create a new Point object all the time.
18075         * Form.cs: Let MDI windows handle their border styles.
18076         - Set styles on MDI windows so the correct title style is derived.
18077         * MdiChildContext.cs: Move all the painting and window handling
18078         into the non client area.
18079         - Use correct sizing and put correct buttons on frames based on
18080         the FormBorderStyle.
18081         - Notify the mdi client about scrolling
18082         - Need to handle the buttons ourselves now, because they are all
18083         in non client areas and we can't add controls there.
18084         * MdiClient.cs: Halfway to scrolling, this implementation is
18085         somewhat broken though, we need to check to make sure other
18086         windows aren't causing scrolling before removing the bars. Also
18087         the bars need to be drawn on top, maybe I can switch implicit
18088         controls to be on top.
18089         * Hwnd.cs: caption_height and tool_caption_height are now
18090         properties of an hwnd, this way they can be set by the driver
18091         based on the type of window they are.  In X11 the window manager
18092         handles the decorations so caption_height is zero unless its an
18093         MDI window.
18094         - Add 3 pixel borders for MDI windows (0xFFFF).
18095         - Get rid of some code duplication, have DefaultClientRectanle
18096         just call GetClientRectangle.
18097         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
18098         Hwnd now.
18099         - Set border styles differently for mdi windows.
18100         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
18101         Hwnd now.
18102         
18103 2005-11-15  Mike Kestner  <mkestner@novell.com>
18104
18105         * Menu.cs: when adding an item to the collection, if item is already 
18106         parented, remove it from the parent.
18107
18108 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
18109
18110         * X11DesktopColors.cs: Added KDE support
18111
18112 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
18113
18114         * XplatUIWin32.cs: 
18115           - Clipboard methods now can translate Rtf format
18116           - No longer removes clipboard contents whenever a new format is added
18117             to allow placing multiple formats on the clipboard
18118         * Clipboard.cs: Clipboard now supports getting a IDataObject and
18119           will place all formats contained in it onto the clipboard. Also
18120           now cleans the clipboard before placing a new object onto it
18121         * RichTextBox.cs:
18122           - Implemented set_Rtf
18123           - Implemented set_SelectedRtf
18124           - Created InsertRTFFromStream() method to allow single code base
18125             for all properties and methods that insert RTF into document
18126           - Removed debug output
18127         * TextControl.cs:
18128           - Fixed Delete(int) to fix up line numbers
18129           - Fixed ReplaceSelection to combine start and end line
18130           - Fixed serious DeleteChars bug that would leave the document tree
18131             broken
18132           - Improved DumpTree with several logic checks to detect broken
18133             document trees
18134           - Removed debug lines
18135           - Fixed Caret.WordForward/WordBack moving code, now always also 
18136             updates caret.tag (fixes crash when word-selecting across tag
18137             boundaries via keyboard)
18138           - Added Insert() method for inserting multiline text into documents
18139           - Fixed DeleteChars() calculation errors that would cause a broken
18140             tag chain with multiple tag lines
18141           - DeleteChars() no longer crashes on multi-tag lines if not all tags
18142           - Split() no longer moves caret if split is at caret location
18143           - ReplaceSelection() now updates the cursor and re-displays it
18144           - ReplaceSelection() now uses new Insert() method to avoid code
18145             duplication
18146           - FormatText() can now handle formatting partial lines
18147         * TextBoxBase.cs:
18148           - Append now uses new TextControl.Insert() method (this avoids 
18149             duplicate code)
18150           - Implemented Ctrl-X (Cut) (
18151           - Implemented Ctrl-C (Copy)
18152           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
18153             regeneration when pasting text; roundtripping Copy&Paste within
18154             edit control still fails due to some calculation bugs in GenerateRTF)
18155           - The Delete key will now remove the current selection if it is visible
18156         * TextBox.cs: Removed debug lines
18157         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
18158           driver to be initialized and can't therefore be done via a static ctor)
18159
18160 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
18161
18162         * TextControl.cs: Added backend code for finding char arrays and strings
18163         * TextBoxBase.cs:
18164           - Added mouse wheel scroll support
18165           - Added support for VScroll and HScroll events
18166         * RichTextBox.cs:
18167           - Implemented all seven Find() variants
18168           - Implemented GetCharFromPosition()
18169           - Implemented GetCharIndexFromPosition()
18170           - Implemented GetLineFromIndex()
18171           - Implemented GetPositionFromCharIndex();
18172           - Implemented SaveFile for PlainText and UnicodeText
18173           - Fixed set_Font, now setting a new font applies that font to
18174             the whole document
18175           - Implemented generic Document to RTF converter
18176           - Implemented SaveFile for RichText format (still missing unicode
18177             conversion for non-ansi chars)
18178           - Implemented get_Rtf
18179           - Implemented get_SelectedRtf
18180
18181 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
18182
18183         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
18184           to allow any captures to be released before triggering OnClick. This
18185           way a click handler may capture the mouse without interference.
18186         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
18187           This way we send them even though X may not allow a grab (if the window
18188           isn't visible, for example)
18189
18190 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
18191
18192         * DataGridViewRowEventArgs.cs: DataGridView implementation
18193         * DataGridViewElement.cs: DataGridView implementation
18194         * DataGridViewComboBoxCell.cs: DataGridView implementation
18195         * DataGridViewDataErrorContexts.cs: DataGridView implementation
18196         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
18197         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
18198         * ImageLayout.cs: DataGridView implementation
18199         * DataGridViewComboBoxColumn.cs: DataGridView implementation
18200         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
18201         * DataGridViewSelectionMode.cs: DataGridView implementation
18202         * IDataGridViewEditingControl.cs: DataGridView implementation
18203         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
18204         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
18205         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
18206         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
18207         * DataGridViewColumnSortMode.cs: DataGridView implementation
18208         * DataGridView.cs: DataGridView implementation
18209         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
18210         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
18211         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
18212         * Padding.cs: DataGridView implementation
18213         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
18214         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
18215         * DataGridViewRowEventHandler.cs: DataGridView implementation
18216         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
18217         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
18218         * DataGridViewButtonCell.cs: DataGridView implementation
18219         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
18220         * DataGridViewEditMode.cs: DataGridView implementation
18221         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
18222         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
18223         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
18224         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
18225         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
18226         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
18227         * DataGridViewCellEventHandler.cs: DataGridView implementation
18228         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
18229         * DataGridViewCellStyleConverter.cs: DataGridView implementation
18230         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
18231         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
18232         * DataGridViewColumnEventArgs.cs: DataGridView implementation
18233         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
18234         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
18235         * QuestionEventArgs.cs: DataGridView implementation
18236         * IDataGridViewEditingCell.cs: DataGridView implementation
18237         * DataGridViewTriState.cs: DataGridView implementation
18238         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
18239         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
18240         * DataGridViewColumnCollection.cs: DataGridView implementation
18241         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
18242         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
18243         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
18244         * DataGridViewColumn.cs: DataGridView implementation
18245         * DataGridViewCellBorderStyle.cs: DataGridView implementation
18246         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
18247         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
18248         * DataGridViewRow.cs: DataGridView implementation
18249         * DataGridViewImageCellLayout.cs: DataGridView implementation
18250         * DataGridViewImageCell.cs: DataGridView implementation
18251         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
18252         * DataGridViewCheckBoxCell.cs: DataGridView implementation
18253         * DataGridViewHeaderCell.cs: DataGridView implementation
18254         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
18255         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
18256         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
18257         * DataGridViewTextBoxColumn.cs: DataGridView implementation
18258         * QuestionEventHandler.cs: DataGridView implementation
18259         * DataGridViewCellStyleScopes.cs: DataGridView implementation
18260         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
18261         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
18262         * DataGridViewCell.cs: DataGridView implementation
18263         * DataGridViewCellEventArgs.cs: DataGridView implementation
18264         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
18265         * DataGridViewCellStyle.cs: DataGridView implementation
18266         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
18267         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
18268         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
18269         * TextFormatFlags.cs: DataGridView implementation
18270         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
18271         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
18272         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
18273         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
18274         * DataGridViewButtonColumn.cs: DataGridView implementation
18275         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
18276         * HandledMouseEventArgs.cs: DataGridView implementation
18277         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
18278         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
18279         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
18280         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
18281         * DataGridViewRowCollection.cs: DataGridView implementation
18282         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
18283         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
18284         * DataGridViewHitTestType.cs: DataGridView implementation
18285         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
18286         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
18287         * DataGridViewColumnEventHandler.cs: DataGridView implementation
18288         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
18289         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
18290         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
18291         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
18292         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
18293         * DataGridViewContentAlignment.cs: DataGridView implementation
18294         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
18295         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
18296         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
18297         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
18298         * DataGridViewPaintParts.cs: DataGridView implementation
18299         * DataGridViewCellCollection.cs: DataGridView implementation
18300         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
18301         * DataGridViewImageColumn.cs: DataGridView implementation
18302         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
18303         * DataGridViewElementStates.cs: DataGridView implementation
18304         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
18305         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
18306         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
18307         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
18308         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
18309         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
18310         * DataGridViewRowHeaderCell.cs: DataGridView implementation
18311         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
18312         * DataGridViewTextBoxCell.cs: DataGridView implementation
18313         * DataGridViewBand.cs: DataGridView implementation
18314         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
18315         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
18316         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
18317         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
18318         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
18319         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
18320         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
18321         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
18322         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
18323         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
18324         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
18325
18326 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
18327
18328         * ThemeWin32Classic.cs: 
18329           - Draw the outside focus rectangle around buttons
18330           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
18331             doesn't use end caps for every dash of a line anymore. This
18332             workaround ignores the forecolor.
18333
18334 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
18335
18336         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
18337           endian safe.
18338
18339 2005-11-07  Jackson Harper  <jackson@ximian.com>
18340
18341         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
18342
18343 2005-11-07  Jackson Harper  <jackson@ximian.com>
18344
18345         * ScrollableControl.cs: Calculate the maximum and change vars
18346         (more) correctly so that scrollbars appear as a sensible size.
18347
18348 2005-11-04  Jackson Harper  <jackson@ximian.com>
18349
18350         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
18351         collection.
18352         * TreeView.cs: When the tree is sorted null out the top_node so
18353         that it is recalculated.
18354         - Use dotted lines instead of dashed lines to match MS better.
18355
18356 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
18357
18358         * ListView.cs: 
18359           - Implements key search for items. Useful when browsing files with FileDialog
18360           - When changing view mode or when clear the items reset scrollbar positions
18361
18362 2005-11-04  Jackson Harper  <jackson@ximian.com>
18363
18364         * CurrencyManager.cs: Implement the MetaDataChanged event, the
18365         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
18366         as to what the method may do as there is no real way of creating a
18367         derived CurrencyManager and calling the method. 
18368
18369 2005-11-03  Jackson Harper  <jackson@ximian.com>
18370
18371         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
18372         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
18373         method which seems to just be used internally to refresh the tabs.
18374
18375 2005-11-03  Jackson Harper  <jackson@ximian.com>
18376
18377         * TabControl.cs: Implement the remove method. Fix some broken
18378         comments.
18379
18380 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18381
18382         * DateTimePicker.cs:
18383           - Added missing DateTimePickerAccessibleObject class
18384           - Added missing events
18385           - Added OnFontChanged method
18386         * Form.cs: Added missing attributes
18387         * TreeView.cs: Added missing attributes
18388
18389 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
18390
18391         * GridItemCollection.cs: Fix signatures
18392
18393 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18394
18395         * XplatUI.cs: Updated build rev/date
18396         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
18397           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
18398         * Application.cs: Trigger context-specific ExitThread events
18399
18400 2005-11-03  Jackson Harper  <jackson@ximian.com>
18401
18402         * Menu.cs:
18403         * MainMenu.cs:
18404         * GridTableStylesCollection.cs:
18405         * Timer.cs:
18406         * TabPage.cs:
18407         * HelpProvider.cs:
18408         * StatusBar.cs:
18409         * MonthCalendar.cs: Signature fixes
18410
18411 2005-11-03  Jackson Harper  <jackson@ximian.com>
18412
18413         * TreeNodeCollection.cs: Remove should not be virtual.
18414         * TreeView.cs: Implement the last of the missing methods.
18415
18416 2005-11-03  Jackson Harper  <jackson@ximian.com>
18417
18418         * TreeNodeConverter.cs: Implement to get off my class-status back.
18419
18420 2005-11-03  Jackson Harper  <jackson@ximian.com>
18421
18422         * TreeView.cs: Hookup the bits for drag and drop.
18423         * TreeNode.cs: Don't cache the tree_view or index anymore, now
18424         that nodes can be moved from tree to tree easily this just causes
18425         all sorts of problems.
18426         * TreeNodeCollection: Don't need to give treenodes an index and
18427         treeview anymore when they are added, these are computed on the
18428         fly. Also make sure to remove a node before its added.
18429
18430 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18431
18432         * TextControl.cs:
18433           - Added CaretSelection enum
18434           - Added comparison methods to Marker struct, makes selection code
18435             more readable
18436           - Added SelectionStart and SelectionEnd as 'moveable' location for
18437             the CaretDirection enum and handler
18438           - Added selection_prev variable to track optimized invalidation for
18439             word and line selection
18440           - Added SelectionVisible property (returns true if there is a valid 
18441             selection)
18442           - Switched CaretHasFocus to only display the caret if there is no
18443             visible selection
18444           - Avoiding StringBuilder.ToString to retrieve a single char, instead
18445             using the direct character index; should be much faster
18446           - Added various conditional debug statements
18447           - Fixed invalidation calculation for selection ranges
18448           - Added ExpandSelection() method to support word and line selection
18449           - Switched SetSelectionToCaret to use new Marker compare overloads
18450           - Added central IsWordSeparator() method to determine word 
18451             separators/whitespace and FindWordSeparator() to streamline common
18452             usage of IsWordSeparator()
18453         * TextBoxBase.cs:
18454           - Removed unneeded grabbed variable, it was just mirroring
18455             Control.Capture
18456           - No longer firing OnTextChanged event when Text setter is called,
18457             since the base will fire the event for us
18458           - Added handling of Ctrl-Up/Down selection
18459           - Added handling of Shift-Cursorkey selection
18460           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
18461             words
18462           - Added handling of Shift and Ctrl-Shift-Home/End selection
18463           - Removed some debug output
18464           - Added handling for single/double/tripple-click to place caret/
18465             select word/select line respectively (Fixes bug #76031)
18466           - Added support for drag expansion of word/line selection
18467         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
18468           current selection
18469
18470 2005-11-02  Jackson Harper  <jackson@ximian.com>
18471
18472         * X11Dnd.cs: If the drag is going to and from a MWF window just
18473         copy the data instead of sending it out through the X Selection
18474         mechanism.
18475
18476 2005-11-02  Jackson Harper  <jackson@ximian.com>
18477
18478         * X11Dnd.cs:
18479         * XplatUIX11.cs: When in a drag we don't want motion notify
18480         messages to get passed on to the other controls. This prevents
18481         mouse move messages from showing up in the drag source.
18482
18483 2005-11-02  Jackson Harper  <jackson@ximian.com>
18484
18485         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
18486         the correct button is release to end a drag.
18487         * XplatUIX11.cs: Make the button state internal so the drag system
18488         can access it.  Dragging needs to know about all button releases,
18489         not just left button.
18490
18491 2005-11-02  Miguel de Icaza  <miguel@novell.com>
18492
18493         * Form.cs (Icon): If the icon is null, reset the icon to the
18494         default value. 
18495
18496         * Cursor.cs: When writing the AND-mask bitmap do not include the
18497         number of colors, but hardcode those to two (black and white),
18498         fixes the loading of color cursors (Paint Dot Net).
18499
18500         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
18501         turn off autoscaling.
18502
18503         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
18504
18505 2005-11-02  Jackson Harper  <jackson@ximian.com>
18506
18507         * X11Dnd.cs: Make sure to send a status message if the pointer
18508         enters a control that can not accept a drop, otherwise the cursor
18509         isn't updated correctly. Also tried to compress the lines of code
18510         a bit.
18511
18512 2005-11-02  Jackson Harper  <jackson@ximian.com>
18513
18514         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
18515         set actions correctly.  This isn't perfect as XDND and win32 have
18516         some differences on how you allow actions. I'll clear this up by
18517         adding a path for drag from MWF to MWF windows.
18518         * XplatUIX11.cs: Hook into the dnd system.
18519
18520 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
18521
18522         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
18523         previously shown but they are no longer need it. Very obvious when 
18524         browsing files with FileDialog.
18525
18526 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
18527
18528         * Control.cs: We always need to call OnPaintBackground. We pretty much
18529           ignore AllPaintingInWmPaint and always do the painting there, whether 
18530           it's set or not, since we always ignore the WM_ERASEBKGND message 
18531           (which we don't generate on X11). This fixes #76616.
18532         * Panel.cs: Removed unneeded background painting. This happens properly
18533           in Control.cs already
18534
18535 2005-10-31  Mike Kestner  <mkestner@novell.com>
18536
18537         * Menu.cs: Add items to collection before setting their index.
18538         * MenuItem.cs : add range checking with ArgumentException like MS.
18539         [Fixes #76510]
18540
18541 2005-10-31  Jackson Harper  <jackson@ximian.com>
18542
18543         * ListBox.cs: Invalidate if the area is visible at all not just
18544         contained in the visible rect. Fixes unselection of semi visible
18545         items.
18546
18547 2005-10-31  Jackson Harper  <jackson@ximian.com>
18548
18549         * Control.cs: Consistently name the dnd methods. Make them
18550         internal so we can override them to match some MS behavoir
18551         internally.
18552         * Win32DnD.cs: Use the new consistent names.
18553
18554 2005-10-31  Jackson Harper  <jackson@ximian.com>
18555
18556         * TreeView.cs: Don't draw the selected node when we lose focus.
18557
18558 2005-10-31  Jackson Harper  <jackson@ximian.com>
18559
18560         * X11Dnd.cs: We still need to reset the state even though a full
18561         reset isn't being done, otherwise status's still get sent all over
18562         the place.
18563
18564 2005-10-31  Jackson Harper  <jackson@ximian.com>
18565
18566         * Control.cs: Make the dnd_aware flag internal so the dnd
18567         subsystem can check it. Catch exceptions thrown in dnd handlers to
18568         match MS behavoir.
18569         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
18570         * X11Dnd.cs: Handle null data in the converters. Set the XDND
18571         version when sending a XdndEnter. Use the control/hwnd dnd_aware
18572         flags to reduce the number of dnd enters/status's sent.
18573
18574 2005-10-31  Jackson Harper  <jackson@ximian.com>
18575
18576         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
18577
18578 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
18579
18580         * PictureBox.cs: Fixes 76512
18581
18582 2005-10-28  Jackson Harper  <jackson@ximian.com>
18583
18584         * X11Dnd.cs: Early implementation to support winforms being a drag
18585         source for data on X11. Also restructured the converters so they
18586         can go both ways now.
18587         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
18588         
18589 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
18590
18591         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
18592           clipboard requests
18593
18594 2005-10-27  Jackson Harper  <jackson@ximian.com>
18595
18596         * TreeNode.cs: Implement serialization so my DnD examples will work.
18597
18598 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
18599
18600         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
18601           TreeView.cs: Don't dispose objects that are not owned.
18602           
18603 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
18604
18605         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
18606           should retrieve the current cursor and report that, but XplatUI
18607           doesn't (yet) have an interface for that (and I'm not sure I even
18608           can, on X11)
18609         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
18610           until any message loop processing is done (and the WM_SETCURSOR
18611           replaces the cursor to the proper one)
18612         * XplatUIX11.cs: 
18613           - Fixed override behaviour, we can't set the cursor globally on X11, 
18614             just for our windows.
18615           - Invalidating the System.Drawing X11 display handle when we are
18616             shutting down
18617         * Control.cs: Fix to make csc happy
18618
18619 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
18620
18621         * TextBoxBase.cs: 
18622           - get_Text: Add last line (without trailing newline) to returned
18623             value (Fixes 76212)
18624           - get_TextLength: Count last line in returned length
18625           - ToString: Call Text property instead of duplicating code
18626
18627 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
18628
18629         * ImageList.cs: Dispose ImageAttributes objects.
18630
18631 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18632
18633         * ImageList.cs: Use attribute constructors with less arguments where
18634           possible.
18635
18636 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18637
18638         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
18639           Use typeof instead of strings when assembly is referenced. Added
18640           some more comments.
18641
18642 2005-10-21  Jackson Harper  <jackson@ximian.com>
18643
18644         * ListView.cs: Raise a double click event. Also tried to somewhat
18645         fix when the selectedindexchanged event is raised. Its still
18646         broken though.
18647
18648 2005-10-21  Jackson Harper  <jackson@ximian.com>
18649
18650         * TreeView.cs: New method to invalidate the plus minus area of a
18651         node without invalidating the whole node (maybe this can be used
18652         in some more places).
18653         * TreeNodeCollection.cs: When adding to an empty node we need to
18654         invalidate its plus minus area so the little block shows up.
18655         
18656 2005-10-21  Jackson Harper  <jackson@ximian.com>
18657
18658         * TreeView.cs: Make sure that when we invalidate a node the bounds
18659         are big enough to cover the selected box and the focus
18660         rectangle. Use a different colour for the lines connecting nodes
18661         so they show up with all themes.
18662
18663 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18664
18665         * NativeWindow.cs: Don't call anything that could call into the driver,
18666           we might be on a different thread.
18667
18668 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
18669
18670         * Control.cs(Dispose): Since Dispose might run on a different thread,
18671           make sure that we call methods that could call into the driver via
18672           invoke, to avoid thread issues
18673
18674 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18675
18676         * XplatUI.cs: Removed finalizer
18677         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
18678           not allowing to be called on the finalizer thread.
18679
18680 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
18681
18682         * ImageList.cs:
18683           - Reverted r51889 and r51891.
18684           - Added ImageListItem class that stores unmodified image items and image
18685             properties required to create list images until handle is created.
18686           - Added AddItem and moved image creation logic to AddItemInternal.
18687           - Added CreateHandle method that creates images based on unmodified items.
18688           - Added DestroyHandle that changes state to store unmodified items.
18689           - Add and AddStrip methods no more create handle.
18690           - ReduceColorDepth has no return value.
18691           - Dispose destroys handle.
18692           - Modified other methods to reflect the above changes.
18693           - Implemented key support.
18694           - Added profile 2.0 members and attributes.
18695           - Added private Reset and ShouldSerialize methods that provide the same
18696             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
18697             them as they are private.
18698           - Added some more comments about implementation details.
18699
18700 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18701
18702         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
18703
18704 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18705
18706         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
18707
18708 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18709
18710         * DataGridDrawingLogic.cs: Fixes column hit calcultation
18711         * DataGridColumnStyle.cs: Remove debug message
18712
18713 2005-10-20  Jackson Harper  <jackson@ximian.com>
18714
18715         * TreeView.cs: We can always get input keys regardless of whether
18716         or not editing is enabled. They are used for navigation.
18717
18718 2005-10-20  Jackson Harper  <jackson@ximian.com>
18719
18720         * TreeNode.cs: Use the viewport rect for determining if a node
18721         needs to be moved for visibility. Don't use Begin/End edit. This
18722         calls a full refresh when its done.
18723         * TreeView.cs: New SetBottom works correctly.  Make the viewport
18724         rect property internal so the treenodes can see it. When clicking
18725         on a node we need to ensure that its visible because it might just
18726         be partly visible when clicked.
18727
18728 2005-10-20  Jackson Harper  <jackson@ximian.com>
18729
18730         * TreeNodeCollection.cs: Remove debug code.
18731
18732 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18733
18734         * Datagrid.cs: Implements column sorting in Datagrid
18735         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
18736
18737 2005-10-20  Jackson Harper  <jackson@ximian.com>
18738
18739         * TreeNodeCollection.cs: Remove items properly. Update the correct
18740         area after removing them.
18741
18742 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18743
18744         * Datagrid.cs: Should not call base.OnPaintBackground
18745
18746 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18747
18748         * XplatUIX11.cs (GetMessage):
18749           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
18750             window instead of client window
18751           - Now properly calculates NC_xBUTTONUP message coordinates
18752           - ScreenToMenu now properly calculates it's coordinates of whole 
18753             window, since menus are in the whole window, not in the client
18754             window
18755           - Added WholeToScreen coordinate translation method
18756
18757 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
18758
18759         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
18760           want to return a message, loop back to the beginning of the function
18761           and grab the next real message to process instead.
18762
18763 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18764
18765         * Splitter.cs: Properly set limits if no filler control is used
18766
18767 2005-10-19  Jackson Harper  <jackson@ximian.com>
18768
18769         * ColorDialog.cs: Don't show the help button if it is not enabled
18770         instead of disabling it (this is what MS does). Don't create the
18771         panel until the dialog is run, otherwise the vars (such as
18772         ShowHelp) are not set yet.
18773
18774 2005-10-19  Jackson Harper  <jackson@ximian.com>
18775
18776         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
18777         are reduced when adding nodes.
18778         * TreeNode.cs:
18779         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
18780         tree.
18781         
18782 2005-10-19  Jackson Harper  <jackson@ximian.com>
18783
18784         * FolderBrowserDialog.cs: End editing our treeview so the window
18785         actually gets refreshed.
18786
18787 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18788
18789         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
18790           Obsoleted handling of WM_ERASEBKGND, now always draws our background
18791           inside of WM_PAINT
18792
18793 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18794
18795         * MenuAPI.cs: Returns after Hidding window
18796         * XplatUIX11.cs: Added TODO found while debugging menu issues
18797
18798 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18799
18800         * XplatUIX11.cs: Do not re-map the whole window when it's size
18801           becomes non-zero unless it's supposed to be actually visible
18802
18803 2005-10-18  Jackson Harper  <jackson@ximian.com>
18804
18805         * TreeView.cs: We don't need to keep a count anymore.
18806         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
18807         use the Grow method.
18808
18809 2005-10-18  Jackson Harper  <jackson@ximian.com>
18810
18811         * TreeNodeCollection.cs: Insert is not supported on arrays, so
18812         implement it manually here.
18813
18814 2005-10-18  Jackson Harper  <jackson@ximian.com>
18815
18816         * ImageList.cs: Dont kill the list when the colour depth is
18817         changed, just change the colour depth of all the images.
18818         - Same goes for setting the image size. Just resize them all
18819         instead of killing the list softly.
18820
18821 2005-10-18  Jackson Harper  <jackson@ximian.com>
18822
18823         * Control.cs: Don't invalidate empty rectangles.
18824
18825 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18826
18827         * ListViewItem.cs:
18828           - Adds checked item to the Checked/Item lists (where empty before)
18829           - Do not add items to the Selected lists if they are already present
18830         * ListView.cs:
18831           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
18832           - When deleting items make sure that we delete them for the Selected
18833           and Checked list also.
18834
18835 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18836
18837         * Label.cs: Dispose objects no longer used
18838         * ThemeWin32Classic.cs: Dispose objects no longer used
18839
18840 2005-10-18  Jackson Harper  <jackson@ximian.com>
18841
18842         * TabControl.cs: Don't refresh the whole control when the tabs are
18843         scrolled, we just need to refresh the tab area.
18844
18845 2005-10-17  Jackson Harper  <jackson@ximian.com>
18846
18847         * XplatUIX11.cs: Compress code a little bit. Only calculate the
18848         after handle when we need it.
18849
18850 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18851
18852         * Control.cs: When the parent size changes, recalculate anchor 
18853           positions. Partial fix for #76462
18854
18855 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18856
18857         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
18858           drawn. Fixes #76462
18859
18860 2005-10-17  Jackson Harper  <jackson@ximian.com>
18861
18862         * MonthCalendar.cs: Don't create the numeric up down until our
18863         handle is created. Otherwise our handle is created in the
18864         constructor and we don't know if we are a WS_CHILD or WS_POPUP
18865         yet.
18866
18867 2005-10-17  Jackson Harper  <jackson@ximian.com>
18868
18869         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
18870         correctly.
18871
18872 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
18873         * TreeNode.cs : small logical fix (was using local var instead of field)
18874         
18875 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18876
18877         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
18878
18879 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18880
18881         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
18882
18883 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
18884
18885         * Control.cs: 
18886           - Re-implemented anchoring code. My first version was really broken.
18887             This fixes bug #76033. Unlike the previous implementation we will
18888             no longer have round errors since all numbers are calculated from
18889             scratch every time. Removed various anchor-related obsolete vars.
18890           - InitLayout no longer causes layout event firing and layout to be 
18891             performed
18892
18893 2005-10-16  Jackson Harper  <jackson@ximian.com>
18894
18895         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
18896         which was broken).
18897
18898 2005-10-16  Jackson Harper  <jackson@ximian.com>
18899
18900         * TabControl.cs: Remove debug code.
18901
18902 2005-10-16  Jackson Harper  <jackson@ximian.com>
18903
18904         * XEventQueue.cs: Increase the default queue size (very simple
18905         apps needed to grow the queue).
18906         * Hwnd.cs: No finalizer so we don't need to suppress
18907         finalization. Compute the invalid area manually so a new rectangle
18908         does not newto be created.
18909         * ScrollableControl.cs: Don't set any params (otherwise visibility
18910         isn't set correctly).
18911         * MdiChildContext.cs: New constructor takes the mdi parent so it
18912         doesn't have to be computed and avoids a crash on windows. Draw
18913         the window icon properly, and allow the text to be seen.
18914         * Form.cs: Use new MdiChildContext constructor. Make sure the
18915         child context isn't null in wndproc.
18916         * TabControl.cs: Don't set focus, this is muddling keyboard
18917         behavoir. Expand the tab rows when a window size increase will
18918         allow extra tabs to be seen. Don't allow tabs smaller than the
18919         width of a window to be scrolled out of view.
18920         * TreeNode.cs:
18921         * TreeView.cs: Use measure string to calculate a nodes width, the
18922         width is cached and only updated when the text or the font is
18923         changed. Don't check for expand/collapse clicks on the first level
18924         nodes if root lines are disabled.
18925         
18926 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
18927
18928         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
18929
18930 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
18931
18932         * DataGridBoolColumn.cs: fixes warning
18933
18934 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
18935
18936         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
18937         to match more to match more precisely the MS Net behavior
18938
18939 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
18940
18941         * Hwnd.cs: Added field to track if window is mapped
18942         * XplatUIX11.cs: 
18943           - Unmap windows if they become 0-size, re-map when 
18944             they are >0 again; fixes #76035
18945           - Re-set our error handler after initializing X11Desktop
18946             to override any error handlers Gtk or whatever was called
18947             may have set.
18948
18949 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
18950
18951         * CheckedListBox.cs: Removed unused vars
18952         * ListView.cs: Fixed signatures
18953         * RichTextBox.cs: Removed unused vars
18954         * TextBoxBase.cs: Removed unused vars
18955         * XplatUIWin32.cs: Removed unused vars
18956         * XplatUIX11.cs: Removed unused vars
18957         * XplatUI.cs: Updated version and date to latest published
18958
18959 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
18960
18961         * Cursor.cs: Added private .ctor to work around a bug in
18962           resourceset (Thanks to Geoff Norton for the help on this)
18963         * SplitterEventArgs.cs: Made fields accessible so we don't
18964           waste boatloads of objects and can reuse the same one
18965           in Splitter
18966         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
18967           any captions and borders when generating screen coordinates
18968         * Splitter.cs: Reimplemented control, now fully complete, uses
18969           rubberband drawing, supports and obeys all properties, has
18970           proper cursors
18971
18972 2005-10-13  Miguel de Icaza  <miguel@novell.com>
18973
18974         * Form.cs (Form): Setup default values for autoscale and
18975         autoscale_base_size;  Make these instance variables, not static
18976         variables. 
18977
18978         (OnLoad): on the first load, adjust the size of the form.
18979
18980 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
18981
18982         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
18983           width argument to DrawReversibleRectangle()
18984         * XplatUIWin32.cs, XplatUIX11.cs: 
18985           - Implemented width for DrawReversibleRectangle()
18986           - Added logic to DrawReversibleRectangle that recognizes a zero
18987             width or height and only draws a line in that situation
18988         
18989 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
18990
18991         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
18992         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
18993         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
18994           method (it uses our FosterParent window to get a graphics context)
18995
18996 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
18997
18998         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
18999           and SetWindowBackground methods
19000         * Control.cs:
19001           - Setting proper ControlStyles
19002           - We no longer call XplatUI.SetWindowBackground and XplatUI.
19003             EraseWindowBackground, instead we draw the window background
19004             ourselves in PaintControlBackground. This behaviour is
19005             required to match MS, where, when OnPaintBackground is not
19006             called, the background is not drawn.
19007           - Removed unneeded Refresh() in set_Text
19008         * Hwnd.cs: Dropped the ErasePending support. No longer needed
19009         * XplatUIX11.cs:
19010           - Created DeriveStyles method to translate from CreateParams to
19011             FormBorderStyle and TitleStyle, also handles BorderStyle (which
19012             matches FormBorderStyle enum values)
19013           - Consolidated SetHwndStyles and CalculateWindowRect border/title
19014             style calculations into single DeriveStyles method
19015           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
19016             from redrawing the whole window on any resize or expose.
19017           - Fixed CreateWindow usage of SetWindowValuemask. Before not
19018             all styles were applied to our whole/client window appropriately
19019           - Removed EraseWindowBackground() and SetWindowBackground() methods
19020           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
19021             no longer clear/redraw the background through X
19022           - Removed handling of erase_pending bit, we have no use for it (or
19023             so it seems)
19024         * XplatUIOSX.cs:
19025           - Removed generation and handling of WM_ERASEBKGND message
19026           - Removed EraseWindowBackground() and SetWindowBackground() methods
19027           - Removed handling of hwnd.ErasePending flag
19028         * XplatUIWin32.cs:
19029           - Removed EraseWindowBackground() and SetWindowBackground() methods
19030           - We no longer call EraseWindowBackground on PaintEventStart, we 
19031             ignore the fErase flag, erasing is handled in Control in the
19032             background handler
19033         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
19034           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
19035           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
19036           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
19037           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
19038           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
19039           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
19040
19041 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
19042
19043         * PropertyGrids.cs: Get sub properties
19044         * PropertyGridView.cs: Fix drawing code
19045
19046 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19047
19048         * ListBox.cs: Fixes 76383
19049
19050 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19051
19052         * DataGridTextBoxColumn.cs: Sets location and size before attachment
19053         * ThemeWin32Classic.cs: Fixes border drawing and calculations
19054         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
19055
19056
19057 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19058
19059         * ComboBox.cs: Fixes border drawing
19060
19061 2005-10-10  Miguel de Icaza  <miguel@novell.com>
19062
19063         * MimeIcon.cs: Ignore errors if the file can not be read.
19064
19065 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19066
19067         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
19068          - Fixed border calculations
19069          - Fixed horizontal scrolling in single column listboxes
19070          - Fixed drawing issues
19071
19072 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
19073
19074         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
19075           FormBorderStyle enum
19076         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
19077           code to determine FormBorderStyles from CreateParams
19078         * Form.cs:
19079           - Fixed bug where we'd set the wrong window styles if we were
19080             not creating an MDI window
19081           - Added call to XplatUI.SetBorderStyle when form borders are set
19082         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
19083         * Hwnd.cs:
19084           - Removed obsolete edge style
19085           - Switched from BorderStyle to FormBorderStyle
19086         
19087 2005-10-10  Jackson Harper  <jackson@ximian.com>
19088
19089         * Form.cs: Use the property to get the window handle instead of
19090         accessing it directly. Prevents a null reference exception.
19091
19092 2005-10-10  Jackson Harper  <jackson@ximian.com>
19093
19094         * TreeView.cs: Don't adjust the rect given to DrawString now that
19095         our libgdiplus draws correctly.
19096
19097 2005-10-08  Jackson Harper  <jackson@ximian.com>
19098
19099         * TreeView.cs: Don't try to find the clicked on node if there are
19100         no nodes in the tree.
19101
19102 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19103
19104         * RichTextBox.cs:
19105
19106           restore
19107
19108 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19109
19110         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
19111           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
19112           ErrorProvider.cs:
19113           Use ResPool for brushes and dispose System.Drawing objects that
19114           are not used anymore.
19115
19116 2005-10-07  Jackson Harper  <jackson@ximian.com>
19117
19118         * MdiChildContext.cs: Use the new borders instead of drawing them
19119         ourselves.
19120
19121 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19122
19123         * Calling UpdateBounds after changing the window's BorderStyle 
19124         since the style can change the ClientSize
19125
19126 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19127
19128         * Control.cs: Made PaintControlBackground virtual
19129         * Panel.cs: Overriding PaintControlBackground instead of using paint
19130           event; paint event method was interfering with 'real' users of the
19131           event.
19132
19133 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19134
19135         * ThemeWin32Classic.cs: remove border drawing since it is handled
19136         by the base control class now and was causing double border drawing.
19137
19138 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19139
19140         * Panel.cs: Redraw our background on paint. Not a pretty solution,
19141           but it does seem to match MS behaviour. This fixes bug #75324
19142
19143 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19144
19145         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
19146           somewhat hackish looking
19147
19148 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19149
19150         * TextBoxBase.cs:
19151           - We now accept Enter even if AcceptEnter is false, if the containing
19152             form does not have an AcceptButton configured (fixes bug #76355)
19153           - Calculations are now fixed to no longer use Width/Height, but
19154             ClientSize.Width/Height, since we now support borders (this was
19155             a result of fixing borders and therefore bug #76166)
19156           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
19157             true (fixes bug #76354)
19158         
19159 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19160
19161         * Control.cs: 
19162           - Defaulting BorderStyle and setting it in XplatUI when our window 
19163             is created
19164           - Added enum check to InternalBorderStyle setter
19165         * XplatUIX11.cs: 
19166           - Added drawing of window borders
19167           - Now properly calculates WM decorations offset for toplevel 
19168             windows (fixes bug #74763)
19169         * XplatUIWin32.cs: 
19170           - Implemented BorderStyles for windows (we're letting win32 draw 
19171             the border for us)
19172           - Fixed the signature for SetWindowLong
19173         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
19174           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
19175           setting borders
19176         * UpDownBase.cs: Remove drawing of borders, this is handled by
19177           the driver, outside the client area
19178         * ListView.cs: Removed bogus border calculations. The control should
19179           be oblivious to borders, since those are not part of the client
19180           area. 
19181         * X11DesktopColors.cs: Commented out (currently) unneeded variables
19182         * ThemeWin32Classic.cs: Removed border calculations from ListView 
19183           drawing code
19184
19185 2005-10-06  Jackson Harper  <jackson@ximian.com>
19186
19187         * MdiChildContext.cs: Clear out the old virtual position remove
19188         all the unneeded calls to CreateGraphics.
19189
19190 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19191
19192         * TextControl.cs: Use proper color for highlighted text; fixes #76350
19193
19194 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19195
19196         * Form.cs: 
19197           - Added loading and setting of our new default icon
19198           - Only set icon if window is already created
19199
19200 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19201
19202         * Label.cs:
19203           - Do not explicitly set the foreground and background colors, to
19204             allow inheriting from parents (fixes #76302)
19205           - Use Control's InternalBorderStyle property to deal with borders
19206
19207 2005-10-06  Jackson Harper  <jackson@ximian.com>
19208
19209         * MdiChildContext.cs: Use the new xplatui function to draw a
19210         reversible rect.
19211
19212 2005-10-06  Jackson Harper  <jackson@ximian.com>
19213
19214         * Form.cs: Add the parent before creating the child context cause
19215         we need the parent when setting up the child.
19216
19217 2005-10-06  Jackson Harper  <jackson@ximian.com>
19218
19219         * FolderBrowserDialog.cs: redo the tree population code so a
19220         second thread isn't used. Should be a lot faster and more stable
19221         now.
19222
19223 2005-10-05  Jackson Harper  <jackson@ximian.com>
19224
19225         * TreeView.cs: There are no expand/collapse boxes if the node has
19226         no children.
19227
19228 2005-10-05  Jackson Harper  <jackson@ximian.com>
19229
19230         * X11DesktopColors.cs: Get menu colours for the gtk theme.
19231
19232 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
19233
19234         * FileDialog.cs: Fix InitialDirectory
19235
19236 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19237
19238         * ComboBox.cs:
19239                 - Fixes changing between styles
19240                 - Fixes simple mode
19241                 - Fixes last item crashing when navigating with keyboard
19242
19243 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19244
19245         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
19246
19247 2005-10-05  Jackson Harper  <jackson@ximian.com>
19248
19249         * TreeView.cs: If updating the root node do a full refresh.
19250         * TreeNode.cs: The root node should be expanded by default. Also
19251         added a utility prop to tell if we are the root node.
19252         * TreeNodeCollection.cs: Only refresh if the node we are being
19253         added to is expanded. Also added a comment on a potential
19254         optimization.
19255         
19256 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
19257
19258         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
19259           in dispose method. Fixes #76330
19260
19261 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
19262
19263         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
19264
19265                 - Implements vertical and horizontal scrolling using XplatUI
19266                 - Fixes keyboard navagation
19267                 - Fixes EnsureVisible
19268                 - Drawing fixes
19269                 - Handles and draws focus properly
19270
19271
19272 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
19273
19274         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
19275           Create handle. NET_2_0: Destroy handle when value is null.
19276
19277 2005-10-03  Jackson Harper  <jackson@ximian.com>
19278
19279         * ScrollBar.cs: My last scrollbar patch was broken. This is a
19280         revert and a new patch to prevent the thumb from refreshing so
19281         much.
19282
19283 2005-10-02  Jackson Harper  <jackson@ximian.com>
19284
19285         * ScrollBar.cs: Don't update position if it hasn't actually
19286         changed. This occurs when you hold down the increment/decrement
19287         buttons and the thumb gets to the max/min.
19288
19289 2005-10-01  Jackson Harper  <jackson@ximian.com>
19290
19291         * Form.cs:
19292         * MdiChildContext.cs:
19293         * MdiClient.cs: Implement ActiveMdiChild in Form.
19294
19295 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
19296
19297         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
19298
19299 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
19300
19301         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
19302           be found
19303
19304 2005-09-30  Jackson Harper  <jackson@ximian.com>
19305
19306         * ListBox.cs: Don't do a full refresh unless some data has
19307         actually changed.
19308
19309 2005-09-30  Jackson Harper  <jackson@ximian.com>
19310
19311         * TreeView.cs: Make sure that the checkboxes size is factored in
19312         even when not visible.
19313
19314 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19315
19316         * FileDialog.cs: Fix Jordi's build break
19317
19318 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19319
19320         * FileDialog.cs: 
19321                 - Use standard the Windows colours for the combobox as espected
19322                 - Dispose objects that use resouces when no longer need them
19323
19324 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19325
19326         * X11DesktopColors.cs: Initial incomplete implementation
19327         * XplatUIX11.cs: Added call to initialize X11DesktopColors
19328
19329 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
19330
19331         * Theme.cs: 
19332           - Switched Theme color names to match the names defined in 
19333             System.Drawing.KnownColors. Life's hard enough, no need to make 
19334             it harder.
19335           - Added setters to all theme color properties so themes can set
19336             their color schemes. The setters also propagate the color changes
19337             to System.Drawing.KnownColors via reflection
19338         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
19339           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
19340           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
19341           use the new, more logical theme color names
19342         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
19343           post-NT colors
19344         * ThemeWin32Classic.cs:
19345           - Removed code to set the old classic Windows colors. Instead it
19346             now relies on the colors returned by System.Drawing.KnownColors
19347             which will be either modern static colors (Unix) or colors
19348             read from the user's configuration (Win32)
19349           - Updated to use the new, more logical theme color names
19350           - Switched DataGrid drawing code to use only Theme colors instead of
19351             a mix of System.Drawing.KnownColors and Theme colors
19352           - DrawFrameControl(): Removed code that fills the button area, the
19353             fill would overwrite any previous fill done by a control. This
19354             fixes bug #75338 
19355           - Added DrawReversibleRectangle() stub
19356         * ScrollableControl.cs: Set visible state to false when scrollbars
19357           are removed (pdn fix)
19358         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
19359           DrawReversibleRectangle() method to allow drawing primitive 
19360           'rubber bands'
19361         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
19362
19363 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19364
19365         * ImageList.cs: Add(Icon): Create handle.
19366
19367 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19368
19369         * ListView.cs:
19370         * ThemeWin32Classic.cs:
19371                 - Fixes detail mode
19372                 - Sets clippings
19373                 - Issues with drawing
19374
19375 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19376
19377         * ImageList.cs: Moved RecreateHandle back to ImageList as event
19378           source has to be the ImageList.
19379
19380 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19381
19382         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
19383
19384 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19385
19386         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
19387
19388 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19389
19390         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
19391
19392 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
19393         * GridItem.cs: Fixed TODOs
19394         * GridItemCollection.cs: Added ICollection interface
19395
19396 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19397
19398         * ImageList.cs: Resize icons when needed.
19399
19400 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
19401
19402         * ListViewItem.cs
19403                 - Fixes GetBounds and returns on screen rects
19404         * ListView.cs:
19405                 - Fixes vertical and horzintal scrolling of items
19406         * ThemeWin32Classic.cs:
19407                 - Fixes drawing
19408                 
19409 2005-09-29  Raja R Harinath  <harinath@gmail.com>
19410
19411         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
19412
19413 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
19414
19415         * ImageList.cs: Added comments about handle creation. Moved Handle,
19416           HandleCreated and OnRecreateHandle implementations to ImageCollection.
19417           Handle is created in Add methods.
19418
19419 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19420          
19421         * DataGridDrawingLogic.cs: 
19422                 - Takes rows into account on Colum calculations
19423                 - Returns the column when clickig
19424         * DataGrid.cs:
19425                 - Fixes default HitTestInfo values
19426                 - Fixes HitTestInfo.ToString
19427                 - Fixes ResetBackColor          
19428         
19429 2005-09-28  Jackson Harper  <jackson@ximian.com>
19430
19431         * MdiChildContext.cs: Obey rules for fixed sized windows (no
19432         sizing or cursor changes). Also added some temp code to draw the
19433         titlebars text (Makes dev a little easier).
19434
19435 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19436
19437         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
19438
19439 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19440          
19441         * ListBox.cs: Fixes bug 76253
19442
19443 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19444
19445         * ImageList.cs: Added comments about the current implementation. Added
19446           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
19447           Format32bppArgb to preserve transparency and can use Graphics.FromImage
19448           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
19449           with Bitmap.LockBits for better performance. Revised the whole file to
19450           match MS.NET behaviour and provide better performance. Non-public
19451           interface members are calling public members even when they throw
19452           NotSupportedException for better maintainability. Moved ColorDepth,
19453           ImageSize, ImageStream and TransparentColor implementations to
19454           ImageCollection for better performance as these properties are not used
19455           by ImageList.
19456         * ImageListStreamer.cs: Added a new internal constructor that takes an
19457           ImageList.ImageCollection and serializes Images based on
19458           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
19459           match ImageList property name.
19460
19461 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
19462
19463         * ListBox.cs: Fixes IndexFromPoint for last item
19464
19465 2005-09-27  Jackson Harper  <jackson@ximian.com>
19466
19467         * Form.cs: Set the position of new mdi children correctly.
19468
19469 2005-09-27  Jackson Harper  <jackson@ximian.com>
19470
19471         * MdiClient.cs: New mdi children need to be added to the back of
19472         the controls collection so the zorder is set correctly. Also add a
19473         count of all the child windows that have been created.
19474
19475 2005-09-27  Jackson Harper  <jackson@ximian.com>
19476
19477         * Form.cs (CreateParams): Setup MDI forms correctly.
19478
19479 2005-09-27  Jackson Harper  <jackson@ximian.com>
19480
19481         * MdiChildContext.cs:
19482         * MonthCalendar.cs:
19483         * UpDownBase.cs:
19484         * ListBox.cs:
19485         * ListView.cs:
19486         * TextBoxBase.cs:
19487         * TreeView.cs:
19488         * ScrollableControl.cs:
19489         * ComboBox.cs: Add implicit controls using the new implict control
19490         functionality in ControlCollection. Also try to block multiple
19491         control add in a suspend/resume layout to save some cycles.
19492         
19493 2005-09-27  Jackson Harper  <jackson@ximian.com>
19494
19495         * Control.cs: Add functionality to the controls collection to add
19496         'implicit controls' these are controls that are created by the
19497         containing control but should not be exposed to the user. Such as
19498         scrollbars in the treeview.
19499         * Form.cs: The list var of the ControlsCollection is no longer
19500         available because of the potential of implicit controls getting
19501         ignored by someone accessing the list directly.
19502
19503 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
19504
19505         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
19506           loose it's parent. (Fixed bug introduced in r49103 when we added
19507           setting the child parent to null on Remove)
19508
19509 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
19510
19511         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
19512         * Splitter.cs: Added missing attributes for BorderStyle property.
19513         * TextBoxBase.cs: Marked Calculate* methods internal.
19514         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
19515         MS.NET.
19516
19517 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
19518          
19519         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
19520
19521 2005-09-25  Jackson Harper  <jackson@ximian.com>
19522
19523         * TreeView.cs: Update the node bounds correctly regardless of
19524         whether the node is visible.
19525
19526 2005-09-25  Jackson Harper  <jackson@ximian.com>
19527
19528         * ImageList.cs: Don't dispose the image after it is added to the
19529         image list. Only reformat images that need to be resized.
19530
19531 2005-09-25  Jackson Harper  <jackson@ximian.com>
19532
19533         * ImageList.cs: Don't set the format when changing the image.
19534
19535 2005-09-25  Jackson Harper  <jackson@ximian.com>
19536
19537         * TreeView.cs: We can't just assume the node has a font. Use the
19538         treeviews font if no node font is available.
19539
19540 2005-09-25  Jackson Harper  <jackson@ximian.com>
19541
19542         * TreeView.cs: Allow the scrollbars to be reset with negative
19543         values.
19544         - Don't add scrollbars to negative sized windows.
19545
19546 2005-09-23  Jackson Harper  <jackson@ximian.com>
19547
19548         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
19549         old Mono.Posix. Also remove some stray code that shouldn't have
19550         been committed.
19551
19552 2005-09-23  Jackson Harper  <jackson@ximian.com>
19553
19554         * TreeView.cs: Attempt at proper sizing of the horizontal
19555         scrollbar. Also don't resize the scrollbars unless they are
19556         visible.
19557
19558 2005-09-23  Jackson Harper  <jackson@ximian.com>
19559
19560         * TreeView.cs: We don't need to expand the invalid area when the
19561         selection changes, as this is all drawn in the node's bounding
19562         box. The area needs to be expanded (previous typo was contracting
19563         it) when the focus rect moves.
19564
19565 2005-09-23  Jackson Harper  <jackson@ximian.com>
19566
19567         * TreeView.cs: Display the selection box under the correct
19568         circumstances. We were rendering white text with no selection box
19569         before.
19570
19571 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
19572
19573         * TextControl.cs(Split): Now updates selection start/end if it points 
19574           into a line that's being split. Fixes a FIXME and bug #75258
19575
19576 2005-09-23  Jackson Harper  <jackson@ximian.com>
19577
19578         * Binding.cs:
19579         * ListControl.cs: Don't use the path when retrieving binding
19580         managers from the binding context. My bat sense tells me that the
19581         path is only used on insertion.
19582
19583 2005-09-22  Jackson Harper  <jackson@ximian.com>
19584
19585         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
19586
19587 2005-09-22  Jackson Harper  <jackson@ximian.com>
19588
19589         * Splitter.cs: There are special cursors used for splitting.
19590         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
19591
19592 2005-09-22  Jackson Harper  <jackson@ximian.com>
19593
19594         * Splitter.cs: Change the cursor appropriately when the splitter
19595         is moused over, so the user actually knows there is a splitter
19596         there.
19597
19598 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19599
19600        * Label.cs : Fix ToString method to give same output as MS.NET
19601
19602 2005-09-22  Jackson Harper  <jackson@ximian.com>
19603
19604         * TreeView.cs: Create the scrollbars when the handle is created
19605         and add them right away, just make them invisble. Also account for
19606         the window being shrunk vertically to the point that the vert
19607         scrollbar needs to be added.
19608         - Remove some 0.5 adjustments to get around anti aliasing issues.
19609         
19610 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
19611          
19612         * MainMenu.cs: Fixes default value
19613         * MenuItem.cs: Fixes default value
19614
19615 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
19616
19617         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
19618
19619 2005-09-21  Jackson Harper  <jackson@ximian.com>
19620
19621         * Control.cs: Don't try to set the border style on the window if
19622         it hasn't been created. When the window is created the border
19623         style will be used.
19624
19625 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19626
19627         * Control.cs (Update): Don't call XplatUI if we don't have a
19628           window handle yet
19629
19630 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19631
19632         * ContainerControl.cs: Instead of throwing an exception, print
19633           a one-time warning about Validate not being implemented
19634         * XplatUIWin32.cs: Removed debug output
19635
19636 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19637
19638         * Control.cs: Only set XplatUI background if we expect the windowing
19639           system to handle the background. This stops controls that draw their
19640           own background from flickering
19641
19642         * XplatUIX11.cs: Support custom visuals and colormaps for window 
19643           creation. This allows, amongst other things, using MWF X11 windows 
19644           with OpenGL.
19645
19646 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19647
19648         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
19649           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
19650           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
19651           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
19652           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
19653           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
19654           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
19655           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
19656           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
19657           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
19658           GridColumnStylesCollection.cs, 
19659           IDataGridColumnStyleEditingNotificationService.cs,
19660           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
19661           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
19662           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
19663           TreeNodeCollection.cs, AmbientProperties.cs, 
19664           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
19665           DataObject.cs, ErrorProvider.cs, Splitter.cs,
19666           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
19667           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
19668           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
19669           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
19670           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
19671           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
19672           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
19673           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
19674           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
19675           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
19676           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
19677           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
19678           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
19679           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
19680           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
19681           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
19682           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
19683           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
19684           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
19685           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
19686           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
19687           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
19688           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
19689           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
19690           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
19691           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
19692           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
19693           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
19694           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
19695           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
19696           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
19697           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
19698           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
19699           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
19700           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
19701
19702 2005-09-21  Jackson Harper  <jackson@ximian.com>
19703
19704         * TreeNode.cs: Call Before/After Expand not Collapse when
19705         expanding.
19706
19707 2005-09-20  Jackson Harper  <jackson@ximian.com>
19708         
19709         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
19710
19711 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19712          
19713         * ListViewItem.cs:
19714                 - Fixes bug 76120
19715                 - Fixes proper storing of subitems
19716                 - Fixes not updated items
19717
19718 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
19719
19720         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
19721           things if our window handle isn't created yet. Also disabled 
19722           debug for TextBoxBase
19723
19724 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
19725
19726         * MenuAPI.cs: Remove filtering of events to allow menu usage
19727
19728 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19729
19730         * Cursor.cs: Allow null to be passed to Cursor.Current.
19731
19732 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
19733
19734         * ThemeWin32Classic.cs:
19735           - Change some private methods/fields to protected virtual so that 
19736             they can be accessed and overriden in derived classes
19737           - First refactoring of some methods. Derived themes now don't 
19738             need to duplicate the complete code from ThemeWin32Classic
19739         * ThemeNice.cs:
19740           - Added nice StatusBar
19741           - Derive from ThemeWin32Classic and not Theme
19742           - Removed duplicate ThemeWin32Classic code
19743
19744 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19745
19746         * Control.cs (ControlCollection.Add): If the value null is passed
19747         the control is ignored. 
19748
19749         Optimize this loop.
19750
19751 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
19752
19753         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
19754           PostQuitMessage state.
19755         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
19756
19757 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
19758
19759         * Application.cs: Our constructor will never get called, move 
19760           initialization to fields; fixes bug #75933
19761
19762 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19763
19764         * FileDialog.cs :
19765                 - Allow files to be selected properly using file name
19766                 combo box.
19767                 - Add ability to change diretory (absolute / relative)
19768                 using file name combo box.
19769
19770 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19771          
19772         * ListBox.cs: 
19773                 - Fixes Multicolumn listboxes item wrong calculations
19774                 - Allows to click when only one item is in the listbox
19775                 - Fixes crash when no items using keyboard navigation
19776
19777 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
19778
19779         * ComboBox.cs: Reverted almost everything from the latest patch which
19780           broke ComboBox
19781
19782 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
19783         
19784         * ToolTip.cs:
19785                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
19786         * ComboBox.cs:
19787                 - When DropDownStyle is Simple, it does not show scrollbar 
19788                 to the last item of the list.
19789                 - When DropDownStyle is Simple, it crashed when the list was 
19790                 scrolled down with the down cursor key.
19791                 - Fixed a bug that when DropDownStyle is DropDownList, the 
19792                 selected item was not shown.
19793                 - The position of the selected item was not preserved when 
19794                 the next dropdown happened.
19795         * ThemeWin32Classic.cs:
19796                 - Items were wrapped at the right end.
19797         * CheckedListBox.cs:
19798                 - Fixed Add method
19799         * ListBox.cs:
19800                 - Items should be fully shown.
19801                 - When resizing and vertical scrollbar disappeared, the item 
19802                 of index 0 should be on the top of the list.
19803                 - GetItemRectangle should consider the size of ver. scrollbar
19804         * StatusBar.cs:
19805                 - SizingGrip area should not be allocated when it is not 
19806                 displayed.
19807                 - Now it reflects MinWidth of the containing panel and 
19808                 fixed a crash that happens when its width becomes so small.
19809
19810 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19811
19812         * CheckedListBox.cs: Fixes bug 76028
19813         * ListBox.cs: Fixes bug 76028
19814
19815 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19816
19817         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
19818         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
19819
19820 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
19821
19822         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
19823
19824 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19825
19826         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
19827
19828 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19829
19830         * IRootGridEntry.cs: Added
19831         * PropertyGridCommands.cs: Added
19832         * PropertiesTab.cs: Added missing methods and property
19833         * PropertyGridView.cs: Made class internal
19834         * PropertyGridTextBox.cs: Made class internal
19835
19836 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19837
19838         * MimeIcon.cs: Try to check some other environment variables
19839           if "DESKTOP_SESSION" returns "default"
19840
19841 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19842
19843         * ThemeNice.cs: Corrected background colors (e.g. menus)
19844         * ColorDialog.cs: Use correct background colors for controls
19845
19846 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19847
19848         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
19849
19850 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
19851
19852         * RichTextBox.cs: Added initial implementation
19853         * lang.cs: Removed. Was accidentally checked in long time ago
19854         * TODO: Removed. Contents were obsolete
19855
19856 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19857                                                                                 
19858         * PropertiesTab.cs : Added
19859
19860 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19861                                                                                 
19862         * PropertyGrid.cs : Update
19863         * PropertyGridView.cs : Update
19864         * System.Windows.Forms.resx : Added images and strings
19865
19866 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
19867
19868         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
19869  
19870 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
19871
19872         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
19873           a busy loop right after the Ungrab the X11 display is otherwise 
19874           blocked
19875
19876 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
19877
19878         * ThemeWin32Classic.cs: Optimise the use of clipping
19879
19880 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
19881
19882         * DataGrid.cs: fixes recursion bug
19883
19884 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
19885
19886         * ThemeNice.cs: 
19887           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
19888           - Cleanup
19889
19890 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
19891
19892         * ThemeNice.cs: Draw nice ProgressBars
19893
19894 2005-09-01  Miguel de Icaza  <miguel@novell.com>
19895
19896         * VScrollBar.cs: Another buglet found by Aaron's tool. 
19897
19898         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
19899         bug finder.
19900
19901 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
19902
19903         * ThemeNice.cs:
19904           - Added nicer menu drawing
19905           - Updated DrawTab
19906           - some refactoring
19907
19908 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
19909
19910         * CreateParams.cs (ToString): Made output match MS
19911         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
19912             handle is already created (to avoid forcing window creation)
19913         * XplatUIX11.cs: Set window text to caption after creating window,
19914           in case Text was set before window was created
19915         * Form.cs: Use this.Text instead of a static string as caption
19916
19917 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19918
19919         * NotifyIcon.cs: Don't set the window to visible; this screws
19920           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
19921           OnPaint without a bitmap)
19922         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
19923           happen very often anyway; we could add the check to the WM_PAINT 
19924           event generation code
19925
19926 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
19927
19928         * NotifyIcon.cs: Fill the icon area with a background color, to 
19929           avoid 'residue' when transparent icons are drawn
19930         * XplatUIX11.cs:
19931           - Handle whole_window == client_window when destroying windows
19932           - SystrayAdd(): Set client_window to whole_window value to
19933             get mouse and other events passed to NotifyIcon
19934
19935 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19936
19937         * Form.cs: Set proper default for Opacity property
19938         * NotifyIcon.cs:
19939           - ShowSystray(): Don't bother creating telling the OS
19940             about the systray item if no icon is provided
19941           - Now handles WM_NCPAINT message to deal with whole/client window
19942             split
19943           - Create window as visible to not get caught by Expose optimization
19944         * Hwnd.cs: Removed debug message
19945         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
19946           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
19947             PaintEventStart/End to use new client argument
19948         * TextBoxBase.cs:
19949           - Commented out debug messages
19950           - Switched PaintEventStart/End to use new client argument
19951         * XplatUI.cs: Added client window bool to PaintEventStart()/
19952           PaintEventEnd() calls, to support drawing in non-client areas
19953         * XplatUIDriver.cs: 
19954           - Added client window bool to PaintEventStart()/PaintEventEnd() 
19955             calls, to support drawing in non-client areas
19956           - Added conditional compile to allow using MWF BeginInvoke 
19957             on MS runtime
19958         * XplatUIX11.cs:
19959           - Added some conditional debug output
19960           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
19961             whole/client window split
19962           - Implemented handling of client argument to PaintEventStart()/End()
19963         * Control.cs:
19964           - Throw exception if BeginInvoke() is called and the window handle
19965             or one of the window's parent handles is not created
19966           - Added conditional compile to allow using MWF BeginInvoke on
19967             MS runtime
19968           - get_Parent(): Only sets parent if handle is created. This avoids
19969             forcing window handle creation when parent is set.
19970           - Now fires Layout and Parent changed events in proper order
19971           - Switched to use Handle instead of window.Handle for Z-Order setting,
19972             the get_Parent() patch above causes us to possibly get null for 'window'
19973           - Implemented handling of client argument to PaintEventStart()/End()
19974           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
19975             default handling)
19976           - Now sends a Refresh() to all child windows when Refresh() is called
19977
19978 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
19979
19980         * Form.cs: Added (non-functional) Opacity property
19981         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
19982
19983 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
19984         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
19985           use export MONO_THEME=nice to activate it.
19986           Currently supported controls:
19987           - Button
19988           - ComboBox
19989           - ScrollBar
19990           - TabControl (TabAlignment.Top only, other will follow)
19991         * ThemeEngine.cs: Add theme nice
19992         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
19993           if enabled
19994
19995 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
19996
19997         * Splitter.cs: Resize docked control and its neighbor.
19998
19999 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20000         -- Making Windows with Menus layout correctly --
20001         * Form.cs : The first leg of the fix
20002                 Menu setter - adjust Client Size as needed to make space for the menu
20003                 SetClientSizeCore - doesn't call base version to be able to pass the 
20004                         menu handle to XplatUI.CalculateWindowRect
20005         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
20006         * XplatUIX11.cs: The critical second leg of the fix
20007                 GetWindowPos needs to use a recalculated client_rect
20008                 so that resizing the window doesn't break layout of child controls. 
20009                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
20010                 Lots of \t\n killed
20011
20012 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
20013
20014         * Label.cs: Now properly recalculates width and height on Font and Text
20015           changes if AutoSize is set
20016
20017 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20018         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
20019
20020 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
20021
20022         * ImageList.cs: Makes ToString method compatible with MS
20023
20024 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
20025
20026         * MenuAPI.cs: fixes bug 75716
20027
20028 2005-08-11 Umadevi S <sumadevi@novell.com>
20029         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
20030
20031 2005-08-11 Umadevi S <sumadevi@novell.com>
20032         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
20033
20034 2005-08-10  Umadevi S <sumadevi@novell.com>
20035         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
20036
20037 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
20038
20039         * Menu.cs: fixes bug 75700
20040         * MenuAPI.cs: fixes navigation issues
20041
20042 2005-08-09  Umadevi S <sumadevi@novell.com>
20043         * CheckedListBox.cs - simple fix for GetItemChecked.
20044
20045 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
20046
20047         * ComboBox.cs: Serveral fixes
20048         * ListBox.cs: Serveral fixes
20049
20050 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20051
20052         * ComboBox.cs: Fixes FindString methods and GetItemHeight
20053         * ListBox.cs: Fixes FindString methods
20054
20055 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20056
20057         * DataGrid.cs: fixes bugs exposed by new tests
20058
20059 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
20060
20061         * Mime.cs: Compile Mono assembly references only if compiling
20062           with Mono (Allows to build with VS.Net again)
20063
20064 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
20065
20066         * Control.cs (PaintControlBackground): Draw background image
20067         corrrectly.
20068         (CheckForIllegalCrossThreadCalls): Stubbed.
20069         
20070         * Form.cs (OnCreateControl): Center when should be centered.
20071         
20072         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
20073
20074 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
20075
20076         * Binding.cs: Binding to properties should be case unsensitive
20077
20078 2005-07-18 vlindos@nucleusys.com
20079
20080         * DataGrid.cs: fixes setmember order
20081
20082 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
20083
20084         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
20085         * FileDialog.cs: FileDialog is now resizable and uses the new
20086           MimeIconEngine
20087
20088 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
20089
20090         * DataGridTextBoxColumn.cs: default value
20091         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
20092         * GridTableStylesCollection.cs: fixes checking MappingName
20093         * DataGridDrawingLogic.cs: fixes drawing logic issues
20094         * DataSourceHelper.cs: rewritten to make compatible with more data sources
20095         * DataGrid.cs: fixes    
20096
20097 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
20098
20099         * MimeGenerated.cs: Use case sensitive comparer for
20100           NameValueCollections
20101
20102 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
20103
20104         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
20105         * ThemeWin32Classic.cs: bug fixes, code refactoring
20106         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
20107         * DataGrid.cs: bug fixes, code refactoring
20108         * DataGridTextBox.cs: bug fixes, code refactoring
20109         * DataGridColumnStyle.cs:  bug fixes, code refactoring
20110         * Theme.cs:  bug fixes, code refactoring
20111
20112 2005-07-01  Peter Bartok  <pbartok@novell.com> 
20113
20114         * TextControl.cs: Quick fix for the reported crash on ColorDialog
20115           and other text box usage
20116
20117 2005-07-01  Jackson Harper  <jackson@ximian.com>
20118
20119         * TabControl.cs: Make sure the bottom of the tab covers the pages
20120         border.
20121
20122 2005-06-30  Peter Bartok  <pbartok@novell.com> 
20123
20124         * Form.cs (ShowDialog): Assign owner of the dialog
20125         * TextBoxBase.cs: Always refresh caret size when deleting, caret
20126           might have been moved to a tag with different height
20127
20128 2005-06-30  Jackson Harper  <jackson@ximian.com>
20129
20130         * Form.cs: Don't create an infinite loop when setting focus
20131         * MenuItem.cs: Don't dirty the parents if we don't have any
20132
20133 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
20134
20135         * LibSupport.cs: Rename
20136
20137 2005-06-29  Peter Bartok  <pbartok@novell.com>
20138
20139         * TextBoxBase.cs: Re-align caret after deleting a character
20140         * TextControl.cs:
20141           - DeleteChars(): Ensure that tag covers the provided position
20142           - StreamLine(): Drop reference for dropped tag
20143
20144 2005-06-29  Peter Bartok  <pbartok@novell.com> 
20145
20146         * TextControl.cs: 
20147           - Selections now work properly, anchoring at the initial location
20148             and properly extending in either direction (SetSelectionToCaret(),
20149             SetSelectionStart() and SetSelectionEnd())
20150           - No longer redraws the whole control on selection change, now
20151             calculates delta between previous and new selection and only
20152             invalidates/redraws that area
20153           - Fixed FindPos() math off-by-one errors
20154           - Changed DeleteChars() to verify the provided tag covers the
20155             provided position, selections may have a tag that doesn't cover
20156             the position if the selection is at a tag border
20157           - Fixed off-by-one errors in DeleteChars()
20158           - Added missing streamlining check in DeleteChars() to remove
20159             zero-length tags
20160           - Implemented Invalidate() method, now properly calculates exposures
20161             between two given lines/positions
20162           - Implemented SetSelection()
20163           - Obsoleted and removed FixupSelection()
20164           - Improved RecalculateDocument() logic, removing code duplication
20165
20166 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20167
20168         * LibSupport.cs: changes to match different input/output arguments.
20169
20170 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20171
20172         * LibSupport.cs: added libsupport.so init routine.
20173
20174 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
20175         
20176         * ControlBindingsCollection.cs
20177                 - Throws an exception on null datasource when adding
20178                 - Checks for duplicated bindings when adding
20179
20180 2005-06-28  Jackson Harper  <jackson@ximian.com>
20181
20182         * TreeView.cs (OnKeyDown): Support left and right properly
20183         (navigates as well as expanding and collapsing.
20184         - Add support for Multiply, this expands all the selected nodes
20185         children.
20186         - Fix some tabbing.
20187
20188 2005-06-28  Jackson Harper  <jackson@ximian.com>
20189
20190         * TreeView.cs: Implement keyboard navigation, currently supports,
20191         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
20192         support for toggling checkboxes with the space bar.
20193
20194 2005-06-28  Jackson Harper  <jackson@ximian.com>
20195
20196         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
20197         tree.
20198
20199 2005-06-28  Jackson Harper  <jackson@ximian.com>
20200
20201         * TreeView.cs: Add missing event.
20202
20203 2005-06-27  Peter Bartok  <pbartok@novell.com> 
20204
20205         * TextControl.cs:
20206           - Made line ending size configurable (now allows for counting 
20207             lineendings as \n or \r\n)
20208           - Added margin to viewport to keep caret visible on right side
20209           - Fixed translation routines for line/pos to documentpos to consider
20210             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
20211           - Fixed some line-endings to be unix style
20212           - Fixed Document.FormatText to perform it's calculations 1-based
20213           - Added descriptions for a few methods that might otherwise get 
20214             used wrong
20215           - Added NOTE section with some basic conventions to remember at 
20216             the top of the file
20217           - Major fixup for RichTextBox selection drawing:
20218             * Fixed crashes when multiple tags on a single line were selected
20219             * fixed selection box drawing not overlaying text
20220             * fixed bogus offset calculation for tags not starting at index 1
20221             * Switched behaviour from using multiple Substrings of a 
20222               StringBuilder.ToString() to using multiple 
20223               StringBuilder.ToString(start, length) statements, hoping this is
20224               faster (kept original version commented out in the code, in case
20225               original version was faster)
20226         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
20227           alignment != Left
20228         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
20229           call it as well
20230
20231 2005-06-27  Jackson Harper  <jackson@ximian.com>
20232
20233         * TabControl.cs: Move to the left and right with the arrow
20234         keys. These keys don't cycle beyond first and last like
20235         tab. Refresh all the tabs when scrolling them to the left or
20236         right.
20237
20238 2005-06-27  Jackson Harper  <jackson@ximian.com>
20239
20240         * TabControl.cs:
20241           - ToString: Added method
20242           - CreateParams: Remove TODO and comment
20243           - OnKeyDown: Cycle through bounds properly.
20244           - SelectedIndex: Scroll to the right or left if we need to
20245           display the newly selected tab.
20246
20247 2005-06-23  Jackson Harper  <jackson@ximian.com>
20248
20249         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
20250         set.
20251
20252 2005-06-23  Jackson Harper  <jackson@ximian.com>
20253
20254         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
20255         CTRL-SHIFT-TAB, and HOME, END are there any others?
20256
20257 2005-06-23  Jackson Harper  <jackson@ximian.com>
20258
20259         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
20260
20261 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20262         
20263         * DataGridTextBoxColumn.cs: fixes and enhancements
20264         * ThemeWin32Classic.cs: fixes and enhancements
20265         * DataGridBoolColumn.cs:  fixes and enhancements
20266         * DataGridDrawingLogic.cs:  fixes and enhancements
20267         * CurrencyManager.cs: fixes and enhancements
20268         * DataGrid.cs: fixes and enhancements
20269         * DataGridColumnStyle.cs:  fixes and enhancements
20270
20271 2005-06-22  Jackson Harper  <jackson@ximian.com>
20272
20273         * TabControl.cs: Add some missing methods that just call into the
20274         base. Make the TabPageCollection's IList interface behave in the
20275         same manner as the MS implementation.
20276
20277 2005-06-22  Peter Bartok  <pbartok@novell.com> 
20278
20279         * TextControl.cs: Added sanity check
20280         * TextBoxBase.cs: 
20281           - Fixed wrapping behaviour, don't set wrap on single line controls
20282             (this fixes the breakage of colordialog introduced in an earlier
20283              checkin)
20284           - Added rudimentary support for autoscrolling right-aligned controls
20285             (still needs fixing, also, center alignment scroll is missing)
20286
20287 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20288         
20289         * ScrollBar.cs: Fixes thumbpos on Maximum values
20290
20291 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
20292         
20293         * PropertyGridView.cs: Pass context information to UITypeEditors 
20294
20295 2005-06-21  Peter Bartok  <pbartok@novell.com> 
20296
20297         * TextBoxBase.cs:
20298           - Now calling PositionCaret with absolute space coordinates
20299           - Enabled vertical scrolling
20300           - Better tracking of scrollbar changes, tied into WidthChange
20301             event
20302           - Improved cursor tracking
20303           - Removed debug output
20304         * TextControl.cs:
20305           - PositionCaret coordinates are now works in absolute space, not 
20306             the canvas
20307           - Improved tracking of document size
20308           - Added events for width and height changes
20309
20310 2005-06-21  Peter Bartok  <pbartok@novell.com>
20311
20312         * Form.cs: Set focus to active control when form is activated
20313         * TextControl.cs: 
20314           - Added word-wrap functionality to RecalculateLine() 
20315           - Added some short function descriptions for VS.Net to aid in
20316             writing dependent controls
20317           - Added Caret property, returning the current coords of the caret
20318           - Added ViewPortWidth and ViewPortHeight properties
20319           - Added Wrap property
20320           - Added CaretMoved event
20321           - Removed some old debug code
20322           - Split() can now create soft splits
20323           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
20324           - Added method to format existing text
20325           - Fixed size/alignment calculations to use viewport
20326           - RecalculateDocument now can handle changing line-numbers while
20327             calculating lines
20328
20329         * TextBox.cs:
20330           - Added some wrap logic, we don't wrap if alignment is not left
20331           - Added casts for scrollbar var, base class switched types to
20332             also support RichTextBoxA
20333           - Implemented handling of scrollbar visibility flags
20334
20335         * TextBoxBase.cs:
20336           - Switched scrollbars type to RichTextBoxScrollBars to support
20337             RichTextBox
20338           - Added tracking of canvas width/height
20339           - Switched scrollbars to be not selectable (to keep focus on text)
20340           - Added central CalculateDocument() method to handle all redraw
20341             requirements
20342           - Added ReadOnly support
20343           - Added WordWrap support
20344           - Fixed handling of Enter key (we now treat it as a DialogKey)
20345           - Fixed caret positioning when h or v scroll is not zero
20346           - Fixed placing/generation of vertical scrollbar
20347           - Added CalculateScrollBars() method to allow updating scrollbar
20348             limits and visibility
20349           - Fixed handling of horizontal scroll
20350           - Added handling of vertical scroll
20351           - Implemented auto-'jump' when caret moves to close to a left or
20352             right border and there is text to be scrolled into view (currently
20353             there's the potential for a stack overflow, until a bug in
20354             scrollbar is fixed)
20355
20356 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
20357         
20358         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
20359
20360 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
20361
20362         * Mime.cs:
20363         - added inodes.
20364         - return application/x-zerosize for files with size zero
20365           (if no extension pattern matches).
20366         - check matches collection for strings too.
20367         - return only the first mime type if the name value
20368           collection has more than one mime type.
20369
20370 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
20371         
20372         * PropertyGrid.cs: Cleaned up some TODOs
20373         * PropertyGridView.cs: Added support for UITypeEditors
20374
20375 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20376         
20377         * DataGrid.cs: clears cached value
20378
20379 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20380
20381         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
20382         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
20383         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
20384         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
20385         
20386 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
20387
20388         * ThemeWin32Classic.cs: fixes colour
20389
20390 2005-06-15  Peter Bartok  <pbartok@novell.com>
20391
20392         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
20393         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
20394         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
20395         * Control.cs: Added some MWFCategory and MWFDescription attributes
20396         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
20397
20398 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
20399
20400         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
20401         usage
20402
20403 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
20404
20405         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
20406         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
20407         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
20408         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
20409         * DataGrid.cs: default datagrid settings for Default Styles, fixes
20410         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
20411
20412 2005-06-13  Jackson Harper  <jackson@ximian.com>
20413
20414         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
20415         isn't printed when the user enables dropping. (X11 does accept
20416         drops).
20417         
20418 2005-06-13  Jackson Harper  <jackson@ximian.com>
20419
20420         * TreeView.cs: Remove some TODOS.
20421
20422 2005-06-13  Jackson Harper  <jackson@ximian.com>
20423
20424         * Form.cs: Hook into the mdi framework.
20425         * MdiClient.cs: Use the base control collections add method so
20426         parents get setup correctly. Set the default back colour and dock
20427         style.
20428         * MdiChildContext.cs: New class, this bad actor handles an
20429         instance of an MDI window. Right now there is only basic
20430         support. You can drag, close, and resize windows. Minimize and
20431         Maximize are partially implemented.
20432
20433 2005-06-13  Jackson Harper  <jackson@ximian.com>
20434
20435         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
20436         freaky when both vals are negative. NOTE: There are probably other
20437         places in XplatUIX11 that this needs to be done.
20438
20439 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
20440
20441         * DataGrid.cs: implement missing methods, move KeyboardNavigation
20442         * DataGridColumnStyle.cs: fixes signature
20443
20444 2005-06-12  Jackson Harper  <jackson@ximian.com>
20445
20446         * XplatUIX11.cs: Use sizing cursors similar to the ones on
20447         windows.
20448
20449 2005-06-11  Jackson Harper  <jackson@ximian.com>
20450
20451         * StatusBarPanel.cs: Signature cleanups. Implement
20452         BeginInit/EndInit.
20453
20454 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
20455
20456         * DataGridTextBoxColumn.cs: Honors aligment
20457         * GridColumnStylesCollection.cs: Contains is case unsensitive
20458         * GridTableStylesCollection.cs: several fixes
20459         * DataGridTableStyle.cs: default column creation
20460         * DataGridDrawingLogic.cs: fixes
20461         * CurrencyManager.cs: ListName property
20462         * DataGrid.cs: multiple styles support
20463         * DataGridColumnStyle.cs: fixes
20464         
20465
20466 2005-06-10  Peter Bartok  <pbartok@novell.com>
20467
20468         * Control.cs(Select): Moved SetFocus call to avoid potential
20469           loops if controls change the active control when getting focus
20470         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
20471           the up/down buttons
20472
20473 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
20474
20475         * ImageListConverter.cs: Implemented
20476
20477 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20478
20479         * MonthCalendar.cs: Wired in NumericUpDown control for year
20480
20481 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20482
20483         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
20484           DoubleClick events, since they are not meant to be fired.
20485
20486 2005-06-09  Peter Bartok  <pbartok@novell.com>
20487
20488         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
20489           Jonathan's standalone controls into MWF, implemented missing
20490           events, attributes and methods; added xxxAccessible classes
20491         * AccessibleObject.cs: Made fields internal so other classes
20492           can change them if needed
20493
20494 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
20495
20496         * UpDownBase.cs: Complete implementation
20497         * NumericUpDown.cs: Complete implementation
20498         * DomainUpDown.cs: Complete implementation
20499
20500 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
20501
20502         * DataGridTextBoxColumn.cs: drawing fixes
20503         * DataGridCell.cs: fixes ToString method to match MSNet
20504         * DataGridTableStyle.cs: fixes
20505         * DataGridBoolColumn.cs: fixes, drawing
20506         * DataGridDrawingLogic.cs: fixes, new methods
20507         * DataGridTextBox.cs: Keyboard and fixes
20508         * DataGrid.cs:
20509                 - Keyboard navigation
20510                 - Scrolling fixes
20511                 - Row selection (single, multiple, deletion, etc)
20512                 - Lots of fixes
20513         
20514 2005-06-07  Jackson Harper  <jackson@ximian.com>
20515
20516         * ThemeWin32Classic.cs: Clear the background area when drawing
20517         buttons.
20518
20519 2005-06-06  Peter Bartok  <pbartok@novell.com>
20520
20521         * ImageListStreamer.cs: Fixed signature for GetData
20522         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
20523         * ComboBox.cs:
20524           - Added missing ChildAccessibleObject class
20525           - Added missing OnXXXFocus overrides, switched to using those
20526             instead of the event handler
20527         * Control.cs:
20528           - Added Parent property for ControlAccessibleObject
20529           - Fixed signatures
20530           - Fixed attributes
20531           - Added ResetBindings()
20532         * ListBindingConverter.cs: Implemented some methods
20533         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
20534         * ImageList.cs: Implemented basic handle scheme, removed TODOs
20535         * ContainerControl.cs: Fixed signature, now subscribing to the
20536           ControlRemoved event instead of overriding the handler, LAMESPEC
20537         * CurrencyManager.cs: Added missing attribute
20538         * MonthCalendar.cs: Added missing properties
20539
20540 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20541
20542         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
20543         
20544 2005-06-06  Gaurav Vaish and Ankit Jain
20545
20546         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
20547         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
20548         
20549 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20550
20551         * Control.cs: fixes CreateParams Width / Height.
20552
20553 2005-06-05  Peter Bartok  <pbartok@novell.com>
20554
20555         * Win32DnD.cs: Removed compilation warnings
20556
20557 2005-06-05  Peter Bartok  <pbartok@novell.com>
20558
20559         * Control.cs (CreateParams): Since we don't know if one of the
20560           properties we use is overridden, lets make sure if we fail accessing
20561           we continue with a backup plan
20562
20563 2005-06-05  Peter Bartok  <pbartok@novell.com>
20564
20565         * Win32DnD.cs:
20566           - Removed debug output
20567           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
20568             struct
20569           - Plugged resource leak
20570         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
20571           MS size
20572
20573 2005-06-05  Peter Bartok  <pbartok@novell.com>
20574
20575         * XplatUIWin32.cs: Removed DnD code
20576         * Win32DnD.cs: Implemented drop source and drop target functionality
20577
20578 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20579
20580         * UpDownBase.cs: remove duplicate addition of event, enable some code
20581         that was commented out.
20582         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
20583         Validate input when a key is pressed. It works fine now for every
20584         combination of Hexadecimal. Only missing some drawing love when sharing
20585         space with other controls.
20586
20587 2005-06-04  Peter Bartok  <pbartok@novell.com>
20588
20589         * Control.cs:
20590           - We need to pass a window for DragDrop, so enable callback events
20591           - Added DnD callback events when being a DragSource
20592         * XplatUI.cs (StartDrag): Added window handle argument
20593         * XplatUIDriver.cs (StartDrag): Added window handle argument
20594         * QueryContinueDragEventArgs: Made fields internally accessible so
20595           drivers can set them
20596         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
20597           can set them
20598
20599 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
20600
20601         * DataGridTextBoxColumn.cs: column text editing
20602         * DataGridTableStyle.cs: Respect columns styles created by the user
20603         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
20604         * DataGridBoolColumn.cs: bool column editing
20605         * DataGrid.cs: fixes to scrolling, properties, etc
20606         * DataGridTextBox.cs: handle keyboard
20607         * DataGridColumnStyle.cs: fixes
20608
20609 2005-06-02  Jackson Harper  <jackson@ximian.com>
20610
20611         * ImageListStreamer.cs: Somewhat broken implementation of
20612         GetObjectData. The RLE needs some work to match MS properly.
20613
20614 2005-06-02  Jackson Harper  <jackson@ximian.com>
20615
20616         * X11Dnd.cs: Attempting to keep at least one file in MWF
20617         monostyled.
20618
20619 2005-06-02  Peter Bartok  <pbartok@novell.com>
20620
20621         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
20622           that way
20623
20624 2005-06-02  Peter Bartok  <pbartok@novell.com>
20625
20626         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
20627         * XplatUI.cs: Added DoDragDrop() method
20628         * XplatUIDriver.cs: Added DoDragDrop() method
20629
20630 2005-06-02  Jackson Harper  <jackson@ximian.com>
20631
20632         * Splitter.cs: Implement BorderStyle.
20633
20634 2005-06-02  Jackson Harper  <jackson@ximian.com>
20635
20636         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
20637         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
20638         X11 using XDND.
20639
20640 2005-06-02  Peter Bartok  <pbartok@novell.com>
20641
20642         * DataObject.cs:
20643           - Added Data setter
20644           - Fixed broken insertion code for SetData, now also
20645             overwrites any existing entry of the same format name
20646         * Hwnd.cs: Added list of pointers that automatically gets
20647           freed when the window is disposed
20648         * XplatUI.cs: Call driver initialization method when loading
20649           a driver
20650         * Control.cs:
20651           - OnDragLeave takes EventArgs, not DragEventArgs
20652           - Added setting of WS_EX_ACCEPTFILES style when dropping is
20653             supported
20654           - Forces style update when drop state changes
20655         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
20656           not perfect since we cannot (yet) call the IDataObject.GetData()
20657           method, we keep getting 0x80004005 error, dunno why)
20658
20659 2005-06-02  Peter Bartok  <pbartok@novell.com>
20660
20661         * DragEventArgs.cs: Make fields internal so we can cache the
20662           object and re-set the fields from XplatUI
20663
20664 2005-06-02  Jackson Harper  <jackson@ximian.com>
20665
20666         * Control.cs: Add some internal methods so the DnD subsystem can
20667         raise DnD events. Also call into the driver when AllowDrop is set.
20668         * XplatUI.cs:
20669         * XplatUIDriver.cs: New method for setting whether or not a window
20670         is allowed to accept drag and drop messages.
20671                 
20672 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
20673         
20674         * ScrollBar.cs: Make sure that values sent in Scroll events
20675         are always between Maximum and Minimum.
20676
20677 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
20678
20679         * Menu.cs: Call MenuChanged when menuitem visibility has been
20680         changed.
20681         * MenuItem.cs: Rebuild menu when item is (not) visible.
20682         * MainMenu.cs: MainMenu has special MenuChanged.
20683         * Theme.cs: Caption and FrameBorderSize are not fixed.
20684         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
20685         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
20686         * XplatUIX11.cs,
20687         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
20688         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
20689
20690 2005-05-30  Jackson Harper  <jackson@ximian.com>
20691
20692         * DataFormat.cs: We can't statically initialize this stuff because
20693         it calls into the xplatui and could create a loop. So we lazy init
20694         it.
20695
20696 2005-05-28  Jackson Harper  <jackson@ximian.com>
20697
20698         * Control.cs: Proper implementation of Product(Name/Version).
20699
20700 2005-05-27  Jackson Harper  <jackson@ximian.com>
20701
20702         * DataObject.cs: Dont crash if no data is found.
20703
20704 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
20705         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
20706                 as per status page, guessing it should be set to true
20707
20708 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
20709
20710         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
20711         * DataGridTableStyle.cs: set proper formatting text, def header text
20712         * ThemeWin32Classic.cs: new themable paramaters
20713         * DataGridBoolColumn.cs: paint check box, get data, fixes
20714         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
20715         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
20716         * DataGridColumnStyle.cs: fixes
20717         * Theme.cs: new themable paramaters
20718                 
20719 2005-05-26  Peter Bartok  <pbartok@novell.com>
20720
20721         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
20722
20723 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20724         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
20725
20726 2005-05-24  Peter Bartok  <pbartok@novell.com>
20727
20728         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
20729           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
20730           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
20731           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
20732           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
20733           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
20734           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
20735           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
20736           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
20737           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
20738           missing attributes, etc
20739         * DataGridPreferredColumnWidthTypeConverter.cs: Added
20740
20741 2005-05-24  Peter Bartok  <pbartok@novell.com>
20742
20743         * Help.cs: Added, implemented trivial functions, throws up MessageBox
20744           when user tries to get help
20745         * DataObject.cs, DataFormats.cs, LinkArea.cs,
20746           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
20747           to suppress warnings
20748         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
20749           avoid unreachable code warning
20750
20751 2005-05-20  Peter Bartok  <pbartok@novell.com>
20752
20753         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
20754
20755 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20756
20757         * DataGridTextBoxColumn.cs: Basic painting methods
20758         * DataGridTableStyle.cs: Set table style in the column
20759         * ThemeWin32Classic.cs: Use Theme for colors
20760         * DataGridDrawingLogic.cs: Implement more drawing
20761         * DataGrid.cs: drawing, theming, enhacements, fixes
20762         * DataGridColumnStyle.cs: fixes, drawing
20763         * Theme.cs: theming for Datagrid
20764
20765 2005-05-20  Peter Bartok  <pbartok@novell.com>
20766
20767         * Cursor.cs: Implemented GetObjectData() method
20768
20769 2005-05-20  Peter Bartok  <pbartok@novell.com>
20770
20771         * Cursors.cs: Added setting of cursor name
20772         * Cursor.cs:
20773           - Implemented constructors
20774           - Implemented Draw and DrawStretched
20775           - Implemented Current property
20776           - Implemented == and != operators
20777           - Implemented Dispose()
20778           - Implemented ToString
20779           - Added missing attributes
20780         * XplatUIX11.cs:
20781           - Added missing reset for OverrideCursor when DoEvents is called
20782           - Fixed creation of cursor, logic was wrong
20783         * XplatUIWin32.cs:
20784           - Added missing reset for OverrideCursor when DoEvents is called
20785           - Fixed creation of cursor, bit arrays were swapped
20786         * Clipboard.cs: Removed obsolete MonoTODO attribute
20787
20788 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20789
20790         * ComboBox.cs: fixes OnSelectedItemChanged
20791         * ControlBindingsCollection.cs: fixes item range check
20792
20793 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20794
20795         * UpDownBase.cs:
20796                 - Calc preferred height properly
20797                 - Implement missing properties
20798                 
20799         * NumericUpDown.cs: Implement missing events
20800
20801 2005-05-19  Jackson Harper  <jackson@ximian.com>
20802
20803         * TabControl.cs: New method that resizes the tab pages before
20804         redrawing them. This as needed as the control is double buffered
20805         and sizing will not be recalculated unless ResizeTabPages is
20806         called.
20807         * TabPage.cs: Set base.Text instead of Text in the constructor so
20808         that UpdateOwner does not get called. Use the new Redraw method of
20809         TabControl instead of Refresh so the sizing is recalculated.
20810         * ThemeWin32Classic.cs: Draw the text for button tabs.
20811
20812 2005-05-19  Jackson Harper  <jackson@ximian.com>
20813
20814         * Control.cs: Paint control background images. Fix typo where
20815         PaintControlBackground was not getting called correctly.
20816
20817 2005-05-19  Peter Bartok  <pbartok@novell.com>
20818
20819         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
20820           I can investigate, apparently I broke FileDialog
20821
20822 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
20823
20824         * AxHost.cs: Some simple properties.
20825         * Control.cs: window must be accessible after ctor.
20826         * Form.cs: Added TransparencyKey property.
20827         * TextBoxBase.cs: Implemented Clear. Text property can be null.
20828         * XplatUIWin32.cs: SetBorderStyle implemented.
20829
20830 2005-05-18  Peter Bartok  <pbartok@novell.com>
20831
20832         * DataObject.cs: Entries are not global but particular to the
20833           DataObject, now it behaves that way
20834         * XplatUIWin32.cs: Implemented Clipboard methods
20835         * Clipboard.cs: Implemented
20836         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
20837         * XplatUIOSX.cs: Updated to final clipboard prototypes
20838         * XplatUIX11.cs: Implemented Clipboard methods
20839         * XplatUIDriver.cs: Updated to final clipboard prototypes
20840         * XplatUIStructs.cs:
20841           - Added BITMAPINFOHEADER struct
20842           - Added ClipboardFormats enum
20843         * X11Structs.cs:
20844           - Added ClipboardStruct
20845           - Added Atom enum items for clipboard types
20846           - Fixed atom types for Selection event structures
20847         * DataFormats.cs:
20848           - Added internal properties and methods for drivers to enumerate
20849             all known formats
20850           - Switched initialization method to allow drivers to assign their
20851             own IDs even for the MS predefined clipboard IDs
20852         * XplatUI.cs: Updated to final clipboard interface
20853
20854 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20855         * PropertyGridView.cs: Fixed compiler warnings.
20856
20857 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20858         * PropertyGrid.cs: Added some event calls
20859         * PropertyGridView.cs: Change drawing code to use double buffering
20860         * PropertyGridTextBox.cs: Changed Text property name
20861         * GridItem.cs: Added Bounds property.
20862         * GridEntry.cs: Added Bounds property.
20863
20864 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
20865
20866         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
20867         since GetType() may not return the correct type if the object is
20868         a remoting proxy.
20869
20870 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
20871
20872         * TreeNodeCollection.cs: fixes get/set item ranges
20873         
20874 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20875
20876         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
20877                 
20878 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20879
20880         * ComboBox.cs: Fix item range comparation
20881         * ListView.cs: Fix item range comparation
20882
20883 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
20884
20885         * FontDialog.cs:
20886           - Clear example panel when OnPaint is called
20887           - Better solution for displaying the example panel text
20888           - Select default indexes in the ListBoxes
20889
20890 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20891
20892         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
20893
20894 2005-05-11  Peter Bartok  <pbartok@novell.com>
20895
20896         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
20897         * SelectionRangeConverter.cs: Implemented
20898         * PropertyGrid.cs: Fixed attribute value
20899         * Control.cs:
20900           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
20901           - Added Sebastien Pouliot's CAS Stack Propagation fixes
20902         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
20903           that's common to all drivers. First methods to go there are
20904           Sebastien Pouliot's CAS Stack Propagation helper methods
20905         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
20906           Sebastien Pouliot for CAS Stack Propagation
20907
20908 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20909
20910         * OSXStructs.cs:
20911           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
20912
20913 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
20914
20915         * DataGridTextBoxColumn.cs: fixed some members
20916         * GridColumnStylesCollection.cs: indexed column is case insensitive
20917         * DataGridTableStyle.cs: fixes
20918         * ThemeWin32Classic.cs: add new theme parameter
20919         * Theme.cs: add new theme parameter
20920         * DataGridDrawingLogic.cs: Datagrid's drawing logic
20921         * DataGrid.cs: fixes, new internal properties, etc.
20922         * DataGridColumnStyle.cs: allows to set grid value
20923         *
20924
20925 2005-05-10  Peter Bartok  <pbartok@novell.com>
20926
20927         * AccessibleObject.cs:
20928           - Removed MonoTODO attribute on help, method is correct
20929           - Fixed Bounds property
20930         * AxHost.cs: Moved MonoTODO
20931         * ButtonBase.cs: Now setting AccessibleObject properties
20932         * RadioButton.cs: Setting proper AccessibleObject role
20933         * CheckBox.cs: Setting proper AccessibleObject role
20934         * ControlBindingsCollection.cs: Added properties, methods and attributes
20935         * DataFormats.cs: Fixed awkward internal API, and changed to enable
20936           userdefined DataFormats.Format items as well
20937         * ListControl.cs: Removed data_member from the public eye
20938         * OpenFileDialog.cs:
20939           - Made class sealed
20940           - Added missing attributes
20941         * SaveFileDialog.cs: Added missing attributes
20942         * ImageListStreamer.cs: Fixed code that caused warnings
20943         * LinkLabel.cs: Removed unreachable code
20944         * TreeView.cs: Fixed code that caused warnings
20945         * PropertyGridView.cs: Fixed code that caused warnings
20946         * GridColumnStylesCollection.cs: Added missing attributes
20947         * GridTableStylesCollection: Added missing attribute
20948         * PropertyManager: Added .ctor
20949         * SecurityIDType: Added
20950         * DataObject.cs: Implemented class
20951         * LinkArea.cs: Added missing attribute
20952
20953 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
20954
20955         * RadioButton.cs: call base method to allow to fire OnClick event
20956         * UpDownBase.cs: OnMouseUp call base method
20957         * CheckedListBox.cs: call base method before returning
20958         * TrackBar.cs: call base method before returning
20959         
20960
20961 2005-05-10  Peter Bartok  <pbartok@novell.com>
20962
20963         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
20964           for messages
20965
20966 2005-05-10  Peter Bartok  <pbartok@novell.com>
20967
20968         * DataFormats.cs: Implemented
20969         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
20970           XplatUIX11.cs: Added Clipboard APIs
20971         * XplatUIWin32.cs: Implemented Clipboard APIs
20972         * FolderBrowserDialog.cs: Added missing event, attributes
20973
20974 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
20975
20976         * CheckBox.cs: call base method to allow to fire OnClick event
20977
20978 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
20979
20980         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
20981
20982 2005-05-06  Peter Bartok  <pbartok@novell.com>
20983
20984         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
20985         * Screen.cs: Implemented
20986         * HelpNavigator.cs: Added
20987         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
20988           property
20989         * HelpProvider.cs: Implemented all we can do until we have a CHM
20990           help library (which means that "What's This" does work now)
20991
20992 2005-05-06  Jackson Harper  <jackson@ximian.com>
20993
20994         * XplatUIX11.cs: Fix waking up the main loop.
20995                 
20996 2005-05-05  Peter Bartok  <pbartok@novell.com>
20997
20998         * XplatUI.cs: Updated revision
20999         * Form.cs: Removed enless loop
21000         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
21001         * Label.cs (OnPaint): Added call to base.OnPaint()
21002         * ToolTip.cs: Made ToolTipWindow reusable for other controls
21003         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
21004         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
21005         * AxHost.cs: Added
21006         * ButtonBase.cs: Moved base.OnPaint() call to end of method
21007         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
21008           to ToolTip.ToolTipWindow for drawing and size methods; this allows
21009           reuse of ToolTipWindow by other controls
21010         * SizeGrip.cs: Moved base.OnPaint() call to end of method
21011         * XplatUIX11.cs: Now clipping drawing area (experimental)
21012         * PictureBox.cs: Moved base.OnPaint() call to end of method
21013         * Theme.cs: Fixed ToolTip abstracts to match new format
21014         * ErrorProvider.cs: Implemented
21015
21016 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
21017
21018         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
21019         * LinkLabel.cs:
21020                 - Adds cursors
21021                 - Handles focus
21022                 - Implements LinkBehavior
21023                 - Fixes many issues
21024
21025 2005-05-03  Jackson Harper  <jackson@ximian.com>
21026
21027         * ListView.cs: Calculate the scrollbar positioning on resize and
21028         paint, so they get put in the correct place.
21029
21030 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
21031
21032         * ColorDialogs.cs: The small color panels are now handled by
21033           SmallColorControl. This fixes drawing of the focus rectangle
21034           and adds a 3D border.
21035
21036 2005-05-03  Peter Bartok  <pbartok@novell.com>
21037
21038         * Control.cs: Modified version of Jonathan Chamber's fix for
21039           double-buffering
21040
21041 2005-05-03  Jackson Harper  <jackson@ximian.com>
21042
21043         * ListView.cs: Remove redraw variable. Control now handles whether
21044         or not a redraw needs to be done, and will only raise the paint
21045         event if redrawing is needed.
21046
21047 2005-05-03  Jackson Harper  <jackson@ximian.com>
21048
21049         * Splitter.cs: No decorations for the splitter form. Cache the
21050         hatch brush.
21051
21052 2005-05-03  Jackson Harper  <jackson@ximian.com>
21053
21054         * TreeView.cs: Use dashed lines to connect nodes. Use the
21055         ControlPaint method for drawing the focus rect instead of doing
21056         that in treeview.
21057
21058 2005-05-02  Peter Bartok  <pbartok@novell.com>
21059
21060         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
21061
21062 2005-04-29  Jackson Harper  <jackson@ximian.com>
21063
21064         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
21065         entire image buffer. Just clear the clipping rectangle.
21066
21067 2005-04-29  Jackson Harper  <jackson@ximian.com>
21068
21069         * ThemeWin32Classic.cs: Don't draw list view items that are
21070         outside the clipping rectangle.
21071
21072 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
21073
21074         * ListBox.cs: added horizontal item scroll
21075
21076 2005-04-29  Jackson Harper  <jackson@ximian.com>
21077
21078         * ThemeWin32Classic.cs: Remove some old debug code that was
21079         causing flicker with the new double buffering code.
21080
21081 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
21082
21083         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
21084         behave like combobox and comboboxlist (still not sure if this is
21085         correct though).
21086
21087 2005-04-28  Jackson Harper  <jackson@ximian.com>
21088
21089         * ThemeWin32Classic.cs: Don't fill the middle of progress
21090         bars. This fills areas outside of the clip bounds that don't need
21091         to be filled.
21092
21093 2005-04-28  Jackson Harper  <jackson@ximian.com>
21094
21095         * Control.cs: Don't expose functionality to touch the image buffers.
21096         * ProgressBar.cs:
21097         * ListView.cs: We do not need to (and no longer can) manipulate
21098         the image buffers directly. All of this is handled by Control.
21099
21100 2005-04-28  Peter Bartok  <pbartok@novell.com>
21101
21102         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
21103           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
21104           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
21105
21106 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21107
21108         * Combobox:
21109                 - Adjust control's height for non-simple comboboxes (bug fix)
21110                 - Remove dead code
21111         * MenuAPI.cs: remove unused var
21112         * ScrollBar.cs: remove unsed var
21113                  
21114         * ListBox.cs: unselect items when clearing
21115
21116 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21117
21118         * ListControl.cs: honors OnPositionChanged and default Selected Item
21119         * ListBox.cs: unselect items when clearing
21120
21121 2005-04-27  Jackson Harper  <jackson@ximian.com>
21122
21123         * X11Keyboard.cs: Initialize a default keyboard and give a warning
21124         if a "correct" keyboard is not found. This will make us not crash,
21125         but might give some users bad keyboard layouts...seems to be the
21126         same thing rewind does.
21127
21128 2005-04-27  Jackson Harper  <jackson@ximian.com>
21129
21130         * BindingManagerBase.cs: Attach the current/position changed
21131         handlers to their respective events.
21132
21133 2005-04-27  Jackson Harper  <jackson@ximian.com>
21134
21135         * Control.cs: Make sure that the first WM_PAINT does a full draw,
21136         not just a blit.
21137         * ThemeWin32Classic.cs: Don't fill the background for picture
21138         boxes. This could overright user drawing.
21139         * ComboBox.cs: Just fill the clipping rect not the entire client
21140         rect when drawing the background. This prevents pieces of the
21141         image buffer from getting overwritten and is theoretically faster.
21142
21143 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
21144
21145         * ComboBox.cs: Databinding support fixes, fire missing events
21146         * ListControl.cs: implement missing methods and properties, fixes
21147         * ThemeWin32Classic.cs: Databiding support on Drawing
21148         * CheckedListBox.cs: Databinding support fixes, fire missing events
21149         * ListBox.cs: Databinding support fixes, fire missing events
21150         
21151 2005-04-25  Peter Bartok  <pbartok@novell.com>
21152
21153         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
21154
21155 2005-04-25  Jackson Harper  <jackson@ximian.com>
21156
21157         * TreeView.cs: Use the horizontal scrollbars height not width when
21158         determining how much of the client area is available.
21159
21160 2005-04-25  Jackson Harper  <jackson@ximian.com>
21161
21162         * Control.cs: Double buffering is handled differently now. As per
21163         the spec, the extra buffer is created in the WM_PAINT message and
21164         passed down to the control's drawing code.
21165         * GroupBox.cs:
21166         * Label.cs:
21167         * CheckBox.cs:
21168         * ProgressBar.cs:
21169         * RadioButton.cs:
21170         * ColorDialog.cs:
21171         * ComboBox.cs:
21172         * PropertyGridView.cs:
21173         * UpDownBase.cs:
21174         * MessageBox.cs:
21175         * MenuAPI.cs:
21176         * ListView.cs:
21177         * ButtonBase.cs:
21178         * SizeGrip.cs:
21179         * ScrollBar.cs:
21180         * ListBox.cs:
21181         * TrackBar.cs:
21182         * ToolBar.cs:
21183         * PictureBox.cs:
21184         * DateTimePicker.cs:
21185         * StatusBar.cs:
21186         * TreeView.cs: Update to new double buffering system.
21187         * MonthCalendar.cs: Uncomment block, as Capture is now
21188         working. Update to new double buffering
21189         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
21190         * PaintEventArgs.cs: New internal method allows us to set the
21191         graphics object. This is used for double buffering.
21192         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
21193         rectangle. The internal paint_area var has been removed from
21194         StatusBar. The clipping rect should be used instead.
21195         * Theme.cs: Give the PictureBox drawing method a clipping rect.
21196         * TabPage.cs: The RefreshTabs method was removed, so just call the
21197         tab controls Refresh method now.
21198         * TabControl.cs: Update to new double buffering. Make sure the
21199         handle is created before sizing the tab pages, otherwise we will
21200         get stuck in a loop.
21201
21202 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
21203
21204         * LinkLabel.cs: Fix typo, bug #74719; patch
21205           from Borja Sanchez Zamorano
21206
21207 2005-04-22  Jackson Harper  <jackson@ximian.com>
21208
21209         * TreeNode.cs: Implement Handle stuff.
21210         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
21211
21212 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
21213
21214         * DataGridTextBoxColumn.cs: call base constructors, fixes
21215         * GridColumnStylesCollection.cs: missing events, methods, and functionality
21216         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
21217         * DataGridTableStyle.cs: implements create default column styles
21218         * DataGridBoolColumn.cs: which types can handle
21219         * DataGrid.cs: missing methods, fixes, new functionality
21220         * DataGridColumnStyle.cs: fixes
21221
21222 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
21223         * FolderBrowserDialog.cs:
21224         - Use a thread to fill the TreeView
21225         - Adjusted some sizes
21226
21227 2005-04-19  Peter Bartok  <pbartok@novell.com>
21228
21229         * LinkLabel.cs: (Re-)create the pieces when setting the Text
21230           property. Fixes #74360.
21231
21232 2005-04-19  Jackson Harper  <jackson@ximian.com>
21233
21234         * XEventQueue.cs: Lock when getting the lockqueue size.
21235         * PictureBox.cs: Call base OnPaint
21236         
21237 2005-04-19  Peter Bartok  <pbartok@novell.com>
21238
21239         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
21240           messages were no longer being processed (this broke BeginInvoke)
21241
21242           
21243 2005-04-18  Jackson Harper  <jackson@ximian.com>
21244
21245         * TreeView.cs: buglet that caused node images to get drawn
21246         regardless of whether or not they were in the clipping rectangle.
21247
21248 2005-04-18  Jackson Harper  <jackson@ximian.com>
21249
21250         * CurrencyManager.cs: There are four rules for GetItemProperties:
21251         - If the type is an array use the element type of the array
21252         - If the type is a typed list, use the type
21253         - If the list contains an Item property that is not an object, use
21254         that property
21255         - use the first element of the list if there are any elements in
21256         the list.
21257         
21258 2005-04-17  Jackson Harper  <jackson@ximian.oom>
21259
21260         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
21261         click. This handles offsets for scrolling properly and reduces
21262         memory. Also fixed GetNode to not offset now that TopNode works
21263         properly.
21264         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
21265         
21266 2005-04-17  Jackson Harper  <jackson@ximian.com>
21267
21268         * CursorConverter.cs: Initial implementation.
21269
21270 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21271
21272         * ListControl.cs: work towards complex data binding support on ListControl
21273         * CurrencyManager.cs: work towards complex data binding support on ListControl
21274         * ListBox.cs: work towards complex data binding support on ListControl
21275
21276
21277 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21278
21279         * GridTableStylesCollection.cs: fixes name and constructor
21280         * DataGridTableStyle.cs: fixes
21281         * DataGridBoolColumn.cs: fixes names and constructors
21282         * DataGrid.cs: define methods and properties. Some init implementations
21283         * DataGridCell.cs: define methods and properties. Some init implementations
21284         * GridTablesFactory.cs: Define methods and properties
21285
21286 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
21287
21288         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
21289         graphics port changes.  We still want the coordinates in global screen
21290         coordinates.
21291
21292 2005-04-14  Jackson Harper  <jackson@ximian.com>
21293
21294         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
21295         check plus minus or checkbox clicks unless those features are enabled.
21296
21297 2005-04-14  Jackson Harper  <jackson@ximian.com>
21298
21299         * TreeView.cs: Add methods for setting the top and bottom visible
21300         nodes. TreeNode::EnsureVisible uses these methods.
21301         * TreeNode.cs: Implement EnsureVisible
21302
21303 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
21304
21305         * Form.cs: Pospone menu assignation if the window has not been created yet
21306         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
21307         size and position
21308
21309 2005-04-12  Jackson Harper  <jackson@ximian.com>
21310
21311         * TreeView.cs: Set the TopNode properly when scrolling
21312         occurs. This has the added benifit of reducing the amount of
21313         walking that needs to be done when drawing. Also removed an old
21314         misleading TODO.
21315         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
21316         
21317 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
21318
21319         * Timer.cs: fixes interval setting when the timer is already enabled
21320         
21321 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
21322
21323         * FolderBrowserDialog.cs: First approach
21324
21325 2005-04-09  Peter Bartok  <pbartok@novell.com>
21326
21327         * FolderBrowserDialog: Added
21328
21329 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
21330
21331         * LinkLabel.cs: move drawing code into the theme
21332         * ThemeWin32Classic.cs: drawing code and painting background bugfix
21333         * Theme.cs: define DrawLinkLabel method
21334
21335 2005-04-05  Jackson Harper  <jackson@ximian.com>
21336
21337         * BindingContext.cs: Use weak references so these bad actors don't
21338         stay alive longer then they need to.
21339
21340 2005-04-05  Jackson Harper  <jackson@ximian.com>
21341
21342         * ListControl.cs: Basic implementation of complex databinding.
21343         * ComboBox.cs:
21344         * ListBox.cs: Add calls to ListControl databinding methods.
21345
21346 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
21347
21348         * FileDialog.cs:
21349           - Don't change PopupButtonState to Normal when the
21350             PopupButton gets pressed several times.
21351           - Renamed ButtonPanel to PopupButtonPanel
21352
21353 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
21354
21355         * ColorDialog.cs: Use cached objects instead of creating them
21356         * LinkLabel.cs: Use cached objects instead of creating them
21357         * Splitter.cs: Use cached objects instead of creating them
21358         * FontDialog.cs: Use cached objects instead of creating them
21359         * PropertyGridView.cs: Use cached objects instead of creating them
21360         * MessageBox.cs: Use cached objects instead of creating them
21361         * FileDialog.cs: Use cached objects instead of creating them
21362         * ThemeWin32Classic.cs: Use cached objects instead of creating them
21363         * TreeView.cs: Use cached objects instead of creating them
21364         
21365 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
21366
21367         * Control.cs: use Equals to compare the font since no == op
21368         * ScrollBar.cs: use Equals to compare the font since no == op
21369
21370 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
21371
21372         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
21373
21374 2005-04-01  Jackson Harper  <jackson@ximian.com>
21375
21376         * Binding.cs: Implement IsBinding.
21377         * BindingManagerBase.cs:
21378         * PropertyManager.cs:
21379         * CurrencyManager.cs: Add IsSuspended property.
21380
21381 2005-04-01  Jackson Harper  <jackson@ximian.com>
21382
21383         * Binding.cs: Had some IsAssignableFrom calls backwards.
21384
21385 2005-04-01  Jackson Harper  <jackson@ximian.com>
21386
21387         * Binding.cs: Handle null data members when pulling data.
21388         * PropertyManager.cs: Handle the data member being a property that
21389         does not exist.
21390
21391 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21392
21393         * DataGridTextBoxColumn.cs: fixes signature
21394         * DataGrid.cs: calls right constructor
21395
21396 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21397
21398         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
21399         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
21400         * GridTableStylesCollection.cs: implements GridTableStylesCollection
21401         * DataGridTableStyle.cs: implements DataGridTableStyle
21402         * DataGridBoolColumn.cs: implements DataGridBoolColumn
21403         * DataGridTextBox.cs: implements DataGridTextBox
21404         * DataGridColumnStyle.cs: implements DataGridColumnStyle
21405
21406 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
21407
21408         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
21409
21410 2005-03-29  Peter Bartok  <pbartok@novell.com>
21411
21412         * Application.cs:
21413           - Properly implemented CompanyName property
21414           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
21415             returns a path that includes CompanyName, ProductName and
21416             Version (fixes bug #70330)
21417
21418 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
21419
21420         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
21421           fixes bug #72588.
21422
21423 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21424
21425         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
21426         
21427           - Added ReadOnly CheckBox
21428           - Further refactoring: moved some code from Open-/SaveFileDialog
21429             to FileDialog
21430
21431 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21432
21433         * OpenFileDialog.cs: Fixed CheckFileExists
21434         * FileDialog.cs:
21435           Moved FileView and DirComboBox outside FileDialog class.
21436           They can now be used outside FileDialog
21437
21438 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21439
21440         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
21441         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
21442
21443 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21444
21445         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21446           - Added missing CreatePrompt property in SaveDialog
21447           - Overall SaveDialog handling should be better now
21448           - Added non standard ShowHiddenFiles property
21449           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
21450           - Added InitialDirectory and RestoreDirectory support
21451
21452 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
21453
21454         * FileDialog.cs: Made dirComboBox usable
21455
21456 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
21457
21458         * FileDialog.cs: Added Filter support (case sensitiv)
21459
21460 2005-03-24  Jackson Harper  <jackson@ximian.com>
21461
21462         * TabControl.cs: Need a couple more pixels for the lines.
21463
21464 2005-03-23  Jackson Harper  <jackson@ximian.com>
21465
21466         * TabControl.cs: Give the tab page focus when it is selected.
21467
21468 2005-03-23  Jackson Harper  <jackson@ximian.com>
21469
21470         * TabControl.cs: Account for the drawing of tabs borders when
21471         invalidating. If the slider was clicked dont do click detection on
21472         the tabs.
21473
21474 2005-03-23  Jackson Harper  <jackson@ximian.com>
21475
21476         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
21477
21478 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
21479
21480         * CategoryGridEntry.cs: Added
21481         * GridItem.cs: Added helper properties
21482         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
21483         * GridEntry.cs: Updated code for collection
21484         * PropertyGrid.cs: Cleaned up some formatting
21485         * PropertyGridView.cs: Added drop down functionality for enums.
21486         * GridItemCollection.cs: Added enumerator logic
21487         * PropertyGridEntry.cs: Added
21488
21489 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21490
21491         * FileDialog.cs:
21492           - Removed unnecessary commented code
21493           - Fixed handling for entering the filename manually in the combobox
21494
21495 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21496
21497         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
21498
21499 2005-03-18  Peter Bartok  <pbartok@novell.com>
21500
21501         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
21502           them being touching the border
21503
21504 2005-03-18  Peter Bartok  <pbartok@novell.com>
21505
21506         * TextControl.cs: Quick hack to center text better
21507
21508 2005-03-18  Peter Bartok  <pbartok@novell.com>
21509
21510         * ControlPaint.cs:
21511           - Don't throw NotImplemented exceptions, just print a notice once
21512             instead (requested by Miguel). This makes running existing SWF
21513             apps a bit easier
21514         * Control.cs:
21515           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
21516           - Added context menu trigger on right click
21517         * Panel.cs: Trigger invalidate on resize
21518         * StatusBar.cs:
21519           - Removed old double-buffer drawing
21520           - Added ResizeRedraw style to force proper update of statusbar
21521         * ListView.cs:
21522           - Removed debug output
21523         * ThemeWin32Classic.cs:
21524           - Fixed drawing of status bar, now draws Text property if there
21525             are no defined panels
21526
21527 2005-03-18  Jackson Harper  <jackson@ximian.com>
21528
21529         * ImageList.cs: When the image stream is set pull all the images
21530         from it.
21531         * ImageListStreamer.cs: Implement reading image list streams.
21532
21533 2005-03-18  Peter Bartok  <pbartok@novell.com>
21534
21535         * ThemeWin32Classic.cs (DrawPictureBox):
21536           - Fixed calculations for centered drawing
21537           - Fixed drawing for normal mode, not scaling the image on normal
21538
21539 2005-03-18  Peter Bartok  <pbartok@novell.com>
21540
21541         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
21542           textbox
21543         * FileDialog.cs:
21544           - Made Open/Save button the accept button for FileDialog
21545           - Tied the cancel button to the IButtonControl cancel button
21546           - Save/Open now properly builds the pathname
21547           - Now handles user-entered text
21548           - Preventing crash on right-click if no item is selected
21549           - Fixed Text property, now uses contents of textbox
21550           - Fixed SelectedText property, now just returns the text part that
21551             is selected in the text box
21552
21553 2005-03-18  Jackson Harper  <jackson@ximian.com>
21554
21555         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
21556         rect, make sure to de-adjust the interior rect after drawing the
21557         tab text.
21558
21559 2005-03-18  Peter Bartok  <pbartok@novell.com>
21560
21561         * MenuAPI.cs: Remove menu *before* executing selected action to
21562           prevent the menu from 'hanging around'
21563           
21564 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
21565
21566         * XplatUIOSX.cs: Implemented WorkingArea property
21567
21568 2005-03-17  Peter Bartok  <pbartok@novell.com>
21569
21570         * XplatUIX11.cs: Fixed menu coord calculations
21571         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
21572           for calculating offsets
21573
21574 2005-03-17  Peter Bartok  <pbartok@novell.com>
21575
21576         * Hwnd.cs: Do not consider menu presence for default client
21577           rectangle location/size
21578         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
21579           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
21580           translation functions
21581         * FileDialog.cs: Fixed (what I presume is a) typo
21582
21583 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
21584
21585         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
21586           X access (avoids X-Async errors)
21587
21588 2005-03-16  Jackson Harper  <jackson@ximian.com>
21589
21590         * TabControl.cs: Raise the SelectedIndexChanged event.
21591
21592 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
21593
21594         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21595           - Removed vertical ToolBar and replaced it with a custom panel
21596             (desktop and home button already work)
21597           - Added Help button (some controls get resized or relocated then)
21598           - Draw correct text depending on Open or Save.
21599           - Fixed some typos...
21600
21601 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
21602
21603         * ScrollBar.cs:
21604           - Only change Maximum and Minimum when need it (bug fix)
21605
21606 2005-03-15  Peter Bartok  <pbartok@novell.com>
21607
21608         * Form.cs: Use Handle for icon, to trigger creation if
21609           the window does not yet exist
21610         * Control.cs:
21611           - CanSelect: Slight performance improvement
21612           - Focus(): Preventing possible recursion
21613           - Invalidate(): Removed ControlStyle based clear flag setting
21614           - WM_PAINT: fixed logic for calling OnPaintBackground
21615           - WM_ERASEBKGND: Fixed logic, added call to new driver method
21616             EraseWindowBackground if the control doesn't paint background
21617         * XplatUIWin32.cs:
21618           - Moved EraseWindowBackground() method to internal methods
21619           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
21620             is sent via SendMessage on BeginPaint call on Win32
21621         * XplatUIX11.cs:
21622           - Added EraseWindowBackground() method
21623           - No longer sends WM_ERASEBKGND on .Expose, but on call to
21624             PaintEventStart, which more closely matches Win32 behaviour
21625           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
21626           - Fixed SetFocus() to properly deal with client and whole windows
21627         * Hwnd.cs: Added ErasePending property
21628         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
21629         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
21630
21631 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
21632
21633         * XplatUIOSX.cs:
21634           - Fix hard loop when timers exist.
21635           - Fix bugs with middle and right click for 3 button mice.
21636
21637 2005-03-11  Peter Bartok  <pbartok@novell.com>
21638
21639         * XplatUIX11.cs:
21640           - get_WorkingArea: Need to call X directly, GetWindowPos only
21641             returns cached data now
21642           - Added sanity check to GetWindowPos hwnd usage
21643
21644 2005-03-11  Jackson Harper  <jackson@ximian.com>
21645
21646         * BindingManagerBase.cs: This method isn't used anymore as
21647         PullData now updates the data in the control.
21648
21649 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
21650
21651         * Form.cs: fixes menu drawing on X11
21652         * MenuAPI.cs:  fixes menu drawing on X11
21653
21654 2005-03-11  Peter Bartok  <pbartok@novell.com>
21655
21656         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
21657           from Jonathan Gilbert; should fix bug #73606
21658         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
21659           in Screen coordinates. Thanks, Jordi.
21660         * Form.cs: Added missing attribute
21661
21662 2005-03-11  Peter Bartok  <pbartok@novell.com>
21663
21664         * Form.cs:
21665           - Rudimentary Mdi support
21666           - Removed outdated FormParent code
21667           - Implemented lots of missing properties and methods, still missing
21668             transparency support
21669           - Added missing attributes
21670           - Implemented support for MaximumBounds
21671           - Added firing of various events
21672         * XplatUI.cs: Added SetIcon() method
21673         * XplatUIDriver.cs: Added SetIcon() abstract
21674         * XplatUIOSX.cs: Stubbed out SetIcon() method
21675         * XplatUIX11.cs:
21676           - Implemented SetIcon() support
21677           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
21678           - Switched to unix line endings
21679         * XplatUIWin32.cs:
21680           - Made POINT internal so for can access it as part of MINMAX
21681           - Implemented SetIcon() support
21682           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
21683             native Mdi support again, might have to go managed)
21684         * Control.cs: Now fires the StyleChanged event
21685         * MdiClient.cs: Added; still mostly empty
21686
21687 2005-03-10  Peter Bartok  <pbartok@novell.com>
21688
21689         * SaveFileDialog.cs: Added emtpy file
21690
21691 2005-03-08  Peter Bartok  <pbartok@novell.com>
21692
21693         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
21694           in turn triggers OnCreateContro) when creating a handle for the
21695           first time.
21696         * TextControl.cs: Fixed endless loop in certain cases when
21697           replacing the current selection
21698
21699 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
21700
21701         * ScrollBar.cs:
21702           - Honors NewValue changes in Scroll events allowing apps to change it
21703           - Adds First and Last Scroll events
21704           - Fixes Thumb events
21705
21706 2005-03-07  Peter Bartok  <pbartok@novell.com>
21707
21708         * Hwnd.cs: Added DefaultClientRectangle property
21709         * XplatUI.cs: Now using the X11 driver Where() method, which provides
21710           more detailed debug information
21711         * XplatUIX11.cs:
21712           - Fixed size-change feedback loop, where we would pull an old size
21713             off the queue and mistakenly change our window's size to an
21714             earlier value
21715           - Now compressing ConfigureNotify events, to reduce looping and
21716             redraw issues
21717         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
21718           is called
21719
21720 2005-03-07  Jackson Harper  <jackson@ximian.com>
21721
21722         * Binding.cs: Push data pushes from data -> property. Check if the
21723         property is readonly when attempting to set it.
21724
21725 2005-03-07  Jackson Harper  <jackson@ximian.com>
21726
21727         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
21728         instead of IsSubclassOf. Pulling data now sets the value on the
21729         control.
21730         * PropertyManager.cs:
21731         * CurrencyManager.cs: Just need to pull data when updating now,
21732         because PullData will set the value on the control.
21733
21734 2005-03-04  Jackson Harper  <jackson@ximian.com>
21735
21736         * Binding.cs: Implement data type parsing and converting on pulled
21737         data. TODO: Are there more ways the data can be converted?
21738
21739 2005-03-04  Jackson Harper  <jackson@ximian.com>
21740
21741         * Binding.cs: Support <Property>IsNull checks. Also bind to the
21742         controls Validating method so we can repull the data when the
21743         control loses focus.
21744
21745 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
21746
21747         * ColumnHeader.cs:
21748           - Fixes null string format
21749           
21750         * ListView.cs:
21751           - Adds enum type checks
21752           - Fixes redrawing and recalc need after changing some properties
21753           - Fixes on focus_item set after the event
21754           - Fixes adding columns after the control has been created
21755           
21756         * ThemeWin32Classic.cs:
21757           - Fixes CheckBox focus rectangle
21758           - Fixes ColumnHeader drawing
21759
21760
21761 2005-03-03  Jackson Harper  <jackson@ximian.com>
21762
21763         * Binding.cs: Bind to <Property>Changed events so we can detect
21764         when properties are changed and update the data.
21765
21766 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
21767
21768         * ImageList.cs:
21769           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
21770           - Fixes ImageList constructor with ImageList container
21771           - Fixes image scaling (wrong parameters at DrawImage)
21772
21773 2005-02-02  Jackson Harper  <jackson@ximian.com>
21774
21775         * Binding.cs: Make property searches case-insensitive. Eliminate
21776         some duplicated code.
21777
21778 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
21779
21780         * ComboBox.cs:
21781                 - Handle focus event
21782                 - Fix scrollbar events
21783                 - Discard highlighted item if remove it
21784                 - Fixes SelectedItem with strings
21785
21786 2005-03-01  Peter Bartok  <pbartok@novell.com>
21787
21788         * Control.cs:
21789           - Fixed Visible property, now follows (once again) parent chain
21790             to return false if any control in the chain is visible=false
21791           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
21792           - Fixed several places where is_visible instead of Visible was used
21793           - Implemented FIXME related to focus selection when setting focused
21794             control to be invisible
21795
21796         * XplatUIWin32.cs: Now using proper method to find out if window is
21797           visible. Thanks to Jordi for pointing it out
21798
21799 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
21800
21801         * ComboBox.cs: show/hide scrollbar instead of creating it
21802
21803 2005-02-27  Jackson Harper  <jackson@ximian.com>
21804
21805         * CurrencyManager.cs: Add PositionChanged stuff.
21806
21807 2005-02-27  Peter Bartok  <pbartok@novell.com>
21808
21809         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
21810         * XplatUIOSX.cs: Added GetMenuOrigin() stub
21811         * XplatUIWin32.cs: Implemented GetMenuOrigin()
21812         * XplatUIX11.cs:
21813           - Implemented GetMenuDC()
21814           - Implemented GetMenuOrigin()
21815           - Implemented ReleaseMenuDC()
21816           - Implemented generation of WM_NCPAINT message
21817           - Implemented generation and handling of WM_NCCALCSIZE message
21818         * Form.cs: Added debug helper message for Jordi's menu work
21819         * Hwnd.cs:
21820           - Modified ClientRect property; added setter, fixed getter to handle
21821             setting of ClientRect
21822           - Added MenuOrigin property
21823
21824 2005-02-26  Peter Bartok  <pbartok@novell.com>
21825
21826         * XplatUIX11.cs:
21827           - Destroys the caret if a window that's being destroyed contains it
21828           - Ignores expose events coming from the X11 queue for windows that
21829             already are destroyed
21830           - Now uses the proper variable for handling DestroyNotify, before we
21831             marked the wrong window as destroyed
21832           - Improved/added some debug output
21833
21834 2005-02-26  Peter Bartok  <pbartok@novell.com>
21835
21836         * X11Keyboard.cs: Fixes to work on 64bit systems
21837
21838 2005-02-26  Peter Bartok  <pbartok@novell.com>
21839
21840         * Control.cs:
21841           - Now calling OnHandleDestroyed from DestroyHandle()
21842             instead of Dispose()
21843           - Removed bogus call to controls.Remove() from DestroyHandle()
21844
21845 2005-02-26  Peter Bartok  <pbartok@novell.com>
21846
21847         * Control.cs: Properly destroy child windows when our handle is
21848           destroyed
21849
21850 2005-02-25  Peter Bartok  <pbartok@novell.com>
21851
21852         * XplatUI.cs:
21853           - Added 'DriverDebug' define to allow tracing XplatUI API calls
21854           - Alphabetized Static Methods and Subclasses
21855
21856         * XplatUIX11.cs:
21857           - Added XException class to allow custom handling of X11 exceptions
21858           - Created custom X11 error handler, tied into XException class
21859           - Added support for MONO_XEXCEPTIONS env var to allow the user
21860             to either throw an exception on X errors or continue running
21861             after displaying the error
21862           - Added handling of DestroyNotify message
21863           - Added handler for CreateNotify message (still disabled)
21864           - Improved (tried to at least) Where method to provide file and lineno
21865         * X11Structs.cs:
21866           - Added XErrorHandler delegate
21867           - Added XRequest enumeration (to suppor translation of errors)
21868
21869 2005-02-25  Jackson Harper  <jackson@ximian.com>
21870
21871         * PropertyManager.cs: Implement editing features
21872         * CurrencyManager.cs:
21873         * Binding.cs: First attempt at UpdateIsBinding
21874         * BindingManagerBase.cs: Call UpdateIsBinding before
21875         pushing/pulling data.
21876
21877 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
21878
21879         * MenuAPI.cs: Respect disabled items
21880         * ThemeWin32Classic.cs
21881                 - Caches ImageAttributes creation for DrawImageDisabled
21882                 - Fixes vertical menu line drawing
21883                 - Draws disabled arrows in disable menu items
21884
21885 2005-02-24  Peter Bartok  <pbartok@novell.com>
21886
21887         * Hwnd.cs:
21888           - Added UserData property to allow associating arbitrary objects
21889             with the handle
21890           - Fixed leak; now removing Hwnd references from static windows array
21891         * XplatUIWin32.cs:
21892           - Fixed Graphics leak in PaintEventEnd
21893           - Removed usage of HandleData, switched over to Hwnd class
21894         * HandleData.cs: Removed, obsoleted by Hwnd.cs
21895
21896 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21897
21898         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
21899         * ScrollBar.cs: Fixes bug
21900         * TrackBar.cs: removes death code, clipping, mimize refreshes,
21901          keyboard navigation enhancements
21902
21903 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21904
21905         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
21906         * GroupBox.cs: Add control styles
21907         * Label.cs: Add control styles
21908         * UpDownBase.cs: Add control styles
21909         * ListBox.cs: Add control styles
21910         * XplatUIWin32.cs: Fixes wrong parameter order
21911
21912
21913 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
21914
21915         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
21916
21917 2005-02-23  Jackson Harper  <jackson@ximian.com>
21918
21919         * PropertyManager.cs: Implement property binding. This doesn't
21920         seem to work yet though as (I think) there are some bugs in
21921         System.ComponentModel.PropertyDescriptor.
21922         * BindingContext.cs: Use new PropertyManager constructor.
21923
21924 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
21925
21926         * ProgressBar.cs: use clip region in ProgressBar
21927         * ThemeWin32Classic.cs: use clip region in ProgressBar
21928
21929 2004-02-22  Jackson Harper  <jackson@ximian.com>
21930
21931         * BindingsCollection.cs: Remove some debug code.
21932
21933 2005-02-22  Jackson Harper  <jackson@ximian.com>
21934
21935         * BindingContext.cs:
21936         * ControlBindingsCollection.cs:
21937         * CurrencyManager.cs:
21938         * Binding.cs:
21939         * BindingManagerBase.cs: Initial implementation
21940         * BindingsCollection.cs: Add an internal contains method that the
21941         BindingManagerBase uses to ensure bindings aren't added twice to
21942         the collection.
21943         * PropertyManager.cs: Stubbed out.
21944         * Control.cs:
21945         * ContainerControl.cs: Hook up databinding
21946         
21947 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
21948
21949         * XplatUIOSX.cs:
21950           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
21951           Fixed Invalidate/Update chain.
21952           Fixed tons of other minor bugs (this is almost a complete rewrite).
21953
21954 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
21955
21956         * ComboBox.cs: do subcontrol creation when the control is created
21957
21958 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
21959
21960         * Label.cs: fixes image drawing (image and imagelist)
21961         * ThemeWin32Classic.cs: cache brushes
21962         
21963 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
21964
21965         * Form.cs: Move menu drawing code to Theme class
21966         * ComboBox.cs: Move ComboBox drawing code to Theme class
21967         * MenuItem.cs: Move menu drawing code to Theme class
21968         * MenuAPI.cs: Move menu drawing code to Theme class
21969         * ThemeWin32Classic.cs: New methods
21970         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
21971         * ListBox.cs: Move Listbox drawing code to Theme class
21972         * Theme.cs: New methods
21973
21974 2005-02-20  Peter Bartok  <pbartok@novell.com>
21975
21976         * Control.cs:
21977           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
21978             only process mnemonics on those)
21979           - Fixed event sequence for key handling; first calling
21980             ProcessKeyEventArgs now
21981         * TextBoxBase.cs:
21982           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
21983             for processing non-character keys
21984           - Fixed WM_CHAR to generate proper event sequence before processing
21985         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
21986           generation
21987
21988 2005-02-19  Peter Bartok  <pbartok@novell.com>
21989
21990         * UserControl.cs: Added TextChanged event; added attributes
21991         * SizeGrip.cs: Implemented resizing and optional display of grip
21992         * Form.cs: Fixed attribute
21993         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
21994           Changed meaning of ScrollWindow bool argument; instead of the
21995           clear attribute (which will be true usually anyway), it gives the
21996           option of moving child controls as well.
21997         * XplatUIX11.cs:
21998           - Changed to match new ScrollWindow argument
21999           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
22000             now handles the implicit parent window a WM puts around us
22001         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
22002           to work)
22003         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
22004         * TreeView.cs: Adjusted to new ScrollWindow arguments
22005
22006 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22007
22008         * Form.cs: Menu integration with non-client area
22009         * MenuItem.cs: Menu integration with non-client area
22010         * MenuAPI.cs: Menu integration with non-client area
22011
22012 2005-02-18  Peter Bartok  <pbartok@novell.com>
22013
22014         * MethodInvoker.cs: Added
22015         * MdiLayout.cs: Added
22016         * SendKeys.cs: Started implementation
22017         * ErrorIconAlignment.cs: Added
22018
22019 2005-02-18  Peter Bartok  <pbartok@novell.com>
22020
22021         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
22022         * Form.cs: Added handling for Menu-related Non-client messages
22023
22024 2005-02-17  Peter Bartok  <pbartok@novell.com>
22025
22026         * UpDownBase.cs: Fixed typo, compilation errors
22027         * DomainUpDown.cs: Fixed attribute value
22028
22029 2005-02-16  Miguel de Icaza  <miguel@novell.com>
22030
22031         * UpDownBase.cs: Attach entry events.
22032         Propagate events.
22033         Add ForeColor property, Focused, InterceptArrowKeys (interception
22034         does not work yet).
22035
22036 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
22037
22038         * Form.cs:
22039                 - Redraw non client are on Setmenu
22040                 - Calc proper menu starting point
22041
22042 2005-02-17  Peter Bartok  <pbartok@novell.com>
22043
22044         * Application.cs: Fixed message_filter check
22045
22046 2005-02-17  Peter Bartok  <pbartok@novell.com>
22047
22048         * Application.cs: Now calls registered message filters
22049         * DockStyle.cs: Fixed attribute
22050         * Form.cs: Fixed attribute
22051         * Menu.cs: Fixed attribute
22052         * ToolTip.cs: Fixed attribute
22053         * TreeNode.cs: Added missing attributes and arranged in regions
22054         * PropertyGrid.cs: Fixed signatures
22055         * TreeNodeCollection.cs: Added attributes
22056         * Splitter.cs: Added missing attributes; arranged into regions
22057         * TabPage.cs: Added missing attributes; arranged into regions
22058         * TextBoxBase.cs: Added missing attributes
22059         * TextBox.cs: Added missing attributes
22060         * ArrangeDirection.cs: Added missing attributes
22061         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
22062         * ToolBarButton.cs: Fixed attributes
22063         * AnchorStyles.cs: Fixed attribute
22064         * TrackBar.cs: Fixed attributes
22065         * TabControl.cs: Added missing attributes and arranged into regions
22066         * ToolBar.cs: Fixed attribute
22067         * StatusBar.cs: Fixed signature, organized into regions and added
22068           attributes
22069         * StatusBarPanel.cs: Fixed attributes
22070         * ContentsResizedEventArgs.cs: Implemented
22071         * ContentsResizedEventHandler.cs: Implemented
22072         * DateBoldEventArgs.cs: Implemented
22073         * DateBoldEventHandler.cs: Implemented
22074         * UpDownEventArgs.cs: Implemented
22075         * UpDownEventHandler.cs: Implemented
22076         
22077 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
22078
22079         * Form.cs: first Menu NC refactoring
22080         * MenuAPI.cs: first Menu NC refactoring
22081         
22082 2005-02-16  Peter Bartok  <pbartok@novell.com>
22083
22084         * ImeMode.cs: Added missing attributes
22085         * Menu.cs: Fixed attribute
22086         * GroupBox.cs: Fixed attribute
22087         * Label.cs: Fixed attribute
22088         * ColorDialog.cs (RunDialog): Removed TODO attribute
22089         * ComboBox.cs: Fixed attributes
22090         * ListControl.cs: Added missing attributes
22091         * PropertyGrid.cs: Fixed attributes
22092         * Control.cs: Fixed attributes
22093         * ListViewItem.cs: Added TypeConverter attribute
22094         * NotifyIcon.cs: Fixed attributes
22095         * ListView.cs: Fixed attributes
22096         * ButtonBase.cs: Fixed attribute
22097         * ImageList.cs: Added missing attributes
22098         * ContainerControl.cs: Fixed signature
22099         * CheckedListBox.cs: Fixed attribute; added missing attributes
22100         * Panel.cs: Fixed attributes
22101         * PropertyTabChangedEventArgs.cs: Added missing attribute
22102         * PropertyValueChangedEventArgs.cs: Added missing attribute
22103         * Binding.cs: Fixed attribute
22104         * ListViewItemConverter: Implemented ListViewSubItemConverter class
22105         * ListBox.cs: Fixed attribute; added missing attributes;
22106         * ScrollableControl.cs: Added missing attributes
22107         * PictureBox.cs: Added missing attributes; implemented missing property
22108         * DateTimePicker.cs: Added missing attributes
22109         * Theme.cs (ToolWindowCaptionHeight): Fixed type
22110         * MonthCalendar.cs: Fixed attributes
22111         * StatusBarPanel.cs: Added missing attributes
22112         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
22113
22114 2005-02-16  Peter Bartok  <pbartok@novell.com>
22115
22116         * TextBoxBase.cs: The previous method to enforce height yet remember
22117           the requested high was less than ideal, this is an attempt to do
22118           it better.
22119         * Control.cs: Added comment about possible problem
22120         * Copyright: Updated format
22121         * GridItemType.cs: Fixed swapped values
22122
22123 2005-02-15  Jackson Harper  <jackson@ximian.com>
22124
22125         * BaseCollection.cs: Use property so we never access an
22126         uninitialized list. Also initialize the list in the property.
22127
22128 2005-02-15  Peter Bartok  <pbartok@novell.com>
22129
22130         * GroupBox.cs (ProcessMnemonic): Implemented
22131         * Label.cs (ProcessMnemonic): Implemented
22132         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
22133           hotkeys
22134
22135 2005-02-15  Peter Bartok  <pbartok@novell.com>
22136
22137         * RadioButton.cs (ProcessMnemonic): Implemented
22138         * CheckBox.cs (ProcessMnemonic): Implemented
22139         * Control.cs:
22140           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
22141             handling
22142           - Added internal method to allow calling ProcessMnemonic from other
22143             controls
22144         * ContainerControl.cs:
22145           - Started support for handling validation chain handling
22146           - Implemented ProcessMnemonic support
22147           - Added Select() call to Active, to make sure the active control
22148             receives focus
22149         * Form.cs: Setting toplevel flag for Forms (this was lost in the
22150           FormParent rewrite)
22151         * ThemeWin32Classic.cs:
22152           - DrawCheckBox(): Fixed stringformat to show hotkeys
22153           - DrawRadioButton(): Fixed stringformat to show hotkeys
22154         * CommonDialog.cs: Removed WndProc override, not needed
22155
22156 2005-02-14  Peter Bartok  <pbartok@novell.com>
22157
22158         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
22159           missed those in the rewrite
22160
22161 2005-02-14  Miguel de Icaza  <miguel@novell.com>
22162
22163         * NumericUpDown.cs (Increment, ToString): Add.
22164         (DecimalPlaces): implement.
22165         
22166         Add attributes.
22167         
22168         * UpDownBase.cs: Add the designer attributes.
22169
22170 2005-02-13  Peter Bartok  <pbartok@novell.com>
22171
22172         * Panel.cs: Removed border_style, now in Control
22173         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
22174           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
22175
22176 2005-02-13  Peter Bartok  <pbartok@novell.com>
22177
22178         * MouseButtons.cs: Added missing attributes
22179         * XplatUIStructs.cs: Added enumeration for title styles
22180         * LeftRightAlignment.cs: Added missing attributes
22181         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
22182           it compatible with Graphics.FromHwnd()
22183         * SelectedGridItemChangedEventArgs.cs: Fixed property type
22184         * Keys.cs: Added missing attributes
22185         * SelectionRange.cs: Added missing attributes
22186         * SelectionRangeConverter.cs: Added
22187         * XplatUI.cs:
22188           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
22189             ReleaseMenuDC methods
22190           - Renamed ReleaseWindow to UngrabWindow
22191           - Added proper startup notice to allow version identification
22192         * Form.cs:
22193           - Added missing attributes
22194           - Removed FormParent concept
22195         * Label.cs: Removed border_style field, now in Control
22196         * RadioButton.cs: Now properly selects RadioButton when focus is
22197           received
22198         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
22199         * Control.cs:
22200           - Added missing attributes
22201           - Added borderstyle handling
22202           - Removed FormParent concept support
22203           - Fixed calls to XplatUI to match changed APIs
22204           - Fixed bug that would case us to use disposed Graphics objects
22205           - Removed unneeded internal methods
22206           - PerformLayout(): Fixed to handle DockStyle.Fill properly
22207           - SelectNextControl(): Fixed to properly check common parents
22208         * TextBoxBase.cs: Removed border_style field (now in Control)
22209         * MessageBox.cs:
22210           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
22211             fixed calculations for form size
22212           - Added support for localized strings and icons
22213           - Improved form size calculations, added border
22214         * ListView.cs: Removed border_style field (now in Control)
22215         * X11Structs.cs: Moved several structs from X11 driver here
22216         * X11Keyboard.cs: Changed debug message
22217         * Application.cs: Removed FormParent concept support
22218         * CommonDialog.cs:
22219           - Resetting end_modal flag
22220           - Removed FormParent concept support
22221         * NativeWindow.cs: Removed FormParent concept support
22222         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
22223           Client area and Non-Client whole window to allow support for WM_NC
22224           messages
22225         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
22226           prevent using it until it supports Hwnd as per Geoff Norton's request
22227         * ToolBar.cs: Fixed drawing, was not doing proper drawing
22228         * PictureBox.cs: Removed border_style field, now in Control
22229         * XplatUIWin32.cs: Added new driver methods
22230
22231 2005-02-12  Peter Bartok  <pbartok@novell.com>
22232
22233         * OpacityConverter.cs: Implemented
22234         * Hwnd.cs: Internal class to support drivers that need to emulate
22235           client area/non-client area window behaviour
22236
22237 2005-02-11  Peter Bartok  <pbartok@novell.com>
22238
22239         * KeysConverter.cs: Implemented
22240
22241 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
22242
22243         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
22244         * LinkLabel: Added missing attributes
22245         * MainMenu.cs: fixes ToString
22246         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
22247         * ListBox.cs: fixes event position
22248         * TrackBar.cs: adds missing attributes and events
22249         
22250 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
22251
22252         * MenuItem.cs: Use SystemInformation and bug fixes
22253         * MenuAPI.cs: Use SystemInformation and bug fixes
22254
22255 2005-02-09  Jackson Harper  <jackson@ximian.com>
22256
22257         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
22258         their keystate otherwise things like VK_MENU get stuck "on".
22259
22260 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
22261
22262         * ListBox.cs: Fixes AddRange bug
22263         
22264 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
22265
22266         * ProgressBar.cs
22267                 - Add missing attributes
22268                 - Add missing method
22269                 
22270         * CheckedListBox.cs: Added missing attributes
22271                 - Add missing attributes
22272                 - Remove extra method
22273         
22274         * ComboBox.cs: Added missing attributes
22275         * VScrollBar.cs: Added missing attributes
22276         * ScrollBar.cs:  Added missing attributes
22277         * ListBox.cs: Fixes signature, add missing consts
22278         * LinkArea.cs:   Added missing attributes
22279         
22280
22281 2005-02-08  Peter Bartok  <pbartok@novell.com>
22282
22283         * Menu.cs: Added missing attributes
22284         * MainMenu.cs: Added missing attributes
22285         * GroupBox.cs: Added missing attributes
22286         * Label.cs: Added missing attributes
22287         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
22288         * ColorDialog.cs:
22289           - Added Instance and Options properties
22290           - Added missing attributes
22291         * Cursor.cs: Made Serializable
22292         * NotifyIcon: Added missing attributes
22293         * MenuItem.cs: Added missing attributes
22294         * TextBoxBase.cs: Implemented AppendText() and Select() methods
22295         * Panel.cs: Added Missing attributes
22296         * MonthCalendar.cs: Fixed CreateParams
22297
22298 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22299         
22300         * LinkLabel.cs:
22301                 - Fixes signature
22302                 - Fixes issues with links
22303                 - Adds the class attributes
22304
22305 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22306         
22307         * ComboBox.cs:
22308                 - Fixes button when no items available in dropdown
22309                 - Fixes repainting problems
22310                 - Adds the class attributes
22311                 
22312 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22313
22314         * XplatUIOSX.cs: Detect the menu bar and title bar height from
22315         the current theme.  Cache these on startup.
22316
22317 2005-02-07  Jackson Harper  <jackson@ximian.com>
22318
22319         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
22320         the scrollbar buttons when they are depressed.
22321
22322 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22323
22324         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
22325         Get the display size from the main displayid.  We currently dont
22326         support multiple display configurations.
22327
22328 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22329
22330         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
22331
22332 2005-02-07  Miguel de Icaza  <miguel@novell.com>
22333
22334         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
22335
22336 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
22337
22338         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
22339
22340 2005-02-04  Jackson Harper  <jackson@ximian.com>
22341
22342         * ThemeWin32Classic.cs: Respect the clipping rect when
22343         drawing. Only fill the intersection of clips and rects so there
22344         isn't a lot of large fills.
22345         * ScrollBar.cs: Pass the correct clipping rect to the theme
22346         engine. Remove some debug code.
22347
22348 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
22349         
22350         * DateTimePicker.cs:
22351                 - Fixed crash on DateTime.Parse, use Constructor instead
22352
22353 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22354         
22355         * MenuItem.cs:
22356         * MenuAPI.cs:
22357                 - Owner draw support (MeasureItem and DrawItem)
22358
22359 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22360         
22361         *  Menu.cs:
22362                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
22363                 - Fixes MenuItems.Add range
22364         * MenuItem.cs:
22365                 - MergeMenu and Clone and CloneMenu functions
22366
22367 2005-02-03  Jackson Harper  <jackson@ximian.com>
22368
22369         * ScrollBar.cs: Make abstract
22370         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
22371         is abstract.
22372
22373 2005-02-03  Jackson Harper  <jackson@ximian.com>
22374
22375         * ScrollBar.cs: First part of my scrollbar fixups. This removes
22376         all the unneeded refreshes and uses invalidates with properly
22377         computed rects.
22378
22379 2005-02-03  Peter Bartok  <pbartok@novell.com>
22380
22381         * ComponentModel.cs: Added
22382         * IDataGridEditingService.cs: Added
22383         * Timer.cs: Added missing attributes
22384         * ToolTip.cs: Added missing attributes
22385
22386 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
22387
22388         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
22389
22390 2005-02-03  Peter Bartok  <pbartok@novell.com>
22391
22392         * ListBox.cs: Added missing attributes
22393
22394 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
22395         
22396         * ListBox.cs:
22397                 - Fixes font height after font change
22398                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
22399                 
22400 2005-02-02  Peter Bartok  <pbartok@novell.com>
22401
22402         * HandleData.cs: Introduced static methods to allow class
22403           to be more self-contained and track it's own HandleData objects
22404         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
22405           HandleData to use new static methods
22406
22407 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
22408
22409         * Combobox.cs:
22410                 - Fixes default size and PreferredHeight
22411                 - Missing events
22412                 - ObjectCollection.Insert implementation
22413                 
22414         * ListControl.cs
22415                 - Fixes signature
22416         * ListBox.cs:
22417                 - Several fixes
22418                 - ObjectCollection.Insert implementation
22419                 - No selection after clean
22420                 - Small fixes
22421
22422 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22423
22424         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
22425
22426 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
22427
22428         * Combobox.cs:
22429                 - Caches ItemHeight calculation for OwnerDrawVariable
22430                 - Handles dropdown properly
22431                 - Fixes several minor bugs
22432
22433 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22434
22435         * ListBox.cs:
22436                 - Fixes 71946 and 71950
22437                 - Fixes changing Multicolumn on the fly
22438                 - Fixes keyboard navigation on Multicolumn listboxes
22439
22440 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22441         
22442         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
22443         crash reporter log.
22444
22445 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22446
22447         * XplatUIOSX.cs: Allow applications to actually exit.
22448
22449 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22450
22451         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
22452         their parent at creation time rather than lazily later.  Fixes a major
22453         regression we were experiencing.
22454
22455 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22456
22457         * ThemeWin32Classic.cs: more date time picker painting fixes
22458         * DateTimePicker.cs: more monthcalendar drop down fixes
22459         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
22460
22461 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22462
22463         * ScrollBar.cs:
22464                 - When moving the thumb going outside the control should stop the moving
22465                 - Adds the firing of missing events
22466                 - Fixes no button show if Size is not specified
22467                 - End / Home keys for keyboard navigation
22468
22469 2005-01-30  Peter Bartok  <pbartok@novell.com>
22470
22471         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
22472           sanity check to prevent theoretical loop
22473         * XplatUIWin32.cs (SetVisible): Removed debug output
22474         * XplatUIX11.cs (SystrayChange): Added sanity check
22475         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
22476         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
22477           behaviour, valid until the X11 client window rewrite is done
22478         * TextBox.cs (ctor): Setting proper default foreground and background
22479           colors
22480
22481 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
22482
22483         * Theme: Added DrawDateTimePicker to interface
22484         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
22485         * DateTimePicker.cs: Created (still needs keys and painting code)
22486         * DateTimePickerFormat.cs: added
22487         * MonthCalendar.cs: fixed CreateParams for popup window mode
22488           
22489 2005-01-29  Peter Bartok  <pbartok@novell.com>
22490
22491         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
22492           this should also the calculations for ligher/darker
22493         * Theme.cs: Fixed defaults for ScrollBar widths/heights
22494
22495 2005-01-29  Peter Bartok  <pbartok@novell.com>
22496
22497         * ArrangeDirection.cs: Added
22498         * ArrangeStartingPositon.cs: Added
22499         * SystemInformation.cs: Implemented
22500         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22501           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
22502           used by SystemInformation class
22503         * X11Strucs.cs: Added XSizeHints structure
22504         * MenuAPI.cs:
22505           - Fixed CreateParams to make sure the menu window is always visible
22506           - TrackPopupMenu: Added check to make sure we don't draw the
22507             menu offscreen
22508
22509 2005-01-29  Peter Bartok  <pbartok@novell.com>
22510
22511         * HandleData.cs: Added method for altering invalid area
22512         * TextBoxBase.cs: Implemented TextLength
22513
22514 2005-01-28  Peter Bartok  <pbartok@novell.com>
22515
22516         * XplatUIX11.cs: Improvement over last patch, not sending
22517           the WM_PAINT directly anymore, instead we scroll any pending
22518           exposed areas and let the system pick out the WM_PAINT later
22519
22520 2005-01-28  Peter Bartok  <pbartok@novell.com>
22521
22522         * SWF.csproj: Deleted, no longer used. Instead,
22523           Managed.Windows.Forms/SWF.csproj should be used
22524         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
22525           directly, to avoid a potential race condition with the next
22526           scroll
22527
22528 2005-01-28  Peter Bartok  <pbartok@novell.com>
22529
22530         * XplatUI.cs: Made class internal
22531
22532 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
22533
22534         * CheckedListBox.cs:
22535                 - Draw focus
22536                 - Fixed Drawing
22537                 - Missing methods and events
22538
22539 2005-01-27  Peter Bartok  <pbartok@novell.com>
22540
22541         * Application.cs (Run): Don't use form if we don't have one
22542
22543 2005-01-27  Peter Bartok  <pbartok@novell.com>
22544
22545         * TextBoxBase.cs (get_Lines): Fixed index off by one error
22546
22547 2005-01-27  Peter Bartok  <pbartok@novell.com>
22548
22549         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
22550         * GridItem.cs: Added; Patch by Jonathan S. Chambers
22551         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
22552         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
22553         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
22554         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
22555         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22556         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22557         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22558         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22559         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22560         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22561
22562 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22563
22564         * Combobox.cs:
22565                 - Draw focus on Simple Combobox
22566                 - Fixes drawing issues
22567                 - fixes 71834
22568
22569 2005-01-27  Peter Bartok  <pbartok@novell.com>
22570
22571         * Form.cs:
22572           - Place window in default location, instead of hardcoded 0/0
22573           - Send initial LocationChanged event
22574         * Control.cs:
22575           - UpdateBounds after creation to find out where the WM placed us
22576           - Make sure that if the ParentForm changes location the Form
22577             is notified
22578         * XplatUIX11.cs: XGetGeometry will not return the coords relative
22579             to the root, but to whatever the WM placed around us.
22580             Translate to root coordinates before returning toplevel
22581             coordinates
22582         * XplatUIWin32.cs: Removed debug output
22583         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
22584           flag to GetWindowPos, to allow translation of coordinates on X11
22585
22586 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22587
22588         * ListBox.cs: connect LostFocus Event
22589
22590 2005-01-27  Peter Bartok  <pbartok@novell.com>
22591
22592         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
22593           XplatUIX11.cs: Extended the Systray API
22594         * Form.cs: Removed debug output
22595         * Application.cs: Fixed focus assignment, always need to call
22596           XplatUI.Activate() since Form.Activate() has rules that may
22597           prevent activation
22598         * NotifyIcon.cs: Should be complete now
22599         * ToolTip.cs: Worked around possible timer bug
22600
22601 2005-01-27  Jackson Harper  <jackson@ximian.com>
22602
22603         * TabControl.cs:
22604         - Only invalidate the effected tabs when the
22605         selected index changes. This reduces drawing and gets rid of some
22606         flicker.
22607         - Only refresh if the tabs need to be shifted, otherwise only
22608         invalidate the slider button.
22609         - On windows the tabs are not filled to right if the slider is
22610         visible.
22611         
22612 2005-01-27  Jackson Harper  <jackson@ximian.com>
22613
22614         * TabControl.cs: Only refresh on mouseup if we are showing the
22615         slider. Also only invalidate the button whose state has changed.
22616
22617 2005-01-26  Peter Bartok  <pbartok@novell.com>
22618
22619         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
22620         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
22621           and SystrayRemove() methods
22622         * XplatUIOSX.cs: Stubbed Systray methods
22623         * XplatUIX11.cs:
22624           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
22625             methods
22626           - Fixed broken XChangeProperty calls (marshalling messed up things)
22627         * X11Structs.cs: Added enums and structs required for Size hinting
22628         * NotifyIcon.cs: Added & implemented
22629
22630 2005-01-26  Jackson Harper  <jackson@ximian.com>
22631
22632         * TabControl.cs: Space vertically layed out tabs properly.
22633
22634 2005-01-26  Peter Bartok  <pbartok@novell.com>
22635
22636         * Form.cs (CreateClientParams): Always set the location to 0,0
22637           since we're a child window.
22638
22639         * Control.cs (SetVisibleCore): Always explicitly setting the location
22640           of a toplevel window, apparently X11 doesn't like to move windows
22641           while they're not mapped.
22642
22643 2005-01-26  Jackson Harper  <jackson@ximian.com>
22644
22645         * TabControl.cs: Implement FillToRight size mode with vertically
22646         rendered tabs.
22647
22648 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22649
22650         * ControlPaint.cs, ThemeWin32Classic.cs
22651                 - Fixes DrawFocusRectangle
22652
22653 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22654
22655         * MenuAPI.cs:
22656                 - MenuBar tracking only starts when item is first clicked
22657                 - Fixes menu hidding for multiple subitems
22658                 - Unselect item in MenuBar when item Executed
22659                 - Fixes bug 71495
22660
22661 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
22662
22663         * ListControl.cs:
22664                 - IsInputKey for ListBox
22665         * ListBox.cs:
22666                 - Focus item
22667                 - Shift and Control item selection
22668                 - Implement SelectionMode.MultiExtended
22669                 - Fixes RightToLeft
22670         * ComboBox.cs:
22671                 - IsInputKey implemented
22672                 - Do not generate OnTextChangedEdit on internal txt changes
22673                 
22674 2005-01-23  Peter Bartok  <pbartok@novell.com>
22675
22676         * AccessibleObject.cs: Partially implemented Select()
22677         * MonthCalendar.cs: Added missing attributes and events
22678         * Form.cs: Fixed CreateParams behaviour, now controls derived from
22679           form can properly override CreateParams.
22680         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22681           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
22682           Control performs Invalidate & Update
22683         * NativeWindow (CreateHandle): Added special handling for Form
22684           and Form.FormParent classes to allow overriding of From.CreateParams
22685         * Control.cs:
22686           - ControlNativeWindow: Renamed 'control' variable to more intuitive
22687             name 'owner'
22688           - ControlNativeWindow: Added Owner property
22689           - Removed usage of Refresh() on property changes, changed into
22690             Invalidate(), we need to wait until the queue is processed for
22691             updates, direct calls might cause problems if not all vars for
22692             Paint are initialized
22693           - Added call to UpdateStyles() when creating the window, to set any
22694             styles that CreateWindow might have ignored.
22695           - Added support for Form CreateParent overrides to UpdateStyles()
22696         * MessageBox.cs: Removed no longer needed FormParent override stuff,
22697           CreateParams are now properly overridable
22698         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
22699           CreateParams are now properly overridable
22700
22701 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
22702
22703         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
22704         OnTextBoxChanged.
22705
22706         Capture LostFocus and OnTextBoxChanged.  The later introduces a
22707         recursive invocation that I have not figured out yet.
22708
22709         Reset the timer when not using (it was accumulating).
22710
22711
22712         (OnTextBoxChanged): Set UserEdit to true here to track whether the
22713         user has made changes that require validation.
22714
22715         Reset changing to avoid loops.
22716
22717 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
22718
22719         * NumericUpDown.cs: Display value at startup.
22720
22721         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
22722         ValidateEditText.
22723
22724         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
22725         filled in.  Added some basic parsing of text.
22726
22727         Still missing the OnXXX method overrides, and figuring out the
22728         events that must be emitted.
22729
22730         * UpDownBase.cs: Handle UserEdit on the Text property.
22731         
22732 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
22733
22734         * ComboBox.cs:
22735           - Fixes IntegralHeight
22736           - ToString method
22737
22738 2005-01-21  Jackson Harper  <jackson@ximian.com>
22739
22740         * TabControl.cs: Set the SelectedIndex property when SelectedTab
22741         is set so that the page visibility is updated and the tabs are
22742         sized correctly.
22743
22744 2005-01-21  Jackson Harper  <jackson@ximian.com>
22745
22746         * TabControl.cs: Use cliping rectangle for blitting. Give the
22747         theme the clipping rect so we can do clipping while
22748         drawing. Remove some debug code.
22749
22750 2005-01-21  Jackson Harper  <jackson@ximian.com>
22751
22752         * TabPage.cs: Add a new method so tab pages can force the tab
22753         control to recalculate the tab page sizes.
22754         * TabControl.cs: UpdateOwner needs to make the tab control recalc
22755         sizes.
22756
22757 2005-01-20  Jackson Harper  <jackson@ximian.com>
22758
22759         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
22760
22761 2005-01-20  Jackson Harper  <jackson@ximian.com>
22762
22763         * TreeView.cs: Set the bounds for nodes properly. They were
22764         getting screwed up when checkboxes were not enabled, but images
22765         were.
22766
22767 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
22768
22769         * ListBox.cs:
22770                 - Owner draw support
22771                 - Fixes
22772                 
22773 2005-01-20  Jackson Harper  <jackson@ximian.com>
22774
22775         * XplatUIStructs.cs: More misc keys
22776         * X11Keyboard.cs: Ignore some control keys.
22777
22778 2005-01-20  Jackson Harper  <jackson@ximian.com>
22779
22780         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
22781         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
22782
22783 2005-01-19  Peter Bartok  <pbartok@novell.com>
22784
22785         * Control.cs: Un-selecting the control when it is loosing focus
22786
22787 2005-01-19  Jackson Harper  <jackson@ximian.com>
22788
22789         * TreeView.cs: Hook up to the text controls leave event so we can
22790         end editing when the users clicks outside the text box.
22791         
22792 2005-01-19  Jackson Harper  <jackson@ximian.com>
22793
22794         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
22795         get set in the conversion array.
22796
22797 2005-01-19  Peter Bartok  <pbartok@novell.com>
22798
22799         * Application.cs (ModalRun): Added a call to CreateControl to ensure
22800           focus is properly set
22801         * Button.cs:
22802           - Added missing attributes
22803           - removed styles, those are already set in the base class
22804         * ButtonBase.cs:
22805           - Added missing attributes
22806           - Added clip window styles
22807         * CheckBox.cs: Added missing attributes
22808         * CommonDialog.cs:
22809           - FormParentWindow.CreateParams: Added required clip styles
22810         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
22811           also filters modifier keys
22812         * MessageBox.cs:
22813           - Added assignment of Accept and Cancel button to enable Enter
22814             and Esc keys in MessageBox dialogs
22815           - FormParentWindow.CreateParams: Added required clip styles
22816         * RadioButton.cs: Added missing attributes
22817         * TextControl.cs: No longer draws selection if control does not
22818           have focus
22819         * TextBoxBase.cs:
22820           - Now draws simple rectangle around test area to make it obvious
22821             there's a control. This is a hack until we properly support borders
22822           - A few simple fixes to support selections better, now erases selected
22823             text when typing, and resets selection when using movement keys
22824
22825 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
22826
22827         * UpDownBase.cs: Added some new properties.
22828
22829         * DomainUpDown.cs: Implement a lot to get my test working.
22830
22831 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22832
22833         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
22834
22835 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22836
22837         * OSXStructs (WindowAttributes): Fixed csc complaints
22838
22839 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22840
22841         * XplayUIOSX.cs:
22842           OSXStructs.cs: Initial refactor to move enums and consts into
22843           OSXStructs and use them in the driver for greater readability.
22844
22845 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22846
22847         * XplatUIOSX.cs: Initial support for Standard Cursors.
22848         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
22849
22850 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
22851
22852         * ComboBox.cs: ability to change style when the ctrl is already
22853         created, missing methods and events, bug fixes, signature fixes
22854
22855 2005-01-19  Peter Bartok  <pbartok@novell.com>
22856
22857         * Cursors.cs (ctor): Added ctor to fix signature
22858
22859 2005-01-18  Peter Bartok  <pbartok@novell.com>
22860
22861         * Button.cs: Implemented DoubleClick event
22862         * ButtonBase.cs:
22863           - Fixed keyboard handling to behave like MS, where the press of
22864             Spacebar is equivalent to a mousedown, and the key release is
22865             equivalent to mouseup. Now a spacebar push will give the same
22866             visual feedback like a mouse click.
22867           - Added missing attributes
22868           - Added ImeModeChanged event
22869           - Added support for generating DoubleClick event for derived classes
22870         * CheckBox.cs:
22871           - Implemented DoubleClick event
22872           - Added missing attributes
22873         * CommonDialog.cs: Added missing attribute
22874         * ContextMenu.cs: Added missing attributes
22875         * RadioButton.cs:
22876           - AutoChecked buttons do not allow to be unselected when clicked
22877             (otherwise we might end up with no selected buttons in a group)
22878           - Added missing attributes
22879           - Implemented DoubleClickEvent
22880         * ThreadExceptionDialog.cs: Enabled TextBox code
22881
22882 2005-01-18  Peter Bartok  <pbartok@novell.com>
22883
22884         * Form.cs: Removed debug output
22885         * Button.cs: Added support for DoubleClick method
22886
22887 2005-01-18  Peter Bartok  <pbartok@novell.com>
22888
22889         * Form.cs:
22890           - Added method to parent window that allows triggering size
22891             calculations when a menu is added/removed
22892           - set_Menu: Cleaned up mess from early days of Form and Control,
22893             now properly triggers a recalc when a menu is added/removed
22894           - Added case to select form itself as focused form if no child
22895             controls exist
22896           - Added PerformLayout call when showing dialog, to ensure properly
22897             placed controls
22898         * Control.cs:
22899           - Select(): Made internal so Form can access it
22900           - Focus(): Only call Xplat layer if required (avoids loop), and sets
22901             status
22902         * Application.cs (Run): Removed hack and calls PerformLayout instead
22903           to trigger calculation when Form becomes visible
22904
22905 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
22906
22907         * ComboBox.cs: fixes for ownerdraw
22908
22909 2005-01-18  Peter Bartok  <pbartok@novell.com>
22910
22911         * TextControl.cs:
22912           - Sentinel is no longer static, each Document gets it's own, this
22913             avoids locking or alternatively overwrite problems when more
22914             than one text control is used simultaneously.
22915           - Switched to use Hilight and HilightText brushes for text selection
22916
22917         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
22918
22919 2005-01-18  Peter Bartok  <pbartok@novell.com>
22920
22921         * Control.cs:
22922           - Hooked up the following events:
22923                 o ControlAdded
22924                 o ControlRemoved
22925                 o HandleDestroyed
22926                 o ImeModeChanged
22927                 o ParentChanged
22928                 o TabStopChanged
22929                 o Invalidated
22930                 o SystemColorsChanged
22931                 o ParentFontChanged
22932                 o Move
22933           - Removed debug output
22934           - Added a call to the current theme's ResetDefaults when a color change
22935             is detected
22936         * Form.cs: Now setting the proper ImeMode
22937         * Theme.cs: Defined a method to force recreation of cached resources
22938           and rereading of system defaults (ResetDefaults())
22939         * ThemeWin32Classic.cs: Added ResetDefaults() stub
22940
22941 2005-01-17  Peter Bartok  <pbartok@novell.com>
22942
22943         * Control.cs: Added missing attributes
22944
22945 2005-01-17  Jackson Harper  <jackson@ximian.com>
22946
22947         * TreeNode.cs: Implement editing. Add missing properties selected
22948         and visible.
22949         * TreeView.cs: Implement node editing. Also some fixes to use
22950         Invalidate (invalid area) instead of Refresh when selecting.
22951
22952 2005-01-17  Peter Bartok  <pbartok@novell.com>
22953
22954         * Control.cs:
22955           - Implemented InvokeGotFocus() method
22956           - Implemented InvokeLostFocus() method
22957           - Implemented InvokePaint() method
22958           - Implemented InvokePaintBackground() method
22959           - Implemented InvokeClick() method
22960           - Implemented FindForm() method
22961           - Implemented RectangleToClient() method
22962           - Implemented ClientToRectangle() method
22963           - Implemented ResetBackColor() method
22964           - Implemented ResetCursor() method
22965           - Implemented ResetFont() method
22966           - Implemented ResteForeColor() method
22967           - Implemented ResetImeMode() method
22968           - Implemented ResetLeftToRight() method
22969           - Implemented ResetText() method
22970           - Implemented Scale() methods
22971           - Implemented ScaleCore() method
22972           - Implemented Update() method
22973           - Removed unused variables
22974           - Stubbed AccessibilityNotifyClients and
22975             ControlAccessibleObject.NotifyClients() methods (dunno what to do
22976             with those yet)
22977           - Now setting proper default for RightToLeft property
22978           - Fixed bug in SetClientSizeCore that would cause windows to get
22979             really big
22980           - Now sending Click/DoubleClick events
22981           - Now selecting controls when left mouse button is clicked on
22982             selectable control
22983         * AccessibleEvents.cs: Added
22984         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
22985         * XplatUIOSX.cs: Stubbed UpdateWindow() method
22986         * XplatUIWin32.cs: Implemented UpdateWindow() method
22987         * XplatUIX11.cs: Implemented UpdateWindow() method
22988         * Form.cs: Removed stray semicolon causing CS0162 warning
22989         * ThemeWin32Classic.cs: Fixed unused variable warnings
22990         * ScrollableControl.cs: Now calls base method for ScaleCore
22991         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
22992           style to avoid interference with internal click handler (which is
22993           different than standard Control click handling)
22994         * RadioButton.cs:
22995           - Now unchecks all sibling radio buttons when control is
22996             selected (Fixes #68756)
22997           - Removed internal tabstop variable, using the one inherited from
22998             Control
22999
23000 2005-01-17  Jackson Harper  <jackson@ximian.com>
23001
23002         * NavigateEventArgs.cs: Fix base type.
23003         * LinkLabel.cs: Sig fix
23004         
23005 2005-01-17  Jackson Harper  <jackson@ximian.com>
23006
23007         * TreeView.cs: Only invalidate the effected nodes bounds when
23008         selecting nodes.
23009
23010 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23011
23012         * XplatUIWin32.cs: fixes Win32 marshaling
23013         * XplatUIX11.cs: fixes method signature
23014
23015 2005-01-17  Peter Bartok  <pbartok@novell.com>
23016
23017         * XplatUIX11.cs: Clean up resources when we no longer need them
23018
23019 2005-01-17  Peter Bartok  <pbartok@novell.com>
23020
23021         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
23022           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
23023           and DestroyCursor() methods.
23024         * Cursor.cs: Partially implemented, now supports standard cursors;
23025           still contains some debug code
23026         * Cursors.cs: Implemented class
23027         * Control.cs:
23028           - WndProc(): Added handling of WM_SETCURSOR message, setting the
23029             appropriate cursor
23030           - Implemented Cursor property
23031           - Replaced break; with return; more straightforwar and possibly
23032             faster
23033           - Now properly setting the result for WM_HELP
23034         * X11Structs.cs: Added CursorFontShape enum
23035         * XplatUIStructs.cs:
23036           - Added StdCursor enum (to support DefineStdCursor() method)
23037           - Added HitTest enum (to support sending WM_SETCURSOR message)
23038         * XplatUIX11.cs:
23039           - Now sends the WM_SETCURSOR message
23040           - Implemented new cursor methods
23041         * XplatUIOSX.cs: Stubbed new cursor methods
23042         * XplatUIWin32.cs:
23043           - Implemented new cursor methods
23044           - Added GetSystemMetrics function and associated enumeration
23045
23046 2005-01-15  Peter Bartok  <pbartok@novell.com>
23047
23048         * Control.cs:
23049           - WndProc(): Now handles EnableNotifyMessage
23050           - SelectNextControl(): Fixed bug where if no child or sibling
23051             controls exist we looped endlessly
23052
23053 2005-01-14  Jackson Harper  <jackson@ximian.com>
23054
23055         * TreeView.cs: Recalculate the tab pages when a new one is added
23056         so that the proper bounding rects are created.
23057
23058 2005-01-14  Jackson Harper  <jackson@ximian.com>
23059
23060         * TreeView.cs: Draw a gray box instead of a grip in the lower
23061         right hand corner when there are both horizontal and vertical
23062         scroll bars.
23063
23064 2005-01-14  Jackson Harper  <jackson@ximian.com>
23065
23066         * Control.cs: When erasing backgrounds use FromHwnd instead of
23067         FromHdc when there is a NULL wparam. This occurs on the X driver.
23068         * XplatUIX11.cs: Set the wparam to NULL.
23069
23070 2005-01-13  Jackson Harper  <jackson@ximian.com>
23071
23072         * PictureBox.cs: Implement missing methods (except ToString, need
23073         to test that on windows) and events. When visibility is changed we
23074         need to redraw the image because the buffers are killed. When size
23075         is changed refresh if the sizemode needs it.
23076
23077 2005-01-13  Peter Bartok  <pbartok@novell.com>
23078
23079         * Control.cs (SelectNextControl): Was using wrong method to select
23080           a control
23081
23082 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23083
23084         * ComboBox.cs: fixes dropstyle
23085
23086 2005-01-13  Peter Bartok  <pbartok@novell.com>
23087
23088         * Form.cs:
23089           - Implemented Select() override
23090           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
23091           - Now sets keyboard focus on startup
23092         * Control.cs (SelectNextControl): Now properly handles directed=true
23093         * TextBoxBase.cs:
23094           - WndProc: Now passes tab key on to base if AcceptTabChar=false
23095           - Added (really bad) focus rectangle (mostly for testing)
23096         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
23097           to enforce redraw on focus changes
23098         * ContainerControl.cs:
23099           - Fixed detection of Shift-Tab key presses
23100           - Fixed traversal with arrow keys
23101         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
23102           gonna keep this or if it's complete yet
23103         
23104 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23105
23106         * ComboBox.cs: missing properties, fixes
23107
23108 2005-01-13  Peter Bartok  <pbartok@novell.com>
23109
23110         * Panel.cs (ctor): Setting Selectable window style to off
23111         * Splitter.cs (ctor): Setting Selectable window style to off
23112         * GroupBox.cs (ctor): Setting Selectable window style to off
23113         * Label.cs (ctor): Setting Selectable window style to off
23114
23115 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
23116
23117         * UpDownBase.cs (InitTimer): If the timer has been already
23118         created, enable it.
23119
23120         Use a TextBox instead of a Label.
23121
23122 2005-01-12  Jackson Harper  <jackson@ximian.com>
23123
23124         * TreeView.cs: Refresh the tree after sorting the nodes. Always
23125         draw the connecting node lines (when ShowLines is true).
23126         * TreeNode.cs: The nodes index can now be updated. This is used
23127         when a node collection is sorted.
23128         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
23129         insert or an existing unsorted node collection can be sorted.
23130         
23131 2005-01-12  Peter Bartok  <pbartok@novell.com>
23132
23133         * ContainerControl.cs: Implemented ProcessDialogKeys()
23134
23135 2005-01-12  Peter Bartok  <pbartok@novell.com>
23136
23137         * Control.cs:
23138           - Implemented SelectNextControl() method
23139           - Several focus related bug fixes
23140           - Fixed Docking calculations to match MS documentation and
23141             behaviour
23142
23143 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
23144
23145         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
23146         bug fixes
23147
23148 2005-01-12  Peter Bartok  <pbartok@novell.com>
23149
23150         * Control.cs:
23151           - Fixed broken Contains() method
23152           - Implemented GetNextControl() method. Finally. This is the pre-
23153             requisite for focus handling.
23154
23155 2005-01-12  Peter Bartok  <pbartok@novell.com>
23156
23157         * OSXStrucs.cs: Added
23158
23159 2005-01-12  Peter Bartok  <pbartok@novell.com>
23160
23161         * XplatUIWin32.cs:
23162           - Removed PeekMessageFlags
23163           - Implemented SetWindowStyle() method
23164         * XplatUIStructs.cs: Added PeekMessageFlags
23165         * X11Structs: Added missing border_width field to XWindowChanges struct
23166         * XplatUIX11.cs:
23167           - PeekMessage: Now throws exception if flags which are not yet
23168             supported are passed
23169           - Implemented SetWindowStyle() method
23170           - Fixed SetZOrder to handle AfterHwnd properly
23171         * XplatUI.cs: Added SetWindowStyle() method
23172         * XplatUIDriver.cs: Added SetWindowStyle() abstract
23173         * Control.cs:
23174           - Implemented UpdateStyles() method
23175           - Implemented UpdateZOrder() method
23176         * XplatUIOSX.cs: Added SetWindowStyle() stub
23177
23178 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
23179
23180         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
23181         button mouse).
23182
23183
23184 2005-01-11  Jackson Harper  <jackson@ximian.com>
23185
23186         * TreeView.cs: Still need to draw lines to siblings even if out of
23187         the current node is out of the clip.
23188
23189 2005-01-11  Jackson Harper  <jackson@ximian.com>
23190
23191         * TreeView.cs: When setting the hbar/vbar/grip position use
23192         SetBounds so that perform layout is only called once. Also suspend
23193         and resume layout so layout is only done once for all controls.
23194         - Removed some debug fluff
23195         * SizeGrip.cs: Call base implmentation in overriding methods.
23196         - When visibility is changed the drawing buffers are killed so we
23197         need to redraw.
23198
23199 2005-01-11  Jackson Harper  <jackson@ximian.com>
23200
23201         * TreeView.cs: Calculate the open node count while drawing. This
23202         saves us an entire tree traversal for every paint operation. Use
23203         a member var for the open node count so less vars are passed around.
23204
23205 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
23206
23207         * MonthCalendar.cs:
23208         - fixed selection to use mousemove, not mouse polling on timer
23209         * ThemeWin32Classic.cs
23210         - removed redundant unused variable "no_more_content"
23211         
23212 2005-01-11  Peter Bartok  <pbartok@novell.com>
23213
23214         * XplatUIX11.cs (DoEvents): Needs to return when no more events
23215           are pending, so it now calls PeekMessage instead of GetMessage;
23216           implemented a incomplete version of PeekMessage
23217         
23218 2005-01-11  Peter Bartok  <pbartok@novell.com>
23219
23220         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
23221           I18n issues
23222         * TextBoxBase.cs: Added sending of TextChanged event
23223
23224 2005-01-10  Jackson Harper  <jackson@ximian.com>
23225
23226         * TreeView.cs: Try not to draw outside the clipping rectangle on
23227         each node element.
23228
23229 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
23230
23231         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
23232
23233 2005-01-10  Jackson Harper  <jackson@ximian.com>
23234
23235         * TreeView.cs:
23236         - Implement fast scrolling. Now only the newly
23237         exposed nodes are drawn and the old image is moved using the
23238         XplatUI::ScrollWindow method.
23239         - Factor in height of nodes when calculating whether or not the
23240         node is in the clipping rect.
23241
23242 2005-01-10  Jackson Harper  <jackson@ximian.com>
23243
23244         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
23245
23246 2005-01-10  Peter Bartok  <pbartok@novell.com>
23247
23248         * Application.cs: Added temporary hack to resolve all our resize
23249           required issues on startup. This will get fixed properly at
23250           some point in the future
23251
23252 2005-01-10  Jackson Harper  <jackson@ximian.com>
23253
23254         * SizeGrip.cs: New internal class that is used as a sizing
23255         grip control...hence the name.
23256
23257 2005-01-10  Peter Bartok  <pbartok@novell.com>
23258
23259         * Control.cs: Implemented proper TabIndex handling, now assigning
23260           a tabindex when a control is added to a container
23261         * GroupBox.cs (ctor): Now sets the Container style bit, required
23262           for Control.GetNextControl()
23263
23264 2005-01-09  Jackson Harper  <jackson@ximian.com>
23265
23266         * TextBoxBase.cs: Clear window when scrolling (fixes build).
23267
23268 2005-01-09  Peter Bartok <pbartok@novell.com>
23269
23270         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
23271           XplatUIX11.cs: Added ability to control ScrollWindow expose and
23272           an overload for ScrollWindow to allow only scrolling a rectangle
23273
23274 2005-01-09  Peter Bartok <pbartok@novell.com>
23275
23276         * Form.cs:
23277           - Implemented SetDesktopBounds method
23278           - Implemented SetDesktopLocation method
23279
23280 2005-01-08  Jackson Harper  <jackson@ximian.com>
23281
23282         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
23283         the node count has changed, this removes to VScroll::Refresh calls
23284         when drawing.
23285
23286 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
23287
23288         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
23289
23290 2005-01-07  Jackson Harper  <jackson@ximian.com>
23291
23292         * TreeNode.cs: Just update the single node when it is
23293         checked. Don't refresh after toggling, the Expand/Collapse already
23294         handles this.
23295         * TreeView.cs: Respect clipping a little more when drawing. Try
23296         not to redraw things that don't need to be redrawn. Just hide the
23297         scrollbars when they are no longer needed instead of removing
23298         them, so they don't have to be created again and again.
23299         
23300 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
23301
23302         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
23303         coordinates to window space to place the caret properly, FIXED.
23304         Implement GetWindowState & SetWindowState
23305
23306 2005-01-06  Peter Bartok <pbartok@novell.com>
23307
23308         * Form.cs:
23309           - Implemented ClientSize property
23310           - Implemented DesktopBounds property
23311           - Implemented DesktopLocation property
23312           - Implemented IsRestrictedWindow property
23313           - Implemented Size property
23314           - Implemented TopLevel property
23315           - Implemented FormWindowState property
23316         * Control.cs:
23317           - Implemented GetTopLevel() method
23318           - Implemented SetTopLevel() method
23319         * X11Structs.cs (Atom):
23320           - Added AnyPropertyType definition
23321           - Added MapState definiton and updated XWindowAttribute struct
23322         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
23323         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
23324         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
23325         * XplatUIWin32.cs:
23326           - Implemented GetWindowState() and SetWindowState() methods
23327           - Fixed Win32GetWindowLong return type
23328         * XplatUIX11.cs:
23329           - Introduced central function for sending NET_WM messages
23330           - Implemented GetWindowState() and SetWindowState() methods
23331         * TextBoxBase.cs (set_Lines):
23332           - Now uses Foreground color for text added via Text property (Duh!)
23333           - Added code to remember programmatically requested size (fixes
23334             behaviour when Multiline is set after Size)
23335           - Added AutoSize logic
23336
23337 2005-01-06  Jackson Harper  <jackson@ximian.com>
23338
23339         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
23340
23341 2005-01-06  Jackson Harper  <jackson@ximian.com>
23342
23343         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
23344         set to less then 0.
23345
23346 2005-01-06  Jackson Harper  <jackson@ximian.com>
23347
23348         * ScrollableControl.cs: Lazy init the scrollbars.
23349         
23350 2005-01-06  Jackson Harper  <jackson@ximian.com>
23351
23352         * Theme.cs: Speed up getting pens and solid brushes, by using
23353         their ARGB as a hash instead of tostring and not calling Contains.
23354
23355 2005-01-06  Peter Bartok <pbartok@novell.com>
23356
23357         * Form.cs:
23358           - Implemented OnActivated and OnDeactivate event trigger
23359           - Implemented Activate() method
23360           - Fixed ShowDialog() to activate the form that was active before
23361             the dialog was shown
23362         * XplatUIX11.cs:
23363           - Added global active_window var that tracks the currently active
23364             X11 window
23365           - Now always grabs Property changes from the root window to always
23366             catch changes on the active window property
23367           - Added code to PropertyNotify handler to send Active/Inactive
23368             messages when state changes. This puts X11 and Win32 en par on
23369             WM_ACTIVATE notifications (except for double notifications when
23370             the user clicks away from our modal window to another one of our
23371             windows)
23372
23373 2005-01-05  Jackson Harper  <jackson@ximian.com>
23374
23375         * ImageList.cs: Implment ctor
23376
23377 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23378
23379         * XplatUIOSX.cs: Implement Activate/SetTopmost
23380
23381 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23382
23383         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
23384
23385 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23386
23387         * XplatUIOSX.cs: Implement GetActive/SetFocus.
23388
23389 2005-01-05  Peter Bartok <pbartok@novell.com>
23390
23391         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
23392           XplatUIOSX.cs: Added GetActive method to return the currently
23393           active window for the application (or null, if none is active)
23394         * Form.cs:
23395           - Implemented ActiveForm
23396           - Commented out owner assignment for modal dialogs (causes problems
23397             on Win32, since the owner will be disabled)
23398           - Reworked some Active/Focus handling (still incomplete)
23399         * CommonDialog.cs: Commented out owner assignment for modal dialogs
23400           (causes problems on Win32, since the owner will be disabled)
23401         * IWin32Window: Added ComVisible attribute
23402
23403 2005-01-05  Peter Bartok <pbartok@novell.com>
23404
23405         * ToolTip.cs (WndProc): Enable setting focus now that we have the
23406           required XplatUI functions.
23407
23408 2005-01-05  Peter Bartok <pbartok@novell.com>
23409
23410         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
23411           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
23412           to implement focus and activation handling; still incomplete and
23413           with debug output
23414
23415 2005-01-04  Peter Bartok <pbartok@novell.com>
23416
23417         * TextBoxBase.cs: Changed access level for Document property to
23418           match switch to internal for TextControl
23419
23420 2005-01-04  Peter Bartok <pbartok@novell.com>
23421
23422         * AccessibleObject: Added ComVisible attribute
23423
23424 2005-01-04  Jackson Harper  <jackson@ximian.com>
23425
23426         * X11Keyboard.cs: Remove unneeded var.
23427
23428 2005-01-04  Jackson Harper  <jackson@ximian.com>
23429
23430         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
23431         but PAINT.
23432         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
23433         ClientMessage. This makes apps exit cleanly (more often).
23434         
23435 2005-01-04  Jackson Harper  <jackson@ximian.com>
23436
23437         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
23438         handling focus, return correct colors and fonts,
23439         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
23440         handle selection, horizontal scrolling, and mouse interaction.
23441
23442 2005-01-04  Peter Bartok <pbartok@novell.com>
23443
23444         * ICommandExecutor.cs: Added
23445         * IDataGridColumnStyleEditingNotificationService.cs: Added
23446         * IFeatureSupport.cs: Added
23447         * IFileReaderService.cs: Added
23448         * IDataObject.cs: Added ComVisible attribute
23449         * AmbientProperties.cs: Added
23450         * BaseCollection.cs: Added missing attributes
23451         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
23452         * BaseCollection.cs: Added missing attributes
23453         * Binding.cs: Added TypeConverter attribute
23454         * BindingContext.cs: Added DefaultEvent attribute
23455         * BindingsCollection.cs: Added DefaultEvent attribute
23456         * Button.cs: Added DefaultValue attribute
23457         * DragEventArgs.cs: Added ComVisible attribute
23458         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
23459         * KeyEventArgs.cs: Added ComVisible attribute
23460         * KeyPressEventArgs.cs: Added ComVisible attribute
23461         * MouseEventArgs.cs: Added ComVisible attribute
23462         * NavigateEventArgs.cs: Added
23463         * NavigateEventHandler.cs: Added
23464         * FeatureSupport.cs: Added
23465         * OSFeature.cs: Added
23466         * Theme.cs: Added abstract Version property to support OSFeature
23467         * ThemeWin32Classic.cs: Added Version property to
23468           support OSFeature.Themes
23469         * ProgressBar.cs: Removed OnPaintBackground override, not required since
23470           the proper styles to avoid background drawing are set, also doesn't
23471           match MS signature
23472         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
23473         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
23474         * ScrollEventArgs.cs: Added ComVisible attribute
23475         * SplitterEventArgs.cs: Added ComVisible attribute
23476         * AccessibleSelection.cs: Added Flags attribute
23477         * Appearance.cs: Added ComVisible attribute
23478         * Border3DSide.cs: Added ComVisible attribute
23479         * Border3DStyle.cs: Added ComVisible attribute
23480         * BorderStyle.cs: Added ComVisible attribute
23481         * DragAction.cs: Added ComVisible attribute
23482         * ErrorBlinkStyle.cs: Added
23483         * ScrollEventType.cs: Added ComVisible attribute
23484         * AnchorStyles.cs: Added Editor attribute
23485         * DockStyle.cs: Added Editor attribute
23486         * HorizontalAlignment.cs: Added ComVisible attribute
23487         * HelpEventArgs.cs: Added ComVisible attribute
23488         * PaintEventArgs.cs: Added IDisposable
23489
23490 2005-01-04  Peter Bartok <pbartok@novell.com>
23491
23492         * TextControl.cs: Switched Line, LineTag and Document classes to
23493           internal
23494
23495 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23496
23497         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
23498         Simple mode, fixes, IntegralHeight, etc.
23499
23500 2005-01-04  Peter Bartok <pbartok@novell.com>
23501
23502         * TextBoxBase.cs: Using proper font variable now
23503
23504 2005-01-04  Peter Bartok <pbartok@novell.com>
23505
23506         * Form.cs (ShowDialog): Set parent to owner, if provided
23507         * GroupBox.cs: Removed unused vars
23508         * TextControl.cs:
23509           - Added GetHashCode() for Document and LineTag classes
23510           - Removed unused variables
23511           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
23512             to allow translation between continuous char position and line/pos
23513         * CheckBox.cs: Removed vars that are provided by base class
23514         * RadioButton.cs: Removed vars that are provided by base class, added
23515           new keyword where required
23516         * LinkLabel.cs: Added new keyword where required
23517         * Control.cs (WndProc): Removed unused variable
23518         * TextBoxBase.cs:
23519           - Finished SelectionLength property
23520           - Implemented SelectionStart property
23521           - Implemented Text property
23522           - Removed unused vars
23523         * MessageBox.cs: Added new keyword where required
23524         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
23525           WndProc signature
23526         * MenuAPI.cs: Added new keyword where required
23527         * ButtonBase.cs: Removed vars that are provided by base class, added
23528           new keyword where required
23529         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
23530           argument to double, to allow compiling with csc 2.0 (Atsushi ran
23531           into this)
23532         * Application.cs (Run): Now triggers the ThreadExit event
23533         * CommonDialog.cs: Added new keyword where required; now properly sets
23534           parent (owner) for dialog
23535         * XplatUIX11.cs: Commented out unused vars
23536         * StatusBar.cs: Fixed signature for Text property
23537         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
23538
23539 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23540
23541         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
23542         TrackBar.cs, MonthCalendar.cs: remove unused vars
23543
23544 2005-01-03  Jackson Harper  <jackson@ximian.com>
23545
23546         * ThemeWin32Classic.cs:
23547         * X11Keyboard.cs: Remove unused vars.
23548
23549 2005-01-03  Peter Bartok  <pbartok@novell.com>
23550
23551         * TextBox.cs:
23552           - set_Text: Tied into TextControl
23553           - set_TextAlignment: Tied into TextControl
23554         * TextControl.cs:
23555           - Added alignment properties and implemented alignment handling
23556             and drawing (still has a bug, not generating proper expose events)
23557           - Added new Line() constructor to allow passing the line alignment
23558           - Fixed selection setting, properly handling end<start now
23559           - Added aligment considerations to RecalculateDocument()
23560         * TextBoxBase.cs:
23561           - Now properly enforces control height for single line controls
23562           - Added support for CharacterCasing
23563           - Added IsInputKey override
23564           - Fixed Keys.Enter logic
23565           - Added SetBoundsCore override
23566           - Fixed mouse selection handling
23567
23568 2005-01-03  Jackson Harper  <jackson@ximian.com>
23569
23570         * TreeView.cs:
23571           - Collapse and uncheck all nodes when CheckBoxes is disabled.
23572           - Checkboxes are always aligned to the bottom of the node,
23573           regardless of item height.
23574           - Use the node bounds to draw the text so we can center it when
23575           the item height is greater then the font height.
23576           - Node::Bounds are only the text part of the node.
23577         * TreeNode.cs: New method to combine collapsing and unchecking all
23578           nodes recursively.
23579
23580 2005-01-02  Jackson Harper  <jackson@ximian.com>
23581
23582         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
23583         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
23584         tree when a check is changed. TODO: Only refresh the checked node.
23585
23586 2004-12-30  Jackson Harper  <jackson@ximian.com>
23587
23588         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
23589         * TreeNode.cs: When collapsing make sure to never collapse the
23590         root node.
23591
23592 2004-12-29  Jackson Harper  <jackson@ximian.com>
23593
23594         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
23595         
23596 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
23597
23598         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
23599
23600 2004-12-28  Peter Bartok  <pbartok@novell.com>
23601
23602         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
23603           not yet assigned
23604
23605 2004-12-28  Peter Bartok  <pbartok@novell.com>
23606
23607         * Control.cs (WndProc): Added WM_HELP handler, now generates
23608           HelpRequested event
23609         * Form.cs: Added HelpButton property and required support code
23610         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
23611
23612 2004-12-28  Peter Bartok  <pbartok@novell.com>
23613
23614         * CommonDialog.cs:
23615           - Made DialogForm.owner variable internal
23616           - Added check to ensure owner form is set before setting
23617             owner properties in CreateParams
23618
23619 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
23620
23621         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
23622           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
23623           GetCursorPos.  Fix major visibility issues.  Rework the windowing
23624           system to support borderless/titleless windows (implements menus).
23625           Fix GetWindowPos.  Implement initial background color support for
23626           views.
23627
23628 2004-12-28  Peter Bartok  <pbartok@novell.com>
23629
23630         * Form.cs (get_CreateParams): Make sure we have an owner before using
23631           the owner variable. Implement proper default if no owner exists
23632
23633 2004-12-28  Peter Bartok  <pbartok@novell.com>
23634
23635         * In preparation for making Managed.Windows.Forms the default build target
23636           for System.Windows.Forms, the following stubbed files were added.
23637           Dialogs are currently being implemented by contributors and are only
23638           short-term place holders.
23639         * ColorDialog.cs: Initial check-in (minmal stub)
23640         * DataGrid.cs: Initial check-in (minimal stub)
23641         * DataGridLineStyle.cs: Initial check-in (minimal stub)
23642         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
23643         * DataGridTableStyle.cs: Initial check-in (minimal stub)
23644         * FontDialog.cs: Initial check-in (minimal stub)
23645         * FileDialog.cs: Initial check-in (minimal stub)
23646         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
23647         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
23648         * OpenFileDialog: Initial check-in (minimal stub)
23649         * IComponentEditorPageSite.cs: Initial check-in
23650         * Splitter.cs: Initial check-in (for Jackson)
23651         * SplitterEventArgs.cs: Initial check-in (for Jackson)
23652         * SplitterEventHandler.cs: Initial check-in (for Jackson)
23653         * TextBox.cs: Initial check-in; still needs some wiring to
23654           TextControl backend
23655         * Form.cs: Implemented ControlBox property
23656         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
23657         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
23658         * TextControl.cs: Added selection functionality; added todo header
23659         * TextBoxBase.cs:
23660           - Implemented Lines property
23661           - Implemented TextHeight property
23662           - Implemented SelectedText property
23663           - Implemented SelectionLength property
23664           - Implemented SelectAll method
23665           - Implemented ToString method
23666           - Removed and cleaned up some debug code
23667           - Implemented (still buggy) mouse text selection
23668
23669 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
23670
23671         * ComboBox.cs: Complete DropDownList implementation, fixes.
23672
23673 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
23674
23675         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
23676         * ComboBoxStyle.cs: ComboBoxStyle enum
23677         * ComboBox.cs: Initial work on ComboBox control
23678
23679 2004-12-21  Peter Bartok  <pbartok@novell.com>
23680
23681         * Control.cs (ctor, CreateParams): Moved setting of is_visible
23682           forward so that anything that creates a window gets the default,
23683           also no longer uses Visible property in CreateParams to avoid
23684           walking up the parent chain and possibly get the wrong visible
23685           status. Fixed IsVisible to no longer walk up to the parent.
23686
23687 2004-12-21  Peter Bartok  <pbartok@novell.com>
23688
23689         * Form.cs (ShowDialog): Unset modality for the proper window
23690  
23691 2004-12-20  Peter Bartok  <pbartok@novell.com>
23692
23693         * CommonDialog.cs: Initial check-in
23694
23695 2004-12-20  Peter Bartok  <pbartok@novell.com>
23696
23697         * Control.cs (Visible): Now uses the parent window instead of the
23698           client area window for the property
23699
23700         * Form.cs
23701           - ShowDialog(): Now uses the proper window for modality
23702           - The default visibility state for the form parent is now false. This
23703             will prevent the user from seeing all the changes to the form and
23704             its controls before the application hits Application.Run()
23705           - Removed some stale commented out code
23706
23707         * NativeWindow.cs:
23708           - Added FindWindow() method to have a method to check for existence
23709             of a window handle
23710           - Added ability to override default exception handling (for example
23711             when debugging with VS.Net; to do this the ExternalExceptionHandler
23712             define must be set
23713           - Removed some useless debug output
23714
23715         * XplatUIX11.cs:
23716           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
23717             not working as expected
23718           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
23719             property to allow switching back to the modal window if focus is
23720             given to another one of our windows (Application Modal)
23721           - Now only sets override_redirect if we create a window
23722             without WS_CAPTION
23723           - Moved EventMask selection before mapping of newly created window
23724             so we can catch the map event as well
23725           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
23726           - Added various Atom related DllImports
23727           - Implemented Exit() method
23728           - .ctor() : No longer shows window if WS_VISIBLE is not defined
23729             in the CreateParams
23730
23731         * MessageBox.cs: Now properly deals with the FormParent window by
23732           providing an override the FormParent CreateParams property to
23733           set as POPUP instead of OVERLAPPED window.
23734
23735 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23736
23737         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
23738         Minor code cleanup.
23739
23740 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23741         
23742         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
23743
23744 2004-12-18  Peter Bartok  <pbartok@novell.com>
23745
23746         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
23747           implementing SetModal() method
23748
23749 2004-12-18  Peter Bartok  <pbartok@novell.com>
23750
23751         * X11Structs.cs (XGCValues): Fixed type of function element
23752         * XplatUI.cs: Added ScrollWindow() method
23753         * XplatUIDriver.cs: Added ScrollWindow() abstract
23754         * XplatUIWin32.cs: Implemented ScrollWindow() method
23755         * XplatUIX11.cs: Implemented ScrollWindow() method
23756         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
23757
23758 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23759
23760         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
23761         Some more keyboard support (INCOMPLETE)
23762
23763 2004-12-17  Peter Bartok  <pbartok@novell.com>
23764
23765         * TextControl.cs:
23766         - Added color attribute to line tags.
23767         - Added color argument to all functions dealing with tags
23768         - Added color argument support to various functions
23769         - Fixed miss-calculation of baseline/shift in certain circumstances
23770
23771         * TextBoxBase.cs: Added new color option to test code
23772
23773 2004-12-17  Jackson Harper  <jackson@ximian.com>
23774
23775         * TreeNode.cs:
23776         * MonthCalendar.cs: Signature fixes
23777
23778 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23779
23780         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
23781         keyboard event moved it.  Create a new graphics context for each paint resolves this
23782
23783 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23784
23785         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
23786         Make caret exist and go blink blink.  Initial keyboard support.
23787         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
23788         works.
23789
23790 2004-12-17  Jackson Harper  <jackson@ximian.com>
23791
23792         * XplatUIStructs.cs: Updated set of virtual keycodes.
23793         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
23794
23795 2004-12-17  Jackson Harper  <jackson@ximian.com>
23796
23797         * XplatUIX11.cs: Prune old keyboard code.
23798
23799 2004-12-17  Jackson Harper  <jackson@ximian.com>
23800
23801         * XplatUIX11.cs: When generating mouse wparams get the modifier
23802         keys from the ModifierKeys property.
23803
23804 2004-12-17  Jackson Harper  <jackson@ximian.com>
23805
23806         * X11Keyboard.cs: Send up/down input when generating
23807         messages. Remove some unused vars.
23808
23809 2004-12-17  Jackson Harper  <jackson@ximian.com>
23810
23811         * TabControl.cs:
23812         * TreeView.cs: get rid of warnings.
23813
23814 2004-12-17  Jackson Harper  <jackson@ximian.com>
23815
23816         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
23817
23818 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
23819
23820         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
23821           CheckedListBox.cs: Implementation
23822
23823 2004-12-17  Peter Bartok  <pbartok@novell.com>
23824
23825         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
23826
23827 2004-12-16  Peter Bartok  <pbartok@novell.com>
23828
23829         * TextControl.cs:
23830           - InsertCharAtCaret(): Fixed start pos fixup
23831           - CaretLine_get: No longer derives the line from the tag, the tag
23832             could be stale if lines in the document have been added or deleted
23833           - RebalanceAfterDelete(): Fixed bug in balancing code
23834           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
23835           - Line.Streamline(): Now can also elminate leading empty tags
23836           - DumpTree(): Added a few more tests and prevented exception on
23837             uninitialized data
23838           - Added Debug section for Combining lines
23839           - Delete(): Now copies all remaining properties of a line
23840           
23841         * TextBoxBase.cs:
23842           - Left mousebutton now sets the caret (and middle button still acts
23843             as formatting tester, which must go away soon)
23844           - Added Debug section for Deleting/Combining lines
23845           - Fixed calculations for UpdateView after Combining lines
23846
23847 2004-12-16  Peter Bartok  <pbartok@novell.com>
23848
23849         * TextControl.cs: Now properly aligns text on a baseline, using the
23850           new XplatUI.GetFontMetrics() method. Simplified several calculations
23851         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
23852           defined
23853
23854 2004-12-16  Peter Bartok  <pbartok@novell.com>
23855
23856         * XplatUI.cs: Added GetFontMetrics() method
23857         * XplatUIDriver.cs: Added GetFontMetrics() abstract
23858         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
23859           into libgdiplus, our private GetFontMetrics function
23860         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
23861         * XplatUIWin32.cs: Implemented GetFontMetrics() method
23862
23863 2004-12-16  Jackson Harper  <jackson@ximain.com>
23864
23865         * XplatUIStruct.cs: Add enum for dead keys
23866         * X11Keyboard.cs: Map and unmap dead keys.
23867
23868 2004-12-16  Jackson Harper  <jackson@ximian.com>
23869
23870         * X11Keyboard.cs: Detect and use the num lock mask.
23871
23872 2004-12-16  Peter Bartok  <pbartok@novell.com>
23873
23874         * Control.cs (CreateGraphics): Added check to make sure the
23875           handle of the window exists before calling Graphics.FromHwnd()
23876
23877 2004-12-16  Peter Bartok  <pbartok@novell.com>
23878
23879         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
23880           contains a lot of code that's not supposed to be there for the
23881           real thing, but required for developing/testing the textbox
23882           backend.
23883
23884 2004-12-16  Peter Bartok  <pbartok@novell.com>
23885
23886         * TextControl.cs:
23887         - Fixed Streamline method
23888         - Added FindTag method to Line
23889         - Added DumpTree method for debugging
23890         - Added DecrementLines() method for deleting lines
23891         - Fixed UpdateView to update the cursor to end-of-line on single-line
23892           updates
23893         - Added PositionCaret() method
23894         - Fixed MoveCaret(LineDown) to move into the last line, too
23895         - Added InsertChar overload
23896         - Fixed InsertChar tag offset calculations
23897         - Added DeleteChar() method
23898         - Added Combine() method for folding lines
23899         - Fixed Delete() method, no longer allocates wasted Line object and
23900           now copies all properties when swapping nodes
23901         - Delete() method now updates document line counter
23902
23903 2004-12-15  Jackson Harper  <jackson@ximian.com>
23904
23905         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
23906         * X11Keyboard.cs: Expose the currently selected modifier keys
23907         through a property.
23908
23909 2004-12-15  Peter Bartok  <pbartok@novell.com>
23910
23911         * TextControl.cs: Initial check-in. Still incomplete
23912
23913 2004-12-15  Jackson Harper  <jackson@ximian.com>
23914
23915         * TreeNode.cs:
23916         * TreeView.cs: Fix build on csc (second time today ;-))
23917
23918 2004-12-15  Jackson Harper  <jackson@ximian.com>
23919
23920         * TreeView.cs: Store the treenodes plus/minus box bounds when it
23921         is calculated and use this for click testing.
23922         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
23923
23924 2004-12-15  Jackson Harper  <jackson@ximian.com>
23925
23926         * TreeView.cs: Pass the nodes image index to the image list when
23927         drawing that image.
23928
23929 2004-12-15  Jackson Harper  <jackson@ximian.com>
23930
23931         * X11Keyboard.cs: Set messages hwnd.
23932         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
23933         post_message calls.
23934
23935 2004-12-15  Jackson Harper  <jackson@ximian.com>
23936
23937         * X11Keyboard.cs: Fix to compile with csc.
23938         
23939 2004-12-15  Jackson Harper  <jackson@ximian.com>
23940
23941         * X11Structs.cs: Add key mask values
23942         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
23943         * X11Keyboard.cs: New file - Extrapolates and interpolates key
23944         down/up foo into WM_CHAR foo
23945         * KeyboardLayouts.cs: Common keyboard layouts
23946         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
23947         post messages into the main queue.
23948
23949 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
23950
23951         * Button.cs: implement ProcessMnemonic
23952         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
23953           brushes everytime
23954         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
23955         * ButtonBase.cs: Show HotkeyPrefix (not the &)
23956
23957 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
23958         
23959         * MonthCalendar.cs: Implemented click-hold for next/previous month
23960           and date selection
23961           
23962 2004-12-11  Peter Bartok  <pbartok@novell.com>
23963
23964         * X11Structs.cs:
23965           - Added XKeyboardState (moved from XplatUIX11.cs)
23966           - Added XCreateGC related enums and structures
23967           - Added GXFunction for XSetFunction
23968
23969         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
23970
23971         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
23972           CaretVisible() calls
23973
23974         * ToolTip.cs: Added code to prevent stealing focus from app windows
23975
23976         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
23977           DestroyCaret, SetCaretPos and CaretVisible)
23978
23979         * XplatUIX11.cs:
23980           - Added implementation for caret functions
23981           - Moved hover variables into a struct, to make it a bit easier
23982             on the eyes and to debug
23983           - Removed XKeyboardState (moved to XplatUIX11.cs)
23984           - Moved Keyboard properties into the properties region
23985
23986         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
23987           call to get a graphics context for our control
23988
23989         * XplatUIOSX.cs: Added empty overrides for the new caret functions
23990
23991         * TreeView.cs: Fixed bug. No matter what color was set it would always
23992           return SystemColors.Window
23993
23994         * XplatUIWin32.cs: Implemented caret overrides
23995
23996 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
23997
23998         * ListBox.cs: fire events, implement missing methods and properties,
23999         sorting.
24000
24001 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
24002
24003         * MonthCalendar.cs: invalidation bug fixing
24004         * ThemeWin32Classic.cs: paint fixing
24005
24006 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
24007
24008         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
24009         prepare the CGContextRef there now.
24010
24011 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
24012
24013         * MonthCalendar.cs:
24014           - optimisationL only invalidate areas that have changed
24015         * ThemeWin32Classic.cs:
24016           - only paint parts that intersect with clip_area
24017
24018 2004-12-09  Peter Bartok  <pbartok@novell.com>
24019
24020         * Application.cs: Undid changes from r37004 which cause problems
24021         on X11
24022
24023 2004-12-09  Ravindra  <rkumar@novell.com>
24024
24025         * ToolBar.cs: Added support for displaying ContextMenu
24026         attached to a button on ToolBar.
24027         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
24028         property.
24029
24030 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24031
24032         * Label.cs: autosize works in text change and removes unnecessary
24033         invalidate
24034
24035 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24036
24037         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
24038         remove warnings
24039
24040 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
24041
24042         * XplatUIOSX.cs: Added mouse move/click/grab support
24043         Remove some debugging WriteLines not needed anymore.
24044         Add window resizing/positioning.
24045         Fix visibility on reparenting.
24046
24047 2004-12-08  Peter Bartok  <pbartok@novell.com>
24048
24049         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
24050
24051 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
24052
24053         * XplatUIOSX.cs: Initial checkin
24054         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
24055
24056 2004-12-03  Ravindra <rkumar@novell.com>
24057
24058         * ListView.cs: Added some keybindings and fixed scrolling.
24059         ScrollBars listen to ValueChanged event instead of Scroll
24060         Event. This would let us take care of all changes being
24061         done in the scrollbars' values programmatically or manually.
24062         * ListView.cs (CanMultiselect): Added a check for shift key.
24063         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
24064         * ListViewItem.cs (Clone): Fixed. We need to make a copy
24065         of ListViewSubItemCollection as well.
24066
24067 2004-12-06  Peter Bartok <pbartok@novell.com>
24068
24069         * Control.cs (Parent): Added check and exception to prevent
24070         circular parenting
24071
24072 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
24073
24074         * ListBox.cs: implemented clipping, selection single and multiple,
24075         bug fixing
24076
24077 2004-12-03  Ravindra <rkumar@novell.com>
24078
24079         * ListView.cs (ListView_KeyDown):
24080         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
24081         when CTRL key is pressed.
24082         * ListViewItem.cs (Selected): Fixed setting the property.
24083
24084 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24085
24086         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
24087
24088         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
24089         MinimizeBox, ShowInTaskbar, TopMost properties.
24090
24091         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
24092         will be implemented).
24093
24094 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24095
24096         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
24097
24098         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
24099         tests.
24100         
24101         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
24102         
24103         * TreeView.cs: BackColor is Colors.Window.
24104
24105 2004-12-01  Jackson Harper  <jackson@ximian.com>
24106
24107         * TreeView.cs: When resizing the tree if the user is making it
24108         smaller we don't get expose events, so we need to handle adding
24109         the horizontal scrollbar in the size changed handler as well as
24110         the expose handler.
24111
24112 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
24113
24114         * DrawItemState.cs: fixes wrong enum values
24115
24116 2004-12-01  Jackson Harper  <jackson@ximian.com>
24117
24118         * TreeView.cs: Resize the hbar as well as the vbar on resize.
24119
24120 2004-12-01  Jackson Harper  <jackson@ximian.com>
24121
24122         * NodeLabelEditEventArgs.cs:
24123         * NodeLabelEditEventHandler.cs:
24124         * OpenTreeNodeEnumerator.cs:
24125         * TreeNode.cs:
24126         * TreeNodeCollection.cs:
24127         * TreeView.cs:
24128         * TreeViewAction.cs:
24129         * TreeViewCancelEventArgs.cs:
24130         * TreeViewCancelEventHandler.cs:
24131         * TreeViewEventArgs.cs:
24132         * TreeViewEventHandler.cs: Initial implementation.
24133
24134 2004-12-01  Ravindra <rkumar@novell.com>
24135
24136         * ListView.cs (CalculateListView): Fixed scrolling related
24137         calculations. Also, removed some debug statements from other
24138         places.
24139         * ListViewItem.cs: Changed access to 'selected' instance variable
24140         from private to internal.
24141         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
24142
24143 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
24144
24145         * ThemeWin32Classic.cs: remove cache of brush and pens for
24146         specific controls and use the global system, fixes scrollbutton
24147         bugs (for small sizes, disabled, etc)
24148         
24149         * ScrollBar.cs: does not show the thumb for very small controls
24150         (as MS) and allow smaller buttons that the regular size
24151
24152 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
24153
24154         * UpDownBase.cs: Add abstract methods for the interface.
24155         Add new virtual methods (need to be hooked up to TextEntry when it
24156         exists).
24157         Add override methods for most features.
24158         Computes the size, forces the height of the text entry.
24159
24160         * NumericUpDown.cs: Put here the current testing code.
24161
24162         * Set eol-style property on all files that do not have mixed line
24163         endings, to minimize the future problems.  There are still a few
24164         files with mixed endings, and someone should choose whether they
24165         want to move it or not.
24166
24167 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
24168
24169         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
24170         System.Colors
24171         
24172 2004-11-30  Ravindra <rkumar@novell.com>
24173
24174         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
24175         drawing and replaced use of SystemColors by theme colors.
24176         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
24177         * ListView.cs (ListViewItemCollection.Add): Throw exception when
24178         same ListViewItem is being added more than once.
24179
24180 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
24181
24182         * MonthCalendar.cs:
24183           - ControlStyles love to make the control not flicker
24184           
24185 2004-11-30  Peter Bartok  <pbartok@novell.com>
24186
24187         * CharacterCasing.cs: Added
24188
24189 2004-11-29  Peter Bartok  <pbartok@novell.com>
24190
24191         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24192           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
24193           I am removing these files as they conflict with already completed
24194           work. While it is fantastic to get contributions to MWF, I
24195           respectfully ask that everyone please coordinate their contributions
24196           through mono-winforms-list or #mono-winforms at this time. We're
24197           explicitly avoiding stubbing and don't want controls that don't have
24198           their basic functionality implemented in svn. Please also see
24199           http://www.mono-project.com/contributing/winforms.html
24200
24201
24202 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
24203
24204         * Application.cs (ModalRun): Don't hang after exit.
24205
24206         * Theme.cs: New TreeViewDefaultSize property.
24207
24208         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
24209         with less hardcoded SystemColors constant.
24210         Implemented TreeViewDefaultSize.
24211
24212         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24213         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
24214
24215
24216 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
24217
24218         * MonthCalendar.cs:
24219           - Fix NextMonthDate and PrevMonthDate click moving calendar
24220
24221 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24222
24223         * MonthCalendar.cs:
24224           - Fix usage of ScrollChange Property when scrolling months
24225
24226 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
24227
24228         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
24229          - Fixes menu destroying
24230          - Support adding and removing items on already created menus
24231
24232 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24233
24234         * MonthCalendar.cs:
24235           - Re-worked all bolded dates handling to match win32
24236         * ThemeWin32Classic.cs:
24237           - Fixed rendering with bolded dates
24238
24239 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
24240
24241         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
24242         - Horizontal scroolbar
24243         - Multicolumn
24244         - Fixes
24245
24246
24247 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
24248
24249         * MonthCalendar.cs:
24250           - Fix Usage of MaxSelectionCount from SelectionRange
24251           - Fixed Shift + Cursor Selection
24252           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
24253           - Fixed normal cursor selection to be compat with win32
24254           - Fixed Shift + Mouse Click selection
24255
24256 2004-11-24  Peter Bartok <pbartok@novell.com>
24257
24258         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
24259         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
24260         * XplatUIX11.cs:
24261           - CreatedKeyBoardMsg now updates keystate with Alt key
24262           - Added workaround for timer crash to CheckTimers, Jackson will
24263             develop a proper fix and check in later
24264           - Implemented DispatchMessage
24265           - Removed calling the native window proc from GetMessage (call
24266             now moved to DispatchMessage)
24267
24268         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
24269           the keydata (Fixes bug #69831)
24270
24271         * XplatUIWin32.cs:
24272           - (DispatchMessage): Switched to return IntPtr
24273           - Added DllImport for SetFocus
24274
24275 2004-11-24  Ravindra <rkumar@novell.com>
24276
24277         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
24278         background drawing.
24279         * ListViewItem.cs: Fixed various properties, calculations
24280         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
24281         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
24282         and some internal properties. Fixed MouseDown handler and Paint
24283         method.
24284
24285 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24286
24287         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
24288
24289 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24290
24291         * ContainerControl.cs: correct accidental check in of local changes
24292
24293 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24294
24295         * ThemeWin32Classic.cs:
24296                 - Fixed Drawing Last month in grid (sometimes not showing)
24297         * MonthCalendar.cs:
24298                 - Fixed title width calculation bug (makeing title small)
24299
24300 2004-11-23  Peter Bartok <pbartok@novell.com>
24301
24302         * XplatUIX11.cs:
24303           - Added generation of WM_MOUSEHOVER event
24304           - Added missing assignment of async_method atom
24305           - Fixed WM_ERASEBKGND; now only redraws the exposed area
24306
24307 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24308
24309         * ThemeWin32Classic.cs:
24310                 - Fixed Drawing of today circle when showtodaycircle not set
24311                 - fixed drawing of first and last month in the grid (gay dates)
24312         * MonthCalendar.cs:
24313                 - Fixed Drawing of today circle
24314                 - Fixed drawing of grady dates
24315                 - Fixed HitTest for today link when ShowToday set to false
24316                 - Fixed DefaultSize to obey ShowToday
24317
24318 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24319
24320         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
24321         * System.Windows.Forms/Theme.cs
24322         * MonthCalendar.cs: added for MonthCalendar
24323         * SelectionRange.cs: added for MonthCalendar
24324         * Day.cs: added for MonthCalendar: added for MonthCalendar
24325         * DateRangeEventArgs.cs: added for MonthCalendar
24326         * DateRangeEventHandler.cs: added for MonthCalendar
24327
24328 2004-11-22  Ravindra <rkumar@novell.com>
24329
24330         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
24331         property.
24332
24333 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
24334
24335         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
24336         event handler.
24337         
24338         * NumericUpDown.cs: Added new implementation.
24339         * UpDownBase.cs: Added new implementation.
24340
24341         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
24342         implementations.
24343         
24344         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
24345         implementations.
24346
24347         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
24348         methods.
24349
24350 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
24351
24352         * Timer.cs  (Dispose): Should call the base dispose when
24353         overriding.
24354
24355 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24356
24357         * ScrollBar.cs: updates thumb position when max, min or increment
24358         is changed
24359
24360 2004-11-21  Ravindra <rkumar@novell.com>
24361
24362         * ListView.cs: Implemented item selection, activation and
24363         column header style. Fixed properties to do a redraw, if
24364         required. Added support for MouseHover, DoubleClick, KeyDown
24365         and KeyUp event handling and some minor fixes.
24366         * ListViewItem.cs: Fixed constructor.
24367         * ThemeWin32Classic.cs: Improved drawing for ListView.
24368
24369 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24370
24371         * ThemeWin32Classic.cs: initial listbox drawing code
24372         * DrawMode.cs: new enumerator
24373         * ListControl.cs: stubbed class
24374         * ListBox.cs: initial implementation
24375         * Theme.cs: new methods definitions
24376         * SelectionMode.cs: new enumerator
24377
24378 2004-11-17  Peter Bartok  <pbartok@novell.com>
24379
24380         * XplatUIWin32.cs: Added double-click events to the class style
24381         * Control.cs (WndProc):
24382           - Added handling of click-count to MouseDown/ MouseUp events.
24383           - Added handling of middle and right mouse buttons
24384           - Removed old debug code
24385
24386 2004-11-17  Jackson Harper  <jackson@ximian.com>
24387
24388         * XplatUIX11.cs: Use the new Mono.Unix namespace.
24389
24390 2004-11-17  Ravindra <rkumar@novell.com>
24391
24392         * ListView.cs: Added event handling for MouseMove/Up/Down.
24393         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
24394         * ThemeWin32Classic.cs: We need to clear the graphics context and
24395         draw column header in a proper state.
24396
24397
24398 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
24399
24400         *  Menu.cs: fixes signature
24401
24402 2004-11-16  Peter Bartok  <pbartok@novell.com>
24403
24404         * XplatUIX11.cs (GetMessage): Implemented generation of
24405           double click mouse messages
24406
24407 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
24408
24409         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
24410         not by menu
24411
24412 2004-11-11  Peter Bartok  <pbartok@novell.com>
24413
24414         * HandleData.cs: Added Visible property
24415         * XplatUIX11.cs (IsVisible): Now uses Visible property from
24416           HandleData
24417         * XplatUIX11.cs: Removed old debug leftovers
24418         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
24419         * Control.cs (WndProc): Removed old debug leftovers,
24420           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
24421           needed WM_SIZE handling
24422
24423 2004-11-11  Jackson Harper  <jackson@ximian.com>
24424
24425         * OwnerDrawPropertyBag.cs:
24426         * TreeViewImageIndexConverter.cs: Initial implementation
24427
24428 2004-11-10  Jackson Harper  <jackson@ximian.com>
24429
24430         * ThemeWin32Classic.cs:
24431         * TabControl.cs: instead of moving tabs by the slider pos just
24432         start drawing at the tab that is offset by the slider. This way
24433         scrolling always moves by exactly one tab.
24434
24435 2004-11-10  Jackson Harper  <jackson@ximian.com>
24436
24437         * TabControl.cs: You can only scroll left when the slider has
24438         already ben moved right.
24439         
24440 2004-11-10  Jackson Harper  <jackson@ximian.com>
24441
24442         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
24443         the clip area.
24444         
24445 2004-11-10  Jackson Harper  <jackson@ximian.com>
24446
24447         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
24448         clip area.
24449         
24450 2004-11-09  Jackson Harper  <jackson@ximian.com>
24451
24452         * TabControl.cs (CalcXPos): New helper method so we can determine
24453         the proper place to start drawing vertical tabs.
24454         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
24455         
24456 2004-11-09  Jackson Harper  <jackson@ximian.com>
24457
24458         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
24459         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
24460         and Bottom, left and right are illegal values for this and
24461         multiline is enabled when the alignment is set to left or right.
24462         (DrawTab): Each alignment block should draw the text itself now
24463         because Left requires special love. Also add rendering for Left
24464         aligned tabs.
24465         
24466 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
24467
24468         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
24469         does not destroy the windows, removes debugging messages
24470
24471 2004-11-09  jba  <jba-mono@optusnet.com.au>
24472
24473         * ThemeWin32Classic.cs
24474         (DrawButtonBase): Fix verticle text rect clipping in windows
24475         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24476         rendering and incorrect text rect clipping
24477         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24478         rendering and incorrect text rect clipping
24479         
24480 2004-11-08  Jackson Harper  <jackson@ximian.com>
24481
24482         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
24483         bottom when they are bottom aligned so the bottoms of the tabs get
24484         displayed.
24485         * TabControl.cs (DropRow): Move rows up instead of down when the
24486         tab control is bottom aligned.
24487
24488 2004-11-08 13:59  pbartok
24489
24490         * XplatUIX11.cs:
24491           - Added handling for various window styles
24492           - Added handling for popup windows
24493           - Added SetTopmost handling
24494
24495 2004-11-08 13:55  pbartok
24496
24497         * XplatUIWin32.cs:
24498           - Added argument to SetTopmost method
24499           - Fixed broken ClientToScreen function
24500
24501 2004-11-08 13:53  pbartok
24502
24503         * XplatUIStructs.cs:
24504           - Added missing WS_EX styles
24505
24506 2004-11-08 13:53  pbartok
24507
24508         * XplatUI.cs, XplatUIDriver.cs:
24509           - Added argument to SetTopmost
24510
24511 2004-11-08 13:52  pbartok
24512
24513         * X11Structs.cs:
24514           - Added XSetWindowAttributes structure
24515           - Improved XWindowAttributes structure
24516           - Added SetWindowValuemask enum
24517           - Added window creation arguments enum
24518           - Added gravity enum
24519           - Added Motif hints structure
24520           - Added various Motif flags and enums
24521           - Added PropertyMode enum for property functions
24522
24523 2004-11-08 13:50  pbartok
24524
24525         * Form.cs:
24526           - Fixed arguments for updated SetTopmost method
24527
24528 2004-11-08 13:49  pbartok
24529
24530         * ToolTip.cs:
24531           - Fixed arguments for updated SetTopmost function
24532           - Fixed usage of PointToClient
24533
24534 2004-11-08 13:44  pbartok
24535
24536         * MenuAPI.cs:
24537           - Added Clipping of children and siblings
24538
24539 2004-11-08 13:41  pbartok
24540
24541         * MainMenu.cs:
24542           - Removed SetMenuBarWindow call. We do this in Form.cs
24543
24544 2004-11-08 13:40  jackson
24545
24546         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
24547           scrolling jimmi in the correct location with bottom aligned tabs
24548
24549 2004-11-08 13:36  pbartok
24550
24551         * ContainerControl.cs:
24552           - Implemented BindingContext
24553           - Implemented ParentForm
24554
24555 2004-11-08 12:46  jackson
24556
24557         * TabControl.cs: Put bottom rendered tabs in the right location
24558
24559 2004-11-08 07:15  jordi
24560
24561         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
24562           removes dead code
24563
24564 2004-11-05 17:30  jackson
24565
24566         * TabControl.cs: When selected tabs are expanded make sure they
24567           don't go beyond the edges of the tab control
24568
24569 2004-11-05 14:57  jackson
24570
24571         * TabControl.cs: Reset show_slider so if the control is resized to
24572           a size where it is no longer needed it's not displayed anymore
24573
24574 2004-11-05 13:16  jackson
24575
24576         * TabControl.cs: Make tab pages non visible when added to the
24577           control
24578
24579 2004-11-05 12:42  jackson
24580
24581         * TabControl.cs: Implement SizeMode.FillToRight
24582
24583 2004-11-05 12:16  jackson
24584
24585         * Control.cs: Do not call CreateHandle if the handle is already
24586           created
24587
24588 2004-11-05 11:46  jackson
24589
24590         * TabControl.cs: Remove superflous call to CalcTabRows
24591
24592 2004-11-05 09:07  jackson
24593
24594         * XplatUIX11.cs: Update for Mono.Posix changes
24595
24596 2004-11-05 07:00  ravindra
24597
24598         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
24599           scrolling.
24600
24601 2004-11-04 22:47  jba
24602
24603         * ThemeWin32Classic.cs:
24604           - Fix Button rendering for FlatStyle = Flat or Popup
24605           - Fix RadioButton and CheckBox rendering when Appearance = Button
24606             (normal and flatstyle).
24607           - Correct outer rectangle color when drawing focus rectangle
24608           - Adjust button bounds to be 1 px smaller when focused
24609           - Make button not draw sunken 3d border when pushed (windows compat)
24610           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
24611           - Offset the text in RadioButton and Checkbox when being rendered as
24612           a button.
24613           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
24614           radiobuttons
24615           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
24616           - Fixed disabled text rendering for normally rendered radiobuttons
24617
24618 2004-11-04 10:26  jackson
24619
24620         * TabControl.cs: Recalculate tab rows when resizing
24621
24622 2004-11-04 07:47  jordi
24623
24624         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
24625           collection completion, drawing issues, missing features
24626
24627 2004-11-04 05:03  ravindra
24628
24629         * ScrollBar.cs:
24630                 - We need to recalculate the Thumb area when
24631                 LargeChange/maximum/minimum values are changed.
24632           - We set the 'pos' in UpdatePos() method to minimum, if it's less
24633                 than minimum. This is required to handle the case if large_change is
24634                 more than max, and use LargeChange property instead of large_change
24635                 variable.
24636           - We return max+1 when large_change is more than max, like MS does.
24637
24638 2004-11-04 04:29  ravindra
24639
24640         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
24641                 - Changed default value signatures (prefixed all with ListView).
24642                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
24643                 ListView.
24644           - Fixed calculations for ListViewItem and implemented Clone()
24645           method.
24646
24647 2004-11-04 04:26  ravindra
24648
24649         * Theme.cs, ThemeWin32Classic.cs:
24650                 - Changed default ListView values signatures (prefixed all with
24651                 ListView).
24652           - Fixed default size values for VScrollBar and HScrollBar.
24653                 - Fixed DrawListViewItem method.
24654
24655 2004-11-04 04:05  ravindra
24656
24657         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
24658
24659 2004-11-04 04:04  ravindra
24660
24661         * ImageList.cs: Implemented the missing overload for Draw method.
24662
24663 2004-11-03 19:29  jackson
24664
24665         * TabControl.cs: Handle dropping rows on selection properly
24666
24667 2004-11-03 11:59  jackson
24668
24669         * TabControl.cs: remove debug code
24670
24671 2004-11-03 11:52  jackson
24672
24673         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
24674           the scrolly widgerywoo
24675
24676 2004-11-02 13:52  jackson
24677
24678         * TabControl.cs: Resize the tab pages and tabs when the tab control
24679           is resized
24680
24681 2004-11-02 13:40  jackson
24682
24683         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
24684           selected tab to the bottom
24685
24686 2004-11-02 13:39  jackson
24687
24688         * TabPage.cs: Store the tab pages row
24689
24690 2004-11-02 12:33  jordi
24691
24692         * MenuItem.cs: fixes handle creation
24693
24694 2004-11-02 11:42  jackson
24695
24696         * TabControl.cs: signature fix
24697
24698 2004-11-02 08:56  jackson
24699
24700         * TabControl.cs: Calculate whether the tab is on an edge properly.
24701           Remove top secret debugging code
24702
24703 2004-11-01 19:57  jackson
24704
24705         * TabControl.cs: Add click handling, and proper sizing
24706
24707 2004-11-01 19:47  jackson
24708
24709         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
24710           tab controls
24711
24712 2004-11-01 19:39  jackson
24713
24714         * TabPage.cs: add internal property to store the bounds of a tab
24715           page
24716
24717 2004-10-30 04:23  ravindra
24718
24719         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
24720           values.
24721
24722 2004-10-30 04:21  ravindra
24723
24724         * ListView.cs, ListViewItem.cs: Added support for scrolling and
24725           fixed calculations.
24726
24727 2004-10-30 03:06  pbartok
24728
24729         * XplatUIX11.cs:
24730           - Removed extension of DllImported libs
24731
24732 2004-10-29 09:55  jordi
24733
24734         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
24735           navigation, itemcollection completion, menu fixes
24736
24737 2004-10-27 22:58  pbartok
24738
24739         * XplatUIX11.cs:
24740           - Now throws a nice error message when no X display could be opened
24741
24742 2004-10-26 13:51  jordi
24743
24744         * ListView.cs: removes warning
24745
24746 2004-10-26 03:55  ravindra
24747
24748         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
24749           ThemeWin32Classic.cs: Some formatting for my last checkins.
24750
24751 2004-10-26 03:36  ravindra
24752
24753         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
24754           control and default values.
24755
24756 2004-10-26 03:35  ravindra
24757
24758         * Theme.cs: Added some default values for ListView control.
24759
24760 2004-10-26 03:33  ravindra
24761
24762         * ToolBar.cs: ToolBar should use the user specified button size, if
24763           there is any. Added a size_specified flag for the same.
24764
24765 2004-10-26 03:33  ravindra
24766
24767         * ColumnHeader.cs: Added some internal members and calculations for
24768           ColumnHeader.
24769
24770 2004-10-26 03:32  ravindra
24771
24772         * ListViewItem.cs: Calculations for ListViewItem.
24773
24774 2004-10-26 03:31  ravindra
24775
24776         * ListView.cs: Added some internal members and calculations for
24777           ListView.
24778
24779 2004-10-22 13:31  jordi
24780
24781         * MenuAPI.cs: speedup menus drawing
24782
24783 2004-10-22 13:16  jackson
24784
24785         * XplatUIX11.cs: Make sure to update exposed regions when adding an
24786           expose event
24787
24788 2004-10-22 11:49  jackson
24789
24790         * Control.cs: oops
24791
24792 2004-10-22 11:41  jackson
24793
24794         * Control.cs: Check to see if the window should have its background
24795           repainted by X when drawing.
24796
24797 2004-10-22 11:31  jackson
24798
24799         * XplatUIX11.cs: When invalidating areas only use XClearArea if
24800           clear is true, this way we do not get flicker from X repainting the
24801           background
24802
24803 2004-10-22 11:28  jackson
24804
24805         * XEventQueue.cs: Queue properly
24806
24807 2004-10-21 09:38  jackson
24808
24809         * XEventQueue.cs: Fix access modifier
24810
24811 2004-10-21 09:36  jackson
24812
24813         * XEventQueue.cs: Don't loose messages
24814
24815 2004-10-21 09:22  jackson
24816
24817         * XEventQueue.cs: Don't loose messages
24818
24819 2004-10-20 04:15  jordi
24820
24821         * BootMode.cs: enum need it by SystemInfo
24822
24823 2004-10-19 21:58  pbartok
24824
24825         * XplatUIWin32.cs:
24826           - Small sanity check
24827
24828 2004-10-19 21:56  pbartok
24829
24830         * Form.cs:
24831           - Added private FormParentWindow class which acts as the container
24832             for our form and as the non-client area where menus are drawn
24833           - Added/Moved required tie-ins to Jordi's menus
24834           - Fixed/Implemented the FormStartPosition functionality
24835
24836 2004-10-19 21:52  pbartok
24837
24838         * Control.cs:
24839           - Removed unneeded locals
24840           - Added code to all size and location properties to understand and
24841             deal with the parent container of Form
24842
24843 2004-10-19 21:33  pbartok
24844
24845         * Application.cs:
24846           - Fixed to deal with new Form subclasses for menus
24847
24848 2004-10-19 17:48  jackson
24849
24850         * XEventQueue.cs: commit correct version of file
24851
24852 2004-10-19 16:50  jackson
24853
24854         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
24855
24856 2004-10-19 16:15  jordi
24857
24858         * MenuAPI.cs: MenuBarCalcSize returns the height
24859
24860 2004-10-19 08:31  pbartok
24861
24862         * Control.cs:
24863           - Added missing call to PreProcessMessage before calling OnXXXKey
24864           methods
24865
24866 2004-10-19 00:04  ravindra
24867
24868         * ToolTip.cs: Fixed constructor.
24869
24870 2004-10-18 09:31  jordi
24871
24872         * MenuAPI.cs: menuitems in menubars do not have shortcuts
24873
24874 2004-10-18 09:26  jordi
24875
24876         * MenuItem.cs: fixes MenuItem class signature
24877
24878 2004-10-18 08:56  jordi
24879
24880         * MenuAPI.cs: prevents windows from showing in the taskbar
24881
24882 2004-10-18 00:28  ravindra
24883
24884         * ToolTip.cs: Suppressed a warning message.
24885
24886 2004-10-18 00:27  ravindra
24887
24888         * Control.cs: Default value of visible property must be true.
24889
24890 2004-10-17 23:19  pbartok
24891
24892         * ToolTip.cs:
24893           - Complete implementation
24894
24895 2004-10-17 23:19  pbartok
24896
24897         * XplatUIX11.cs:
24898           - Added EnableWindow method
24899           - Added SetModal stub
24900           - Added generation of WM_ACTIVATE message (still needs testing)
24901           - Added SetTopMost stub
24902           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
24903
24904 2004-10-17 23:17  pbartok
24905
24906         * XplatUIWin32.cs:
24907           - Removed VirtualKeys to XplatUIStructs
24908           - Implemented SetTopMost method
24909           - Implemented EnableWindow method
24910           - Bugfix in ScreenToClient()
24911           - Bugfixes in ClientToScreen()
24912
24913 2004-10-17 22:51  pbartok
24914
24915         * XplatUIStructs.cs:
24916           - Added WS_EX styles to WindowStyles enumeration
24917
24918 2004-10-17 22:50  pbartok
24919
24920         * XplatUI.cs, XplatUIDriver.cs:
24921           - Added method for enabling/disabling windows
24922           - Added method for setting window modality
24923           - Added method for setting topmost window
24924
24925 2004-10-17 22:49  pbartok
24926
24927         * ThemeWin32Classic.cs:
24928           - Added ToolTip drawing code
24929
24930 2004-10-17 22:49  pbartok
24931
24932         * Theme.cs:
24933           - Added ToolTip abstracts
24934
24935 2004-10-17 22:47  pbartok
24936
24937         * Form.cs:
24938           - Fixed Form.ControlCollection to handle owner relations
24939           - Added Owner/OwnedForms handling
24940           - Implemented Z-Ordering for owned forms
24941           - Removed unneeded private overload of ShowDialog
24942           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
24943             so I hope)
24944           - Fixed Close(), had wrong default
24945           - Added firing of OnLoad event
24946           - Added some commented out debug code for Ownership handling
24947
24948 2004-10-17 22:16  pbartok
24949
24950         * Control.cs:
24951           - Fixed/implemented flat list of controls
24952
24953 2004-10-17 22:14  pbartok
24954
24955         * Application.cs:
24956           - Added code to simulate modal dialogs on Win32
24957
24958 2004-10-17 16:11  jordi
24959
24960         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
24961           mouse event
24962
24963 2004-10-17 13:39  jordi
24964
24965         * MenuAPI.cs: menu drawing fixes
24966
24967 2004-10-15 09:10  ravindra
24968
24969         * StructFormat.cs: General Enum.
24970
24971 2004-10-15 09:09  ravindra
24972
24973         * SizeGripStyle.cs: Enum for Form.
24974
24975 2004-10-15 09:08  ravindra
24976
24977         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
24978           in Theme for ListView.
24979
24980 2004-10-15 09:06  ravindra
24981
24982         * ColumnHeader.cs: Flushing some formatting changes.
24983
24984 2004-10-15 09:05  ravindra
24985
24986         * ListViewItem.cs: Implemented GetBounds method and fixed coding
24987           style.
24988
24989 2004-10-15 09:03  ravindra
24990
24991         * ListView.cs: Implemented Paint method and fixed coding style.
24992
24993 2004-10-15 07:34  jordi
24994
24995         * MenuAPI.cs: fix for X11
24996
24997 2004-10-15 07:32  ravindra
24998
24999         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
25000                 - Renamed Paint() method to Draw() for clarity. Also, moved
25001                 DrawImage() to OnPaint().
25002
25003 2004-10-15 07:25  ravindra
25004
25005         * CheckBox.cs, RadioButton.cs:
25006                 - Removed Redraw (), we get it from ButtonBase.
25007                 - Implemented Paint (), to do class specific painting.
25008
25009 2004-10-15 07:16  ravindra
25010
25011         * ButtonBase.cs:
25012                 - Redraw () is not virtual now.
25013                 - Added an internal virtual method Paint (), so that
25014                 derived classes can do their painting on their own.
25015                 - Modified OnPaint () to call Paint ().
25016
25017 2004-10-15 06:43  jordi
25018
25019         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
25020           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
25021
25022 2004-10-15 00:30  ravindra
25023
25024         * MessageBox.cs:
25025                 - MessageBox on windows does not have min/max buttons.
25026                 This change in CreateParams fixes this on Windows. We
25027                 still need to implement this windowstyle behavior in
25028                 our X11 driver.
25029
25030 2004-10-14 05:14  ravindra
25031
25032         * ToolBar.cs:
25033                 - Changed Redraw () to do a Refresh () always.
25034                 - Fixed the MouseMove event handling when mouse is pressed,
25035                 ie drag event handling.
25036                 - Replaced the usage of ToolBarButton.Pressed property to
25037                 ToolBarButton.pressed internal variable.
25038
25039 2004-10-14 05:10  ravindra
25040
25041         * ToolBarButton.cs:
25042                 - Added an internal member 'inside' to handle mouse move
25043                 with mouse pressed ie mouse drag event.
25044                 - Changed 'Pressed' property to return true only when
25045                 'inside' and 'pressed' are both true.
25046                 - Some coding style love.
25047
25048 2004-10-14 00:17  ravindra
25049
25050         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
25051           public method.
25052
25053 2004-10-14 00:15  ravindra
25054
25055         * ButtonBase.cs: Redraw () related improvements.
25056
25057 2004-10-14 00:14  ravindra
25058
25059         * MessageBox.cs: Moved InitFormSize () out of Paint method and
25060           removed unnecessary calls to Button.Show () method.
25061
25062 2004-10-13 17:50  pbartok
25063
25064         * XplatUIX11.cs:
25065           - Formatting fix
25066           - Removed destroying of window until we solve the problem of X
25067             destroying the window before us on shutdown
25068
25069 2004-10-13 16:32  pbartok
25070
25071         * ButtonBase.cs:
25072           - Now Redraws on MouseUp for FlatStyle Flat and Popup
25073
25074 2004-10-13 14:18  pbartok
25075
25076         * XplatUIX11.cs:
25077           - Added code to destroy the X window
25078
25079 2004-10-13 14:18  pbartok
25080
25081         * XplatUIWin32.cs:
25082           - Added code to destroy a window
25083
25084 2004-10-13 14:12  pbartok
25085
25086         * ButtonBase.cs:
25087           - Added the Redraw on Resize that got dropped in the last rev
25088
25089 2004-10-13 09:06  pbartok
25090
25091         * ThemeWin32Classic.cs:
25092           - Path from John BouAntoun:
25093             * Fix check rendering (centre correctly for normal style, offset
25094               correctly for FlatStyle).
25095             * Fix border color usage (use backcolor) for FlatStyle.Popup
25096             * Use checkbox.Capture instead of checkbox.is_pressed when
25097               rendering flatstyle states.
25098
25099 2004-10-12 21:48  pbartok
25100
25101         * ThemeWin32Classic.cs:
25102           - Removed all occurences of SystemColors and replaced them with the
25103             matching theme color
25104
25105 2004-10-12 21:41  pbartok
25106
25107         * ThemeWin32Classic.cs:
25108           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
25109             him using the function for flatstyle drawing
25110           - Changed functions to use the new version of CPDrawBorder3D
25111
25112 2004-10-12 21:15  pbartok
25113
25114         * ControlPaint.cs:
25115           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
25116             match MS documentation. They need to return defined colors if the
25117             passed color matches the configured control color. Thanks to John
25118             BouAntoun for pointing this out.
25119
25120 2004-10-12 20:57  pbartok
25121
25122         * Control.cs:
25123           - Fix from John BouAntoun: Raise ForeColorChanged event when text
25124             color is changed
25125
25126 2004-10-12 20:46  pbartok
25127
25128         * CheckBox.cs:
25129           - Fix from John BouAntoun: Now properly sets the Appearance property
25130
25131 2004-10-12 20:45  pbartok
25132
25133         * ThemeWin32Classic.cs:
25134           - Fixes from John BouAntoun: now handles forecolors and backcolors
25135             for flatstyle rendered controls much better; It also fixes normal
25136             checkbox rendering when pushed or disabled.
25137
25138 2004-10-08 02:50  jordi
25139
25140         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
25141           work
25142
25143 2004-10-07 08:56  jordi
25144
25145         * ThemeWin32Classic.cs: Removes deletion of cached brushes
25146
25147 2004-10-06 03:59  jordi
25148
25149         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
25150           XplatUIWin32.cs: removes warnings from compilation
25151
25152 2004-10-05 12:23  jackson
25153
25154         * RadioButton.cs: Fix ctor
25155
25156 2004-10-05 11:10  pbartok
25157
25158         * MessageBox.cs:
25159           - Partial implementation by Benjamin Dasnois
25160
25161 2004-10-05 10:15  jackson
25162
25163         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
25164           by John BouAntoun
25165
25166 2004-10-05 03:07  ravindra
25167
25168         * ToolBar.cs:
25169                 - Removed a private method, Draw ().
25170                 - Fixed the ButtonDropDown event handling.
25171                 - Fixed MouseMove event handling.
25172
25173 2004-10-05 03:04  ravindra
25174
25175         * ThemeWin32Classic.cs:
25176                 - Added DrawListView method and ListViewDefaultSize property.
25177                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
25178                 - Changed DOS style CRLF to Unix format (dos2unix).
25179
25180 2004-10-05 03:03  ravindra
25181
25182         * Theme.cs:
25183                 - Added DrawListView method and ListViewDefaultSize property.
25184
25185 2004-10-05 02:42  ravindra
25186
25187         * ToolBarButton.cs: Added an internal member dd_pressed to handle
25188           clicks on DropDown arrow.
25189
25190 2004-10-04 22:56  jackson
25191
25192         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
25193           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
25194           Control handle the buffers, derived classes should not have to
25195           CreateBuffers themselves.
25196
25197 2004-10-04 21:20  jackson
25198
25199         * StatusBar.cs: The control handles resizing the buffers now.
25200
25201 2004-10-04 21:18  jackson
25202
25203         * Control.cs: When resizing the buffers should be invalidated. This
25204           should be handled in Control not in derived classes.
25205
25206 2004-10-04 14:45  jackson
25207
25208         * TabPage.cs: oops
25209
25210 2004-10-04 02:14  pbartok
25211
25212         * LeftRightAlignment.cs:
25213           - Initial check-in
25214
25215 2004-10-04 01:09  jordi
25216
25217         * ThemeWin32Classic.cs: fixes right button position causing right
25218           button not showing on horizontal scrollbars
25219
25220 2004-10-02 13:12  pbartok
25221
25222         * XplatUIX11.cs:
25223           - Simplified the Invalidate method by using an X call instead of
25224             generating the expose ourselves
25225           - Added an expose when the window background is changed
25226           - Implemented ClientToScreen method
25227
25228 2004-10-02 13:08  pbartok
25229
25230         * XplatUIWin32.cs:
25231           - Added Win32EnableWindow method (test for implementing modal
25232           dialogs)
25233           - Added ClientToScreen method and imports
25234
25235 2004-10-02 13:07  pbartok
25236
25237         * XplatUI.cs, XplatUIDriver.cs:
25238           - Added ClientToScreen coordinate translation method
25239
25240 2004-10-02 13:06  pbartok
25241
25242         * KeyPressEventArgs.cs:
25243           - Fixed access level for constructor
25244
25245 2004-10-02 13:06  pbartok
25246
25247         * NativeWindow.cs:
25248           - Changed access level for the window_collection hash table
25249
25250 2004-10-02 13:05  pbartok
25251
25252         * Form.cs:
25253           - Added KeyPreview property
25254           - Added Menu property (still incomplete, pending Jordi's menu work)
25255           - Implemented ProcessCmdKey
25256           - Implemented ProcessDialogKey
25257           - Implemented ProcessKeyPreview
25258
25259 2004-10-02 13:02  pbartok
25260
25261         * Control.cs:
25262           - Added private method to get the Control object from the window
25263           handle
25264           - Implemented ContextMenu property
25265           - Implemented PointToScreen
25266           - Implemented PreProcessMessage
25267           - Implemented IsInputChar
25268           - Implemented IsInputKey
25269           - Implemented ProcessCmdKey
25270           - Completed ProcessKeyEventArgs
25271           - Fixed message loop to call the proper chain of functions on key
25272           events
25273           - Implemented ProcessDialogChar
25274           - Implemented ProcessDialogKey
25275           - Implemented ProcessKeyMessage
25276           - Implemented ProcessKeyPreview
25277           - Added RaiseDragEvent stub (MS internal method)
25278           - Added RaiseKeyEvent stub (MS internal method)
25279           - Added RaiseMouseEvent stub (MS Internal method)
25280           - Added RaisePaintEvent stub (MS Internal method)
25281           - Added ResetMouseEventArgs stub (MS Internal method)
25282           - Implemented RtlTranslateAlignment
25283           - Implemented RtlTranslateContent
25284           - Implemented RtlTranslateHorizontal
25285           - Implemented RtlTranslateLeftRight
25286           - Added generation of KeyPress event
25287
25288 2004-10-02 05:57  ravindra
25289
25290         * ListViewItem.cs: Added attributes.
25291
25292 2004-10-02 05:32  ravindra
25293
25294         * ListView.cs: Added attributes.
25295
25296 2004-10-01 11:53  jackson
25297
25298         * Form.cs: Implement the Close method so work on MessageBox can
25299           continue.
25300
25301 2004-09-30 14:06  pbartok
25302
25303         * XplatUIX11.cs:
25304           - Bug fixes
25305
25306 2004-09-30 11:34  jackson
25307
25308         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
25309
25310 2004-09-30 07:26  ravindra
25311
25312         * ListViewItemConverter.cs: Converter for ListViewItem.
25313
25314 2004-09-30 07:26  ravindra
25315
25316         * SortOrder.cs: Enum for ListView control.
25317
25318 2004-09-30 07:25  ravindra
25319
25320         * ColumnHeader.cs: Supporting class for ListView control.
25321
25322 2004-09-30 07:24  ravindra
25323
25324         * ListView.cs, ListViewItem.cs: Initial implementation.
25325
25326 2004-09-30 07:20  ravindra
25327
25328         * ItemActivation.cs: Enum for ListView Control.
25329
25330 2004-09-29 20:29  pbartok
25331
25332         * XplatUIX11.cs:
25333           - Added lookup of pixel value for background color; tries to get a
25334             color 'close' to the requested color, it avoids having to create a
25335             colormap.  Depending on the display this could mean the used color
25336             is slightly off the desired color. Might have to change it to a more
25337             resource intensive colormap approach, but it will work as a
25338           workaround to avoid red screens.
25339
25340 2004-09-29 14:27  jackson
25341
25342         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
25343
25344 2004-09-28 12:44  pbartok
25345
25346         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
25347           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
25348           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
25349           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
25350           TrackBar.cs, VScrollBar.cs:
25351           - Streamlined Theme interfaces:
25352             * Each DrawXXX method for a control now is passed the object for
25353               the control to be drawn in order to allow accessing any state the
25354               theme might require
25355
25356             * ControlPaint methods for the theme now have a CP prefix to avoid
25357               name clashes with the Draw methods for controls
25358
25359             * Every control now retrieves it's DefaultSize from the current
25360             theme
25361
25362 2004-09-28 12:17  jackson
25363
25364         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
25365           drawing
25366
25367 2004-09-24 14:57  jackson
25368
25369         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
25370           Gives us a nice little performance boost.
25371
25372 2004-09-24 12:02  jackson
25373
25374         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
25375           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
25376           Control and supporting classes. Initial checkin
25377
25378 2004-09-23 13:08  jackson
25379
25380         * Form.cs: Temp build fixage
25381
25382 2004-09-23 01:39  ravindra
25383
25384         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
25385           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
25386           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
25387           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
25388           EventHandlers needed by ListView Control.
25389
25390 2004-09-22 14:12  pbartok
25391
25392         * ScrollableControl.cs:
25393           - Implemented DockPadding property
25394           - Implemented AutoScroll property
25395           - Implemented AutoScrollMargin property
25396           - Implemented AutoScrollMinSize property
25397           - Implemented AutoScrollPosition property
25398           - Implemented DisplayRectangle property (still incomplete)
25399           - Implemented CreateParams property
25400           - Implemented HScroll property
25401           - Implemented VScroll property
25402           - Implemented OnVisibleChanged property
25403
25404 2004-09-22 14:09  pbartok
25405
25406         * Form.cs:
25407           - Added Form.ControllCollection class
25408           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
25409             RemoveOwnedForm (still incomplete, missing on-top and common
25410             minimize/maximize behaviour)
25411           - Added StartPosition property (still incomplete, does not use when
25412             creating the form)
25413           - Added ShowDialog() methods (still incomplete, missing forcing the
25414             dialog modal)
25415
25416 2004-09-22 14:05  pbartok
25417
25418         * Application.cs:
25419           - Added message loop for modal dialogs
25420
25421 2004-09-22 14:02  pbartok
25422
25423         * GroupBox.cs:
25424           - Fixed wrong types for events
25425
25426 2004-09-22 14:00  pbartok
25427
25428         * Shortcut.cs, FormWindowState.cs:
25429           - Fixed wrong values
25430
25431 2004-09-22 12:01  jackson
25432
25433         * Control.cs: Text is never null
25434
25435 2004-09-20 22:14  pbartok
25436
25437         * XplatUIWin32.cs:
25438           - Fixed accessibility level for Idle handler
25439
25440 2004-09-20 18:54  jackson
25441
25442         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25443           XplatUIX11.cs: New message loop that uses poll so we don't get a
25444           busy loop
25445
25446 2004-09-17 10:43  pbartok
25447
25448         * ScrollBar.cs:
25449           - Fixed behaviour of arrow buttons. Now properly behaves like
25450             Buttons (and like Microsoft's scrollbar arrow buttons)
25451
25452 2004-09-17 10:14  pbartok
25453
25454         * ScrollBar.cs:
25455           - Added missing release of keyboard/mouse capture
25456
25457 2004-09-17 06:18  jordi
25458
25459         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
25460           Theme.cs: Very early menu support
25461
25462 2004-09-16 17:45  pbartok
25463
25464         * XplatUIWin32.cs:
25465           - Fixed sending a window to the front
25466           - Added overload for SetWindowPos to avoid casting
25467
25468 2004-09-16 17:44  pbartok
25469
25470         * Control.cs:
25471           - Added SendToBack and BringToFront methods
25472
25473 2004-09-16 07:00  ravindra
25474
25475         * Copyright: Added Novell URL.
25476
25477 2004-09-16 07:00  ravindra
25478
25479         * ToolBar.cs: Invalidate should be done before redrawing.
25480
25481 2004-09-15 21:19  ravindra
25482
25483         * ColumnHeaderStyle.cs: Enum for ListView Control.
25484
25485 2004-09-15 21:18  ravindra
25486
25487         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
25488           ListView Control.
25489
25490 2004-09-13 18:26  jackson
25491
25492         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
25493           properly
25494
25495 2004-09-13 18:13  jackson
25496
25497         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
25498           a second thread and post messages into the main threads message
25499           queue. This makes timing much more consistent. Both win2K and XP
25500           have a minimum timer value of 15 milliseconds, so we now do this
25501           too.
25502
25503 2004-09-13 15:18  pbartok
25504
25505         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25506           XplatUIX11.cs:
25507           - Added Z-Ordering methods
25508
25509 2004-09-13 10:56  pbartok
25510
25511         * Form.cs:
25512           - Fixed #region names
25513           - Moved properties and methods into their proper #regions
25514
25515 2004-09-13 10:51  pbartok
25516
25517         * Form.cs:
25518           - Added Accept and CancelButton properties
25519           - Added ProcessDialogKey() method
25520
25521 2004-09-13 08:18  pbartok
25522
25523         * IWindowTarget.cs:
25524           - Initial check-in
25525
25526 2004-09-10 21:50  pbartok
25527
25528         * Control.cs:
25529           - Added DoDragDrop() [incomplete]
25530           - Properly implemented 'Visible' handling
25531           - Added SetVisibleCore()
25532           - Implemented FindChildAtPoint()
25533           - Implemented GetContainerControl()
25534           - Implemented Hide()
25535
25536 2004-09-10 19:28  pbartok
25537
25538         * Control.cs:
25539           - Moved methods into their appropriate #regions
25540           - Reordered methods within regions alphabetically
25541
25542 2004-09-10 18:57  pbartok
25543
25544         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
25545           - Added method to retrieve text from window
25546
25547 2004-09-10 18:56  pbartok
25548
25549         * Control.cs:
25550           - Moved some internal functions into the internal region
25551           - Implemented FontHeight
25552           - Implemented RenderRightToLeft
25553           - Implemented ResizeRedraw
25554           - Implemented ShowFocusCues
25555           - Implemented ShowKeyboardCues
25556           - Implemented FromChildHandle
25557           - Implemented FromHandle
25558           - Implemented IsMnemonic
25559           - Implemented ReflectMessage
25560           - All public and protected Static Methods are now complete
25561
25562 2004-09-10 16:54  pbartok
25563
25564         * Control.cs:
25565           - Implemented remaining missing public instance properties
25566           - Alphabetized some out of order properties
25567
25568 2004-09-10 05:51  ravindra
25569
25570         * PictureBox.cs: Added a check for null image.
25571
25572 2004-09-10 00:59  jordi
25573
25574         * GroupBox.cs: remove cvs tag
25575
25576 2004-09-09 05:25  ravindra
25577
25578         * ToolBar.cs: Make redraw accessible from ToolBarButton.
25579
25580 2004-09-09 05:23  ravindra
25581
25582         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
25583           parent redraw.
25584
25585 2004-09-09 02:28  pbartok
25586
25587         * ThemeWin32Classic.cs:
25588           - Improve disabled string look
25589
25590 2004-09-09 01:15  jordi
25591
25592         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
25593           args and handler
25594
25595 2004-09-08 23:56  ravindra
25596
25597         * ItemBoundsPortion.cs: It's enum, not a class!
25598
25599 2004-09-08 23:47  ravindra
25600
25601         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
25602           Enums for Form.
25603
25604 2004-09-08 21:13  ravindra
25605
25606         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
25607           ListView control.
25608
25609 2004-09-08 21:03  ravindra
25610
25611         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
25612           avoid crash.
25613
25614 2004-09-08 21:01  ravindra
25615
25616         * ScrollableControl.cs: Removed unreachable code.
25617
25618 2004-09-08 06:45  jordi
25619
25620         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
25621
25622 2004-09-08 01:00  jackson
25623
25624         * XplatUIX11.cs: Only run the timers when updating the message
25625           queue. This effectively gives X messages a higher priority then
25626           timer messages. Timers still need love though
25627
25628 2004-09-07 14:01  jackson
25629
25630         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
25631           this for us and the handle is no longer valid.
25632
25633 2004-09-07 13:59  jackson
25634
25635         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
25636           loop that manages to not crash. TODO: Add poll and cleanup timers
25637
25638 2004-09-07 11:12  jordi
25639
25640         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
25641
25642 2004-09-07 03:40  jordi
25643
25644         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
25645           fixes, methods, multiple links
25646
25647 2004-09-06 06:55  jordi
25648
25649         * Control.cs: Caches ClientRectangle rectangle value
25650
25651 2004-09-05 02:03  jordi
25652
25653         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
25654           certain situations
25655
25656 2004-09-04 11:10  jordi
25657
25658         * Label.cs: Refresh when font changed
25659
25660 2004-09-02 16:24  pbartok
25661
25662         * Control.cs:
25663           - Added sanity check to creation of double buffer bitmap
25664
25665 2004-09-02 16:24  pbartok
25666
25667         * ButtonBase.cs:
25668           - Fixed selection of text color
25669           - Fixed handling of resize event; now properly recreates double
25670             buffering bitmap
25671           - Added missing assignment of TextAlignment
25672           - Added proper default for TextAlignment
25673
25674 2004-09-02 14:26  pbartok
25675
25676         * RadioButton.cs:
25677           - Added missing RadioButton.RadioButtonAccessibleObject class
25678
25679 2004-09-02 14:26  pbartok
25680
25681         * Control.cs:
25682           - Added missing Control.ControlAccessibleObject class
25683           - Started to implement Select()ion mechanisms, still very incomplete
25684
25685 2004-09-02 14:25  pbartok
25686
25687         * AccessibleObject.cs:
25688           - Added missing methods
25689
25690 2004-09-02 14:23  pbartok
25691
25692         * AccessibleNavigation.cs, AccessibleSelection.cs:
25693           - Initial check-in
25694
25695 2004-09-02 10:32  jordi
25696
25697         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
25698           pool for pens, brushes, and hatchbruses
25699
25700 2004-09-01 15:30  jackson
25701
25702         * StatusBar.cs: Fix typo
25703
25704 2004-09-01 14:44  pbartok
25705
25706         * RadioButton.cs:
25707           - Fixed state
25708
25709 2004-09-01 14:39  pbartok
25710
25711         * Button.cs, RadioButton.cs:
25712           - Functional initial check-in
25713
25714 2004-09-01 14:01  pbartok
25715
25716         * CheckBox.cs:
25717           - Added missing default
25718           - Added missing region mark
25719
25720 2004-09-01 09:10  jordi
25721
25722         * Label.cs: fixes method signatures, new methods, events, fixes
25723           autosize
25724
25725 2004-09-01 07:19  jordi
25726
25727         * Control.cs: Init string variables with an empty object
25728
25729 2004-09-01 04:20  jordi
25730
25731         * Control.cs: fires OnFontChanged event
25732
25733 2004-08-31 20:07  pbartok
25734
25735         * ButtonBase.cs:
25736           - Enabled display of strings
25737
25738 2004-08-31 20:05  pbartok
25739
25740         * Form.cs:
25741           - Added (partial) implementation of DialogResult; rest needs to be
25742             implemented when the modal loop code is done
25743
25744 2004-08-31 19:55  pbartok
25745
25746         * CheckBox.cs:
25747           - Fixed to match the removal of the needs_redraw concept
25748
25749 2004-08-31 19:55  pbartok
25750
25751         * ButtonBase.cs:
25752           - Removed the rather odd split between 'needs redraw' and redrawing
25753           - Now handles the events that require regeneration (ambient
25754             properties and size)
25755
25756 2004-08-31 19:41  pbartok
25757
25758         * Control.cs:
25759           - Added firing of BackColorChanged event
25760           - Added TopLevelControl property
25761           - Fixed handling of WM_ERASEBKGRND message
25762
25763 2004-08-31 12:49  pbartok
25764
25765         * ButtonBase.cs:
25766           - Removed debug
25767           - Minor fixes
25768
25769 2004-08-31 12:48  pbartok
25770
25771         * CheckBox.cs:
25772           - Finished (famous last words)
25773
25774 2004-08-31 04:35  jordi
25775
25776         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
25777           scrolling bugs, adds new methods
25778
25779 2004-08-30 14:42  pbartok
25780
25781         * CheckBox.cs:
25782           - Implemented CheckBox drawing code
25783
25784 2004-08-30 14:42  pbartok
25785
25786         * ButtonBase.cs:
25787           - Made Redraw() and CheckRedraw() virtual
25788           - Improved mouse up/down/move logic to properly track buttons
25789
25790 2004-08-30 09:44  pbartok
25791
25792         * CheckBox.cs:
25793           - Updated to fix broken build. Not complete yet.
25794
25795 2004-08-30 09:28  pbartok
25796
25797         * CheckState.cs:
25798           - Initial checkin
25799
25800 2004-08-30 09:17  pbartok
25801
25802         * Appearance.cs:
25803           - Initial check-in
25804
25805 2004-08-27 16:12  ravindra
25806
25807         * ToolBarButton.cs: Added TypeConverter attribute.
25808
25809 2004-08-27 16:07  ravindra
25810
25811         * ImageIndexConverter.cs: Implemented.
25812
25813 2004-08-27 14:17  pbartok
25814
25815         * Control.cs:
25816           - Removed unneeded stack vars
25817           - First attempt to fix sizing issues when layout is suspended
25818
25819 2004-08-25 15:35  jordi
25820
25821         * ScrollBar.cs: more fixes to scrollbar
25822
25823 2004-08-25 14:04  ravindra
25824
25825         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
25826           Added the missing divider code and grip for ToolBar Control.
25827
25828 2004-08-25 13:20  pbartok
25829
25830         * Control.cs:
25831           - Control now properly passes the ambient background color to child
25832             controls
25833
25834 2004-08-25 13:20  jordi
25835
25836         * ScrollBar.cs: small bug fix regarding bar position
25837
25838 2004-08-25 12:33  pbartok
25839
25840         * Timer.cs:
25841           - Now only calls SetTimer or KillTimer if the enabled state has
25842           changed
25843
25844 2004-08-25 12:33  pbartok
25845
25846         * XplatUIWin32.cs:
25847           - Fixed timer handling, now seems to work
25848           - Improved error message for window creation
25849
25850 2004-08-25 12:32  pbartok
25851
25852         * Control.cs:
25853           - Fixed generation of MouseUp message
25854
25855 2004-08-25 12:29  jordi
25856
25857         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
25858           and fixes for progressbar
25859
25860 2004-08-24 18:43  ravindra
25861
25862         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
25863           in ToolBar control.
25864
25865 2004-08-24 17:15  pbartok
25866
25867         * Panel.cs:
25868           - Added #region
25869           - Added missing events
25870           - Alphabetized
25871
25872 2004-08-24 17:14  pbartok
25873
25874         * StatusBar.cs, PictureBox.cs:
25875           - Now uses Control's CreateParams
25876
25877 2004-08-24 16:36  pbartok
25878
25879         * XplatUIX11.cs:
25880           - Fixed background color handling
25881           - Fixed sending of enter/leave events on a grab
25882
25883 2004-08-24 16:35  pbartok
25884
25885         * X11Structs.cs:
25886           - Refined definitions for CrossingEvent
25887
25888 2004-08-24 12:37  jordi
25889
25890         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
25891           formmating, methods signature, and adds missing events
25892
25893 2004-08-24 12:24  jordi
25894
25895         * Control.cs: fire OnEnabledChanged event
25896
25897 2004-08-24 11:17  pbartok
25898
25899         * XplatUIWin32.cs:
25900           - Implemented SetTimer() and KillTimer()
25901
25902 2004-08-24 11:16  pbartok
25903
25904         * XplatUIX11.cs:
25905           - Now uses Remove instead of Add to kill the timer
25906
25907 2004-08-24 10:16  jackson
25908
25909         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
25910           picture boxes in the theme now. Draw picture box borders and obey
25911           sizing modes
25912
25913 2004-08-24 05:49  jackson
25914
25915         * Timer.cs: Remove top secret debugging code
25916
25917 2004-08-24 05:34  jackson
25918
25919         * PictureBox.cs: Temp hack to make picture boxes draw their full
25920           image
25921
25922 2004-08-24 05:29  jackson
25923
25924         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25925           XplatUIX11.cs: Move timers to the driver level. On X they are
25926           queued by the driver and checked on idle.
25927
25928 2004-08-24 01:07  jackson
25929
25930         * XplatUIX11.cs: Use a queue for async messages instead of passing
25931           them as ClientMessages since that was totally broken. Also simply
25932           check for events and return an idle message if none are found. This
25933           gives us an idle handler, and prevents deadlocking when no messages
25934           are in the queue.
25935
25936 2004-08-23 18:19  ravindra
25937
25938         * XplatUIWin32.cs: Removed the unwanted destructor.
25939
25940 2004-08-23 17:27  pbartok
25941
25942         * ButtonBase.cs:
25943           - Finishing touches. Works now, just needs some optimizations.
25944
25945 2004-08-23 16:53  jordi
25946
25947         * ScrollBar.cs: small fix
25948
25949 2004-08-23 16:45  pbartok
25950
25951         * Application.cs:
25952           - Removed debug output
25953           - Simplifications
25954
25955 2004-08-23 16:43  jordi
25956
25957         * ScrollBar.cs: [no log message]
25958
25959 2004-08-23 16:10  pbartok
25960
25961         * Form.cs:
25962           - Fixed handling of WM_CLOSE message
25963           - Removed debug output
25964
25965 2004-08-23 16:09  pbartok
25966
25967         * Application.cs:
25968           - Added handling of Idle event
25969           - Added handling of form closing
25970           - Fixed reporting of MessageLoop property
25971           - Removed some unneeded code, should provide a bit of a speedup
25972
25973 2004-08-23 15:22  pbartok
25974
25975         * Control.cs:
25976           - Added InitLayout() method
25977           - Added code to properly perform layout when Anchor or Dock property
25978             is changed
25979           - Changed 'interpretation' of ResumeLayout. MS seems to have a
25980             LAMESPEC, tried to do it in a way that makes sense
25981
25982 2004-08-23 14:10  jordi
25983
25984         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
25985           properties and methods
25986
25987 2004-08-23 13:55  pbartok
25988
25989         * Control.cs:
25990           - Properly fixed Jordi's last fix
25991           - Now uses Cursor's Position property instead of calling XplatUI
25992           directly
25993
25994 2004-08-23 13:44  jordi
25995
25996         * PaintEventHandler.cs: Adding missing attribute
25997
25998 2004-08-23 13:39  pbartok
25999
26000         * Cursor.cs:
26001           - Implemented Position property
26002
26003 2004-08-23 13:39  pbartok
26004
26005         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26006           - Added method to move mouse cursor
26007
26008 2004-08-23 13:39  pbartok
26009
26010         * XplatUIX11.cs:
26011           - Fixed setting of background color
26012           - Added method to move mouse cursor
26013
26014 2004-08-23 13:16  jordi
26015
26016         * Control.cs: avoids null exception
26017
26018 2004-08-22 17:46  jackson
26019
26020         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
26021           PictureBox
26022
26023 2004-08-22 17:40  jackson
26024
26025         * XplatUIX11.cs: Add some missing locks
26026
26027 2004-08-22 15:10  pbartok
26028
26029         * Control.cs, Form.cs:
26030           - Removed OverlappedWindow style from Control, instead it's default
26031             now is child
26032           - Made form windows OverlappedWindow by default
26033
26034 2004-08-22 13:34  jackson
26035
26036         * ScrollBar.cs: Update the position through the Value property so
26037           the OnValueChanged event is raised.
26038
26039 2004-08-22 12:04  pbartok
26040
26041         * SWF.csproj:
26042           - Added Cursor.cs and UserControl.cs
26043
26044 2004-08-22 12:03  pbartok
26045
26046         * Cursor.cs:
26047           - Started implementation, not usable yet
26048
26049 2004-08-22 12:00  pbartok
26050
26051         * UserControl.cs:
26052           - Implemented UserControl (complete)
26053
26054 2004-08-21 19:20  ravindra
26055
26056         * ToolBar.cs: Correcting the formatting mess of VS.NET.
26057
26058 2004-08-21 18:49  ravindra
26059
26060         * ToolBar.cs: Probably this completes the missing attributes in
26061           toolbar control.
26062
26063 2004-08-21 18:03  ravindra
26064
26065         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
26066           Fixed toolbar control signatures.
26067
26068 2004-08-21 16:32  pbartok
26069
26070         * LinkLabel.cs:
26071           - Signature Fixes
26072
26073 2004-08-21 16:30  pbartok
26074
26075         * Label.cs:
26076           - Signature fixes
26077
26078 2004-08-21 16:19  pbartok
26079
26080         * Control.cs, Label.cs:
26081           - Signature fixes
26082
26083 2004-08-21 15:57  pbartok
26084
26085         * ButtonBase.cs:
26086           - Added loads of debug output for development
26087           - Fixed typo in method name
26088
26089 2004-08-21 15:52  pbartok
26090
26091         * ToolBarButtonClickEventArgs.cs:
26092           - Added missing base class
26093
26094 2004-08-21 14:53  pbartok
26095
26096         * Control.cs:
26097           - Updated to match new GrabWindow signature
26098
26099 2004-08-21 14:51  pbartok
26100
26101         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26102           - Added method to get default display size
26103
26104 2004-08-21 14:23  pbartok
26105
26106         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26107           - Added method to query current grab state
26108           - Added argument to allow confining a grab to a window
26109
26110 2004-08-21 14:22  pbartok
26111
26112         * Keys.cs:
26113           - Added [Flags] attribute so that modifiers can be used in bitwise
26114           ops
26115
26116 2004-08-21 14:21  pbartok
26117
26118         * TrackBar.cs, ScrollBar.cs:
26119           - Replaced direct XplatUI calls with their Control counterpart
26120
26121 2004-08-21 13:32  pbartok
26122
26123         * Control.cs:
26124           - Implemented Created property
26125
26126 2004-08-21 13:28  pbartok
26127
26128         * Control.cs:
26129           - Implemented ContainsFocus
26130
26131 2004-08-21 13:26  pbartok
26132
26133         * Control.cs:
26134           - Implemented CausesValidation
26135
26136 2004-08-21 13:21  pbartok
26137
26138         * Control.cs:
26139           - Implemented CanFocus
26140           - Implemented CanSelect
26141           - Implemented Capture
26142
26143 2004-08-21 12:35  pbartok
26144
26145         * XplatUIWin32.cs:
26146           - Fixed bug with Async message handling
26147           - Implemented getting the ModifierKeys
26148
26149 2004-08-21 12:32  jackson
26150
26151         * AsyncMethodResult.cs: Make sure we have the mutex before we
26152           release it. Fixes BeginInvoke on windows
26153
26154 2004-08-21 11:31  pbartok
26155
26156         * XplatUIWin32.cs, XplatUIX11.cs:
26157           - Drivers now return proper mouse state
26158
26159 2004-08-21 10:54  jackson
26160
26161         * Control.cs: Implement EndInvoke
26162
26163 2004-08-21 10:48  jackson
26164
26165         * Timer.cs: Remove unneeded finalizer
26166
26167 2004-08-20 19:52  ravindra
26168
26169         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
26170           in mouse event handling in the ToolBar control.
26171
26172 2004-08-20 19:50  ravindra
26173
26174         * ImageList.cs: Changed draw method to use the arguments passed in
26175           to draw the image.
26176
26177 2004-08-20 18:58  pbartok
26178
26179         * XplatUIStructs.cs:
26180           - Added private message for async communication
26181
26182 2004-08-20 17:38  ravindra
26183
26184         * Control.cs: Made RightToLeft property virtual and removed a
26185           Console.WriteLine.
26186
26187 2004-08-20 14:39  jordi
26188
26189         * ThemeGtk.cs: use style_attach
26190
26191 2004-08-20 14:39  pbartok
26192
26193         * XplatUIWin32.cs:
26194           - Added jackson's Async code from X11 to Win32
26195
26196 2004-08-20 14:09  pbartok
26197
26198         * SWF.csproj:
26199           - Added all new files
26200
26201 2004-08-20 14:09  pbartok
26202
26203         * Control.cs:
26204           - Added call to set window background color
26205
26206 2004-08-20 14:03  pbartok
26207
26208         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26209           - Added method for setting the window background
26210
26211 2004-08-20 14:02  pbartok
26212
26213         * XplatUIWin32.cs:
26214           - Added method for setting the background color
26215           - Added handling for erasing the window background
26216
26217 2004-08-20 13:45  jordi
26218
26219         * TrackBar.cs: fixes timer, new properties and methods
26220
26221 2004-08-20 13:34  jackson
26222
26223         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
26224           correct thread
26225
26226 2004-08-20 13:22  jackson
26227
26228         * Timer.cs: Timer Tick events are now handed through Controls Async
26229           mechanism so the callbacks are executed in the same thread as X
26230
26231 2004-08-20 13:19  jackson
26232
26233         * XplatUIDriver.cs: Expose functionality to send async messages
26234           through the driver
26235
26236 2004-08-20 13:18  jackson
26237
26238         * Control.cs: Implement Begininvoke
26239
26240 2004-08-20 13:14  jackson
26241
26242         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
26243           messages through the driver
26244
26245 2004-08-20 13:12  jackson
26246
26247         * XplatUIX11.cs: Lock before all X operations. Also added Async
26248           method functionality through XSendEvent
26249
26250 2004-08-20 13:11  jackson
26251
26252         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
26253           This will screw up on 64 bit systems)
26254
26255 2004-08-20 13:10  jackson
26256
26257         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
26258           Async messages through X/Win32
26259
26260 2004-08-19 19:39  pbartok
26261
26262         * XplatUIX11.cs:
26263           - Updated code to match new HandleData.DeviceContext type
26264
26265 2004-08-19 19:38  pbartok
26266
26267         * HandleData.cs:
26268           - Made DeviceContext a generic object to allow usage from various
26269           drivers
26270           - Added support for queueing Windows messages
26271
26272 2004-08-19 19:37  pbartok
26273
26274         * XplatUIWin32.cs:
26275           - Added generation of MouseEnter, MouseLeave and MouseHover events
26276           - Added cleanup on EndPaint
26277
26278 2004-08-19 19:17  pbartok
26279
26280         * Control.cs:
26281           - Added handling of WM_MOUSEHOVER
26282           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
26283           code
26284
26285 2004-08-19 18:55  jordi
26286
26287         * ThemeGtk.cs: fixes button order
26288
26289 2004-08-19 18:12  jordi
26290
26291         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
26292
26293 2004-08-19 17:09  pbartok
26294
26295         * Control.cs:
26296           - Added Right property
26297           - Added RightToLeft property
26298
26299 2004-08-19 16:27  jordi
26300
26301         * ThemeGtk.cs: experimental GTK theme support
26302
26303 2004-08-19 16:26  jordi
26304
26305         * ITheme.cs, Theme.cs: move themes from an interface to a class
26306
26307 2004-08-19 16:25  jordi
26308
26309         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
26310           theme enhancaments
26311
26312 2004-08-19 16:04  pbartok
26313
26314         * XplatUIX11.cs:
26315           - Added colormap basics
26316           - Added a way to re-initialize with a different display handle
26317           - Fixed setting of the window background color
26318           - Added various X11 imports related to colors and colormaps
26319
26320 2004-08-19 15:51  pbartok
26321
26322         * X11Structs.cs:
26323           - Removed packing hints (Paolo suggested this a while back)
26324           - fixed colormap type
26325           - Added default Atom types
26326           - Added Screen and color structs and enums
26327
26328 2004-08-19 15:39  pbartok
26329
26330         * ImageList.cs:
26331           - Added missing Draw() method
26332           - Added missing RecreateHandle event
26333
26334 2004-08-19 15:30  pbartok
26335
26336         * Form.cs:
26337           - Added handling of WM_CLOSE
26338
26339 2004-08-18 13:16  jordi
26340
26341         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
26342           a table
26343
26344 2004-08-18 09:56  jordi
26345
26346         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
26347
26348 2004-08-17 15:31  ravindra
26349
26350         * SWF.csproj: Updated project.
26351
26352 2004-08-17 15:25  pbartok
26353
26354         * Control.cs:
26355           - Drawing improvement; don't call UpdateBounds if we are not visible
26356             (or have been minimized)
26357
26358 2004-08-17 15:24  pbartok
26359
26360         * XplatUIWin32.cs:
26361           - Finished IsVisible
26362           - Added Win32GetWindowPlacement
26363
26364 2004-08-17 15:08  jackson
26365
26366         * Panel.cs: Initial checkin of the Panel
26367
26368 2004-08-17 14:25  pbartok
26369
26370         * Control.cs:
26371           - Fixed broken handling of default window sizes
26372
26373 2004-08-17 13:29  jackson
26374
26375         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
26376           has a large startup time.
26377
26378 2004-08-17 10:25  jackson
26379
26380         * HandleData.cs: union areas properly
26381
26382 2004-08-17 10:12  jackson
26383
26384         * HandleData.cs: union areas properly
26385
26386 2004-08-16 20:00  ravindra
26387
26388         * ToolBar.cs, ToolBarButton.cs: Added attributes.
26389
26390 2004-08-16 18:48  ravindra
26391
26392         * ToolBar.cs: Added attributes.
26393
26394 2004-08-16 17:17  ravindra
26395
26396         * SWF.csproj: Updated project.
26397
26398 2004-08-16 17:16  jackson
26399
26400         * XplatUIX11.cs: Check for more expose events before sending a
26401           WM_PAINT so they can all be grouped together. This makes dragging a
26402           window across another window redraw in a sane way.
26403
26404 2004-08-16 15:47  pbartok
26405
26406         * Control.cs:
26407           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
26408             support OnMouseEnter/Leave()
26409           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
26410             exposure handling
26411
26412 2004-08-16 15:46  pbartok
26413
26414         * XplatUIStructs.cs, XplatUIX11.cs:
26415           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
26416           OnMouseEnter/Leave()
26417
26418 2004-08-16 15:34  jackson
26419
26420         * XplatUIX11.cs: Group multiple expose events in HandleData, make
26421           sure messages get the message field set to WM_NULL if they are not
26422           handled.
26423
26424 2004-08-16 15:24  jackson
26425
26426         * HandleData.cs: HandleData is used for storing message information
26427           for window handles
26428
26429 2004-08-15 17:23  ravindra
26430
26431         * ColorDepth.cs: Added attribute.
26432
26433 2004-08-15 17:23  ravindra
26434
26435         * SWF.csproj: Updated project for ToolBar Control.
26436
26437 2004-08-15 17:20  ravindra
26438
26439         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
26440           control and also dos2unix format.
26441
26442 2004-08-15 17:13  ravindra
26443
26444         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
26445           ToolBarButtonClickEventArgs.cs,
26446           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
26447           ToolBarTextAlign.cs: First Implementation of ToolBar control.
26448
26449 2004-08-15 15:31  pbartok
26450
26451         * ButtonBase.cs:
26452           - First (mostly) working version
26453
26454 2004-08-13 16:15  pbartok
26455
26456         * Control.cs:
26457           - Fixed Anchor default
26458
26459 2004-08-13 15:43  pbartok
26460
26461         * Control.cs:
26462           - Changed GetCursorPos signature
26463
26464 2004-08-13 15:42  pbartok
26465
26466         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26467           - Changed signature for GetCursorPos
26468
26469 2004-08-13 15:25  pbartok
26470
26471         * XplatUIX11.cs:
26472           - Cleanup
26473           - Fixed resizing/exposure handling
26474
26475 2004-08-13 15:22  jordi
26476
26477         * ThemeWin32Classic.cs: removes redundant code and fixes issues
26478           with tickposition
26479
26480 2004-08-13 14:55  jordi
26481
26482         * TrackBar.cs: change from wndproc to events
26483
26484 2004-08-13 13:00  jordi
26485
26486         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26487           XplatUIX11.cs: implements PointToClient (ScreenToClient)
26488
26489 2004-08-13 12:53  pbartok
26490
26491         * XplatUIWin32.cs:
26492           - Changed GetWindowPos to also provide client area size
26493           - Fixed broken prototypes for several win32 functions
26494
26495 2004-08-13 12:53  pbartok
26496
26497         * XplatUI.cs, XplatUIDriver.cs:
26498           - Changed GetWindowPos to also provide client area size
26499
26500 2004-08-13 12:52  pbartok
26501
26502         * XplatUIX11.cs:
26503           - Added generation of WM_POSCHANGED
26504           - Changed GetWindowPos to also provide client area size
26505
26506 2004-08-13 12:52  pbartok
26507
26508         * Control.cs:
26509           - Added Dispose() and destructor
26510           - Fixed resizing and bounds calculation
26511           - Fixed Layout
26512           - Added memory savings for invisible windows
26513
26514 2004-08-13 12:46  jordi
26515
26516         * TrackBar.cs: adds timer and grap window
26517
26518 2004-08-13 10:25  jackson
26519
26520         * Timer.cs: SWF Timer
26521
26522 2004-08-12 16:59  pbartok
26523
26524         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26525           - Implemented method to get current mouse position
26526
26527 2004-08-12 14:29  jordi
26528
26529         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
26530           enhancement, fix mouse problems, highli thumb, etc
26531
26532 2004-08-12 13:31  pbartok
26533
26534         * Control.cs:
26535           - Fixed Anchoring bugs
26536
26537 2004-08-12 13:01  jackson
26538
26539         * StatusBar.cs: Don't forget things
26540
26541 2004-08-12 12:54  jackson
26542
26543         * ThemeWin32Classic.cs: Handle owner draw status bars
26544
26545 2004-08-12 12:54  jackson
26546
26547         * StatusBar.cs: Implement missing properties, events, and methods.
26548           Handle mouse clicking
26549
26550 2004-08-12 10:19  jackson
26551
26552         * StatusBarPanelClickEventArgs.cs,
26553           StatusBarPanelClickEventHandler.cs: Classes for handling status
26554           bar panel click events
26555
26556 2004-08-12 10:10  jackson
26557
26558         * Control.cs: Add missing properties
26559
26560 2004-08-12 09:46  pbartok
26561
26562         * BindingsManagerBase.cs:
26563           - Name changed to BindingManagerBase.cs
26564
26565 2004-08-12 09:25  jordi
26566
26567         * ScrollableControl.cs: calls ctrlbase instead of exeception
26568
26569 2004-08-11 16:28  pbartok
26570
26571         * InputLanguageChangingEventArgs.cs:
26572           - Never check in before compiling. Fixes the last check-in
26573
26574 2004-08-11 16:26  pbartok
26575
26576         * InputLanguageChangingEventArgs.cs:
26577           - More signature fixes
26578
26579 2004-08-11 16:20  pbartok
26580
26581         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
26582           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
26583           ImageListStreamer.cs, InputLanguage.cs,
26584           InputLanguageChangedEventArgs.cs,
26585           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
26586           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
26587           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
26588           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26589           - Signature fixes
26590
26591 2004-08-11 16:16  pbartok
26592
26593         * Application.cs:
26594           - Fixed Signature
26595           - Added .Net 1.1 method
26596
26597 2004-08-11 15:25  pbartok
26598
26599         * SWF.csproj:
26600           - Fixed BindingManagerBase.cs filename
26601
26602 2004-08-11 15:22  pbartok
26603
26604         * BindingManagerBase.cs:
26605           - Was checked in with wrong filename
26606
26607 2004-08-11 14:50  pbartok
26608
26609         * SWF.csproj:
26610           - Updated
26611
26612 2004-08-11 13:41  jordi
26613
26614         * XplatUIWin32.cs: Fixes ClientRect
26615
26616 2004-08-11 13:19  pbartok
26617
26618         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26619           XplatUIX11.cs:
26620           - We had SetWindowPos and MoveWindow to set window positions and
26621             size, removed MoveWindow. We have GetWindowPos, so it made sense to
26622             keep SetWindowPos as matching counterpart
26623           - Added some X11 sanity checking
26624
26625 2004-08-11 12:59  pbartok
26626
26627         * Control.cs:
26628           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
26629             (It seems that SetBounds is just a front for SetBoundsCore and
26630              SetBoundsCore updates the underlying window system and
26631              UpdateBounds is responsible for updating the variables associated
26632              with the Control and sending the events)
26633           - Major cleanup of Size handling; we now have two sizes, client_size
26634             and bounds. Bounds defines the window with decorations, client_size
26635             without them.
26636
26637 2004-08-11 12:55  pbartok
26638
26639         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26640           - Added method to calculate difference between decorated window and
26641             raw client area
26642
26643 2004-08-11 12:54  pbartok
26644
26645         * Label.cs:
26646           - Forcing redraw on resize
26647
26648 2004-08-11 11:43  pbartok
26649
26650         * ImageList.cs:
26651           - Removed disposing of the actual images when the list is disposed
26652
26653 2004-08-11 09:13  pbartok
26654
26655         * Control.cs:
26656           - Now properly reparents windows
26657
26658 2004-08-11 08:37  pbartok
26659
26660         * Control.cs:
26661           - Duh!
26662
26663 2004-08-11 07:47  pbartok
26664
26665         * Control.cs:
26666           - Rewrote the collection stuff. Might not be as fast now, not
26667             keeping the number of children around and accessible directly, but
26668             it's more straightforward
26669
26670 2004-08-11 07:44  pbartok
26671
26672         * AccessibleObject.cs:
26673           - Fixed to match ControlCollection rewrite
26674
26675 2004-08-11 07:43  pbartok
26676
26677         * ImageList.cs:
26678           - Added missing creation of the collection list
26679
26680 2004-08-10 20:08  jackson
26681
26682         * StatusBar.cs: Get the paint message from WndProc
26683
26684 2004-08-10 19:31  jackson
26685
26686         * ThemeWin32Classic.cs: Create Brushes as little as possible
26687
26688 2004-08-10 19:20  jackson
26689
26690         * UICues.cs: Add Flags attribute
26691
26692 2004-08-10 19:19  jackson
26693
26694         * StatusBarPanel.cs: Signature cleanup
26695
26696 2004-08-10 19:10  jackson
26697
26698         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
26699           Initial implementation of status bar item drawing
26700
26701 2004-08-10 17:27  jordi
26702
26703         * TrackBar.cs: add missing methods, properties, and restructure to
26704           hide extra ones
26705
26706 2004-08-10 16:24  jackson
26707
26708         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
26709           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
26710           attribute
26711
26712 2004-08-10 13:21  jordi
26713
26714         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
26715           enhancements and standarize on win colors defaults
26716
26717 2004-08-10 12:52  jackson
26718
26719         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
26720           ThemeWin32Classic.cs: Implement DrawItem functionality
26721
26722 2004-08-10 12:47  jordi
26723
26724         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
26725
26726 2004-08-10 12:32  jordi
26727
26728         * Control.cs: throw ontextchange event
26729
26730 2004-08-10 11:43  pbartok
26731
26732         * Control.cs:
26733           - Added more to the still unfinished Dock/Anchor layout code
26734
26735 2004-08-10 11:39  pbartok
26736
26737         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26738           - Added GetWindowPos method
26739
26740 2004-08-10 11:36  pbartok
26741
26742         * XplatUIWin32.cs:
26743           - Implemented several methods
26744
26745 2004-08-10 09:47  jackson
26746
26747         * TrackBar.cs: Allow control to handle buffering
26748
26749 2004-08-10 09:41  jackson
26750
26751         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
26752
26753 2004-08-10 09:24  jackson
26754
26755         * Label.cs, LinkLabel.cs: Let Control handle buffering.
26756
26757 2004-08-10 09:09  jackson
26758
26759         * StatusBar.cs: Let Control handle all the buffering.
26760
26761 2004-08-10 09:08  jackson
26762
26763         * Control.cs: Control will now handle the buffering code, so each
26764           control does not have to implement this.
26765
26766 2004-08-10 08:34  jackson
26767
26768         * XplatUIDriver.cs: Use default colors from the theme
26769
26770 2004-08-09 17:12  pbartok
26771
26772         * ImageList.cs:
26773           - Fixed several bugs Ravindra pointed out
26774
26775 2004-08-09 16:11  pbartok
26776
26777         * Control.cs:
26778           - Added incomplete dock layout code
26779           - Added support for mouse wheel
26780
26781 2004-08-09 16:09  pbartok
26782
26783         * XplatUIX11.cs:
26784           - Added handling for middle and right mousebutton
26785           - Added handling for mouse wheel
26786           - Added handling for key state and mouse state and position
26787           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
26788           messages
26789
26790 2004-08-09 15:40  jackson
26791
26792         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
26793           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
26794           checkin
26795
26796 2004-08-09 15:37  jackson
26797
26798         * StatusBar.cs: Initial implementation of StatusBar
26799
26800 2004-08-09 15:36  jackson
26801
26802         * ITheme.cs: Add support for drawing status bar and getting status
26803           bar item sizes
26804
26805 2004-08-09 15:35  pbartok
26806
26807         * MouseButtons.cs:
26808           - Fixed values
26809
26810 2004-08-09 15:34  jackson
26811
26812         * ThemeWin32Classic.cs: Add support for drawing status bar and get
26813           status bar item sizes
26814
26815 2004-08-09 15:21  jackson
26816
26817         * ThemeWin32Classic.cs: Use known colors for default control
26818           colours
26819
26820 2004-08-09 15:12  jackson
26821
26822         * ThemeWin32Classic.cs: Make the default font static, it is static
26823           in control so this doesn't change functionality and creating fonts
26824           is sloooooow.
26825
26826 2004-08-09 14:56  pbartok
26827
26828         * X11Structs.cs:
26829           - Added GrabMode enum
26830
26831 2004-08-09 14:55  pbartok
26832
26833         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26834           - Removed Run method, was only required for initial development
26835
26836 2004-08-09 14:51  pbartok
26837
26838         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26839           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
26840           capture
26841
26842 2004-08-09 13:48  pbartok
26843
26844         * XplatUIX11.cs:
26845           - Fixed default sizing for child windows
26846
26847 2004-08-09 12:56  pbartok
26848
26849         * XplatUIX11.cs:
26850           - Added generation of WM_DESTROY message
26851           - Added handling of window manager induced shutdown
26852
26853 2004-08-09 11:31  jackson
26854
26855         * ThemeWin32Classic.cs: New names for control properties
26856
26857 2004-08-09 11:25  jackson
26858
26859         * Control.cs: Use new color names
26860
26861 2004-08-09 11:02  jackson
26862
26863         * XplatUI.cs: Get default window properties from the theme
26864
26865 2004-08-09 11:01  jackson
26866
26867         * ITheme.cs: The theme engine now controls default window
26868           properties
26869
26870 2004-08-09 11:00  jackson
26871
26872         * ThemeWin32Classic.cs: Add default window color properties
26873
26874 2004-08-09 10:17  jackson
26875
26876         * ThemeWin32Classic.cs: Use correct default back color
26877
26878 2004-08-09 10:05  jackson
26879
26880         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
26881           the theme now.
26882
26883 2004-08-09 09:56  jackson
26884
26885         * XplatUI.cs: Remove defaults, these are handled by the theme now.
26886
26887 2004-08-09 09:54  jackson
26888
26889         * Control.cs: Get default properties from the theme.
26890
26891 2004-08-09 09:53  jackson
26892
26893         * ITheme.cs: Themes now handle default control properties
26894
26895 2004-08-09 09:53  jackson
26896
26897         * ThemeWin32Classic.cs: Themes now handle default control
26898           properties so coloring will be consistent
26899
26900 2004-08-08 16:54  jordi
26901
26902         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
26903
26904 2004-08-08 15:08  jordi
26905
26906         * XplatUIX11.cs: fixes keyboard crash
26907
26908 2004-08-08 13:47  jordi
26909
26910         * Label.cs: add cvs header info
26911
26912 2004-08-08 12:09  jackson
26913
26914         * ThemeWin32Classic.cs: Add pen_buttonface
26915
26916 2004-08-08 11:52  jordi
26917
26918         * Label.cs, LinkLabel.cs: [no log message]
26919
26920 2004-08-08 11:34  jordi
26921
26922         * ThemeWin32Classic.cs: Use Windows Standard Colours
26923
26924 2004-08-07 17:32  jordi
26925
26926         * TrackBar.cs: throw exceptions of invalid enums values
26927
26928 2004-08-07 17:31  jordi
26929
26930         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
26931           draw method name
26932
26933 2004-08-07 16:56  jackson
26934
26935         * HorizontalAlignment.cs: Initial checkin
26936
26937 2004-08-07 13:16  jordi
26938
26939         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
26940           methods
26941
26942 2004-08-07 13:05  jordi
26943
26944         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
26945           GetSysColor defines
26946
26947 2004-08-06 18:01  pbartok
26948
26949         * ThemeWin32Classic.cs:
26950           - Fixed some rounding issues with float/int
26951
26952 2004-08-06 18:00  jackson
26953
26954         * DockStyle.cs, AnchorStyles.cs:
26955
26956                   Add flags and serializable attributes.
26957
26958 2004-08-06 17:46  pbartok
26959
26960         * XplatUIX11.cs:
26961           - Implemented GetParent
26962
26963 2004-08-06 17:18  pbartok
26964
26965         * TrackBar.cs:
26966           - Fixed some rounding issues with float/int
26967
26968 2004-08-06 17:17  pbartok
26969
26970         * X11Structs.cs, XplatUIX11.cs:
26971           - Fixed Refresh and Invalidate
26972
26973 2004-08-06 15:30  pbartok
26974
26975         * Control.cs, X11Structs.cs, XplatUIX11.cs:
26976           - Fixed recursive loop when resizing
26977           - Improved/fixed redrawing on expose messages
26978
26979 2004-08-06 09:53  jordi
26980
26981         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
26982           keyboard navigation
26983
26984 2004-08-06 08:02  pbartok
26985
26986         * X11Structs.cs, XplatUIX11.cs:
26987           - Fixed reparenting
26988           - Fixed window border creation
26989
26990 2004-08-05 15:38  pbartok
26991
26992         * XplatUIX11.cs:
26993           - Attempted fix for reparenting problems
26994
26995 2004-08-04 15:14  pbartok
26996
26997         * Control.cs:
26998           - Fixed Invalidation bug (calculated wrong client area)
26999           - Added ClientSize setter
27000
27001 2004-08-04 15:13  pbartok
27002
27003         * Form.cs:
27004           - Added AutoScale properties
27005
27006 2004-08-04 15:13  pbartok
27007
27008         * SWF.csproj:
27009           - Added latest files
27010
27011 2004-08-04 14:11  pbartok
27012
27013         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27014           XplatUIX11.cs:
27015           - Added Invalidate handling
27016
27017 2004-08-03 17:09  jordi
27018
27019         * XplatUIDriver.cs: fixes spelling mistake
27020
27021 2004-07-27 09:53  jordi
27022
27023         * TrackBar.cs: fixes trackbar events, def classname, methods
27024           signature
27025
27026 2004-07-27 09:29  jordi
27027
27028         * ScrollBar.cs: fixes scrollbar events
27029
27030 2004-07-27 04:38  jordi
27031
27032         * Control.cs: changes to be able to run winforms samples
27033
27034 2004-07-26 11:42  jordi
27035
27036         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
27037           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
27038
27039 2004-07-26 05:41  jordi
27040
27041         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
27042           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
27043           implementation
27044
27045 2004-07-22 09:22  jordi
27046
27047         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
27048           check link overlapping, implement events, and fixes
27049
27050 2004-07-21 10:28  jordi
27051
27052         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
27053
27054 2004-07-21 10:19  jordi
27055
27056         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
27057           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
27058           LinkLabelLinkClickedEventArgs.cs,
27059           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
27060           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
27061           implementation
27062
27063 2004-07-19 13:09  jordi
27064
27065         * Control.cs, Label.cs: label control re-written: added missing
27066           functionlity, events, and properties
27067
27068 2004-07-19 10:49  jordi
27069
27070         * Control.cs: fixes SetBounds logic
27071
27072 2004-07-19 01:29  jordi
27073
27074         * Control.cs: Call RefreshWindow only if the window has created
27075
27076 2004-07-15 14:05  pbartok
27077
27078         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
27079           - Implemented ImageList and ImageList.ImageCollection classes
27080           - Added ColorDepth enumeration
27081           - Updated SWF VS.Net project
27082
27083 2004-07-15 11:06  jordi
27084
27085         * XplatUIStructs.cs: added MsgButons enum
27086
27087 2004-07-15 11:03  jordi
27088
27089         * Control.cs: added basic mouse handeling events
27090
27091 2004-07-15 03:38  jordi
27092
27093         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
27094           Vertical TrackBar control implementation
27095
27096 2004-07-13 09:33  jordi
27097
27098         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
27099
27100 2004-07-13 09:31  jordi
27101
27102         * Control.cs, Form.cs: commit: new properties and fixes form size
27103           problems
27104
27105 2004-07-09 14:13  miguel
27106
27107         * ProgressBar.cs: Spelling
27108
27109 2004-07-09 11:25  pbartok
27110
27111         * ProgressBar.cs:
27112           - Removed usage of Rectangle for drawing. Miguel pointed out it's
27113           faster
27114
27115 2004-07-09 11:17  miguel
27116
27117         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
27118
27119                 * ProgressBar.cs: Fixed spelling for `block'
27120
27121                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
27122                 style guidelines.
27123
27124                 Avoid using the += on rect.X, that exposed a bug in the compiler.
27125
27126 2004-07-08 23:21  pbartok
27127
27128         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
27129           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
27130           BaseCollection.cs, Binding.cs, BindingContext.cs,
27131           BindingMemberInfo.cs, BindingsCollection.cs,
27132           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
27133           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
27134           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
27135           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
27136           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
27137           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
27138           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
27139           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
27140           FrameStyle.cs, GiveFeedbackEventArgs.cs,
27141           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
27142           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
27143           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
27144           InputLanguageChangedEventArgs.cs,
27145           InputLanguageChangedEventHandler.cs,
27146           InputLanguageChangingEventArgs.cs,
27147           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
27148           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
27149           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
27150           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
27151           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
27152           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
27153           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
27154           QueryAccessibilityHelpEventArgs.cs,
27155           QueryAccessibilityHelpEventHandler.cs,
27156           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
27157           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
27158           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
27159           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
27160           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
27161           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
27162           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
27163           XplatUIX11.cs, lang.cs:
27164           - Initial check-in
27165
27166